http://ftp.x.org/contrib/applications/xscreensaver-3.19.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:38 +0000 (00:42 -0500)
committerZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:42:38 +0000 (00:42 -0500)
-rw-r--r-- 1 zblaxell zblaxell 1191660 Oct 29  1999 xscreensaver-3.19.tar.gz
67aaae2b935e2712ac8b23b8d9e31e2d0b5e9db1  xscreensaver-3.19.tar.gz

46 files changed:
README
README.debugging
config.h.in
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/lock.c
driver/timers.c
driver/xscreensaver-command.man
driver/xscreensaver-demo.man
driver/xscreensaver.c
driver/xscreensaver.h
driver/xscreensaver.man
hacks/Makefile.in
hacks/bumps.c
hacks/bumps.h
hacks/ccurve.c
hacks/distort.man [new file with mode: 0644]
hacks/glx/Makefile.in
hacks/glx/extrusion-helix2.c [new file with mode: 0644]
hacks/glx/extrusion-helix3.c [new file with mode: 0644]
hacks/glx/extrusion-helix4.c [new file with mode: 0644]
hacks/glx/extrusion-joinoffset.c [new file with mode: 0644]
hacks/glx/extrusion-screw.c [new file with mode: 0644]
hacks/glx/extrusion-taper.c [new file with mode: 0644]
hacks/glx/extrusion-twistoid.c [new file with mode: 0644]
hacks/glx/extrusion.c [new file with mode: 0644]
hacks/images/matrix.xbm
hacks/images/matrix.xpm
hacks/images/matrix2.xbm [new file with mode: 0644]
hacks/images/matrix2.xpm [new file with mode: 0644]
hacks/imsmap.c
hacks/phosphor.man [new file with mode: 0644]
hacks/shadebobs.c
hacks/sonar.c
hacks/spotlight.c
hacks/webcollage
hacks/xmatrix.c
hacks/xmatrix.man [new file with mode: 0644]
hacks/xsublim.c
utils/grabscreen.c
utils/version.h
xscreensaver.lsm
xscreensaver.spec

diff --git a/README b/README
index 9fe342bd2c8365e3e2274bb3b32ceab874531beb..6555321f6388aa8624dde8f603fd6210f77f58b4 100644 (file)
--- a/README
+++ b/README
@@ -77,6 +77,18 @@ http://www.jwz.org/xscreensaver/.
 
                               ============
 
+Changes since 3.18:   * Fixed gcc dependencies in `bumps' and `ccurve'.
+                      * New hack, `extrusion'.
+                      * Some of the web sites that `webcollage' was using as
+                        its sources changed formats; tweaked it to understand
+                        the current layouts.
+                      * Added typeahead in the password dialog: if the screen
+                        is locked, and you unlock it by typing a character,
+                        that key will be automatically inserted in the
+                        password dialog (unless it is Return, Enter, Space,
+                        or a non-printing key like Shift.)
+                      * Made `xmatrix' take a `-small' option, since some
+                        folks with tiny screens prefer a smaller font.
 Changes since 3.17:   * New versions of `shadebobs', `lmorph', and `distort'.
                       * Added `ccurve', `blaster', and `bumps' hacks.
                       * Replaced `forest' hack with a rewritten version.
index 31364dbffbc354c330ba5ca1ae4fe63943d0a6c5..006fb5e392857ad7267227ac1bd4adfacb35d8a3 100644 (file)
@@ -81,7 +81,7 @@ RUN-TIME PROBLEMS:
         *  Is the problem in the driver (`xscreensaver'), the GUI
            (`xscreensaver-demo'), or in the graphics hacks?
 
-        *  If the problem is in the GUI, was the it built using
+        *  If the problem is in the GUI, was it built using
            Motif, Lesstif, or Athena?  Which version?
 
         *  If the problem is in one (or more) of the hacks, which ones?
@@ -118,8 +118,18 @@ RUN-TIME PROBLEMS:
               where
 
            If the bottom few lines of the output don't include the functions
-          `main_loop()' and `main()', then something's wrong: are you sure
-           the core file came from that program?
+           `main_loop()' and `main()', then something went wrong, and the
+           core file is bogus.  If the lines it prints out contain only
+           question marks, then the core file is bogus.  Are you sure the
+           core file came from that program?  Did you compile with -g, as
+           explained above?  If you don't compile with -g, the core file
+           won't have any information in it.
+
+           Never ever ever mail me (or anyone) a core file.  They are huge,
+           and are only meaningful on the machine that generated them, with
+           the exact executable that generated them, neither of which anyone
+           but you has access to.  Don't mail me a core file unless you're
+           also planning on mailing me your computer.
 
         *  If it gets an X error, where did it come from?  Run
            xscreensaver with the `-sync' command-line option.  When `-sync'
index 318e2bfc966c6e1c30f874a832f7459cda55f198..78291f463b3ee462e92c977224c715c1092ee4d8 100644 (file)
  */
 #undef HAVE_GLBINDTEXTURE
 
+/*  Define this if you have the -lgle and -lmatrix libraries (GL extrusion.)
+ */
+#undef HAVE_GLE
+
 /*  Define this if the `xscreensaver' process itself (the driver process)
     should be linked against GL.  Most systems won't want this (in particular,
     if you're using Linux and/or Mesa, you don't want this) but SGI systems
index a1d4d6a97abd75bcf75dc822d1de5d9fd3aa715e..135f8a3d0ca03eab4a27918a0a7cb6ffbbcfeabd 100755 (executable)
--- a/configure
+++ b/configure
@@ -80,6 +80,9 @@ ac_help="$ac_help
 Graphics options:
 
   --with-gl               Build those demos which depend on OpenGL."
+ac_help="$ac_help
+  --with-gle              Build those demos which depend on GLE
+                          (the OpenGL "extrusion" library.)"
 ac_help="$ac_help
   --with-xpm              Include support for XPM files in some demos."
 ac_help="$ac_help
@@ -786,7 +789,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:801: checking host system type" >&5
+echo "configure:804: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -809,7 +812,7 @@ echo "$ac_t""$host" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:824: checking for $ac_word" >&5
+echo "configure:827: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -839,7 +842,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:854: checking for $ac_word" >&5
+echo "configure:857: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -890,7 +893,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:905: checking for $ac_word" >&5
+echo "configure:908: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -922,7 +925,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:937: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:940: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -933,12 +936,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 948 "configure"
+#line 951 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -964,12 +967,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:979: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:982: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:984: checking whether we are using GNU C" >&5
+echo "configure:987: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -978,7 +981,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -997,7 +1000,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1012: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1015: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1031,7 +1034,7 @@ fi
 
   if test -z "$GCC"; then
     echo $ac_n "checking how to request ANSI compilation""... $ac_c" 1>&6
-echo "configure:1046: checking how to request ANSI compilation" >&5
+echo "configure:1049: checking how to request ANSI compilation" >&5
     case "$host" in
       *-hpux* )
         echo "$ac_t""HPUX: adding -Ae" 1>&6
@@ -1054,16 +1057,16 @@ echo "configure:1046: checking how to request ANSI compilation" >&5
   fi
 
   echo $ac_n "checking whether the compiler works on ANSI C""... $ac_c" 1>&6
-echo "configure:1069: checking whether the compiler works on ANSI C" >&5
+echo "configure:1072: checking whether the compiler works on ANSI C" >&5
   if test "$cross_compiling" = yes; then
   { echo "configure: error: Couldn't build even a trivial ANSI C program: check CC." 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 1074 "configure"
+#line 1077 "configure"
 #include "confdefs.h"
  main(int ac, char **av) { return 0; } 
 EOF
-if { (eval echo configure:1078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   echo "$ac_t""yes" 1>&6
 else
@@ -1096,7 +1099,7 @@ fi
   fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1111: checking how to run the C preprocessor" >&5
+echo "configure:1114: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1111,13 +1114,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1126 "configure"
+#line 1129 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1128,13 +1131,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1143 "configure"
+#line 1146 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1145,13 +1148,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1160 "configure"
+#line 1163 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1176,12 +1179,12 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1191: checking for working const" >&5
+echo "configure:1194: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1196 "configure"
+#line 1199 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1230,7 +1233,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:1245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -1251,21 +1254,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1266: checking for inline" >&5
+echo "configure:1269: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1273 "configure"
+#line 1276 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1304,7 +1307,7 @@ esac
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1319: checking for a BSD compatible install" >&5
+echo "configure:1322: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1357,7 +1360,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 echo $ac_n "checking whether \"\${INSTALL} -d\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1372: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
+echo "configure:1375: checking whether \"\${INSTALL} -d\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_install_d_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1379,7 +1382,7 @@ echo "$ac_t""$ac_cv_install_d_creates_dirs" 1>&6
 
   if test "$ac_cv_install_d_creates_dirs" = no ; then
     echo $ac_n "checking whether \"mkdir -p\" creates intermediate directories""... $ac_c" 1>&6
-echo "configure:1394: checking whether \"mkdir -p\" creates intermediate directories" >&5
+echo "configure:1397: checking whether \"mkdir -p\" creates intermediate directories" >&5
 if eval "test \"`echo '$''{'ac_cv_mkdir_p_creates_dirs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1410,7 +1413,7 @@ echo "$ac_t""$ac_cv_mkdir_p_creates_dirs" 1>&6
   fi
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1425: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1428: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1439,12 +1442,12 @@ fi
 
 # random libc stuff
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1454: checking for ANSI C header files" >&5
+echo "configure:1457: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1459 "configure"
+#line 1462 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -1452,7 +1455,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1469,7 +1472,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1484 "configure"
+#line 1487 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -1487,7 +1490,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 1502 "configure"
+#line 1505 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -1508,7 +1511,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1526 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1519,7 +1522,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:1534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -1546,17 +1549,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1561: checking for $ac_hdr" >&5
+echo "configure:1564: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1566 "configure"
+#line 1569 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1583,12 +1586,12 @@ fi
 done
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1598: checking for mode_t" >&5
+echo "configure:1601: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1603 "configure"
+#line 1606 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1616,12 +1619,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1631: checking for pid_t" >&5
+echo "configure:1634: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1636 "configure"
+#line 1639 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1649,12 +1652,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1664: checking for size_t" >&5
+echo "configure:1667: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1669 "configure"
+#line 1672 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -1682,12 +1685,12 @@ EOF
 fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1697: checking return type of signal handlers" >&5
+echo "configure:1700: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1702 "configure"
+#line 1705 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -1704,7 +1707,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:1719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -1723,12 +1726,12 @@ EOF
 
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1738: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1741: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1743 "configure"
+#line 1746 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -1737,7 +1740,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:1752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -1758,12 +1761,12 @@ EOF
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1773: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:1776: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1778 "configure"
+#line 1781 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -1779,7 +1782,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:1794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1797: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -1804,12 +1807,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1819: checking for $ac_hdr that defines DIR" >&5
+echo "configure:1822: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1824 "configure"
+#line 1827 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -1817,7 +1820,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:1832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -1842,7 +1845,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1857: checking for opendir in -ldir" >&5
+echo "configure:1860: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1850,7 +1853,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1865 "configure"
+#line 1868 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1861,7 +1864,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:1876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1883,7 +1886,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1898: checking for opendir in -lx" >&5
+echo "configure:1901: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1891,7 +1894,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1906 "configure"
+#line 1909 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1902,7 +1905,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:1917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1925,12 +1928,12 @@ fi
 fi
 
 echo $ac_n "checking how to call gettimeofday""... $ac_c" 1>&6
-echo "configure:1940: checking how to call gettimeofday" >&5
+echo "configure:1943: checking how to call gettimeofday" >&5
   if eval "test \"`echo '$''{'ac_cv_gettimeofday_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1945 "configure"
+#line 1948 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                     #include <sys/time.h>
@@ -1939,7 +1942,7 @@ struct timeval tv; struct timezone tzp;
                     gettimeofday(&tv, &tzp);
 ; return 0; }
 EOF
-if { (eval echo configure:1954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=2
 else
@@ -1947,7 +1950,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 1962 "configure"
+#line 1965 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <sys/time.h>
@@ -1955,7 +1958,7 @@ int main() {
 struct timeval tv; gettimeofday(&tv);
 ; return 0; }
 EOF
-if { (eval echo configure:1970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_gettimeofday_args=1
 else
@@ -1994,12 +1997,12 @@ EOF
 for ac_func in select fcntl uname nice setpriority getcwd getwd putenv
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2009: checking for $ac_func" >&5
+echo "configure:2012: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2014 "configure"
+#line 2017 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2022,7 +2025,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2050,12 +2053,12 @@ done
 for ac_func in sigaction syslog realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2065: checking for $ac_func" >&5
+echo "configure:2068: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2070 "configure"
+#line 2073 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2078,7 +2081,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2103,12 +2106,12 @@ fi
 done
 
 echo $ac_n "checking for struct icmp""... $ac_c" 1>&6
-echo "configure:2118: checking for struct icmp" >&5
+echo "configure:2121: checking for struct icmp" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2123 "configure"
+#line 2126 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2143,7 +2146,7 @@ struct icmp i;
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmp=yes
 else
@@ -2163,12 +2166,12 @@ EOF
 
  fi
 echo $ac_n "checking for struct icmphdr""... $ac_c" 1>&6
-echo "configure:2178: checking for struct icmphdr" >&5
+echo "configure:2181: checking for struct icmphdr" >&5
 if eval "test \"`echo '$''{'ac_cv_have_icmphdr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2183 "configure"
+#line 2186 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                    #include <stdio.h>
@@ -2203,7 +2206,7 @@ struct icmphdr i;
                    ip.ip_hl = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_icmphdr=yes
 else
@@ -2226,17 +2229,17 @@ for ac_hdr in crypt.h sys/select.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2241: checking for $ac_hdr" >&5
+echo "configure:2244: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2246 "configure"
+#line 2249 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2262,13 +2265,12 @@ else
 fi
 done
 
-PERL=''
-  for ac_prog in perl5 perl
+for ac_prog in perl5 perl
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2283: checking for $ac_word" >&5
+echo "configure:2285: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2307,7 +2309,7 @@ done
     PERL_VERSION=0
   else
     echo $ac_n "checking perl version""... $ac_c" 1>&6
-echo "configure:2322: checking perl version" >&5
+echo "configure:2324: checking perl version" >&5
 if eval "test \"`echo '$''{'ac_cv_perl_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2329,7 +2331,7 @@ fi
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:2344: checking for X" >&5
+echo "configure:2346: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -2391,12 +2393,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 2406 "configure"
+#line 2408 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2465,14 +2467,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2480 "configure"
+#line 2482 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -2578,17 +2580,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:2593: checking whether -R must be followed by a space" >&5
+echo "configure:2595: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 2596 "configure"
+#line 2598 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -2604,14 +2606,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 2619 "configure"
+#line 2621 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -2643,7 +2645,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:2658: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:2660: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2651,7 +2653,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2666 "configure"
+#line 2668 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2662,7 +2664,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2684,7 +2686,7 @@ fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:2699: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:2701: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2692,7 +2694,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2707 "configure"
+#line 2709 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2703,7 +2705,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:2718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2732,12 +2734,12 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:2747: checking for gethostbyname" >&5
+echo "configure:2749: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
+#line 2754 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -2760,7 +2762,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -2781,7 +2783,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2796: checking for gethostbyname in -lnsl" >&5
+echo "configure:2798: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2789,7 +2791,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2804 "configure"
+#line 2806 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2800,7 +2802,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:2815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2830,12 +2832,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:2845: checking for connect" >&5
+echo "configure:2847: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2850 "configure"
+#line 2852 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -2858,7 +2860,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -2879,7 +2881,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:2894: checking for connect in -lsocket" >&5
+echo "configure:2896: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2887,7 +2889,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2902 "configure"
+#line 2904 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2898,7 +2900,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:2913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2922,12 +2924,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:2937: checking for remove" >&5
+echo "configure:2939: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2942 "configure"
+#line 2944 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -2950,7 +2952,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -2971,7 +2973,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:2986: checking for remove in -lposix" >&5
+echo "configure:2988: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2979,7 +2981,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2994 "configure"
+#line 2996 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2990,7 +2992,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:3005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3014,12 +3016,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:3029: checking for shmat" >&5
+echo "configure:3031: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3034 "configure"
+#line 3036 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -3042,7 +3044,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -3063,7 +3065,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:3078: checking for shmat in -lipc" >&5
+echo "configure:3080: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3071,7 +3073,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3086 "configure"
+#line 3088 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3082,7 +3084,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:3097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3115,7 +3117,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:3130: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:3132: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3123,7 +3125,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3138 "configure"
+#line 3140 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3134,7 +3136,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:3149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3165,7 +3167,7 @@ fi
 
 
     echo $ac_n "checking for X app-defaults directory""... $ac_c" 1>&6
-echo "configure:3180: checking for X app-defaults directory" >&5
+echo "configure:3182: checking for X app-defaults directory" >&5
 if eval "test \"`echo '$''{'ac_cv_x_app_defaults'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3364,7 +3366,7 @@ case "$host" in
 
         # Some versions of Slowlaris Motif require -lgen.  But not all.  Why?
         echo $ac_n "checking for regcmp in -lgen""... $ac_c" 1>&6
-echo "configure:3379: checking for regcmp in -lgen" >&5
+echo "configure:3381: checking for regcmp in -lgen" >&5
 ac_lib_var=`echo gen'_'regcmp | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3372,7 +3374,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3387 "configure"
+#line 3389 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3383,7 +3385,7 @@ int main() {
 regcmp()
 ; return 0; }
 EOF
-if { (eval echo configure:3398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3407,7 +3409,7 @@ fi
     ;;
   esac
 echo $ac_n "checking for XPointer""... $ac_c" 1>&6
-echo "configure:3422: checking for XPointer" >&5
+echo "configure:3424: checking for XPointer" >&5
 if eval "test \"`echo '$''{'ac_cv_xpointer'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3418,14 +3420,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 3433 "configure"
+#line 3435 "configure"
 #include "confdefs.h"
 #include <X11/Xlib.h>
 int main() {
 XPointer foo = (XPointer) 0;
 ; return 0; }
 EOF
-if { (eval echo configure:3440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_xpointer=yes
 else
@@ -3463,17 +3465,17 @@ have_xmu=no
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/Xmu/Error.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xmu/Error.h""... $ac_c" 1>&6
-echo "configure:3478: checking for X11/Xmu/Error.h" >&5
+echo "configure:3480: checking for X11/Xmu/Error.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3483 "configure"
+#line 3485 "configure"
 #include "confdefs.h"
 #include <X11/Xmu/Error.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3490: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3526,7 +3528,7 @@ if test "$have_xmu" = yes ; then
   case "$host" in
     *-sunos4*)
     echo $ac_n "checking for the SunOS 4.1.x _get_wmShellWidgetClass bug""... $ac_c" 1>&6
-echo "configure:3541: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
+echo "configure:3543: checking for the SunOS 4.1.x _get_wmShellWidgetClass bug" >&5
 if eval "test \"`echo '$''{'ac_cv_sunos_xmu_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3539,14 +3541,14 @@ else
                     # with X libraries because we know it's SunOS.
                     LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm"
                     cat > conftest.$ac_ext <<EOF
-#line 3554 "configure"
+#line 3556 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_sunos_xmu_bug=no
 else
@@ -3562,21 +3564,21 @@ fi
 echo "$ac_t""$ac_cv_sunos_xmu_bug" 1>&6
     if test "$ac_cv_sunos_xmu_bug" = yes ; then
       echo $ac_n "checking whether the compiler understands -static""... $ac_c" 1>&6
-echo "configure:3577: checking whether the compiler understands -static" >&5
+echo "configure:3579: checking whether the compiler understands -static" >&5
 if eval "test \"`echo '$''{'ac_cv_ld_static'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LDFLAGS="$LDFLAGS"
                       LDFLAGS="$LDFLAGS -static"
                       cat > conftest.$ac_ext <<EOF
-#line 3584 "configure"
+#line 3586 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_ld_static=yes
 else
@@ -3659,7 +3661,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI SCREEN_SAVER headers""... $ac_c" 1>&6
-echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5
+echo "configure:3676: checking for SGI SCREEN_SAVER headers" >&5
      d=$with_sgi/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3669,7 +3671,7 @@ echo "configure:3674: checking for SGI SCREEN_SAVER headers" >&5
      fi
 
      echo $ac_n "checking for SGI SCREEN_SAVER libs""... $ac_c" 1>&6
-echo "configure:3684: checking for SGI SCREEN_SAVER libs" >&5
+echo "configure:3686: checking for SGI SCREEN_SAVER libs" >&5
      d=$with_sgi/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3702,17 +3704,17 @@ if test "$with_sgi" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XScreenSaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XScreenSaver.h""... $ac_c" 1>&6
-echo "configure:3717: checking for X11/extensions/XScreenSaver.h" >&5
+echo "configure:3719: checking for X11/extensions/XScreenSaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3722 "configure"
+#line 3724 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XScreenSaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3769,7 +3771,7 @@ fi
 
     /*)
      echo $ac_n "checking for MIT-SCREEN-SAVER headers""... $ac_c" 1>&6
-echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5
+echo "configure:3786: checking for MIT-SCREEN-SAVER headers" >&5
      d=$with_mit/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -3779,7 +3781,7 @@ echo "configure:3784: checking for MIT-SCREEN-SAVER headers" >&5
      fi
 
      echo $ac_n "checking for MIT-SCREEN-SAVER libs""... $ac_c" 1>&6
-echo "configure:3794: checking for MIT-SCREEN-SAVER libs" >&5
+echo "configure:3796: checking for MIT-SCREEN-SAVER libs" >&5
      d=$with_mit/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -3812,17 +3814,17 @@ if test "$with_mit" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/scrnsaver.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/scrnsaver.h""... $ac_c" 1>&6
-echo "configure:3827: checking for X11/extensions/scrnsaver.h" >&5
+echo "configure:3829: checking for X11/extensions/scrnsaver.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3832 "configure"
+#line 3834 "configure"
 #include "confdefs.h"
 #include <X11/extensions/scrnsaver.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3867,7 +3869,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXext""... $ac_c" 1>&6
-echo "configure:3882: checking for XScreenSaverRegister in -lXext" >&5
+echo "configure:3884: checking for XScreenSaverRegister in -lXext" >&5
 ac_lib_var=`echo Xext'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3875,7 +3877,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3890 "configure"
+#line 3892 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3886,7 +3888,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:3901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3933,7 +3935,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXExExt""... $ac_c" 1>&6
-echo "configure:3948: checking for XScreenSaverRegister in -lXExExt" >&5
+echo "configure:3950: checking for XScreenSaverRegister in -lXExExt" >&5
 ac_lib_var=`echo XExExt'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3941,7 +3943,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXExExt -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3956 "configure"
+#line 3958 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3952,7 +3954,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:3967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4002,7 +4004,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XScreenSaverRegister in -lXss""... $ac_c" 1>&6
-echo "configure:4017: checking for XScreenSaverRegister in -lXss" >&5
+echo "configure:4019: checking for XScreenSaverRegister in -lXss" >&5
 ac_lib_var=`echo Xss'_'XScreenSaverRegister | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4010,7 +4012,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXss -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4025 "configure"
+#line 4027 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4021,7 +4023,7 @@ int main() {
 XScreenSaverRegister()
 ; return 0; }
 EOF
-if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4087,7 +4089,7 @@ fi
 
     /*)
      echo $ac_n "checking for XIDLE headers""... $ac_c" 1>&6
-echo "configure:4102: checking for XIDLE headers" >&5
+echo "configure:4104: checking for XIDLE headers" >&5
      d=$with_xidle/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4097,7 +4099,7 @@ echo "configure:4102: checking for XIDLE headers" >&5
      fi
 
      echo $ac_n "checking for XIDLE libs""... $ac_c" 1>&6
-echo "configure:4112: checking for XIDLE libs" >&5
+echo "configure:4114: checking for XIDLE libs" >&5
      d=$with_xidle/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4130,17 +4132,17 @@ if test "$with_xidle" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xidle.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xidle.h""... $ac_c" 1>&6
-echo "configure:4145: checking for X11/extensions/xidle.h" >&5
+echo "configure:4147: checking for X11/extensions/xidle.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4150 "configure"
+#line 4152 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xidle.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4196,7 +4198,7 @@ fi
 
     /*)
      echo $ac_n "checking for SGI-VIDEO-CONTROL headers""... $ac_c" 1>&6
-echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5
+echo "configure:4213: checking for SGI-VIDEO-CONTROL headers" >&5
      d=$with_sgivc/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4206,7 +4208,7 @@ echo "configure:4211: checking for SGI-VIDEO-CONTROL headers" >&5
      fi
 
      echo $ac_n "checking for SGI-VIDEO-CONTROL libs""... $ac_c" 1>&6
-echo "configure:4221: checking for SGI-VIDEO-CONTROL libs" >&5
+echo "configure:4223: checking for SGI-VIDEO-CONTROL libs" >&5
      d=$with_sgivc/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4241,17 +4243,17 @@ if test "$with_sgivc" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XSGIvc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XSGIvc.h""... $ac_c" 1>&6
-echo "configure:4256: checking for X11/extensions/XSGIvc.h" >&5
+echo "configure:4258: checking for X11/extensions/XSGIvc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4261 "configure"
+#line 4263 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XSGIvc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4266: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4268: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4295,7 +4297,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XSGIvcQueryGammaMap in -lXsgivc""... $ac_c" 1>&6
-echo "configure:4310: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
+echo "configure:4312: checking for XSGIvcQueryGammaMap in -lXsgivc" >&5
 ac_lib_var=`echo Xsgivc'_'XSGIvcQueryGammaMap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4303,7 +4305,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXsgivc -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4318 "configure"
+#line 4320 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4314,7 +4316,7 @@ int main() {
 XSGIvcQueryGammaMap()
 ; return 0; }
 EOF
-if { (eval echo configure:4329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4379,7 +4381,7 @@ fi
 
     /*)
      echo $ac_n "checking for DPMS headers""... $ac_c" 1>&6
-echo "configure:4394: checking for DPMS headers" >&5
+echo "configure:4396: checking for DPMS headers" >&5
      d=$with_dpms/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4389,7 +4391,7 @@ echo "configure:4394: checking for DPMS headers" >&5
      fi
 
      echo $ac_n "checking for DPMS libs""... $ac_c" 1>&6
-echo "configure:4404: checking for DPMS libs" >&5
+echo "configure:4406: checking for DPMS libs" >&5
      d=$with_dpms/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4424,17 +4426,17 @@ if test "$with_dpms" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/dpms.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/dpms.h""... $ac_c" 1>&6
-echo "configure:4439: checking for X11/extensions/dpms.h" >&5
+echo "configure:4441: checking for X11/extensions/dpms.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4444 "configure"
+#line 4446 "configure"
 #include "confdefs.h"
 #include <X11/extensions/dpms.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4478,7 +4480,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for DPMSInfo in -lXdpms""... $ac_c" 1>&6
-echo "configure:4493: checking for DPMSInfo in -lXdpms" >&5
+echo "configure:4495: checking for DPMSInfo in -lXdpms" >&5
 ac_lib_var=`echo Xdpms'_'DPMSInfo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4486,7 +4488,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXdpms -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4501 "configure"
+#line 4503 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4497,7 +4499,7 @@ int main() {
 DPMSInfo()
 ; return 0; }
 EOF
-if { (eval echo configure:4512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4562,7 +4564,7 @@ fi
 
     /*)
      echo $ac_n "checking for xf86vmode headers""... $ac_c" 1>&6
-echo "configure:4577: checking for xf86vmode headers" >&5
+echo "configure:4579: checking for xf86vmode headers" >&5
      d=$with_xf86vmode/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4572,7 +4574,7 @@ echo "configure:4577: checking for xf86vmode headers" >&5
      fi
 
      echo $ac_n "checking for xf86vmode libs""... $ac_c" 1>&6
-echo "configure:4587: checking for xf86vmode libs" >&5
+echo "configure:4589: checking for xf86vmode libs" >&5
      d=$with_xf86vmode/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4607,17 +4609,17 @@ if test "$with_xf86vmode" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/xf86vmode.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/xf86vmode.h""... $ac_c" 1>&6
-echo "configure:4622: checking for X11/extensions/xf86vmode.h" >&5
+echo "configure:4624: checking for X11/extensions/xf86vmode.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4627 "configure"
+#line 4629 "configure"
 #include "confdefs.h"
 #include <X11/extensions/xf86vmode.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4661,7 +4663,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XF86VidModeGetViewPort in -lXxf86vm""... $ac_c" 1>&6
-echo "configure:4676: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
+echo "configure:4678: checking for XF86VidModeGetViewPort in -lXxf86vm" >&5
 ac_lib_var=`echo Xxf86vm'_'XF86VidModeGetViewPort | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4669,7 +4671,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXxf86vm -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4684 "configure"
+#line 4686 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4680,7 +4682,7 @@ int main() {
 XF86VidModeGetViewPort()
 ; return 0; }
 EOF
-if { (eval echo configure:4695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4734,7 +4736,7 @@ fi
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 4749 "configure"
+#line 4751 "configure"
 #include "confdefs.h"
 #include <X11/XHPlib.h>
 EOF
@@ -4772,7 +4774,7 @@ fi
 if test "$with_proc_interrupts" = yes; then
 
    echo $ac_n "checking whether /proc/interrupts contains keyboard data""... $ac_c" 1>&6
-echo "configure:4787: checking whether /proc/interrupts contains keyboard data" >&5
+echo "configure:4789: checking whether /proc/interrupts contains keyboard data" >&5
 if eval "test \"`echo '$''{'ac_cv_have_proc_interrupts'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4905,7 +4907,7 @@ fi
 
     /*)
      echo $ac_n "checking for PAM headers""... $ac_c" 1>&6
-echo "configure:4920: checking for PAM headers" >&5
+echo "configure:4922: checking for PAM headers" >&5
      d=$with_pam/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -4915,7 +4917,7 @@ echo "configure:4920: checking for PAM headers" >&5
      fi
 
      echo $ac_n "checking for PAM libs""... $ac_c" 1>&6
-echo "configure:4930: checking for PAM libs" >&5
+echo "configure:4932: checking for PAM libs" >&5
      d=$with_pam/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -4941,7 +4943,7 @@ echo "configure:4930: checking for PAM libs" >&5
 
 if test "$enable_locking" = yes -a "$with_pam" = yes; then
   echo $ac_n "checking for PAM""... $ac_c" 1>&6
-echo "configure:4956: checking for PAM" >&5
+echo "configure:4958: checking for PAM" >&5
 if eval "test \"`echo '$''{'ac_cv_pam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4952,14 +4954,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 4967 "configure"
+#line 4969 "configure"
 #include "confdefs.h"
 #include <security/pam_appl.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_pam=yes
 else
@@ -4984,7 +4986,7 @@ EOF
     # libpam typically requires dlopen and dlsym.  On FreeBSD,
     # those are in libc.  On Linux and Solaris, they're in libdl.
     echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:4999: checking for dlopen in -ldl" >&5
+echo "configure:5001: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4992,7 +4994,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5007 "configure"
+#line 5009 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5003,7 +5005,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:5018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5025,12 +5027,12 @@ fi
 
 
     echo $ac_n "checking how to call pam_strerror""... $ac_c" 1>&6
-echo "configure:5040: checking how to call pam_strerror" >&5
+echo "configure:5042: checking how to call pam_strerror" >&5
     if eval "test \"`echo '$''{'ac_cv_pam_strerror_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5045 "configure"
+#line 5047 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                       #include <stdlib.h>
@@ -5040,7 +5042,7 @@ pam_handle_t *pamh = 0;
                       char *s = pam_strerror(pamh, PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=2
 else
@@ -5048,7 +5050,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 5063 "configure"
+#line 5065 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                                       #include <stdlib.h>
@@ -5058,7 +5060,7 @@ char *s =
                                        pam_strerror(PAM_SUCCESS);
 ; return 0; }
 EOF
-if { (eval echo configure:5073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_pam_strerror_args=1
 else
@@ -5114,7 +5116,7 @@ fi
 
     /*)
      echo $ac_n "checking for Kerberos headers""... $ac_c" 1>&6
-echo "configure:5129: checking for Kerberos headers" >&5
+echo "configure:5131: checking for Kerberos headers" >&5
      d=$with_kerberos/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5124,7 +5126,7 @@ echo "configure:5129: checking for Kerberos headers" >&5
      fi
 
      echo $ac_n "checking for Kerberos libs""... $ac_c" 1>&6
-echo "configure:5139: checking for Kerberos libs" >&5
+echo "configure:5141: checking for Kerberos libs" >&5
      d=$with_kerberos/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5150,7 +5152,7 @@ echo "configure:5139: checking for Kerberos libs" >&5
 
 if test "$enable_locking" = yes -a "$with_kerberos" = yes; then
   echo $ac_n "checking for Kerberos""... $ac_c" 1>&6
-echo "configure:5165: checking for Kerberos" >&5
+echo "configure:5167: checking for Kerberos" >&5
 if eval "test \"`echo '$''{'ac_cv_kerberos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5161,14 +5163,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5176 "configure"
+#line 5178 "configure"
 #include "confdefs.h"
 #include <krb.h>
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_kerberos=yes
 else
@@ -5192,12 +5194,12 @@ EOF
     # from Tim Showalter <tjs+@andrew.cmu.edu>
     PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes"
     echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:5207: checking for res_search" >&5
+echo "configure:5209: checking for res_search" >&5
 if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5212 "configure"
+#line 5214 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char res_search(); below.  */
@@ -5220,7 +5222,7 @@ res_search();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_res_search=yes"
 else
@@ -5238,7 +5240,7 @@ if eval "test \"`echo '$ac_cv_func_'res_search`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6
-echo "configure:5253: checking for res_search in -lresolv" >&5
+echo "configure:5255: checking for res_search in -lresolv" >&5
 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5246,7 +5248,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5261 "configure"
+#line 5263 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5257,7 +5259,7 @@ int main() {
 res_search()
 ; return 0; }
 EOF
-if { (eval echo configure:5272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5313,7 +5315,7 @@ fi
 
     /*)
      echo $ac_n "checking for shadow password headers""... $ac_c" 1>&6
-echo "configure:5328: checking for shadow password headers" >&5
+echo "configure:5330: checking for shadow password headers" >&5
      d=$with_shadow/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5323,7 +5325,7 @@ echo "configure:5328: checking for shadow password headers" >&5
      fi
 
      echo $ac_n "checking for shadow password libs""... $ac_c" 1>&6
-echo "configure:5338: checking for shadow password libs" >&5
+echo "configure:5340: checking for shadow password libs" >&5
      d=$with_shadow/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -5361,7 +5363,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for Sun-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5376: checking for Sun-style shadow passwords" >&5
+echo "configure:5378: checking for Sun-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_sun_adjunct'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5372,7 +5374,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5387 "configure"
+#line 5389 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5385,7 +5387,7 @@ struct passwd_adjunct *p = getpwanam("nobody");
                        const char *pw = p->pwa_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:5400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sun_adjunct=yes
 else
@@ -5415,7 +5417,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for DEC-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5430: checking for DEC-style shadow passwords" >&5
+echo "configure:5432: checking for DEC-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_enhanced_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5426,7 +5428,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5441 "configure"
+#line 5443 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5443,7 +5445,7 @@ struct pr_passwd *p;
                        pw = p->ufld.fd_encrypt;
 ; return 0; }
 EOF
-if { (eval echo configure:5458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_enhanced_passwd=yes
 else
@@ -5467,7 +5469,7 @@ echo "$ac_t""$ac_cv_enhanced_passwd" 1>&6
     # But on DEC, it's in -lsecurity.
     #
     echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
-echo "configure:5482: checking for getprpwnam in -lprot" >&5
+echo "configure:5484: checking for getprpwnam in -lprot" >&5
 ac_lib_var=`echo prot'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5475,7 +5477,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lprot -lx $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5492 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5486,7 +5488,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5505,7 +5507,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:5520: checking for getprpwnam in -lsecurity" >&5
+echo "configure:5522: checking for getprpwnam in -lsecurity" >&5
 ac_lib_var=`echo security'_'getprpwnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5513,7 +5515,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5528 "configure"
+#line 5530 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5524,7 +5526,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5557,7 +5559,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for HP-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5572: checking for HP-style shadow passwords" >&5
+echo "configure:5574: checking for HP-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_hpux_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5568,7 +5570,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5583 "configure"
+#line 5585 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5581,7 +5583,7 @@ struct s_passwd *p = getspwnam("nobody");
                        const char *pw = p->pw_passwd;
 ; return 0; }
 EOF
-if { (eval echo configure:5596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_hpux_passwd=yes
 else
@@ -5602,7 +5604,7 @@ echo "$ac_t""$ac_cv_hpux_passwd" 1>&6
 
     # on HPUX, bigcrypt is in -lsec
     echo $ac_n "checking for bigcrypt in -lsec""... $ac_c" 1>&6
-echo "configure:5617: checking for bigcrypt in -lsec" >&5
+echo "configure:5619: checking for bigcrypt in -lsec" >&5
 ac_lib_var=`echo sec'_'bigcrypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5610,7 +5612,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5625 "configure"
+#line 5627 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5621,7 +5623,7 @@ int main() {
 bigcrypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5659,7 +5661,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for FreeBSD-style shadow passwords""... $ac_c" 1>&6
-echo "configure:5674: checking for FreeBSD-style shadow passwords" >&5
+echo "configure:5676: checking for FreeBSD-style shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_master_passwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5685,7 +5687,7 @@ fi
 
 if test "$with_shadow" = yes ; then
   echo $ac_n "checking for generic shadow passwords""... $ac_c" 1>&6
-echo "configure:5700: checking for generic shadow passwords" >&5
+echo "configure:5702: checking for generic shadow passwords" >&5
 if eval "test \"`echo '$''{'ac_cv_shadow'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5696,7 +5698,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 5711 "configure"
+#line 5713 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
                                     #include <unistd.h>
@@ -5708,7 +5710,7 @@ struct spwd *p = getspnam("nobody");
                        const char *pw = p->sp_pwdp;
 ; return 0; }
 EOF
-if { (eval echo configure:5723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_shadow=yes
 else
@@ -5729,7 +5731,7 @@ echo "$ac_t""$ac_cv_shadow" 1>&6
     # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc.
     have_getspnam=no
     echo $ac_n "checking for getspnam in -lc""... $ac_c" 1>&6
-echo "configure:5744: checking for getspnam in -lc" >&5
+echo "configure:5746: checking for getspnam in -lc" >&5
 ac_lib_var=`echo c'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5737,7 +5739,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5752 "configure"
+#line 5754 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5748,7 +5750,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5770,7 +5772,7 @@ fi
 
     if test "$have_getspnam" = no ; then
       echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6
-echo "configure:5785: checking for getspnam in -lgen" >&5
+echo "configure:5787: checking for getspnam in -lgen" >&5
 ac_lib_var=`echo gen'_'getspnam | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5778,7 +5780,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
+#line 5795 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5789,7 +5791,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:5804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5825,7 +5827,7 @@ if test "$enable_locking" = yes ; then
   # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc.
   have_crypt=no
   echo $ac_n "checking for crypt in -lc""... $ac_c" 1>&6
-echo "configure:5840: checking for crypt in -lc" >&5
+echo "configure:5842: checking for crypt in -lc" >&5
 ac_lib_var=`echo c'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5833,7 +5835,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5850 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5844,7 +5846,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5866,7 +5868,7 @@ fi
 
   if test "$have_crypt" = no ; then
     echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:5881: checking for crypt in -lcrypt" >&5
+echo "configure:5883: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5874,7 +5876,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5889 "configure"
+#line 5891 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5885,7 +5887,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:5900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5969,7 +5971,7 @@ fi
 
     /*)
      echo $ac_n "checking for Motif headers""... $ac_c" 1>&6
-echo "configure:5984: checking for Motif headers" >&5
+echo "configure:5986: checking for Motif headers" >&5
      d=$with_motif/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -5979,7 +5981,7 @@ echo "configure:5984: checking for Motif headers" >&5
      fi
 
      echo $ac_n "checking for Motif libs""... $ac_c" 1>&6
-echo "configure:5994: checking for Motif libs" >&5
+echo "configure:5996: checking for Motif libs" >&5
      d=$with_motif/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6018,17 +6020,17 @@ if test "$with_motif" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6033: checking for Xm/Xm.h" >&5
+echo "configure:6035: checking for Xm/Xm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6038 "configure"
+#line 6040 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6093,7 +6095,7 @@ esac
 
     /*)
      echo $ac_n "checking for Gtk headers""... $ac_c" 1>&6
-echo "configure:6108: checking for Gtk headers" >&5
+echo "configure:6110: checking for Gtk headers" >&5
      d=$with_gtk/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6103,7 +6105,7 @@ echo "configure:6108: checking for Gtk headers" >&5
      fi
 
      echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:6118: checking for Gtk libs" >&5
+echo "configure:6120: checking for Gtk libs" >&5
      d=$with_gtk/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6152,7 +6154,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6167: checking for $ac_word" >&5
+echo "configure:6169: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_glib_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6192,7 +6194,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6207: checking for $ac_word" >&5
+echo "configure:6209: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_gtk_config'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6233,7 +6235,7 @@ done
   fi
   if test "$have_gtk" = yes; then
     echo $ac_n "checking Gtk version number""... $ac_c" 1>&6
-echo "configure:6248: checking Gtk version number" >&5
+echo "configure:6250: checking Gtk version number" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6260,7 +6262,7 @@ echo "$ac_t""$ac_cv_gtk_version_string" 1>&6
   fi
   if test "$have_gtk" = yes; then
     echo $ac_n "checking for Gtk includes""... $ac_c" 1>&6
-echo "configure:6275: checking for Gtk includes" >&5
+echo "configure:6277: checking for Gtk includes" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_cflags'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6269,7 +6271,7 @@ fi
 
 echo "$ac_t""$ac_cv_gtk_config_cflags" 1>&6
     echo $ac_n "checking for Gtk libs""... $ac_c" 1>&6
-echo "configure:6284: checking for Gtk libs" >&5
+echo "configure:6286: checking for Gtk libs" >&5
 if eval "test \"`echo '$''{'ac_cv_gtk_config_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6312,7 +6314,7 @@ fi
 
     /*)
      echo $ac_n "checking for Athena headers""... $ac_c" 1>&6
-echo "configure:6327: checking for Athena headers" >&5
+echo "configure:6329: checking for Athena headers" >&5
      d=$with_athena/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6322,7 +6324,7 @@ echo "configure:6327: checking for Athena headers" >&5
      fi
 
      echo $ac_n "checking for Athena libs""... $ac_c" 1>&6
-echo "configure:6337: checking for Athena libs" >&5
+echo "configure:6339: checking for Athena libs" >&5
      d=$with_athena/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6363,17 +6365,17 @@ if test "$with_athena" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/Xaw/Dialog.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/Dialog.h""... $ac_c" 1>&6
-echo "configure:6378: checking for X11/Xaw/Dialog.h" >&5
+echo "configure:6380: checking for X11/Xaw/Dialog.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6383 "configure"
+#line 6385 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/Dialog.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6414,7 +6416,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for Xaw3dComputeTopShadowRGB in -lXaw3d""... $ac_c" 1>&6
-echo "configure:6429: checking for Xaw3dComputeTopShadowRGB in -lXaw3d" >&5
+echo "configure:6431: checking for Xaw3dComputeTopShadowRGB in -lXaw3d" >&5
 ac_lib_var=`echo Xaw3d'_'Xaw3dComputeTopShadowRGB | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6422,7 +6424,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXaw3d -lXt -lXmu -lXext -lX11 $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6437 "configure"
+#line 6439 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6433,7 +6435,7 @@ int main() {
 Xaw3dComputeTopShadowRGB()
 ; return 0; }
 EOF
-if { (eval echo configure:6448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6478,7 +6480,7 @@ fi
 # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.)
 if test "$have_athena" = yes ; then
   echo $ac_n "checking for XawViewportSetCoordinates in Viewport.h""... $ac_c" 1>&6
-echo "configure:6493: checking for XawViewportSetCoordinates in Viewport.h" >&5
+echo "configure:6495: checking for XawViewportSetCoordinates in Viewport.h" >&5
 if eval "test \"`echo '$''{'ac_cv_have_XawViewportSetCoordinates'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6490,7 +6492,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6505 "configure"
+#line 6507 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/Viewport.h>
 EOF
@@ -6523,7 +6525,7 @@ fi
 have_lesstif=no
 if test "$have_motif" = yes ; then
   echo $ac_n "checking whether Motif is really LessTif""... $ac_c" 1>&6
-echo "configure:6538: checking whether Motif is really LessTif" >&5
+echo "configure:6540: checking whether Motif is really LessTif" >&5
 if eval "test \"`echo '$''{'ac_cv_have_lesstif'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6534,14 +6536,14 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 6549 "configure"
+#line 6551 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 int main() {
 long vers = LesstifVersion;
 ; return 0; }
 EOF
-if { (eval echo configure:6556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_have_lesstif=yes
 else
@@ -6566,7 +6568,7 @@ if test "$have_lesstif" = yes ; then
   ltv=unknown
   echo unknown > conftest-lt
   echo $ac_n "checking LessTif version number""... $ac_c" 1>&6
-echo "configure:6581: checking LessTif version number" >&5
+echo "configure:6583: checking LessTif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_lesstif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6581,7 +6583,7 @@ else
                      ac_cv_lesstif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 6596 "configure"
+#line 6598 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -6594,7 +6596,7 @@ else
                        exit(0);
                      }
 EOF
-if { (eval echo configure:6609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ltv=`cat conftest-lt`
                      ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'`
@@ -6624,7 +6626,7 @@ if test "$have_motif" = yes ; then
   mtv=unknown
   echo unknown > conftest-mt
   echo $ac_n "checking Motif version number""... $ac_c" 1>&6
-echo "configure:6639: checking Motif version number" >&5
+echo "configure:6641: checking Motif version number" >&5
 if eval "test \"`echo '$''{'ac_cv_motif_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6639,7 +6641,7 @@ else
                      ac_cv_motif_version_string=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 6654 "configure"
+#line 6656 "configure"
 #include "confdefs.h"
 #include <stdio.h>
                      #include <Xm/Xm.h>
@@ -6652,7 +6654,7 @@ else
                        exit(0);
                      }
 EOF
-if { (eval echo configure:6667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   mtv=`cat conftest-mt`
                      ac_cv_motif_version=`echo $mtv | sed 's/ .*//'`
@@ -6696,7 +6698,7 @@ fi
 motif_requires_xpm=no
 if test "$have_motif" = yes ; then
    echo $ac_n "checking whether Motif requires XPM""... $ac_c" 1>&6
-echo "configure:6711: checking whether Motif requires XPM" >&5
+echo "configure:6713: checking whether Motif requires XPM" >&5
    if test "$motif_version" = "unknown" || test "$motif_version" -ge 2000
    then
      motif_requires_xpm=yes
@@ -6738,7 +6740,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XpQueryExtension in -lXp""... $ac_c" 1>&6
-echo "configure:6753: checking for XpQueryExtension in -lXp" >&5
+echo "configure:6755: checking for XpQueryExtension in -lXp" >&5
 ac_lib_var=`echo Xp'_'XpQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6746,7 +6748,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXp -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6761 "configure"
+#line 6763 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6757,7 +6759,7 @@ int main() {
 XpQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:6772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6811,7 +6813,7 @@ if test "$have_motif" = yes ; then
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for _Xsetlocale in -lXintl""... $ac_c" 1>&6
-echo "configure:6826: checking for _Xsetlocale in -lXintl" >&5
+echo "configure:6828: checking for _Xsetlocale in -lXintl" >&5
 ac_lib_var=`echo Xintl'_'_Xsetlocale | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6819,7 +6821,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXintl -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6834 "configure"
+#line 6836 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6830,7 +6832,7 @@ int main() {
 _Xsetlocale()
 ; return 0; }
 EOF
-if { (eval echo configure:6845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6863,7 +6865,7 @@ fi
 
 ###############################################################################
 #
-#       Check for -lGL or -lMesa.
+#       Check for -lGL or -lMesaGL.
 #
 ###############################################################################
 
@@ -6886,7 +6888,7 @@ fi
 
     /*)
      echo $ac_n "checking for GL headers""... $ac_c" 1>&6
-echo "configure:6901: checking for GL headers" >&5
+echo "configure:6903: checking for GL headers" >&5
      d=$with_gl/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -6896,7 +6898,7 @@ echo "configure:6901: checking for GL headers" >&5
      fi
 
      echo $ac_n "checking for GL libs""... $ac_c" 1>&6
-echo "configure:6911: checking for GL libs" >&5
+echo "configure:6913: checking for GL libs" >&5
      d=$with_gl/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -6932,17 +6934,17 @@ if test "$with_gl" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6
-echo "configure:6947: checking for GL/gl.h" >&5
+echo "configure:6949: checking for GL/gl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6952 "configure"
+#line 6954 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6959: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6973,17 +6975,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "GL/glx.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/glx.h""... $ac_c" 1>&6
-echo "configure:6988: checking for GL/glx.h" >&5
+echo "configure:6990: checking for GL/glx.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6993 "configure"
+#line 6995 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6998: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7015,7 +7017,7 @@ fi
     # to link against.
     #
     echo $ac_n "checking whether GL is really MesaGL""... $ac_c" 1>&6
-echo "configure:7030: checking whether GL is really MesaGL" >&5
+echo "configure:7032: checking whether GL is really MesaGL" >&5
 if eval "test \"`echo '$''{'ac_cv_have_mesa_gl'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7027,7 +7029,7 @@ else
   fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   cat > conftest.$ac_ext <<EOF
-#line 7042 "configure"
+#line 7044 "configure"
 #include "confdefs.h"
 #include <GL/glx.h>
 EOF
@@ -7072,7 +7074,7 @@ echo "$ac_t""$ac_cv_have_mesa_gl" 1>&6
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lMesaGL""... $ac_c" 1>&6
-echo "configure:7087: checking for glXCreateContext in -lMesaGL" >&5
+echo "configure:7089: checking for glXCreateContext in -lMesaGL" >&5
 ac_lib_var=`echo MesaGL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7080,7 +7082,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lMesaGL -lMesaGLU -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7095 "configure"
+#line 7097 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7091,7 +7093,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:7106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7137,7 +7139,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for glXCreateContext in -lGL""... $ac_c" 1>&6
-echo "configure:7152: checking for glXCreateContext in -lGL" >&5
+echo "configure:7154: checking for glXCreateContext in -lGL" >&5
 ac_lib_var=`echo GL'_'glXCreateContext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7145,7 +7147,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lGL -lGLU -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7160 "configure"
+#line 7162 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7156,7 +7158,7 @@ int main() {
 glXCreateContext()
 ; return 0; }
 EOF
-if { (eval echo configure:7171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7213,12 +7215,12 @@ EOF
     if test "$ac_have_mesa_gl" = yes; then
 
       echo $ac_n "checking MesaGL version number""... $ac_c" 1>&6
-echo "configure:7228: checking MesaGL version number" >&5
+echo "configure:7230: checking MesaGL version number" >&5
 if eval "test \"`echo '$''{'ac_cv_mesagl_version_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7233 "configure"
+#line 7235 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION
@@ -7271,7 +7273,7 @@ echo "$ac_t""$ac_cv_mesagl_version_string" 1>&6
     if test "$ac_have_mesa_gl" = yes; then
 
       echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
-echo "configure:7286: checking for pthread_create in -lpthread" >&5
+echo "configure:7288: checking for pthread_create in -lpthread" >&5
 ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7279,7 +7281,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpthread  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7294 "configure"
+#line 7296 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7290,7 +7292,7 @@ int main() {
 pthread_create()
 ; return 0; }
 EOF
-if { (eval echo configure:7305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7329,7 +7331,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for gl_get_thread_context in -l$gl_lib_1""... $ac_c" 1>&6
-echo "configure:7344: checking for gl_get_thread_context in -l$gl_lib_1" >&5
+echo "configure:7346: checking for gl_get_thread_context in -l$gl_lib_1" >&5
 ac_lib_var=`echo $gl_lib_1'_'gl_get_thread_context | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7337,7 +7339,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$gl_lib_1 $GL_LIBS -lpthread -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7352 "configure"
+#line 7354 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7348,7 +7350,7 @@ int main() {
 gl_get_thread_context()
 ; return 0; }
 EOF
-if { (eval echo configure:7363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7400,7 +7402,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for glBindTexture in -l$gl_lib_1""... $ac_c" 1>&6
-echo "configure:7415: checking for glBindTexture in -l$gl_lib_1" >&5
+echo "configure:7417: checking for glBindTexture in -l$gl_lib_1" >&5
 ac_lib_var=`echo $gl_lib_1'_'glBindTexture | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7408,7 +7410,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$gl_lib_1 $GL_LIBS -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7423 "configure"
+#line 7425 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7419,7 +7421,7 @@ int main() {
 glBindTexture()
 ; return 0; }
 EOF
-if { (eval echo configure:7434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7453,7 +7455,7 @@ fi
     # See comments in utils/visual-gl.c for why this is sometimes necessary.
     #
     echo $ac_n "checking whether drastic GL measures must be taken""... $ac_c" 1>&6
-echo "configure:7468: checking whether drastic GL measures must be taken" >&5
+echo "configure:7470: checking whether drastic GL measures must be taken" >&5
     case "$host" in
       *-sgi*)
         echo "$ac_t""yes -- hello, SGI." 1>&6
@@ -7481,6 +7483,298 @@ elif test "$with_gl" != no; then
 fi
 
 
+###############################################################################
+#
+#       Check for -lgle.
+#
+###############################################################################
+
+have_gle=no
+with_gle_req=unspecified
+# Check whether --with-gle or --without-gle was given.
+if test "${with_gle+set}" = set; then
+  withval="$with_gle"
+  with_gle="$withval"; with_gle_req="$withval"
+else
+  with_gle=yes
+fi
+
+
+
+   case "$with_gle" in
+    yes) ;;
+    no)  ;;
+
+    /*)
+     echo $ac_n "checking for GLE headers""... $ac_c" 1>&6
+echo "configure:7522: checking for GLE headers" >&5
+     d=$with_gle/include
+     if test -d $d; then
+       X_CFLAGS="-I$d $X_CFLAGS"
+       echo "$ac_t""$d" 1>&6
+     else
+       echo "$ac_t""not found ($d: no such directory)" 1>&6
+     fi
+
+     echo $ac_n "checking for GLE libs""... $ac_c" 1>&6
+echo "configure:7532: checking for GLE libs" >&5
+     d=$with_gle/lib
+     if test -d $d; then
+       X_LIBS="-L$d $X_LIBS"
+       echo "$ac_t""$d" 1>&6
+     else
+       echo "$ac_t""not found ($d: no such directory)" 1>&6
+     fi
+
+     # replace the directory string with "yes".
+     with_gle_req="yes"
+     with_gle=$with_gle_req
+     ;;
+
+    *)
+     echo ""
+     echo "error: argument to --with-gle must be \"yes\", \"no\", or a directory."
+     echo "       If it is a directory, then \`DIR/include' will be added to"
+     echo "       the -I list, and \`DIR/lib' will be added to the -L list."
+     exit 1
+     ;;
+   esac
+  
+
+GLE_LIBS=""
+
+if test "$with_gle" = yes; then
+
+  
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  ac_safe=`echo "GL/gutil.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for GL/gutil.h""... $ac_c" 1>&6
+echo "configure:7568: checking for GL/gutil.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7573 "configure"
+#include "confdefs.h"
+#include <GL/gutil.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:7578: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gle=yes
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  if test "$have_gle" = yes ; then
+    
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  ac_safe=`echo "GL/tube.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for GL/tube.h""... $ac_c" 1>&6
+echo "configure:7609: checking for GL/tube.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7614 "configure"
+#include "confdefs.h"
+#include <GL/tube.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:7619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gle=yes
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+
+#          /usr/local/lib/GL/libgle.a
+#          /usr/local/lib/GL/libmatrix.a
+
+  if test "$have_gle" = yes ; then
+    have_gle=no
+    
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
+
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS"
+
+  echo $ac_n "checking for gleCreateGC in -lgle""... $ac_c" 1>&6
+echo "configure:7666: checking for gleCreateGC in -lgle" >&5
+ac_lib_var=`echo gle'_'gleCreateGC | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgle $GL_LIBS -lX11 -lXext -lm $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 7674 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char gleCreateGC();
+
+int main() {
+gleCreateGC()
+; return 0; }
+EOF
+if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gle=yes; GLE_LIBS="-lgle"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+  
+  fi
+  if test "$have_gle" = yes ; then
+    have_gle=no
+    
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
+
+  if test \! -z "$includedir" ; then 
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS"
+
+  echo $ac_n "checking for uview_direction_d in -lmatrix""... $ac_c" 1>&6
+echo "configure:7730: checking for uview_direction_d in -lmatrix" >&5
+ac_lib_var=`echo matrix'_'uview_direction_d | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lmatrix $GL_LIBS -lX11 -lXext -lm $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 7738 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char uview_direction_d();
+
+int main() {
+uview_direction_d()
+; return 0; }
+EOF
+if { (eval echo configure:7749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+  
+  fi
+
+  if test "$have_gle" = yes ; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_GLE 1
+EOF
+
+  fi
+
+elif test "$with_gle" != no; then
+  echo "error: must be yes or no: --with-gle=$with_gle"
+  exit 1
+
+fi
+
+
+
 ###############################################################################
 #
 #       Check for -lXpm.
@@ -7505,7 +7799,7 @@ fi
 
     /*)
      echo $ac_n "checking for XPM headers""... $ac_c" 1>&6
-echo "configure:7520: checking for XPM headers" >&5
+echo "configure:7814: checking for XPM headers" >&5
      d=$with_xpm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7515,7 +7809,7 @@ echo "configure:7520: checking for XPM headers" >&5
      fi
 
      echo $ac_n "checking for XPM libs""... $ac_c" 1>&6
-echo "configure:7530: checking for XPM libs" >&5
+echo "configure:7824: checking for XPM libs" >&5
      d=$with_xpm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7548,17 +7842,17 @@ if test "$with_xpm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/xpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/xpm.h""... $ac_c" 1>&6
-echo "configure:7563: checking for X11/xpm.h" >&5
+echo "configure:7857: checking for X11/xpm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7568 "configure"
+#line 7862 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7624,7 +7918,7 @@ fi
 
     /*)
      echo $ac_n "checking for XSHM headers""... $ac_c" 1>&6
-echo "configure:7639: checking for XSHM headers" >&5
+echo "configure:7933: checking for XSHM headers" >&5
      d=$with_xshm/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7634,7 +7928,7 @@ echo "configure:7639: checking for XSHM headers" >&5
      fi
 
      echo $ac_n "checking for XSHM libs""... $ac_c" 1>&6
-echo "configure:7649: checking for XSHM libs" >&5
+echo "configure:7943: checking for XSHM libs" >&5
      d=$with_xshm/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7669,17 +7963,17 @@ if test "$with_xshm" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/XShm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/XShm.h""... $ac_c" 1>&6
-echo "configure:7684: checking for X11/extensions/XShm.h" >&5
+echo "configure:7978: checking for X11/extensions/XShm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7689 "configure"
+#line 7983 "configure"
 #include "confdefs.h"
 #include <X11/extensions/XShm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7713,17 +8007,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:7728: checking for sys/ipc.h" >&5
+echo "configure:8022: checking for sys/ipc.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7733 "configure"
+#line 8027 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7738: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7758,17 +8052,17 @@ fi
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6
-echo "configure:7773: checking for sys/shm.h" >&5
+echo "configure:8067: checking for sys/shm.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7778 "configure"
+#line 8072 "configure"
 #include "confdefs.h"
 #include <sys/shm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7819,7 +8113,7 @@ fi
   LDFLAGS="$LDFLAGS $X_LIBS"
 
   echo $ac_n "checking for XShmQueryExtension in -lXextSam""... $ac_c" 1>&6
-echo "configure:7834: checking for XShmQueryExtension in -lXextSam" >&5
+echo "configure:8128: checking for XShmQueryExtension in -lXextSam" >&5
 ac_lib_var=`echo XextSam'_'XShmQueryExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7827,7 +8121,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXextSam -lX11 -lXext -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7842 "configure"
+#line 8136 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7838,7 +8132,7 @@ int main() {
 XShmQueryExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:7853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7904,7 +8198,7 @@ fi
 
     /*)
      echo $ac_n "checking for DOUBLE-BUFFER headers""... $ac_c" 1>&6
-echo "configure:7919: checking for DOUBLE-BUFFER headers" >&5
+echo "configure:8213: checking for DOUBLE-BUFFER headers" >&5
      d=$with_xdbe/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -7914,7 +8208,7 @@ echo "configure:7919: checking for DOUBLE-BUFFER headers" >&5
      fi
 
      echo $ac_n "checking for DOUBLE-BUFFER libs""... $ac_c" 1>&6
-echo "configure:7929: checking for DOUBLE-BUFFER libs" >&5
+echo "configure:8223: checking for DOUBLE-BUFFER libs" >&5
      d=$with_xdbe/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -7948,17 +8242,17 @@ if test "$with_xdbe" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/Xdbe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/Xdbe.h""... $ac_c" 1>&6
-echo "configure:7963: checking for X11/extensions/Xdbe.h" >&5
+echo "configure:8257: checking for X11/extensions/Xdbe.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7968 "configure"
+#line 8262 "configure"
 #include "confdefs.h"
 #include <X11/extensions/Xdbe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8021,7 +8315,7 @@ fi
 
     /*)
      echo $ac_n "checking for XReadDisplay headers""... $ac_c" 1>&6
-echo "configure:8036: checking for XReadDisplay headers" >&5
+echo "configure:8330: checking for XReadDisplay headers" >&5
      d=$with_readdisplay/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8031,7 +8325,7 @@ echo "configure:8036: checking for XReadDisplay headers" >&5
      fi
 
      echo $ac_n "checking for XReadDisplay libs""... $ac_c" 1>&6
-echo "configure:8046: checking for XReadDisplay libs" >&5
+echo "configure:8340: checking for XReadDisplay libs" >&5
      d=$with_readdisplay/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8064,17 +8358,17 @@ if test "$with_readdisplay" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "X11/extensions/readdisplay.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/readdisplay.h""... $ac_c" 1>&6
-echo "configure:8079: checking for X11/extensions/readdisplay.h" >&5
+echo "configure:8373: checking for X11/extensions/readdisplay.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8084 "configure"
+#line 8378 "configure"
 #include "confdefs.h"
 #include <X11/extensions/readdisplay.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8129,7 +8423,7 @@ fi
 
     /*)
      echo $ac_n "checking for Iris Video headers""... $ac_c" 1>&6
-echo "configure:8144: checking for Iris Video headers" >&5
+echo "configure:8438: checking for Iris Video headers" >&5
      d=$with_sgivideo/include
      if test -d $d; then
        X_CFLAGS="-I$d $X_CFLAGS"
@@ -8139,7 +8433,7 @@ echo "configure:8144: checking for Iris Video headers" >&5
      fi
 
      echo $ac_n "checking for Iris Video libs""... $ac_c" 1>&6
-echo "configure:8154: checking for Iris Video libs" >&5
+echo "configure:8448: checking for Iris Video libs" >&5
      d=$with_sgivideo/lib
      if test -d $d; then
        X_LIBS="-L$d $X_LIBS"
@@ -8172,17 +8466,17 @@ if test "$with_sgivideo" = yes; then
   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
   ac_safe=`echo "dmedia/vl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dmedia/vl.h""... $ac_c" 1>&6
-echo "configure:8187: checking for dmedia/vl.h" >&5
+echo "configure:8481: checking for dmedia/vl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 8192 "configure"
+#line 8486 "configure"
 #include "confdefs.h"
 #include <dmedia/vl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8491: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8207,7 +8501,7 @@ fi
   if test "$have_sgivideo" = yes; then
     have_sgivideo=no
     echo $ac_n "checking for vlOpenVideo in -lvl""... $ac_c" 1>&6
-echo "configure:8222: checking for vlOpenVideo in -lvl" >&5
+echo "configure:8516: checking for vlOpenVideo in -lvl" >&5
 ac_lib_var=`echo vl'_'vlOpenVideo | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -8215,7 +8509,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lvl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 8230 "configure"
+#line 8524 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8226,7 +8520,7 @@ int main() {
 vlOpenVideo()
 ; return 0; }
 EOF
-if { (eval echo configure:8241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8297,7 +8591,7 @@ if test -n "$with_zippy_req" ; then
   case "$with_zippy_req" in
     /*)
       echo $ac_n "checking for $with_zippy_req""... $ac_c" 1>&6
-echo "configure:8312: checking for $with_zippy_req" >&5
+echo "configure:8606: checking for $with_zippy_req" >&5
       if test -x "$with_zippy_req" ; then
         echo "$ac_t""yes" 1>&6
       else
@@ -8311,7 +8605,7 @@ echo "configure:8312: checking for $with_zippy_req" >&5
       # Extract the first word of "$with_zippy_req", so it can be a program name with args.
 set dummy $with_zippy_req; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8326: checking for $ac_word" >&5
+echo "configure:8620: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_zip2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8361,7 +8655,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8376: checking for $ac_word" >&5
+echo "configure:8670: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_emacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8395,7 +8689,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8410: checking for $ac_word" >&5
+echo "configure:8704: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_xemacs_exe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8430,7 +8724,7 @@ done
 
   if test -n "$emacs_exe" ; then
     echo $ac_n "checking for emacs yow""... $ac_c" 1>&6
-echo "configure:8445: checking for emacs yow" >&5
+echo "configure:8739: checking for emacs yow" >&5
     #
     # get emacs to tell us where the libexec directory is.
     #
@@ -8452,7 +8746,7 @@ echo "configure:8445: checking for emacs yow" >&5
 
   if test -z "$ac_cv_zippy_program" ; then
     echo $ac_n "checking for xemacs yow""... $ac_c" 1>&6
-echo "configure:8467: checking for xemacs yow" >&5
+echo "configure:8761: checking for xemacs yow" >&5
     if test -n "$xemacs_exe" ; then
       #
       # get xemacs to tell us where the libexec directory is.
@@ -8511,7 +8805,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8526: checking for $ac_word" >&5
+echo "configure:8820: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8547,7 +8841,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8562: checking for $ac_word" >&5
+echo "configure:8856: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_fortune'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8654,8 +8948,8 @@ if test "$enable_locking" = yes; then
   LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
 else
-  LOCK_SRCS=''
-  LOCK_OBJS=''
+  LOCK_SRCS='$(NOLOCK_SRCS_1)'
+  LOCK_OBJS='$(NOLOCK_SRCS_1)'
 fi
 
 if test "$need_setuid" = yes; then
@@ -8675,6 +8969,14 @@ else
   GL_KLUDGE="  -${tab}  "
 fi
 
+if test "$have_gle" = yes; then
+  GLE_EXES='$(GLE_EXES)'
+  GLE_MEN='$(GLE_MEN)'
+  GLE_KLUDGE="${tab}  "
+else
+  GLE_KLUDGE="  -${tab}  "
+fi
+
 
 ###############################################################################
 #
@@ -8711,6 +9013,10 @@ fi
 
 
 
+
+
+
+
 
 
 
@@ -8895,6 +9201,7 @@ s%@ATHENA3D_LIBS@%$ATHENA3D_LIBS%g
 s%@HACK_LIBS@%$HACK_LIBS%g
 s%@XPM_LIBS@%$XPM_LIBS%g
 s%@GL_LIBS@%$GL_LIBS%g
+s%@GLE_LIBS@%$GLE_LIBS%g
 s%@PASSWD_LIBS@%$PASSWD_LIBS%g
 s%@INSTALL_SETUID@%$INSTALL_SETUID%g
 s%@INSTALL_DIRS@%$INSTALL_DIRS%g
@@ -8914,6 +9221,9 @@ s%@LOCK_OBJS@%$LOCK_OBJS%g
 s%@GL_EXES@%$GL_EXES%g
 s%@GL_MEN@%$GL_MEN%g
 s%@GL_KLUDGE@%$GL_KLUDGE%g
+s%@GLE_EXES@%$GLE_EXES%g
+s%@GLE_MEN@%$GLE_MEN%g
+s%@GLE_KLUDGE@%$GLE_KLUDGE%g
 s%@HACKDIR@%$HACKDIR%g
 s%@APPDEFAULTS@%$APPDEFAULTS%g
 s%@DEPEND@%$DEPEND%g
@@ -9368,6 +9678,26 @@ if test "$have_gl" = no ; then
 
 fi
 
+
+if test "$have_gl" = yes -a "$have_gle" = no ; then
+  if test "$with_gle_req" = yes ; then
+    warnL 'Use of GLE was requested, but it was not found.'
+  elif test "$with_gle_req" = no ; then
+    noteL 'The GLE (GL Extrusion) library is not being used.'
+  else
+    noteL 'The GLE (GL Extrusion) library was not found.'
+  fi
+
+  echo ''
+  warn2 'Some of the OpenGL (3D) demos will not be built or installed.'
+  warn2 'You might want to consider installing GLE and re-running'
+  warn2 'configure.  (Remember to delete the config.cache file first.)'
+  warn2 'You can find the GLE library at <http://www.linas.org/gle/>.'
+  warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+
+fi
+
+
 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
   warn 'Use of XReadDisplay was requested, but it was not found.'
 fi
index 6c9c4d0d3fe8589fd50084698a8a687c8a8ee84f..ed3a8193ef71517050cad4eaa218a3f7ed1c5705 100644 (file)
@@ -180,8 +180,7 @@ perl_version_cmd='print $]'
 changequote([,])
 
 AC_DEFUN(AC_PROG_PERL,
- [PERL=''
-  AC_PATH_PROGS(PERL, [perl5 perl],,)
+ [AC_PATH_PROGS(PERL, [perl5 perl],,)
   if test -z "$PERL" ; then
     PERL_VERSION=0
   else
@@ -1781,7 +1780,7 @@ fi
 
 ###############################################################################
 #
-#       Check for -lGL or -lMesa.
+#       Check for -lGL or -lMesaGL.
 #
 ###############################################################################
 
@@ -1960,6 +1959,58 @@ elif test "$with_gl" != no; then
 fi
 
 
+###############################################################################
+#
+#       Check for -lgle.
+#
+###############################################################################
+
+have_gle=no
+with_gle_req=unspecified
+AC_ARG_WITH(gle,
+[  --with-gle              Build those demos which depend on GLE
+                          (the OpenGL "extrusion" library.)],
+  [with_gle="$withval"; with_gle_req="$withval"],[with_gle=yes])
+
+HANDLE_X_PATH_ARG(with_gle, --with-gle, GLE)
+
+GLE_LIBS=""
+
+if test "$with_gle" = yes; then
+
+  AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no)
+  if test "$have_gle" = yes ; then
+    AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no)
+  fi
+
+#          /usr/local/lib/GL/libgle.a
+#          /usr/local/lib/GL/libmatrix.a
+
+  if test "$have_gle" = yes ; then
+    have_gle=no
+    AC_CHECK_X_LIB(gle, gleCreateGC, 
+                   [have_gle=yes; GLE_LIBS="-lgle"],
+                   [], $GL_LIBS -lX11 -lXext -lm)
+  fi
+  if test "$have_gle" = yes ; then
+    have_gle=no
+    AC_CHECK_X_LIB(matrix, uview_direction_d, 
+                   [have_gle=yes; GLE_LIBS="$GLE_LIBS -lmatrix"],
+                   [], $GL_LIBS -lX11 -lXext -lm)
+  fi
+
+  if test "$have_gle" = yes ; then
+    AC_DEFINE(HAVE_GLE)
+  fi
+
+elif test "$with_gle" != no; then
+  echo "error: must be yes or no: --with-gle=$with_gle"
+  exit 1
+
+fi
+
+
+
 ###############################################################################
 #
 #       Check for -lXpm.
@@ -2354,8 +2405,8 @@ if test "$enable_locking" = yes; then
   LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)'
   LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)'
 else
-  LOCK_SRCS=''
-  LOCK_OBJS=''
+  LOCK_SRCS='$(NOLOCK_SRCS_1)'
+  LOCK_OBJS='$(NOLOCK_SRCS_1)'
 fi
 
 if test "$need_setuid" = yes; then
@@ -2375,6 +2426,14 @@ else
   GL_KLUDGE="  -${tab}  "
 fi
 
+if test "$have_gle" = yes; then
+  GLE_EXES='$(GLE_EXES)'
+  GLE_MEN='$(GLE_MEN)'
+  GLE_KLUDGE="${tab}  "
+else
+  GLE_KLUDGE="  -${tab}  "
+fi
+
 
 ###############################################################################
 #
@@ -2394,6 +2453,7 @@ AC_SUBST(ATHENA3D_LIBS)
 AC_SUBST(HACK_LIBS)
 AC_SUBST(XPM_LIBS)
 AC_SUBST(GL_LIBS)
+AC_SUBST(GLE_LIBS)
 AC_SUBST(PASSWD_LIBS)
 AC_SUBST(INSTALL_SETUID)
 AC_SUBST(INSTALL_DIRS)
@@ -2414,6 +2474,9 @@ AC_SUBST(LOCK_OBJS)
 AC_SUBST(GL_EXES)
 AC_SUBST(GL_MEN)
 AC_SUBST(GL_KLUDGE)
+AC_SUBST(GLE_EXES)
+AC_SUBST(GLE_MEN)
+AC_SUBST(GLE_KLUDGE)
 AC_SUBST(HACKDIR)
 
 APPDEFAULTS=$ac_x_app_defaults
@@ -2655,6 +2718,26 @@ if test "$have_gl" = no ; then
 
 fi
 
+
+if test "$have_gl" = yes -a "$have_gle" = no ; then
+  if test "$with_gle_req" = yes ; then
+    warnL 'Use of GLE was requested, but it was not found.'
+  elif test "$with_gle_req" = no ; then
+    noteL 'The GLE (GL Extrusion) library is not being used.'
+  else
+    noteL 'The GLE (GL Extrusion) library was not found.'
+  fi
+
+  echo ''
+  warn2 'Some of the OpenGL (3D) demos will not be built or installed.'
+  warn2 'You might want to consider installing GLE and re-running'
+  warn2 'configure.  (Remember to delete the config.cache file first.)'
+  warn2 'You can find the GLE library at <http://www.linas.org/gle/>.'
+  warn2 'For general OpenGL info, see <http://www.opengl.org/>.'
+
+fi
+
+
 if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then
   warn 'Use of XReadDisplay was requested, but it was not found.'
 fi
index 6d0da08412f479a8eb12dc55b10a7c3b9b0abc2e..7e101dbd70e2ca1e2bcaeb76d6f5617d8f790507 100644 (file)
@@ -83,6 +83,8 @@ PAM_OBJS      = passwd-pam.o
 
 LOCK_SRCS_1    = lock.c passwd.c
 LOCK_OBJS_1    = lock.o passwd.o
+NOLOCK_SRCS_1  = lock.c
+NOLOCK_OBJS_1  = lock.o
 
 TEST_SRCS      = test-passwd.c test-uid.c test-xdpms.c test-grab.c test-apm.c
 
index 076cd748564fea97e30da479a893405924abad21..cccc369372e0c9ffd900c306c717a8799d683a00 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 3.18
-!                                13-Oct-99
+!                              version 3.19
+!                                30-Oct-99
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
 @GL_KLUDGE@ GL:        glplanet -root                                          \n\
 @GL_KLUDGE@ GL:        pulsar -root                                            \n\
   -       GL:  pulsar -root -texture -mipmap -texture_quality            \
-                      -light -fog                                      \n
+                      -light -fog                                      \n\
+@GLE_KLUDGE@ GL:  extrusion -root                                      \n
  
 
 ! Some other programs that you might want to track down (these work as
index 73e756f43bc52504e184fc675f6dd7113237eba6..4d87b251cd7ea040cd807d77851c5ad25acc67f4 100644 (file)
           GL:  glplanet -root                                          \\n\
           GL:  pulsar -root                                            \\n\
   -       GL:  pulsar -root -texture -mipmap -texture_quality            \
-                      -light -fog                                      \\n",
+                      -light -fog                                      \\n\
+          GL:  extrusion -root                                         \\n",
 " ",
 "XScreenSaver.pointerPollTime:         5",
 "XScreenSaver.initialDelay:            0",
index 6d498b199fdf835ff38172ca05c0a1ac33edfe3c..26441f071261c8fb522fb45ee0a698e2bb3d6fb3 100644 (file)
@@ -1164,6 +1164,30 @@ passwd_event_loop (saver_info *si)
 }
 
 
+static void
+handle_typeahead (saver_info *si)
+{
+  passwd_dialog_data *pw = si->pw_data;
+  int i;
+  if (!si->unlock_typeahead)
+    return;
+
+  i = strlen (si->unlock_typeahead);
+  if (i >= sizeof(pw->typed_passwd) - 1)
+    i = sizeof(pw->typed_passwd) - 1;
+
+  memcpy (pw->typed_passwd, si->unlock_typeahead, i);
+  pw->typed_passwd [i] = 0;
+
+  memset (si->unlock_typeahead, '*', strlen(si->unlock_typeahead));
+  si->unlock_typeahead[i] = 0;
+  update_passwd_window (si, si->unlock_typeahead, pw->ratio);
+
+  free (si->unlock_typeahead);
+  si->unlock_typeahead = 0;
+}
+
+
 Bool
 unlock_p (saver_info *si)
 {
@@ -1183,6 +1207,7 @@ unlock_p (saver_info *si)
   make_passwd_window (si);
   if (cmap) XInstallColormap (si->dpy, cmap);
 
+  handle_typeahead (si);
   passwd_event_loop (si);
 
   status = (si->pw_data->state == pw_ok);
index a6a9486fb8fd312e8ec0a1d61663c79f8084e544..5ffc63ed0641efeab11818b6a5697bdb29899b4a 100644 (file)
@@ -440,6 +440,63 @@ dispatch_event (saver_info *si, XEvent *event)
 }
 
 
+static void
+swallow_unlock_typeahead_events (saver_info *si, XEvent *e)
+{
+  XEvent event;
+  char buf [100];
+  int i = 0;
+
+  memset (buf, 0, sizeof(buf));
+
+  event = *e;
+
+  do
+    {
+      if (event.xany.type == KeyPress)
+        {
+          char s[2];
+          int size = XLookupString (&event, s, 1, 0, 0);
+          if (size != 1) continue;
+          switch (*s)
+            {
+            case '\010': case '\177':                  /* Backspace */
+              if (i > 0) i--;
+              break;
+            case '\025': case '\030':                  /* Erase line */
+            case '\012': case '\015':                  /* Enter */
+              i = 0;
+              break;
+            case '\040':                               /* Space */
+              if (i == 0)
+                break;  /* ignore space at beginning of line */
+              /* else, fall through */
+            default:
+              buf [i++] = *s;
+              break;
+            }
+        }
+
+    } while (i < sizeof(buf)-1 &&
+             XCheckMaskEvent (si->dpy, KeyPressMask, &event));
+
+  buf[i] = 0;
+
+  if (si->unlock_typeahead)
+    {
+      memset (si->unlock_typeahead, 0, strlen(si->unlock_typeahead));
+      free (si->unlock_typeahead);
+    }
+
+  if (i > 0)
+    si->unlock_typeahead = strdup (buf);
+  else
+    si->unlock_typeahead = 0;
+
+  memset (buf, 0, sizeof(buf));
+}
+
+
 /* methods of detecting idleness:
 
       explicitly informed by SGI SCREEN_SAVER server event;
@@ -752,8 +809,13 @@ sleep_until_idle (saver_info *si, Bool until_idle_p)
      doesn't exhibit itself without an extension, because in that case,
      there's only one event generated by user activity, not two.)
    */
-  XCheckMaskEvent (si->dpy, (KeyPressMask|ButtonPressMask|PointerMotionMask),
-                  &event);
+  if (!until_idle_p && si->locked_p)
+    swallow_unlock_typeahead_events (si, &event);
+  else
+    while (XCheckMaskEvent (si->dpy,
+                            (KeyPressMask|ButtonPressMask|PointerMotionMask),
+                     &event))
+      ;
 
 
   if (si->check_pointer_timer_id)
index 7d1802a1f33643cb5ce7c98c779fb9dd14b3faad..b02acfff9e815fb6447f252c37a89e0b345d68c7 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11"
+.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11"
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
index cb555b1b3a7a5b1b65b85b73f6e27083f990b6e0..3a89d4deab4f37e9173f74a33d90c634d98531fd 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11"
+.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11"
 .SH NAME
 xscreensaver-demo - interactively control the background xscreensaver daemon
 .SH SYNOPSIS
index dead85d6c3ec90bed0d501acef5a42781010acb5..c37cf32602e1c892f2139d143ad14ebffb6f46f8 100644 (file)
@@ -59,7 +59,7 @@
  *   This program accepts ClientMessages of type SCREENSAVER; these messages
  *   may contain the atom ACTIVATE or DEACTIVATE, meaning to turn the 
  *   screensaver on or off now, regardless of the idleness of the user,
- *   and a few other things.  The included "xscreensaver_command" program
+ *   and a few other things.  The included "xscreensaver-command" program
  *   sends these messsages.
  *
  *   If we don't have the XIdle, MIT-SCREEN-SAVER, or SGI SCREEN_SAVER
@@ -70,8 +70,9 @@
  *   KeyPress on windows which don't select them, because that would
  *   interfere with event propagation.  This will break if any program
  *   changes its event mask to contain KeyRelease or PointerMotion more than
- *   30 seconds after creating the window, but that's probably pretty rare.
- *   
+ *   30 seconds after creating the window, but such programs do not seem to
+ *   occur in nature (I've never seen it happen in all these years.)
+ *
  *   The reason that we can't select KeyPresses on windows that don't have
  *   them already is that, when dispatching a KeyPress event, X finds the
  *   lowest (leafmost) window in the hierarchy on which *any* client selects
  *       to keep your emacs window alive even when xscreensaver has grabbed.
  *     - Go read the code related to `debug_p'.
  *     - You probably can't set breakpoints in functions that are called on
- *       the other side of a call to fork() -- if your clients are dying 
- *       with signal 5, Trace/BPT Trap, you're losing in this way.
+ *       the other side of a call to fork() -- if your subprocesses are
+ *       dying with signal 5, Trace/BPT Trap, you're losing in this way.
  *     - If you aren't using a server extension, don't leave this stopped
  *       under the debugger for very long, or the X input buffer will get
  *       huge because of the keypress events it's selecting for.  This can
  *       make your X server wedge with "no more input buffers."
- *       
+ *
  * ======================================================================== */
 
 #ifdef HAVE_CONFIG_H
@@ -318,6 +319,7 @@ saver_ehandler (Display *dpy, XErrorEvent *error)
    "    arguments `-sync -verbose', and reproduce this bug.  That will cause\n"
    "    xscreensaver to dump a `core' file to the current directory.  Please\n"
    "    include the stack trace from that core file in your bug report.\n"
+   "    Do NOT mail the core file itself!  That won't work.\n"
    "\n"
    "    http://www.jwz.org/xscreensaver/bugs.html explains how to create the\n"
    "    most useful bug reports, and how to examine core files.\n"
index f54ebcf0368f4d5e871c5ff6cea8d8ac841df397..58f5214efb6319bcf572d8365a4c0189369badbb 100644 (file)
@@ -115,6 +115,12 @@ struct saver_info {
   int unlock_failures;         /* Counts failed login attempts while the
                                   screen is locked. */
 
+  char *unlock_typeahead;      /* If the screen is locked, and the user types
+                                   a character, we assume that it is the first
+                                   character of the password.  It's stored here
+                                   for the password dialog to use to populate
+                                   itself. */
+
 
   /* =======================================================================
      demoing
index 8b2a70b73366e7d7dc7be0691dcead563f66d4bc..03ae437403c34abc00b3044da1b58930193528f0 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "13-Oct-99 (3.18)" "X Version 11"
+.TH XScreenSaver 1 "30-Oct-99 (3.19)" "X Version 11"
 .SH NAME
 xscreensaver - graphics hack and screen locker, launched when the user is idle
 .SH SYNOPSIS
index cd1921ac41a95379dc7d83bfc31bb8dc3aa04107..c4a45bacdd5cb1756b61e1f081f6e129576e4460 100644 (file)
@@ -144,7 +144,8 @@ MEN         = attraction.man blitspin.man bouboule.man braid.man \
                  xroger.man goop.man starfish.man munch.man rd-bomb.man \
                  xjack.man xlyap.man jigsaw.man epicycle.man bsod.man \
                  sonar.man t3d.man squiral.man spotlight.man critical.man \
-                 vidwhacker.man webcollage.man xsublim.man
+                 vidwhacker.man webcollage.man xsublim.man distort.man \
+                 phosphor.man xmatrix.man
 STAR           = *
 EXTRAS         = README Makefile.in xlock_23.h .gdbinit \
                  images/$(STAR).xbm \
@@ -1674,7 +1675,9 @@ xmatrix.o: $(UTILS_SRC)/colors.h
 xmatrix.o: $(UTILS_SRC)/grabscreen.h
 xmatrix.o: $(UTILS_SRC)/visual.h
 xmatrix.o: $(srcdir)/images/matrix.xpm
+xmatrix.o: $(srcdir)/images/matrix2.xpm
 xmatrix.o: $(srcdir)/images/matrix.xbm
+xmatrix.o: $(srcdir)/images/matrix2.xbm
 petri.o: $(srcdir)/screenhack.h
 petri.o: ../config.h
 petri.o: $(UTILS_SRC)/yarandom.h
@@ -1694,6 +1697,7 @@ shadebobs.o: $(UTILS_SRC)/hsv.h
 shadebobs.o: $(UTILS_SRC)/colors.h
 shadebobs.o: $(UTILS_SRC)/grabscreen.h
 shadebobs.o: $(UTILS_SRC)/visual.h
+xsublim.o: $(UTILS_SRC)/yarandom.h
 xsublim.o: $(UTILS_SRC)/usleep.h
 xsublim.o: $(UTILS_SRC)/resources.h
 ccurve.o: $(srcdir)/screenhack.h
index b1dda0841979c5f55514dba96230b2719bdb6123..0b7e4e4ed0084b591bf64e801ebd39049f8575f9 100644 (file)
@@ -76,7 +76,7 @@ void CreateSpotLight( SSpotLight *pSpotLight, uint16_ iWinWidth, uint16_ nColorC
 
 void CreateTables( SSpotLight *pSpotLight )
 {
-       long double nUnit;
+       double nUnit;
        uint16_ iDegree;
        
        pSpotLight->nDegreeCount = get_integer_resource( "degrees", "Integer" );
@@ -88,10 +88,10 @@ void CreateTables( SSpotLight *pSpotLight )
        pSpotLight->aSinTable = calloc( pSpotLight->nDegreeCount, sizeof(double) );
 
        /* This funtion builds the Sine Lookup Tables. */
-       nUnit = (long double)( PI * 2.0F ) / (long double)( pSpotLight->nDegreeCount );
+       nUnit = (double)( PI * 2.0F ) / (double)( pSpotLight->nDegreeCount );
 
        for( iDegree=0; iDegree<pSpotLight->nDegreeCount; iDegree++)
-               pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (long double)iDegree );
+               pSpotLight->aSinTable[ iDegree ] = sin( nUnit * (double)iDegree );
 }
 
 
@@ -228,11 +228,12 @@ void SetPalette( SBumps *pBumps, XWindowAttributes *pXWinAttribs )
 void InitBumpMap( SBumps *pBumps, XWindowAttributes *pXWinAttribs )
 {
        XImage *pScreenImage;
-       XColor aColors[ pBumps->iWinWidth ];
+       XColor *aColors;
        uint8_ nSoften;
        uint16_ iWidth, iHeight;
        BOOL bInvert = (BOOL)get_boolean_resource( "invert", "Boolean" );
        
+       aColors = (XColor*)calloc( pBumps->iWinWidth, sizeof(XColor) );
        grab_screen_image( pXWinAttribs->screen, pBumps->Win );
        pScreenImage = XGetImage( pBumps->pDisplay, pBumps->Win, 0, 0, pBumps->iWinWidth, pBumps->iWinHeight, ~0L, ZPixmap );
 
@@ -266,6 +267,7 @@ void InitBumpMap( SBumps *pBumps, XWindowAttributes *pXWinAttribs )
 #endif
        while( nSoften-- )
                SoftenBumpMap( pBumps );
+       free( aColors );
 }
 
 
index 08d56a5ce5ccda4689c01f78ed820d92f940b223..219bffc6bb8ed66f04ab7a56d15eaaad1e7d9d2e 100644 (file)
@@ -34,7 +34,7 @@
 #define PI             3.141592654
 #define RANDOM() ((int) (random() & 0X7FFFFFFFL))
 
-typedef char                   int8_;
+typedef signed char            int8_;
 typedef unsigned char  uint8_;
 typedef short                  int16_;
 typedef unsigned short uint16_;
@@ -43,7 +43,7 @@ typedef unsigned long uint32_;
 typedef unsigned char  BOOL;
 
 
-// Globals:
+/* Globals: */
 char *progclass = "Bumps";
 
 char *defaults [] = {
index 6dbe0ac1a42cc7270e2a6038e1164dcf1a73005c..1555d88d127541f8890964b9c675ad12f7fd9e3c 100644 (file)
@@ -201,7 +201,7 @@ self_similar_normalized (Display*  display,
        double    x = 0.0;
        double    y = 0.0;
 
-       replacement = (Position*)(alloca (segment_count * sizeof (Segment)));
+       replacement = (Position*)(malloc (segment_count * sizeof (Segment)));
        copy_points (segment_count, points, replacement);
        assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON);
        assert (fabs (replacement [segment_count - 1].y) < EPSILON);
@@ -222,6 +222,7 @@ self_similar_normalized (Display*  display,
            x = next_x;
            y = next_y;
        }
+        free((void*)replacement);
     }
 }
 
@@ -246,7 +247,7 @@ self_similar (Display* display,
 {
     Position* points = (Position*)NULL;
 
-    points = (Position*)(alloca (segment_count * sizeof (Position)));
+    points = (Position*)(malloc (segment_count * sizeof (Position)));
     normalized_plot (segment_count, segments, points);
     assert (fabs ((points [segment_count - 1].x) - 1.0) < EPSILON);
     assert (fabs (points [segment_count - 1].y) < EPSILON);
@@ -256,6 +257,7 @@ self_similar (Display* display,
                             maximum_x, maximum_y,
                             minimum_x, minimum_y,
                             segment_count, points);
+    free((void*)points);
 }
 
 static
@@ -723,7 +725,7 @@ screenhack (Display* display,
        segment_count
            = lengths [random () % (sizeof (lengths) / sizeof (int))];
        segments
-           = (Segment*)(alloca ((segment_count) * sizeof (Segment)));
+           = (Segment*)(malloc ((segment_count) * sizeof (Segment)));
        select_pattern (segment_count, segments);
        iterations = floor (log (maximum_lines)
                                / log (((double)(segment_count))));
@@ -784,6 +786,7 @@ screenhack (Display* display,
            if (delay) sleep (delay);
            screenhack_handle_events (display);
        }
+        free((void*)segments);
        if (pause) sleep (pause);
        erase_full_window (display, window);
     }
diff --git a/hacks/distort.man b/hacks/distort.man
new file mode 100644 (file)
index 0000000..a4b3dcd
--- /dev/null
@@ -0,0 +1,103 @@
+.TH XScreenSaver 1 "17-Oct-99" "X Version 11"
+.SH NAME
+distort \- distort the content of the screen in interesting ways
+.SH SYNOPSIS
+.B distort
+[\-root] [\-window] [\-mono] [\-install] [\-noinstall] [\-visual \fIvisual\fP] [\-window\-id \fIwindow\-id\fP] [\-delay \fIusecs\fP] [\-radius \fIpixels\fP] [\-speed \fIfloat\fP] [\-number \fIint\fP] [\-swamp] [\-bounce] [\-reflect] [\-vortex] [\-magnify] [\-blackhole] [\-slow] [\-shm] [\-no\-shm]
+.SH DESCRIPTION
+The \fIdistort\fP program lets circular zones of distortion wander
+randomly around its window, apparently distorting what is under them
+due to the window's pseudo-transparency. The mode of distortion and
+the overall behaviour of the zones can be influenced in various ways.
+.SH OPTIONS
+.I distort
+accepts the following options:
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-window
+Draw on a newly-created window. This is the default.
+.TP 8
+.B \-mono
+If on a color display, pretend we're on a monochrome display.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-noinstall
+Don't install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual
+class or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window\-id \fIwindow\-id\fP
+Specify which window id to use.
+.TP 8
+.B \-delay \fIusecs\fP
+Specify the delay between subsequent animation frames in microseconds.
+.TP 8
+.B \-radius \fIpixels\fP
+Specify the radius of the distortion zone in pixels.
+.TP 8
+.B \-speed \fIfloat\fP
+Specify the speed of the distortion zone, where 1.0 is kind of slow,
+0.5 is twice as slow and 2.0 is twice as fast.
+.TP 8
+.B \-number \fIint\fP
+Specify the number of distortion zones.
+.TP 8
+.B \-swamp
+Instead of letting zones wander around, let small zones pop up like
+bubbles in a swamp and leave permanent distortion.
+.TP 8
+.B \-bounce
+Let zones wander around and bounce off the window border. This is the
+default.
+.TP 8
+.B \-reflect
+Mode of distortion that resembles reflection by a cylindrical mirror.
+.TP 8
+.B \-vortex
+Whirlpool-shaped distortion. Way cool.
+.TP 8
+.B \-magnify
+This mode of distortion looks like a magnifying glass.
+.TP 8
+.B \-blackhole
+Suck your pixels beyond the event horizon. Favourite mode of Dr
+Stephen Hawking.
+.TP 8
+.B \-slow
+Make the zone wander slower.
+.TP 8
+.B \-shm
+Use shared memory extension.
+.TP 8
+.B \-no\-shm
+Don't use shared memory extension.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1998 by Jonas Munsin and Jamie Zawinski.  Permission to use, 
+copy, modify, distribute, and sell this software and its documentation for
+any purpose is hereby granted without fee, provided that the above
+copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+No representations are made about the suitability of this software for
+any purpose.  It is provided "as is" without express or implied
+warranty.
+.SH AUTHORS
+Jonas Munsin <jmunsin@iki.fi> and Jamie Zawinski <jwz@jwz.org>.
+This manual page by Matthias Warkus <mawa@iname.com>, 17-Oct-1999.
index 7d4e7860c6b45e9e060dddd6b2e7f97f23438bcb..8c1bae01774cf128213e4e8f6ef831e60d84793d 100644 (file)
@@ -42,8 +42,10 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 #
 HACK_PRE       = $(LIBS) $(X_LIBS)
 HACK_POST      = $(X_PRE_LIBS) -lXt -lX11 -lXext $(X_EXTRA_LIBS) -lm
-HACK_LIBS      = $(HACK_PRE)            @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
-XPM_LIBS       = $(HACK_PRE) @XPM_LIBS@ @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
+HACK_POST2     = @GL_LIBS@ @HACK_LIBS@ $(HACK_POST)
+HACK_LIBS      = $(HACK_PRE)                       $(HACK_POST2)
+XPM_LIBS       = $(HACK_PRE)            @XPM_LIBS@ $(HACK_POST2)
+GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @XPM_LIBS@ $(HACK_POST2)
 
 HACK_SRC       = $(srcdir)/..
 HACK_BIN       = ..
@@ -66,18 +68,25 @@ SRCS                = atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
                  morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \
                  s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
                  sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
-                 xlock-gl.c xpm-ximage.c glplanet.c pulsar.c
+                 xlock-gl.c xpm-ximage.c glplanet.c pulsar.c \
+                 extrusion.c extrusion-helix2.c extrusion-helix3.c \
+                 extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \
+                 extrusion-taper.c extrusion-twistoid.c
 
 OBJS           = atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
                  buildlwo.o cage.o dolphin.o gears.o lament.o moebius.o \
                  morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \
                  s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
                  sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
-                 xlock-gl.o xpm-ximage.o glplanet.o pulsar.o
+                 xlock-gl.o xpm-ximage.o glplanet.o pulsar.o \
+                 extrusion.o extrusion-helix2.o extrusion-helix3.o \
+                 extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
+                 extrusion-taper.o extrusion-twistoid.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar
-EXES           = @GL_EXES@
+GLE_EXES       = extrusion
+EXES           = @GL_EXES@ @GLE_EXES@
 
 HACK_OBJS      = screenhack-gl.o xlock-gl.o $(HACK_BIN)/xlockmore.o \
                  $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
@@ -258,6 +267,12 @@ glplanet:  glplanet.o      $(HACK_OBJS) xpm-ximage.o
 pulsar:                pulsar.o                $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
+EXTRUSION_OBJS=extrusion.o extrusion-helix2.o extrusion-helix3.o    \
+       extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
+       extrusion-taper.o extrusion-twistoid.o
+extrusion:     $(EXTRUSION_OBJS) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $(EXTRUSION_OBJS) $(HACK_OBJS) $(GLE_LIBS)
+
 
 ##############################################################################
 #
@@ -526,4 +541,16 @@ pulsar.o: $(UTILS_SRC)/colors.h
 pulsar.o: $(UTILS_SRC)/grabscreen.h
 pulsar.o: $(UTILS_SRC)/visual.h
 pulsar.o: $(UTILS_SRC)/xshm.h
+extrusion.o: $(HACK_SRC)/xlockmore.h
+extrusion.o: ../../config.h
+extrusion.o: $(HACK_SRC)/xlockmoreI.h
+extrusion.o: $(HACK_SRC)/screenhack.h
+extrusion.o: $(UTILS_SRC)/yarandom.h
+extrusion.o: $(UTILS_SRC)/usleep.h
+extrusion.o: $(UTILS_SRC)/resources.h
+extrusion.o: $(UTILS_SRC)/hsv.h
+extrusion.o: $(UTILS_SRC)/colors.h
+extrusion.o: $(UTILS_SRC)/grabscreen.h
+extrusion.o: $(UTILS_SRC)/visual.h
+extrusion.o: $(UTILS_SRC)/xshm.h
 
diff --git a/hacks/glx/extrusion-helix2.c b/hacks/glx/extrusion-helix2.c
new file mode 100644 (file)
index 0000000..2b2c41d
--- /dev/null
@@ -0,0 +1,56 @@
+
+/* 
+ * helicoid (gernalized torus) demo 
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO RADIUS, DELTA-RADIUS < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+/* required include files */
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/*  most recent mouse postion */
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+void InitStuff_helix2 (void) 
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix2 (void) 
+{
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   glColor3f (0.6, 0.3, 0.8);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+/*     glRotatef (220.0, 0.0, 1.0, 0.0); */
+/*     glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+   /* Phew. FINALLY, Draw the helix  -- */
+   gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+   gleHelicoid (0.01*lastx, 
+                6.0, (0.01*lasty - 2.0), 
+               -3.0, 4.0, 0x0, 0x0, 0.0, 1080.0);
+
+   glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-helix3.c b/hacks/glx/extrusion-helix3.c
new file mode 100644 (file)
index 0000000..7924663
--- /dev/null
@@ -0,0 +1,55 @@
+
+/* 
+ * helicoid (gernalized torus) demo 
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO SWEEP, HEIGHT < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+/* required include files */
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/*  most recent mouse postion */
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+void InitStuff_helix3 (void) 
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix3 (void) 
+{
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   glColor3f (0.8, 0.3, 0.6);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+/*     glRotatef (220.0, 0.0, 1.0, 0.0); */
+/*     glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+   /* Phew. FINALLY, Draw the helix  -- */
+   gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+   gleHelicoid (1.0, 6.0, -1.0, 
+               0.0, (0.02*lasty-2.0), 0x0, 0x0, 0.0, 6.0*lastx);
+
+   glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-helix4.c b/hacks/glx/extrusion-helix4.c
new file mode 100644 (file)
index 0000000..6c81607
--- /dev/null
@@ -0,0 +1,72 @@
+
+/* 
+ * helicoid (gernalized torus) demo 
+ *
+ * FUNCTION:
+ * This code provides a very simple example of the helicoid primitive.
+ * Most of this code is required to set up OpenGL and GLUT, and very
+ * very little to set up the helix drawer. Don't blink!
+ *
+ * =======> MOUSE HOOKED UP TO AFFINE < ========
+ *
+ * HISTORY:
+ * Written by Linas Vepstas, March 1995
+ */
+
+/* required include files */
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/*  most recent mouse postion */
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+void InitStuff_helix4 (void) 
+{
+}
+
+/* draw the helix shape */
+void DrawStuff_helix4 (void) 
+{
+   double affine[2][3];
+   double delta_affine[2][3];
+
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   glColor3f (0.7, 0.5, 0.3);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+/*     glRotatef (220.0, 0.0, 1.0, 0.0); */
+/*     glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+   /* Phew. FINALLY, Draw the helix  -- */
+   affine [0][0] = 1.0/ (0.01*lastx);
+   affine [1][0] = 0.0;
+   affine [0][1] = 0.0;
+   affine [1][1] = 0.01*lastx;
+   affine [0][2] = 0.0;
+   affine [1][2] = 0.0;
+
+   delta_affine [0][0] = 0.0;
+   delta_affine [1][0] = 0.03*lasty;
+   delta_affine [0][1] = -0.03*lasty;
+   delta_affine [1][1] = 0.0;
+   delta_affine [0][2] = 0.0;
+   delta_affine [1][2] = 0.0;
+
+   gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
+   gleHelicoid (1.0, 7.0, -1.0, 
+               -4.0, 6.0, affine, delta_affine, 0.0, 980.0);
+
+   glPopMatrix ();
+
+}
+/* ------------------------- end of file ----------------- */
diff --git a/hacks/glx/extrusion-joinoffset.c b/hacks/glx/extrusion-joinoffset.c
new file mode 100644 (file)
index 0000000..786d0c7
--- /dev/null
@@ -0,0 +1,146 @@
+
+/* cylinder drawing demo */
+/* this demo demonstrates the various join styles */
+
+/* required include files */
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* ------------------------------------------------------- */
+
+/* the arrays in which we will store the polyline */
+#define NPTS 100
+double points [NPTS][3];
+float colors [NPTS][3];
+static int idx = 0;
+
+/* some utilities for filling that array */
+#define PSCALE 0.5
+#define PNT(x,y,z) {                   \
+   points[idx][0] = PSCALE * x;        \
+   points[idx][1] = PSCALE * y;        \
+   points[idx][2] = PSCALE * z;                \
+   idx ++;                             \
+}
+
+#define COL(r,g,b) {                   \
+   colors[idx][0] = r;                         \
+   colors[idx][1] = g;                         \
+   colors[idx][2] = b;                 \
+}
+
+/* the arrays in which we will store the contour */
+#define NCONTOUR 100
+double contour_points [NCONTOUR][2];
+int cidx = 0;
+
+/* some utilities for filling that array */
+#define C_PNT(x,y) {                   \
+   contour_points[cidx][0] = x;                \
+   contour_points[cidx][1] = y;        \
+   cidx ++;                            \
+}
+
+
+/* ------------------------------------------------------- */
+/* 
+ * Initialize a bent shape with three segments. 
+ * The data format is a polyline.
+ *
+ * NOTE that neither the first, nor the last segment are drawn.
+ * The first & last segment serve only to determine that angle 
+ * at which the endcaps are drawn.
+ */
+
+void InitStuff_joinoffset (void) 
+{
+   COL (0.0, 0.0, 0.0);
+   PNT (16.0, 0.0, 0.0);
+
+   COL (0.2, 0.8, 0.5);
+   PNT (0.0, -16.0, 0.0);
+
+   COL (0.0, 0.8, 0.3);
+   PNT (-16.0, 0.0, 0.0);
+
+   COL (0.8, 0.3, 0.0);
+   PNT (0.0, 16.0, 0.0);
+
+   COL (0.2, 0.3, 0.9);
+   PNT (16.0, 0.0, 0.0);
+
+   COL (0.2, 0.8, 0.5);
+   PNT (0.0, -16.0, 0.0);
+
+   COL (0.0, 0.0, 0.0);
+   PNT (-16.0, 0.0, 0.0);
+
+   C_PNT (-0.8, -0.5);
+   C_PNT (-1.8, 0.0);
+   C_PNT (-1.2, 0.3);
+   C_PNT (-0.7, 0.8);
+   C_PNT (-0.2, 1.3);
+   C_PNT (0.0, 1.6);
+   C_PNT (0.2, 1.3);
+   C_PNT (0.7, 0.8);
+   C_PNT (1.2, 0.3);
+   C_PNT (1.8, 0.0);
+   C_PNT (0.8, -0.5);
+
+   gleSetJoinStyle (TUBE_JN_ANGLE | TUBE_CONTOUR_CLOSED | TUBE_JN_CAP);
+}
+
+double up_vector[3] = {1.0, 0.0, 0.0};
+
+extern float lastx;
+extern float lasty;
+
+/* ------------------------------------------------------- */
+/* draw the extrusion */
+
+void DrawStuff_joinoffset (void) 
+{
+   double moved_contour [NCONTOUR][2];
+   int style, save_style;
+   int i;
+
+   for (i=0; i<cidx; i++) {
+      moved_contour[i][0] = contour_points [i][0];
+      moved_contour[i][1] = contour_points [i][1] + 0.05 * (lasty-200.0);
+   }
+
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 4.0, -80.0);
+   glRotatef (0.5*lastx, 0.0, 1.0, 0.0);
+
+   gleExtrusion (cidx, moved_contour, contour_points, up_vector, 
+                 idx, points, colors);
+
+   glPopMatrix ();
+
+
+   /* draw a seond copy, this time with the raw style, to compare
+    * things against */
+   glPushMatrix ();
+   glTranslatef (0.0, -4.0, -80.0);
+   glRotatef (0.5*lastx, 0.0, 1.0, 0.0);
+
+   save_style = gleGetJoinStyle ();
+   style = save_style;
+   style &= ~TUBE_JN_MASK;
+   style |= TUBE_JN_RAW;
+   gleSetJoinStyle (style);
+
+   gleExtrusion (cidx, moved_contour, contour_points, up_vector, 
+                 idx, points, colors);
+
+   gleSetJoinStyle (save_style);
+   glPopMatrix ();
+
+}
+
+/* ------------------ end of file ----------------------------- */
diff --git a/hacks/glx/extrusion-screw.c b/hacks/glx/extrusion-screw.c
new file mode 100644 (file)
index 0000000..16f12b1
--- /dev/null
@@ -0,0 +1,126 @@
+/* 
+ * screw.c
+ * 
+ * FUNCTION:
+ * Draws a screw shape.
+ *
+ * HISTORY:
+ * -- created by Linas Vepstas October 1991
+ * -- heavily modified to draw more texas shapes, Feb 1993, Linas
+ * -- converted to use GLUT -- December 1995, Linas
+ *
+ */
+
+/* required include files */
+#include <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+#ifndef NULL
+#define NULL ((void *) 0x0)
+#endif /* NULL */
+
+/* =========================================================== */
+
+#define SCALE 1.3
+#define CONTOUR(x,y) {                                 \
+   double ax, ay, alen;                                        \
+   contour[i][0] = SCALE * (x);                                \
+   contour[i][1] = SCALE * (y);                                \
+   if (i!=0) {                                         \
+      ax = contour[i][0] - contour[i-1][0];            \
+      ay = contour[i][1] - contour[i-1][1];            \
+      alen = 1.0 / sqrt (ax*ax + ay*ay);               \
+      ax *= alen;   ay *= alen;                                \
+      norms [i-1][0] = ay;                             \
+      norms [i-1][1] = -ax;                            \
+   }                                                   \
+   i++;                                                        \
+}
+
+#define NUM_PTS (25)
+
+double contour [NUM_PTS][2];
+double norms [NUM_PTS][2];
+
+static void init_contour (void)
+{
+   int i;
+
+   /* outline of extrusion */
+   i=0;
+   CONTOUR (1.0, 1.0);
+   CONTOUR (1.0, 2.9);
+   CONTOUR (0.9, 3.0);
+   CONTOUR (-0.9, 3.0);
+   CONTOUR (-1.0, 2.9);
+
+   CONTOUR (-1.0, 1.0);
+   CONTOUR (-2.9, 1.0);
+   CONTOUR (-3.0, 0.9);
+   CONTOUR (-3.0, -0.9);
+   CONTOUR (-2.9, -1.0);
+
+   CONTOUR (-1.0, -1.0);
+   CONTOUR (-1.0, -2.9);
+   CONTOUR (-0.9, -3.0);
+   CONTOUR (0.9, -3.0);
+   CONTOUR (1.0, -2.9);
+
+   CONTOUR (1.0, -1.0);
+   CONTOUR (2.9, -1.0);
+   CONTOUR (3.0, -0.9);
+   CONTOUR (3.0, 0.9);
+   CONTOUR (2.9, 1.0);
+
+   CONTOUR (1.0, 1.0);   /* repeat so that last normal is computed */
+}
+   
+/* =========================================================== */
+
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+void InitStuff_screw (void)
+{
+   int style;
+
+   /* configure the pipeline */
+   style = TUBE_JN_CAP;
+   style |= TUBE_CONTOUR_CLOSED;
+   style |= TUBE_NORM_FACET;
+   style |= TUBE_JN_ANGLE;
+   gleSetJoinStyle (style);
+
+   init_contour();
+}
+
+/* =========================================================== */
+
+void DrawStuff_screw (void) {
+
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   glColor3f (0.5, 0.6, 0.6);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+/*     glRotatef (130.0, 0.0, 1.0, 0.0); */
+/*     glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+   /* draw the brand and the handle */
+   gleScrew (20, contour, norms, 
+                 NULL, -6.0, 9.0, lasty);
+
+   glPopMatrix ();
+}
+
+/* ===================== END OF FILE ================== */
diff --git a/hacks/glx/extrusion-taper.c b/hacks/glx/extrusion-taper.c
new file mode 100644 (file)
index 0000000..8cf51ca
--- /dev/null
@@ -0,0 +1,226 @@
+/* 
+ * taper.c
+ * 
+ * FUNCTION:
+ * Draws a tapered screw shape.
+ *
+ * HISTORY:
+ * -- created by Linas Vepstas October 1991
+ * -- heavily modified to draw more texas shapes, Feb 1993, Linas
+ * -- converted to use GLUT -- December 1995, Linas
+ *
+ */
+
+/* required include files */
+#include <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+#ifndef NULL
+#define NULL ((void *) 0x0)
+#endif /* NULL */
+
+/* Some <math.h> files do not define M_PI... */
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+/* =========================================================== */
+
+#define SCALE 3.33333
+#define CONTOUR(x,y) {                                 \
+   double ax, ay, alen;                                        \
+   contour[i][0] = SCALE * (x);                                \
+   contour[i][1] = SCALE * (y);                                \
+   if (i!=0) {                                         \
+      ax = contour[i][0] - contour[i-1][0];            \
+      ay = contour[i][1] - contour[i-1][1];            \
+      alen = 1.0 / sqrt (ax*ax + ay*ay);               \
+      ax *= alen;   ay *= alen;                                \
+      norms [i-1][0] = ay;                             \
+      norms [i-1][1] = -ax;                            \
+   }                                                   \
+   i++;                                                        \
+}
+
+#define NUM_PTS (25)
+
+double contour [NUM_PTS][2];
+double norms [NUM_PTS][2];
+
+static void init_contour (void)
+{
+   int i;
+
+   /* outline of extrusion */
+   i=0;
+   CONTOUR (1.0, 1.0);
+   CONTOUR (1.0, 2.9);
+   CONTOUR (0.9, 3.0);
+   CONTOUR (-0.9, 3.0);
+   CONTOUR (-1.0, 2.9);
+
+   CONTOUR (-1.0, 1.0);
+   CONTOUR (-2.9, 1.0);
+   CONTOUR (-3.0, 0.9);
+   CONTOUR (-3.0, -0.9);
+   CONTOUR (-2.9, -1.0);
+
+   CONTOUR (-1.0, -1.0);
+   CONTOUR (-1.0, -2.9);
+   CONTOUR (-0.9, -3.0);
+   CONTOUR (0.9, -3.0);
+   CONTOUR (1.0, -2.9);
+
+   CONTOUR (1.0, -1.0);
+   CONTOUR (2.9, -1.0);
+   CONTOUR (3.0, -0.9);
+   CONTOUR (3.0, 0.9);
+   CONTOUR (2.9, 1.0);
+
+   CONTOUR (1.0, 1.0);   /* repeat so that last normal is computed */
+}
+   
+/* =========================================================== */
+
+#define PSIZE 40
+double path[PSIZE][3];
+double twist[PSIZE];
+double taper[PSIZE];
+
+void init_taper (void) {
+   int j;
+   double z, deltaz;
+   double ang, dang;
+
+   z = -10.0;
+   deltaz = 0.5;
+
+   ang = 0.0;
+   dang = 20.0;
+   for (j=0; j<40; j++) {
+      path[j][0] = 0x0;
+      path[j][1] = 0x0;
+      path[j][2] = z;
+
+      twist[j] = ang;
+      ang += dang;
+
+      taper[j] = 0.1 * sqrt (9.51*9.51 - z*z);
+
+      z += deltaz;
+   }
+
+   taper[0] = taper[1];
+   taper[39] = taper[38];
+
+}
+
+/* =========================================================== */
+
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+void InitStuff_taper (void)
+{
+   int style;
+
+   /* configure the pipeline */
+   style = TUBE_JN_CAP;
+   style |= TUBE_CONTOUR_CLOSED;
+   style |= TUBE_NORM_FACET;
+   style |= TUBE_JN_ANGLE;
+   gleSetJoinStyle (style);
+
+   init_contour();
+   init_taper();
+}
+
+/* =========================================================== */
+
+void gleTaper (int ncp, 
+               gleDouble contour[][2], 
+               gleDouble cont_normal[][2], 
+               gleDouble up[3],
+               int npoints,
+               gleDouble point_array[][3],
+               float color_array[][3],
+               gleDouble taper[],
+               gleDouble twist[])
+{
+   int j;
+   gleAffine *xforms;
+   double co, si, angle;
+
+   /* malloc the extrusion array and the twist array */
+   xforms = (gleAffine *) malloc (npoints * sizeof(gleAffine));
+
+   for (j=0; j<npoints; j++) {
+      angle = (M_PI/180.0) * twist[j];
+      si = sin (angle);
+      co = cos (angle);
+      xforms[j][0][0] = taper[j] * co;
+      xforms[j][0][1] = - taper[j] * si;
+      xforms[j][0][2] = 0.0;
+      xforms[j][1][0] = taper[j] * si;
+      xforms[j][1][1] = taper[j] * co;
+      xforms[j][1][2] = 0.0;
+   }
+
+   gleSuperExtrusion (ncp,               /* number of contour points */
+                contour,    /* 2D contour */
+                cont_normal, /* 2D contour normals */
+                up,           /* up vector for contour */
+                npoints,           /* numpoints in poly-line */
+                point_array,        /* polyline */
+                color_array,        /* color of polyline */
+                xforms);
+
+   free (xforms);
+}
+
+/* =========================================================== */
+
+void DrawStuff_taper (void) {
+   int j;
+   double ang, dang;
+   double z, deltaz;
+   double ponent;
+   z=-1.0;
+   deltaz = 1.999/38;
+   ang = 0.0;
+   dang = lasty/40.0;
+   ponent = fabs (lastx/540.0);
+   for (j=1; j<39; j++) {
+      twist[j] = ang;
+      ang += dang;
+
+      taper[j] = pow ((1.0 - pow (fabs(z), 1.0/ponent)), ponent);
+      z += deltaz;
+   }
+
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   glColor3f (0.5, 0.6, 0.6);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+
+/*     glRotatef (130.0, 0.0, 1.0, 0.0); */
+/*     glRotatef (65.0, 1.0, 0.0, 0.0); */
+
+   /* draw the brand and the handle */
+   gleTaper (20, contour, norms,  NULL, 40, path, NULL, taper, twist);
+
+   glPopMatrix ();
+}
+
+/* ===================== END OF FILE ================== */
diff --git a/hacks/glx/extrusion-twistoid.c b/hacks/glx/extrusion-twistoid.c
new file mode 100644 (file)
index 0000000..2de6537
--- /dev/null
@@ -0,0 +1,218 @@
+/* 
+ * twistoid.c
+ *
+ * FUNCTION:
+ * Show extrusion of open contours. Also, show how torsion is applied.
+ *
+ * HISTORY:
+ * -- linas Vepstas October 1991
+ * -- heavily modified to draw corrugated surface, Feb 1993, Linas
+ * -- modified to demo twistoid March 1993
+ * -- port to glut Linas Vepstas March 1995
+ */
+
+/* required include files */
+#include <math.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glut.h>
+#include <GL/tube.h>
+
+/* Some <math.h> files do not define M_PI... */
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+extern float lastx;
+extern float lasty;
+extern float rot_x;
+extern float rot_y;
+extern float rot_z;
+
+#define OPENGL_10
+/* =========================================================== */
+
+#define NUM_TOID1_PTS 5
+double toid1_points[NUM_TOID1_PTS][3];
+float toid1_colors [NUM_TOID1_PTS][3];
+double toid1_twists [NUM_TOID1_PTS];
+
+#define TSCALE (6.0)
+
+#define TPTS(x,y) {                            \
+   toid1_points[i][0] = TSCALE * (x);          \
+   toid1_points[i][1] = TSCALE * (y);          \
+   toid1_points[i][2] = TSCALE * (0.0);                \
+   i++;                                                \
+}
+
+#define TCOLS(r,g,b) {                         \
+   toid1_colors[i][0] = (r);                   \
+   toid1_colors[i][1] = (g);                   \
+   toid1_colors[i][2] = (b);                   \
+   i++;                                                \
+}
+
+#define TXZERO() {                             \
+   toid1_twists[i] = 0.0;                      \
+   i++;                                                \
+}
+
+void init_toid1_line (void)
+{
+   int i;
+
+   i=0;
+   TPTS (-1.1, 0.0);
+   TPTS (-1.0, 0.0);
+   TPTS (0.0, 0.0);
+   TPTS (1.0, 0.0);
+   TPTS (1.1, 0.0);
+
+   i=0;
+   TCOLS (0.8, 0.8, 0.5);
+   TCOLS (0.8, 0.4, 0.5);
+   TCOLS (0.8, 0.8, 0.3);
+   TCOLS (0.4, 0.4, 0.5);
+   TCOLS (0.8, 0.8, 0.5);
+
+   i=0;
+   TXZERO ();
+   TXZERO ();
+   TXZERO ();
+   TXZERO ();
+   TXZERO ();
+}
+
+/* =========================================================== */
+
+#define SCALE 0.6
+#define TWIST(x,y) {                                           \
+   double ax, ay, alen;                                                \
+   twistation[i][0] = SCALE * (x);                             \
+   twistation[i][1] = SCALE * (y);                             \
+   if (i!=0) {                                                 \
+      ax = twistation[i][0] - twistation[i-1][0];              \
+      ay = twistation[i][1] - twistation[i-1][1];              \
+      alen = 1.0 / sqrt (ax*ax + ay*ay);                       \
+      ax *= alen;   ay *= alen;                                        \
+      twist_normal [i-1][0] = - ay;                            \
+      twist_normal [i-1][1] = ax;                              \
+   }                                                           \
+   i++;                                                                \
+}
+
+#define NUM_TWIS_PTS (20)
+
+double twistation [NUM_TWIS_PTS][2];
+double twist_normal [NUM_TWIS_PTS][2];
+
+void init_tripples (void)
+{
+   int i;
+   double angle;
+   double co, si;
+
+   /* outline of extrusion */
+   i=0;
+   /* first, draw a semi-curcular "hump" */
+   while (i< 11) {
+      angle = M_PI * ((double) i) / 10.0;
+      co = cos (angle);
+      si = sin (angle);
+      TWIST ((-7.0 -3.0*co), 1.8*si);
+   }
+
+   /* now, a zig-zag corrugation */
+   while (i< NUM_TWIS_PTS) {
+      TWIST ((-10.0 +(double) i), 0.0);
+      TWIST ((-9.5 +(double) i), 1.0);
+   }
+}
+
+   
+/* =========================================================== */
+
+#define V3F(x,y,z) {                                   \
+       float vvv[3];                                   \
+       vvv[0] = x; vvv[1] = y; vvv[2] = z; v3f (vvv);  \
+}
+
+#define N3F(x,y,z) {                                   \
+       float nnn[3];                                   \
+       nnn[0] = x; nnn[1] = y; nnn[2] = z; n3f (nnn);  \
+}
+
+/* =========================================================== */
+
+void DrawStuff_twistoid (void) {
+   int i;
+
+   toid1_twists[2] = (lastx-121.0) / 8.0;
+
+   i=3;
+/*
+   TPTS (1.0, lasty /400.0);
+   TPTS (1.1, 1.1 * lasty / 400.0);
+*/
+   TPTS (1.0, -(lasty-121.0) /200.0);
+   TPTS (1.1, -1.1 * (lasty-121.0) / 200.0);
+
+#ifdef IBM_GL_32
+   rotate (230, 'x');
+   rotate (230, 'y');
+   scale (1.8, 1.8, 1.8);
+
+   if (mono_color) {
+      RGBcolor (178, 178, 204);
+      twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal, 
+                NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);
+   } else {
+      twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal, 
+              NULL, NUM_TOID1_PTS, toid1_points, toid1_colors, toid1_twists);
+   }
+#endif
+
+#ifdef OPENGL_10
+   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+   /* set up some matrices so that the object spins with the mouse */
+   glPushMatrix ();
+   glTranslatef (0.0, 0.0, -80.0);
+   glRotatef(rot_x, 1, 0, 0);
+   glRotatef(rot_y, 0, 1, 0);
+   glRotatef(rot_z, 0, 0, 1);
+/*     glRotated (43.0, 1.0, 0.0, 0.0); */
+/*     glRotated (43.0, 0.0, 1.0, 0.0); */
+   glScaled (1.8, 1.8, 1.8);
+   gleTwistExtrusion (NUM_TWIS_PTS, twistation, twist_normal, 
+              NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);
+   glPopMatrix ();
+#endif
+
+}
+
+/* =========================================================== */
+
+void InitStuff_twistoid (void) 
+{
+   int js;
+
+   init_toid1_line ();
+   init_tripples ();
+
+#ifdef IBM_GL_32
+   js = getjoinstyle ();
+   js &= ~TUBE_CONTOUR_CLOSED;
+   setjoinstyle (js);
+#endif
+
+#ifdef OPENGL_10
+   js = gleGetJoinStyle ();
+   js &= ~TUBE_CONTOUR_CLOSED;
+   gleSetJoinStyle (js);
+#endif
+
+}
+
+/* ------------------ end of file -------------------- */
diff --git a/hacks/glx/extrusion.c b/hacks/glx/extrusion.c
new file mode 100644 (file)
index 0000000..c79d45c
--- /dev/null
@@ -0,0 +1,805 @@
+/* -*- Mode: C; tab-width: 4 -*- */
+/* extrusion --- extrusion module for xscreensaver */
+/*-
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation.
+ *
+ * This file is provided AS IS with no warranties of any kind.  The author
+ * shall have no liability with respect to the infringement of copyrights,
+ * trade secrets or any patents by this file or any part thereof.  In no
+ * event will the author be liable for any lost revenue or profits or
+ * other special, indirect and consequential damages.
+
+ * Revision History:
+ * Tue Oct 19 22:24:47 PDT 1999    Initial creation by David Konerding
+ *                                                                 
+ * Notes:
+ * This screensaver requires the GLE ("OpenGL Tubing and Extrusion Library")
+ * which can be obtained from http://www.linas.org/gle/index.html
+  */
+
+/*-
+ * due to a Bug/feature in VMS X11/Intrinsic.h has to be placed before xlock.
+ * otherwise caddr_t is not defined correctly
+ */
+
+#include <X11/Intrinsic.h>
+
+
+
+#ifdef STANDALONE
+# define PROGCLASS                                             "Screensaver"
+# define HACK_INIT                                             init_screensaver
+# define HACK_DRAW                                             draw_screensaver
+# define screensaver_opts                              xlockmore_opts
+#define        DEFAULTS                        "*light:                        True    \n" \
+                                        "*wire:                                False   \n" \
+                                        "*texture:                     False   \n" \
+                                                                               "*image:                        BUILTIN \n" \
+                                        "*name:             RANDOM  \n" \
+                                        "*example:          0       \n"
+
+# include "xlockmore.h"                                /* from the xscreensaver distribution */
+#else /* !STANDALONE */
+# include "xlock.h"                                    /* from the xlockmore distribution */
+#endif /* !STANDALONE */
+
+#ifdef USE_GL /* whole file */
+
+#ifdef HAVE_XPM
+# include <X11/xpm.h>
+# ifndef PIXEL_ALREADY_TYPEDEFED
+# define PIXEL_ALREADY_TYPEDEFED /* Sigh, Xmu/Drawing.h needs this... */
+# endif
+#endif
+
+#ifdef HAVE_XMU
+# ifndef VMS
+#  include <X11/Xmu/Drawing.h>
+#else  /* VMS */
+#  include <Xmu/Drawing.h>
+# endif /* VMS */
+#endif
+
+#include <malloc.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <GL/tube.h>
+
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+
+#define checkImageWidth 64
+#define checkImageHeight 64
+
+
+extern void InitStuff_helix2(void);
+extern void DrawStuff_helix2(void);
+extern void InitStuff_helix3(void);
+extern void DrawStuff_helix3(void);
+extern void InitStuff_helix4(void);
+extern void DrawStuff_helix4(void);
+extern void InitStuff_joinoffset(void);
+extern void DrawStuff_joinoffset(void);
+extern void InitStuff_screw(void);
+extern void DrawStuff_screw(void);
+extern void InitStuff_taper(void);
+extern void DrawStuff_taper(void);
+extern void InitStuff_twistoid(void);
+extern void DrawStuff_twistoid(void);
+
+
+
+#define WIDTH 640
+#define HEIGHT 480
+
+#define DEF_LIGHT              "True"
+#define DEF_WIRE               "False"
+#define DEF_TEXTURE            "False"
+#define DEF_TEXTURE_QUALITY   "False"
+#define DEF_MIPMAP     "False"
+#define DEF_NAME        "RANDOM"
+#define DEF_IMAGE      "BUILTIN"
+
+static int do_light;
+static int do_wire;
+static int do_texture;
+static int do_texture_quality;
+static int do_mipmap;
+static char *which_name;
+static char *which_image;
+
+static XrmOptionDescRec opts[] = {
+  {"-light",   ".extrusion.light",     XrmoptionNoArg, (caddr_t) "true" },
+  {"+light",   ".extrusion.light",     XrmoptionNoArg, (caddr_t) "false" },
+  {"-wire",    ".extrusion.wire",      XrmoptionNoArg, (caddr_t) "true" },
+  {"+wire",    ".extrusion.wire",      XrmoptionNoArg, (caddr_t) "false" },
+  {"-texture", ".extrusion.texture",   XrmoptionNoArg, (caddr_t) "true" },
+  {"+texture", ".extrusion.texture",   XrmoptionNoArg, (caddr_t) "false" },
+  {"-texture", ".extrusion.texture",   XrmoptionNoArg, (caddr_t) "true" },
+  {"+texture_quality", ".extrusion.texture",   XrmoptionNoArg, (caddr_t) "false" },
+  {"-texture_quality", ".extrusion.texture",   XrmoptionNoArg, (caddr_t) "true" },
+  {"+mipmap", ".extrusion.mipmap",   XrmoptionNoArg, (caddr_t) "false" },
+  {"-mipmap", ".extrusion.mipmap",   XrmoptionNoArg, (caddr_t) "true" },
+  {"-name",   ".extrusion.name",  XrmoptionSepArg, (caddr_t) NULL },
+  {"-image",   ".extrusion.image",  XrmoptionSepArg, (caddr_t) NULL },
+};
+
+
+static argtype vars[] = {
+  {(caddr_t *) &do_light,    "light",   "Light",   DEF_LIGHT,   t_Bool},
+  {(caddr_t *) &do_wire,    "wire",   "Wire",   DEF_WIRE,   t_Bool},
+  {(caddr_t *) &do_texture,    "texture",   "Texture",   DEF_TEXTURE,   t_Bool},
+  {(caddr_t *) &do_texture_quality,    "texture_quality",   "Texture_Quality",   DEF_TEXTURE_QUALITY,   t_Bool},
+  {(caddr_t *) &do_mipmap,    "mipmap",   "Mipmap",   DEF_MIPMAP,   t_Bool},
+  {(caddr_t *) &which_name, "name",   "Name",   DEF_NAME,   t_String},
+  {(caddr_t *) &which_image, "image",   "Image",   DEF_IMAGE,   t_String},
+};
+
+
+static OptionStruct desc[] =
+{
+  {"-name num", "example 'name' to draw (helix2, helix3, helix4, joinoffset, screw, taper, twistoid)"},
+  {"-/+ light", "whether to do enable lighting (slower)"},
+  {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+  {"-/+ texture", "whether to apply a texture (slower)"},
+  {"-image <filename>", "texture image to load (PPM or PPM4)"},
+  {"-/+ texture_quality", "whether to use texture smoothing (slower)"},
+  {"-/+ mipmap", "whether to use texture mipmap (slower)"},
+};
+
+ModeSpecOpt screensaver_opts = {countof(opts), opts, countof(vars), vars, desc};
+
+#ifdef USE_MODULES
+ModStruct   screensaver_description =
+{"screensaver", "init_screensaver", "draw_screensaver", "release_screensaver",
+ "draw_screensaver", "init_screensaver", NULL, &screensaver_opts,
+ 1000, 1, 2, 1, 4, 1.0, "",
+ "OpenGL screensaver", 0, NULL};
+#endif
+
+
+/* structure for holding the screensaver data */
+typedef struct {
+  int screen_width, screen_height;
+  GLXContext *glx_context;
+  Window window;
+  XColor fg, bg;
+} screensaverstruct;
+static screensaverstruct *Screensaver = NULL;
+
+
+
+
+/* convenient access to the screen width */
+static int global_width=640, global_height=480;
+
+/* set up a light */
+static GLfloat lightOnePosition[] = {40.0, 40, 100.0, 0.0};
+static GLfloat lightOneColor[] = {0.99, 0.99, 0.99, 1.0}; 
+
+static GLfloat lightTwoPosition[] = {-40.0, 40, 100.0, 0.0};
+static GLfloat lightTwoColor[] = {0.99, 0.99, 0.99, 1.0}; 
+
+float rot_x=0, rot_y=0, rot_z=0;
+static float dx=0, dy=0, dz=0;
+static float ddx=0, ddy=0, ddz=0;
+static float d_max = 0;
+static int screensaver_number;
+
+static float max_lastx=300, max_lasty=400;
+static float min_lastx=-400, min_lasty=-400;
+static float d_lastx=0, d_lasty=0;
+static float dd_lastx=0, dd_lasty=0;
+static float max_dlastx=0, max_dlasty=0;
+float lastx=0, lasty=0;
+
+static int errCode;
+static GLubyte * errString;
+
+struct functions {
+  void (*InitStuff)(void);
+  void (*DrawStuff)(void);
+  char *name;
+};
+
+/* currently joinoffset and twistoid look funny-
+   like we're looking at them from the back or something
+*/
+
+struct functions funcs_ptr[] = {
+  {InitStuff_helix2, DrawStuff_helix2, "helix2"},
+  {InitStuff_helix3, DrawStuff_helix3, "helix3"},
+  {InitStuff_helix4, DrawStuff_helix4, "helix4"},
+  {InitStuff_joinoffset, DrawStuff_joinoffset, "joinoffset"},
+  {InitStuff_screw, DrawStuff_screw, "screw"},
+  {InitStuff_taper, DrawStuff_taper, "taper"},
+  {InitStuff_twistoid, DrawStuff_twistoid, "twistoid"},
+};
+
+static int num_screensavers = countof(funcs_ptr);
+
+
+/* BEGINNING OF FUNCTIONS */
+
+
+/* check for errors, bail if any.  useful for debugging */
+int checkError(int line, char *file)
+{
+  if((errCode = glGetError()) != GL_NO_ERROR) {
+    errString = (GLubyte *)gluErrorString(errCode);
+    fprintf(stderr, "%s: OpenGL error: %s detected at line %d in file %s\n",
+            progname, errString, line, file);
+    exit(1);
+  }
+  return 0;
+}
+
+
+/* generate a checkered image for texturing */
+GLubyte *Generate_Image(int *width, int *height, int *format)
+{
+  GLubyte *result;
+  int i, j, c;
+  int counter=0;
+
+  *width = checkImageWidth;
+  *height = checkImageHeight;
+  result = (GLubyte *)malloc(4 * *width * *height);
+
+  counter = 0;
+  for (i = 0; i < checkImageWidth; i++) {
+    for (j = 0; j < checkImageHeight; j++) {
+      c = (((((i&0x8)==0))^(((j&0x8))==0)))*255;
+      result[counter++] = (GLubyte) c;
+      result[counter++] = (GLubyte) c;
+      result[counter++] = (GLubyte) c;
+      result[counter++] = (GLubyte) 255;
+    }
+  }
+
+  *format = GL_RGBA;
+  return result;
+}
+/* Load a modified version of PPM format with an extra byte for alpha */
+GLubyte *LoadPPM4(const char *filename, int *width, int *height, int *format)
+{
+  char buff[1024];
+  GLubyte *data;
+  int sizeX, sizeY;
+  FILE *fp;
+  int maxval;
+
+  fp = fopen(filename, "rb");
+  if (!fp)
+    {
+      fprintf(stderr, "%s: unable to open file '%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  if (!fgets(buff, sizeof(buff), fp))
+    {
+      perror("Unable to read header filename\n");
+      return  Generate_Image(width, height, format);
+    }
+
+  if (buff[0] != '6' || buff[1] != 'P')
+    {
+      fprintf(stderr, "%s: Invalid image format (must be `6P')\n", progname);
+      return  Generate_Image(width, height, format);
+    }
+
+  do
+    {
+      fgets(buff, sizeof(buff), fp);
+    }
+  while (buff[0] == '#');
+    
+  if (sscanf(buff, "%d %d", &sizeX, &sizeY) != 2)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  if (fscanf(fp, "%d", &maxval) != 1)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  while (fgetc(fp) != '\n')
+    ;
+
+  data = (GLubyte *)malloc(4 * sizeX * sizeY);
+  if (data == NULL)
+    {
+      fprintf(stderr, "%s: unable to allocate memory\n", progname);
+         exit(1);
+    }
+
+  if (fread(data, 4 * sizeX, sizeY, fp) != sizeY)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  fclose(fp);
+
+  *width = sizeX;
+  *height = sizeY;
+  *format = GL_RGBA;
+  return data;
+}
+
+/* Load a plain PPM image */
+GLubyte *LoadPPM(const char *filename, int *width, int *height, int *format)
+{
+  char buff[1024];
+  GLubyte *data;
+  GLint sizeX, sizeY;
+  FILE *fp;
+  int maxval;
+
+  fp = fopen(filename, "rb");
+  if (!fp)
+    {
+      fprintf(stderr, "%s: unable to open file '%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+      exit(1);
+    }
+  if (!fgets(buff, sizeof(buff), fp))
+    {
+      perror(filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  if (buff[0] != 'P' || buff[1] != '6')
+    {
+      fprintf(stderr, "%s: invalid image format (must be `P6')\n", progname);
+      return  Generate_Image(width, height, format);
+    }
+
+  do
+    {
+      fgets(buff, sizeof(buff), fp);
+    }
+  while (buff[0] == '#');
+    
+  if (sscanf(buff, "%d %d", &sizeX, &sizeY) != 2)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  if (fscanf(fp, "%d", &maxval) != 1)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  while (fgetc(fp) != '\n')
+    ;
+
+  data = (GLubyte *)malloc(3 * sizeX * sizeY);
+  if (data == NULL)
+    {
+      fprintf(stderr, "%s: unable to allocate memory\n", progname);
+         exit(1);
+    }
+
+  if (fread(data, 3 * sizeX, sizeY, fp) != sizeY)
+    {
+      fprintf(stderr, "%s: error loading image `%s'\n", progname, filename);
+      return  Generate_Image(width, height, format);
+    }
+
+  fclose(fp);
+
+  *width = sizeX;
+  *height = sizeY;
+  *format = GL_RGB;
+  return data;
+}
+
+/* create a texture to be applied to the surface
+   this function loads a file using a loader depending on
+   that extension of the file. there is very little error
+   checking.  
+*/
+
+void Create_Texture(char *filename, int do_mipmap, int do_texture_quality)
+{
+  int height, width;
+  GLubyte *image;
+  int format;
+
+  if ( !strncmp(filename, "BUILTIN", 7))
+    image = Generate_Image(&width, &height, &format);
+  else if ( !strncmp((filename+strlen(filename)-3), "ppm", 3))
+    image = LoadPPM(filename, &width, &height, &format);
+  else if ( !strncmp((filename+strlen(filename)-4), "ppm4", 4))
+    image = LoadPPM4(filename, &width, &height, &format);
+  else {
+    fprintf(stderr, "%s: unknown file format extension: '%s'\n",
+            progname, filename);
+       exit(1);
+  }
+
+  /* GL_MODULATE or GL_DECAL depending on what you want */
+  glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+
+  /* default is to do it quick and dirty */
+  /* if you have mipmaps turned on, but not texture quality, nothing will happen! */
+  if (do_texture_quality) {
+    /* with texture_quality, the min and mag filters look *much* nice but are *much* slower */
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+  } else {
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+  }
+
+  if (do_mipmap) {
+    gluBuild2DMipmaps(GL_TEXTURE_2D, format, width, height, 
+                     format, GL_UNSIGNED_BYTE, image);
+  }
+  else {
+    glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
+                format, GL_UNSIGNED_BYTE, image);
+  }
+  free(image);
+}
+
+
+/* mostly lifted from lament.c */
+static void
+rotate (float *pos, float *v, float *dv, float max_v)
+{
+  double ppos = *pos;
+
+  /* tick position */
+  if (ppos < 0)
+    ppos = -(ppos + *v);
+  else
+    ppos += *v;
+
+  if (ppos > 360)
+    ppos -= 360;
+  else if (ppos < 0)
+    ppos += 360;
+
+  if (ppos < 0) abort();
+  if (ppos > 360) abort();
+  *pos = (*pos > 0 ? ppos : -ppos);
+
+  /* accelerate */
+  *v += *dv;
+
+  /* clamp velocity */
+  if (*v > max_v || *v < -max_v)
+    {
+      *dv = -*dv;
+    }
+  /* If it stops, start it going in the other direction. */
+  else if (*v < 0)
+    {
+      if (random() % 4)
+        {
+          *v = 0;
+
+          /* keep going in the same direction */
+          if (random() % 2)
+            *dv = 0;
+          else if (*dv < 0)
+            *dv = -*dv;
+        }
+      else
+        {
+          /* reverse gears */
+          *v = -*v;
+          *dv = -*dv;
+          *pos = -*pos;
+        }
+    }
+
+  /* Alter direction of rotational acceleration randomly. */
+  if (! (random() % 120))
+    *dv = -*dv;
+
+  /* Change acceleration very occasionally. */
+  if (! (random() % 200))
+    {
+      if (*dv == 0)
+        *dv = 0.00001;
+      else if (random() & 1)
+        *dv *= 1.2;
+      else
+        *dv *= 0.8;
+    }
+}
+
+
+static void
+bounce (float *pos, float *v, float *dv, float max_v)
+{
+  *pos += *v;
+
+  if (*pos > 1.0)
+    *pos = 1.0, *v = -*v, *dv = -*dv;
+  else if (*pos < 0)
+    *pos = 0, *v = -*v, *dv = -*dv;
+
+  if (*pos < 0.0) abort();
+  if (*pos > 1.0) abort();
+
+  /* accelerate */
+  *v += *dv;
+
+  /* clamp velocity */
+  if (*v > max_v || *v < -max_v)
+    {
+      *dv = -*dv;
+    }
+
+  /* Alter direction of rotational acceleration randomly. */
+  if (! (random() % 120))
+    *dv = -*dv;
+
+  /* Change acceleration very occasionally. */
+  if (! (random() % 200))
+    {
+      if (*dv == 0)
+        *dv = 0.00001;
+      else if (random() & 1)
+        *dv *= 1.2;
+      else
+        *dv *= 0.8;
+    }
+}
+
+
+static void
+init_rotation (void)
+{
+  rot_x = (float) (random() % (360 * 2)) - 360;  /* -360 - 360 */
+  rot_y = (float) (random() % (360 * 2)) - 360;
+  rot_z = (float) (random() % (360 * 2)) - 360;
+
+  /* bell curve from 0-1.5 degrees, avg 0.75 */
+  dx = (frand(1) + frand(1) + frand(1)) / 2.0;
+  dy = (frand(1) + frand(1) + frand(1)) / 2.0;
+  dz = (frand(1) + frand(1) + frand(1)) / 2.0;
+
+  d_max = dx * 2;
+
+  ddx = 0.004;
+  ddy = 0.004;
+  ddz = 0.004;
+
+  lastx = (random() % (int) (max_lastx - min_lastx)) + min_lastx;
+  lasty = (random() % (int) (max_lasty - min_lasty)) + min_lasty;
+  d_lastx = (frand(1) + frand(1) + frand(1));
+  d_lasty = (frand(1) + frand(1) + frand(1));
+  max_dlastx = d_lastx * 2;
+  max_dlasty = d_lasty * 2;
+  dd_lastx = 0.004;
+  dd_lasty = 0.004;
+}
+
+
+/* draw the screensaver once */
+void draw_screensaver(ModeInfo * mi)
+{
+  screensaverstruct *gp = &Screensaver[MI_SCREEN(mi)];
+  Display    *display = MI_DISPLAY(mi);
+  Window      window = MI_WINDOW(mi);
+
+  Window root, child;
+  int rootx, rooty, winx, winy;
+  unsigned int mask;
+  XEvent event;
+
+  if (!gp->glx_context)
+       return;
+
+  glXMakeCurrent(display, window, *(gp->glx_context));
+
+  funcs_ptr[screensaver_number].DrawStuff();
+         
+  rotate(&rot_x, &dx, &ddx, d_max);
+  rotate(&rot_y, &dy, &ddy, d_max);
+  rotate(&rot_z, &dz, &ddz, d_max);
+
+  /* swallow any ButtonPress events */
+  while (XCheckMaskEvent (MI_DISPLAY(mi), ButtonPressMask, &event))
+    ;
+  /* check the pointer position and button state. */
+  XQueryPointer (MI_DISPLAY(mi), MI_WINDOW(mi),
+                 &root, &child, &rootx, &rooty, &winx, &winy, &mask);
+
+  /* track the mouse only if a button is down. */
+  if (mask & (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask))
+    {
+      lastx = winx;
+      lasty = winy;
+    }
+  else
+    {
+      float scale = (max_lastx - min_lastx);
+      lastx -= min_lastx;
+      lasty -= min_lasty;
+      lastx /= scale;
+      lasty /= scale;
+      d_lastx /= scale;
+      d_lasty /= scale;
+      dd_lastx /= scale;
+      dd_lasty /= scale;
+      bounce(&lastx, &d_lastx, &dd_lastx, max_dlastx);
+      bounce(&lasty, &d_lasty, &dd_lasty, max_dlasty);
+      lastx *= scale;
+      lasty *= scale;
+      lastx += min_lastx;
+      lasty += min_lasty;
+      d_lastx *= scale;
+      d_lasty *= scale;
+      dd_lastx *= scale;
+      dd_lasty *= scale;
+    }
+
+  glXSwapBuffers(display, window);
+}
+
+
+/* set up lighting conditions */
+void SetupLight(void)
+{
+  glLightfv (GL_LIGHT0, GL_POSITION, lightOnePosition);
+  glLightfv (GL_LIGHT0, GL_DIFFUSE, lightOneColor);
+  glLightfv (GL_LIGHT1, GL_POSITION, lightTwoPosition);
+  glLightfv (GL_LIGHT1, GL_DIFFUSE, lightTwoColor);
+
+  glEnable (GL_LIGHT0);
+  glEnable (GL_LIGHT1);
+  glEnable (GL_LIGHTING);
+
+  glColorMaterial (GL_FRONT, GL_DIFFUSE);
+  glEnable (GL_COLOR_MATERIAL);
+}
+
+/* reset the projection matrix */
+void resetProjection(void) {
+  glMatrixMode(GL_PROJECTION);
+  glLoadIdentity();
+  glFrustum (-9, 9, -9, 9, 50, 150.0);
+  glMatrixMode(GL_MODELVIEW);
+  glLoadIdentity();
+}
+
+/* Standard reshape function */
+static void
+reshape(int width, int height)
+{
+  glViewport( 0, 0, global_width, global_height );
+  resetProjection();
+}
+
+
+/* decide which screensaver example to run */
+void chooseScreensaverExample(void) {
+  int i;
+  /* call the extrusion init routine */
+
+  if (!strncmp(which_name, "RANDOM", strlen(which_name))) {
+    screensaver_number = random() % num_screensavers;
+  }
+  else {
+       screensaver_number=-1;
+       for (i=0; i < num_screensavers; i++) {
+         if (!strncmp(which_name, funcs_ptr[i].name, strlen(which_name))) {
+               screensaver_number = i;
+         }
+       }         
+  }
+       
+  if (screensaver_number < 0 || screensaver_number >= num_screensavers) {
+       fprintf(stderr, "%s: invalid screensaver example number!\n", progname);
+       fprintf(stderr, "%s: known screensavers:\n", progname);
+       for (i=0; i < num_screensavers; i++)
+         fprintf(stderr,"\t%s\n", funcs_ptr[i].name);
+       exit(1);
+  }
+  init_rotation();
+  funcs_ptr[screensaver_number].InitStuff();
+}
+
+/* main OpenGL initialization routine */
+void initializeGL(GLsizei width, GLsizei height) 
+{
+  int style;
+  int mode;
+
+  global_width=width;
+  global_height=height;
+
+  glViewport( 0, 0, width, height ); 
+
+  glEnable(GL_DEPTH_TEST);
+  glClearColor(0,0,0,0);
+  glCullFace(GL_BACK);
+  glEnable(GL_CULL_FACE);
+  glShadeModel(GL_SMOOTH);
+
+  if (do_light)
+       SetupLight();
+  if (do_wire)
+       glPolygonMode(GL_FRONT,GL_LINE);
+  if (do_texture) {
+       Create_Texture(which_image, do_mipmap, do_texture_quality);
+       glEnable(GL_TEXTURE_2D);
+
+       /* configure the pipeline */
+       style = TUBE_JN_CAP;
+       style |= TUBE_CONTOUR_CLOSED;
+       style |= TUBE_NORM_FACET;
+       style |= TUBE_JN_ANGLE;
+       gleSetJoinStyle (style);
+
+       if (do_texture) {
+         mode = GLE_TEXTURE_ENABLE | GLE_TEXTURE_VERTEX_MODEL_FLAT;
+         glMatrixMode (GL_TEXTURE); glLoadIdentity ();
+         glScalef (0.25, 0.1, 1); glMatrixMode (GL_MODELVIEW);
+         gleTextureMode (mode);
+       }
+  }
+
+}
+
+/* xscreensaver initialization routine */
+void init_screensaver(ModeInfo * mi)
+{
+  int screen = MI_SCREEN(mi);
+  screensaverstruct *gp;
+
+  if (Screensaver == NULL) {
+       if ((Screensaver = (screensaverstruct *) calloc(MI_NUM_SCREENS(mi), sizeof (screensaverstruct))) == NULL)
+         return;
+  }
+  gp = &Screensaver[screen];
+
+  gp->window = MI_WINDOW(mi);
+  if ((gp->glx_context = init_GL(mi)) != NULL) {
+       reshape(MI_WIDTH(mi), MI_HEIGHT(mi));
+       initializeGL(MI_WIDTH(mi), MI_HEIGHT(mi));
+       chooseScreensaverExample();
+  } else {
+       MI_CLEARWINDOW(mi);
+  }
+
+}
+
+/* all sorts of nice cleanup code should go here! */
+void release_screensaver(ModeInfo * mi)
+{
+  int screen;
+  if (Screensaver != NULL) {
+       for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) {
+         /*      screensaverstruct *gp = &Screensaver[screen];*/
+       }
+       (void) free((void *) Screensaver);
+       Screensaver = NULL;
+  }
+  FreeAllGL(mi);
+}
+#endif
+
index 9d2975134181b65a43d76603b54349f7758bed20..25d640094e8757a99b4c60e36ffb36d09f8bee2f 100644 (file)
-#define matrix_width 56
-#define matrix_height 837
+#define matrix_width 77
+#define matrix_height 768
 static char matrix_bits[] = {
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf7,0xff,0xff,0x7b,0xff,
- 0xff,0xaf,0xc8,0xff,0xff,0x4d,0xfd,0xff,0x0f,0x22,0xff,0x7f,0x75,0xfb,0xff,
- 0x17,0x89,0xff,0xff,0xda,0xf5,0xff,0x47,0x25,0xfe,0xff,0xfd,0xfb,0xff,0x0b,
- 0x1f,0xff,0x7f,0xfa,0xf2,0xff,0x85,0x17,0xfe,0xbf,0xfd,0xf5,0xff,0x45,0x9d,
- 0xfe,0x7f,0xf5,0xf7,0xff,0x52,0x17,0xfd,0xaf,0xfd,0xe9,0xff,0x81,0x1f,0xfe,
- 0xbf,0xfe,0xf7,0xff,0x4a,0x2d,0xfa,0xbf,0xfa,0xe9,0xff,0xa1,0x1f,0xfd,0xbf,
- 0xfd,0xf7,0xff,0x92,0x2e,0xfc,0xdf,0xda,0xe9,0xff,0x85,0x9b,0xfe,0x7f,0xfd,
- 0xf7,0xff,0x52,0x0f,0xfe,0xdf,0xfa,0xf2,0xff,0x85,0x3d,0xfe,0xff,0xfa,0xfb,
- 0xff,0x47,0x8f,0xfe,0x7f,0xf9,0xea,0xff,0x0b,0x15,0xfe,0xff,0xdd,0xf5,0xff,
- 0x87,0x0b,0xff,0x7f,0x75,0xfb,0xff,0x17,0xad,0xfe,0xff,0xff,0xfe,0xff,0x5f,
- 0xa1,0xff,0xff,0x4b,0xff,0xff,0x5f,0xd4,0xff,0xff,0xff,0xff,0xff,0x77,0xeb,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,
- 0xff,0xff,0xf4,0xff,0xff,0x57,0xff,0xff,0x3f,0x90,0xff,0xff,0x4b,0xfd,0xff,
- 0x7f,0x48,0xff,0xff,0xa7,0xff,0xff,0x7f,0xe8,0xff,0xff,0xcf,0xff,0xff,0x3f,
- 0xe8,0xff,0xff,0xa7,0xff,0xff,0x7f,0xf8,0xff,0xff,0xcb,0xff,0xff,0x3f,0xfc,
- 0xff,0xff,0xcf,0xff,0xff,0x7f,0xf8,0xff,0xff,0xc7,0xff,0xff,0x3f,0xfa,0xff,
- 0xff,0xeb,0xff,0xff,0x7f,0xf8,0xff,0xff,0xa7,0xff,0xff,0x3f,0xfc,0xff,0xff,
- 0xcf,0xff,0xff,0x7f,0xf8,0xff,0xff,0xe7,0xff,0xff,0x3f,0xfa,0xff,0xff,0xcb,
- 0xff,0xff,0x7f,0xf8,0xff,0xff,0xcf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xc7,0xff,
- 0xff,0x7f,0xf8,0xff,0xff,0xd7,0xff,0xff,0x3f,0xfc,0xff,0xff,0xcb,0xff,0xff,
- 0x7f,0xf8,0xff,0xff,0xcf,0xff,0xff,0x3f,0xf8,0xff,0xff,0xe7,0xff,0xff,0x5f,
- 0xfa,0xff,0xff,0xad,0xff,0xff,0x3f,0xe8,0xff,0xff,0xd7,0xff,0xff,0x57,0xf5,
- 0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xfb,0xff,0xff,0xed,0xff,0xff,0x4f,0xad,0xff,0xff,0xb5,0xfa,0xff,
- 0x0f,0x12,0xff,0x7f,0x79,0xfb,0xff,0x07,0x09,0xff,0xff,0xea,0xf5,0xff,0x97,
- 0x2a,0xff,0x7f,0xfd,0xff,0xff,0x87,0x5e,0xff,0xff,0xf4,0xf5,0xff,0x4b,0x2b,
- 0xff,0xff,0xfa,0xff,0xff,0x05,0xbf,0xff,0xff,0xfa,0xff,0xff,0x8b,0xfd,0xff,
- 0xff,0xfa,0xff,0xff,0x47,0xf7,0xff,0xff,0xda,0xff,0xff,0x8f,0xfe,0xff,0xff,
- 0xf5,0xff,0xff,0x27,0xfa,0xff,0xff,0xdb,0xff,0xff,0x1f,0xfd,0xff,0xff,0xee,
- 0xff,0xff,0xaf,0xea,0xff,0xff,0x57,0xff,0xff,0x5f,0xf4,0xff,0xff,0xef,0xff,
- 0xff,0x77,0xd1,0xff,0xff,0xbb,0xfe,0xff,0xaf,0xd4,0xff,0xbf,0x5f,0xfd,0xff,
- 0xbb,0x42,0xff,0xff,0x75,0xfb,0xff,0x4f,0x29,0xff,0x7f,0xdf,0xfa,0xff,0x25,
- 0x05,0xff,0xff,0x55,0xfb,0xff,0x97,0x40,0xff,0x7f,0xab,0xfa,0xff,0x2f,0x12,
- 0xff,0xff,0x75,0xfd,0xff,0x8b,0x44,0xff,0xff,0xdf,0xff,0xff,0x7f,0xb5,0xff,
- 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf5,0xff,0xff,0x55,0xff,0xff,
- 0x8f,0xd2,0xff,0xff,0x7a,0xfd,0xff,0x17,0x44,0xff,0x7f,0x55,0xff,0xff,0x07,
- 0xa3,0xff,0xff,0xf9,0xfb,0xff,0x4f,0xa9,0xff,0xff,0xfc,0xfe,0xff,0x05,0x57,
- 0xff,0xff,0xda,0xff,0xff,0x8b,0xad,0xff,0x7f,0xf5,0xff,0xff,0x47,0xfa,0xff,
- 0xff,0xba,0xff,0xff,0x0f,0xfd,0xff,0xff,0xea,0xff,0xff,0x0f,0xf5,0xff,0xff,
- 0xd5,0xff,0xff,0x47,0xfc,0xff,0x7f,0xf5,0xff,0xff,0x17,0xf5,0xff,0xff,0xaa,
- 0xff,0xff,0x05,0xfa,0xff,0xbf,0xfd,0xff,0xff,0x4b,0xfd,0xff,0xff,0xf6,0xff,
- 0xff,0x25,0xfb,0xff,0x5f,0xfd,0xff,0xff,0x91,0xff,0xff,0xbf,0xfb,0xff,0xff,
- 0xc5,0xb6,0xff,0x7f,0xdd,0xfb,0xff,0x15,0x5b,0xff,0xff,0xfd,0xfa,0xff,0xc7,
- 0x0d,0xff,0xff,0x76,0xfb,0xff,0x95,0x26,0xff,0xff,0xdd,0xff,0xff,0x5f,0x91,
- 0xff,0xff,0x77,0xfd,0xff,0xaf,0xd4,0xff,0xff,0xdf,0xff,0xff,0x5f,0xd5,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x5f,0xfd,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfc,0xff,0xff,0xe5,0xff,0xff,0x17,
- 0xf8,0xff,0xff,0xab,0xff,0xff,0xaf,0xf4,0xff,0xff,0xd7,0xff,0xff,0x2f,0xe8,
- 0xff,0xff,0x55,0xff,0xff,0x9f,0xe4,0xff,0x7f,0xaf,0xfe,0xff,0x57,0xd0,0xff,
- 0xff,0x55,0xff,0xff,0x2f,0xa2,0xff,0xff,0xaf,0xfa,0xff,0x5f,0x11,0xff,0xff,
- 0x6a,0xfb,0xff,0x2f,0x44,0xff,0xff,0xad,0xf5,0xff,0x97,0x22,0xfe,0xff,0xd6,
- 0xfa,0xff,0x2b,0x14,0xfd,0xff,0x55,0xeb,0xff,0x8f,0x48,0xfe,0xff,0x6a,0xf5,
- 0xff,0x05,0x02,0xfa,0x7f,0x91,0xed,0xff,0x17,0x50,0xfd,0xff,0x4a,0xf5,0xff,
- 0x03,0x08,0xfd,0x7f,0xeb,0xff,0xff,0x4d,0xd2,0xfe,0xff,0xb5,0xfe,0xff,0x2f,
- 0xfa,0xff,0xff,0xef,0xff,0xff,0x57,0xed,0xff,0xff,0xfb,0xff,0xff,0xaf,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0xef,0xff,0xff,0x7f,0xfd,0xff,
- 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,
- 0xaf,0xf6,0xff,0xff,0x55,0xff,0xff,0x5f,0xc1,0xff,0xff,0x5f,0xfd,0xff,0x97,
- 0xa8,0xff,0xff,0xaa,0xfe,0xff,0x17,0x81,0xff,0xff,0x5f,0xfd,0xff,0x6f,0x62,
- 0xff,0xff,0xf7,0xfe,0xff,0xbf,0x95,0xff,0xff,0x5f,0xfb,0xff,0xdf,0xa2,0xff,
- 0xff,0xfe,0xfe,0xff,0xbf,0x4a,0xff,0xff,0x2b,0xfd,0xff,0xaf,0xa0,0xff,0xff,
- 0xab,0xfe,0xff,0x17,0x80,0xff,0x7f,0x55,0xfb,0xff,0x4f,0xd5,0xff,0xff,0xfa,
- 0xff,0xff,0x05,0xd2,0xff,0xff,0x6d,0xff,0xff,0x4b,0xf5,0xff,0x5f,0xf9,0xff,
- 0xff,0x85,0xfe,0xff,0x7f,0xfd,0xff,0xff,0x13,0xf7,0xff,0xdf,0xf6,0xff,0xff,
- 0xc5,0xfd,0xff,0xbf,0xfd,0xff,0xff,0x51,0xff,0xff,0xff,0xbe,0xff,0xff,0x8f,
- 0xa5,0xff,0xff,0xf5,0xfa,0xff,0x4b,0x2b,0xff,0xff,0xfe,0xff,0xff,0x97,0x95,
- 0xff,0xff,0xb7,0xfa,0xff,0xaf,0x4a,0xff,0xff,0xdf,0xff,0xff,0x5f,0xe5,0xff,
- 0xff,0x7b,0xff,0xff,0x7f,0xd2,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0xff,0xeb,0xff,0xff,
- 0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xaf,0xfa,0xff,0xff,0xad,0xff,0xff,0x7f,
- 0xe9,0xff,0xff,0xff,0xfe,0xff,0xbf,0xd2,0xff,0xff,0x2f,0xff,0xff,0xff,0xc2,
- 0xff,0xff,0xff,0xfa,0xff,0x7f,0x2b,0xff,0xff,0xbf,0xfb,0xff,0xff,0x15,0xff,
- 0xff,0xff,0xf5,0xff,0x7f,0x8b,0xfe,0xff,0x5b,0xf5,0xff,0x4f,0x11,0xfe,0x7f,
- 0x6d,0xf1,0xff,0x97,0x04,0xff,0xff,0xa9,0xf4,0xff,0x0f,0x01,0xfe,0x7f,0xdd,
- 0xf2,0xff,0x45,0x14,0xfe,0xff,0xf5,0xf5,0xff,0x0b,0x8b,0xfe,0xbf,0xfe,0xf5,
- 0xff,0xc2,0x1d,0xff,0xdf,0xba,0xf7,0xff,0x2b,0x17,0xfe,0x7f,0xfd,0xf2,0xff,
- 0x81,0x9d,0xfe,0xbf,0xff,0xfb,0xff,0x55,0x17,0xfe,0xff,0xfa,0xf5,0xff,0xa5,
- 0x1b,0xff,0x7f,0xfb,0xf5,0xff,0x4b,0x8d,0xfe,0xff,0xbd,0xfa,0xff,0x0f,0x27,
- 0xff,0x7f,0xf5,0xf7,0xff,0xcb,0x92,0xfe,0xff,0x7f,0xfd,0xff,0xaf,0xaa,0xff,
- 0xff,0xd7,0xff,0xff,0x5f,0xd5,0xff,0xff,0x7f,0xff,0xff,0x7f,0xf5,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x5f,0xf5,0xff,0xff,0xdb,0xff,0xff,0xef,0x96,0xff,0xff,0x7e,0xfd,0xff,0x1f,
- 0x55,0xff,0xff,0xa9,0xf7,0xff,0x87,0x90,0xfe,0xff,0x74,0xf9,0xff,0x0f,0x0a,
- 0xfd,0xff,0xd2,0xee,0xff,0x07,0x49,0xfe,0xff,0xfa,0xfb,0xff,0x17,0x55,0xff,
- 0xff,0xad,0xff,0xff,0x4f,0xfa,0xff,0xff,0xfb,0xff,0xff,0x17,0xbd,0xff,0xff,
- 0xee,0xff,0xff,0xaf,0xfa,0xff,0xff,0xd7,0xff,0xff,0x5f,0xfa,0xff,0xff,0xef,
- 0xff,0xff,0x7f,0xfa,0xff,0xff,0xb7,0xff,0xff,0xbf,0xf8,0xff,0xff,0xef,0xff,
- 0xff,0x7f,0xed,0xff,0xff,0xbf,0xff,0xff,0xbf,0xf4,0xff,0xff,0xef,0xff,0xff,
- 0xff,0xea,0xff,0xff,0xbf,0xfe,0xff,0xff,0xe5,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xe7,0xff,0xff,0x7f,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xfd,0xff,0xff,0xa5,
- 0xff,0xff,0xbf,0xfe,0xff,0xff,0xa7,0xff,0xff,0xff,0xfb,0xff,0xff,0x57,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0x6f,0xff,0xff,0xbf,0xd4,
- 0xff,0xff,0xfb,0xff,0xff,0xaf,0x56,0xff,0xff,0xb6,0xfa,0xff,0x5f,0x29,0xff,
- 0xff,0xfb,0xf5,0xff,0x87,0x8e,0xfe,0x7f,0xd9,0xf5,0xff,0x8f,0x12,0xfe,0xff,
- 0xfd,0xf5,0xff,0x0f,0x1b,0xff,0xff,0x74,0xf3,0xff,0x07,0x15,0xfe,0xff,0xda,
- 0xfa,0xff,0x97,0x8a,0xfe,0xff,0x6b,0xf5,0xff,0x0f,0x01,0xfe,0xff,0x15,0xf2,
- 0xff,0x5f,0x20,0xff,0xff,0x56,0xf9,0xff,0x17,0x04,0xfe,0xff,0xab,0xea,0xff,
- 0x4f,0x10,0xfd,0x7f,0xa5,0xf5,0xff,0x17,0x82,0xfe,0xff,0xda,0xf5,0xff,0x4f,
- 0x28,0xfe,0xff,0xe9,0xf6,0xff,0x0f,0x16,0xfd,0xff,0xfd,0xeb,0xff,0x87,0x55,
- 0xfd,0xff,0xb4,0xff,0xff,0x97,0x2e,0xfa,0xff,0xfb,0xea,0xff,0x0f,0x9b,0xfe,
- 0x7f,0xf9,0xf3,0xff,0x47,0x1d,0xfd,0xff,0xfd,0xeb,0xff,0x97,0x16,0xfe,0xff,
- 0xd7,0xfd,0xff,0x4f,0xab,0xfe,0xff,0x7d,0xf7,0xff,0x7f,0x55,0xff,0xff,0xff,
- 0xff,0xff,0xbf,0xaa,0xff,0xff,0xb7,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8,
- 0xff,0xff,0x5f,0xff,0xff,0xbf,0xd6,0xff,0xff,0xf7,0xfd,0xff,0xaf,0x52,0xff,
- 0xff,0xdd,0xf7,0xff,0x5f,0x2d,0xff,0xff,0xf5,0xfa,0xff,0x07,0x15,0xfe,0xff,
- 0xfa,0xeb,0xff,0x97,0xae,0xfe,0xff,0xdd,0xfd,0xff,0x4f,0x1b,0xfa,0xff,0xfa,
- 0xf7,0xff,0x8f,0xae,0xfd,0xff,0xfd,0xdb,0xff,0x47,0x5b,0xfc,0xff,0xf4,0xf6,
- 0xff,0x0f,0x2f,0xfb,0xff,0xda,0xf7,0xff,0x8f,0x9a,0xfc,0xff,0xfa,0xea,0xff,
- 0x87,0x2a,0xfe,0xff,0x55,0xfb,0xff,0x17,0x04,0xfd,0xff,0x50,0xe9,0xff,0x0f,
- 0x81,0xfe,0xff,0xad,0xfa,0xff,0x07,0x14,0xff,0xff,0xd6,0xff,0xff,0x5f,0x50,
- 0xff,0xff,0xeb,0xff,0xff,0x97,0xfc,0xff,0xff,0x57,0xff,0xff,0x3f,0xea,0xff,
- 0xff,0xef,0xff,0xff,0xbf,0xe8,0xff,0xff,0xaf,0xfe,0xff,0x7f,0xe4,0xff,0xff,
- 0x77,0xff,0xff,0xff,0xd2,0xff,0xff,0xbf,0xff,0xff,0x7f,0xd5,0xff,0xff,0xff,
- 0xfd,0xff,0xff,0x57,0xff,0xff,0x7f,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0xff,0xff,0xe2,0xff,0xff,
- 0x5f,0xff,0xff,0xff,0xe5,0xff,0xff,0xbf,0xfe,0xff,0xff,0xd3,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xe1,0xff,0xff,0xbf,0xfe,0xff,0xff,0xc7,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xe1,0xff,0xff,0xbf,0xfd,0xff,0xff,0x97,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0x53,0xff,0xff,0xff,0xfb,0xff,0x7f,0xab,0xff,0xff,0x7f,0xff,0xff,0xdf,
- 0x16,0xff,0xff,0xed,0xf5,0xff,0x5f,0xad,0xfe,0xff,0xff,0xfb,0xff,0xa7,0x3f,
- 0xff,0xff,0xfa,0xfb,0xff,0x5b,0x8d,0xfe,0x7f,0xff,0xf7,0xff,0xa5,0x3f,0xff,
- 0xbf,0xed,0xfa,0xff,0x92,0x8a,0xfc,0xaf,0xbe,0xa5,0xff,0xc9,0x0a,0xe2,0xbf,
- 0xd6,0x52,0xff,0x20,0x02,0xd0,0x9f,0xbd,0xaa,0xff,0xa1,0x55,0xe8,0xff,0xff,
- 0xff,0xfe,0xf5,0x56,0xf7,0xbf,0xff,0xff,0xff,0xf5,0xff,0xfd,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x17,0xf0,0xff,0xff,0xff,0xff,0xff,0x9b,
+ 0xfa,0xff,0x07,0xc0,0xff,0xff,0xff,0xff,0xff,0x6b,0xfb,0xff,0x83,0xe0,0xff,
+ 0xff,0xff,0xff,0xff,0xf5,0xf6,0xff,0x83,0x86,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xf5,0xff,0x82,0xc3,0xff,0xff,0xff,0xff,0xff,0xea,0xe7,0xff,0xc1,0x86,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0xa0,0x07,0xff,0xff,0xff,0xff,0xbf,0xfa,
+ 0xf7,0xff,0xc0,0x85,0xff,0xff,0xff,0xff,0xff,0xf6,0xeb,0xff,0x40,0x07,0xff,
+ 0xff,0xff,0xff,0xff,0xfa,0xeb,0xff,0xc0,0x87,0xfe,0xff,0xff,0xff,0x7f,0xed,
+ 0xef,0xff,0x60,0x03,0xff,0xff,0xff,0xff,0xff,0xbb,0xf3,0xff,0x80,0x87,0xff,
+ 0xff,0xff,0xff,0xff,0xfa,0xed,0xff,0xc1,0x85,0xff,0xff,0xff,0xff,0xff,0xf5,
+ 0xf7,0xff,0x40,0x87,0xff,0xff,0xff,0xff,0xff,0xfb,0xeb,0xff,0xa3,0x85,0xff,
+ 0xff,0xff,0xff,0xff,0xe9,0xf5,0xff,0x82,0xc3,0xff,0xff,0xff,0xff,0xff,0xb7,
+ 0xf7,0xff,0x43,0x85,0xff,0xff,0xff,0xff,0xff,0x7b,0xfd,0xff,0x8f,0xe0,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x2f,0xf8,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,
+ 0xfe,0xff,0x3f,0xe8,0xff,0xff,0xff,0xff,0xff,0x4f,0xfb,0xff,0x1f,0xd0,0xff,
+ 0xff,0xff,0xff,0xff,0x97,0xfe,0xff,0x1f,0xf4,0xff,0xff,0xff,0xff,0xff,0x9f,
+ 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x1f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0x4f,
+ 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7,
+ 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x1f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xcf,
+ 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0x4f,0xff,0xff,0x1f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0x5b,0xff,0xff,0x17,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x47,0xe9,0xff,
+ 0xff,0xff,0xff,0xff,0x53,0xf5,0xff,0x83,0xc2,0xff,0xff,0xff,0xff,0xff,0xf5,
+ 0xf7,0xff,0x03,0xc0,0xff,0xff,0xff,0xff,0xff,0xab,0xfa,0xff,0x83,0x86,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0x83,0xc5,0xff,0xff,0xff,0xff,0xff,0xf2,
+ 0xff,0xff,0x81,0xef,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc3,0xf6,0xff,
+ 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x82,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,
+ 0xff,0xff,0x83,0xfe,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x87,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x07,0xfd,0xff,0xff,0xff,0xff,0xff,0x6d,
+ 0xff,0xff,0x17,0xfd,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x1f,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0xfd,0xff,0x37,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x5d,0xf0,0xff,0xff,0xff,0xff,0xff,0xaf,0xfa,0xff,0x57,0xd1,0xff,
+ 0xff,0xff,0xff,0xff,0x7b,0xf5,0xff,0xaa,0xc0,0xff,0xff,0xff,0xff,0xff,0xad,
+ 0xfa,0xff,0x05,0xc0,0xff,0xff,0xff,0xff,0xff,0xd7,0xf6,0xff,0x03,0xc0,0xff,
+ 0xff,0xff,0xff,0xff,0x5b,0xfb,0xff,0x07,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xbf,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xab,0xfe,0xff,0x47,0xf1,0xff,0xff,0xff,0xff,0xff,0x75,
+ 0xfb,0xff,0x83,0xd0,0xff,0xff,0xff,0xff,0xff,0xab,0xfd,0xff,0x03,0xe0,0xff,
+ 0xff,0xff,0xff,0xff,0xf5,0xfe,0xff,0x83,0xeb,0xff,0xff,0xff,0xff,0xff,0xf3,
+ 0xfb,0xff,0x83,0xda,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x81,0xeb,0xff,
+ 0xff,0xff,0xff,0xff,0x6b,0xff,0xff,0x03,0xfd,0xff,0xff,0xff,0xff,0xff,0xd5,
+ 0xff,0xff,0x87,0xfe,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x03,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0x55,0xff,0xff,0x05,0xfe,0xff,0xff,0xff,0xff,0xff,0xeb,
+ 0xff,0xff,0x03,0xfc,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x41,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xfa,0xff,0x7f,0x81,0xfd,0xff,0xff,0xff,0xff,0xff,0xfa,
+ 0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff,0xff,0xa1,0xee,0xff,
+ 0xff,0xff,0xff,0xff,0xf9,0xfb,0xff,0xc1,0xc5,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xf6,0xff,0x42,0xc3,0xff,0xff,0xff,0xff,0xff,0xbb,0xfb,0xff,0x87,0xc5,0xff,
+ 0xff,0xff,0xff,0xff,0xef,0xf6,0xff,0x6b,0xd2,0xff,0xff,0xff,0xff,0xff,0x7b,
+ 0xff,0xff,0x2f,0xe8,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xff,0xdf,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x0b,0xfe,0xff,0xff,0xff,0xff,0xff,0x97,
+ 0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x0f,0xf8,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x17,0xf0,0xff,0xff,0xff,0xff,0xff,0x57,
+ 0xfb,0xff,0x0b,0xe8,0xff,0xff,0xff,0xff,0xff,0x5b,0xfd,0xff,0x17,0xc0,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xf5,0xff,0x17,0xc0,0xff,0xff,0xff,0xff,0xff,0xb7,
+ 0xf6,0xff,0x0b,0x80,0xff,0xff,0xff,0xff,0xff,0xd5,0xf5,0xff,0x07,0x40,0xff,
+ 0xff,0xff,0xff,0xff,0x2b,0xeb,0xff,0x05,0x80,0xff,0xff,0xff,0xff,0xff,0xcb,
+ 0xf5,0xff,0x03,0x80,0xfe,0xff,0xff,0xff,0xff,0x55,0xea,0xff,0x01,0x40,0xff,
+ 0xff,0xff,0xff,0xff,0x23,0xf7,0xff,0x02,0x00,0xff,0xff,0xff,0xff,0xff,0xdd,
+ 0xfd,0xff,0x07,0xf4,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x2b,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x5f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xaf,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x97,0xf0,0xff,
+ 0xff,0xff,0xff,0xff,0xf5,0xfa,0xff,0x0b,0xe8,0xff,0xff,0xff,0xff,0xff,0x1b,
+ 0xfd,0xff,0x07,0xe0,0xff,0xff,0xff,0xff,0xff,0xef,0xfa,0xff,0xaf,0xd0,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xbb,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfb,0xff,0x6f,0xe3,0xff,0xff,0xff,0xff,0xff,0xb7,0xfc,0xff,0xbf,0xd8,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xf6,0xff,0x0b,0xe0,0xff,0xff,0xff,0xff,0xff,0x2b,
+ 0xfd,0xff,0x0f,0xe0,0xff,0xff,0xff,0xff,0xff,0xd7,0xfa,0xff,0x03,0xf0,0xff,
+ 0xff,0xff,0xff,0xff,0xb9,0xff,0xff,0x82,0xfa,0xff,0xff,0xff,0xff,0x7f,0xeb,
+ 0xff,0xff,0x41,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0x81,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xed,
+ 0xff,0xff,0xa1,0xfd,0xff,0xff,0xff,0xff,0x7f,0xbb,0xff,0xff,0xa5,0xeb,0xff,
+ 0xff,0xff,0xff,0xff,0xfd,0xfa,0xff,0x83,0xc5,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xf7,0xff,0xc7,0xe2,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x57,0xd1,0xff,
+ 0xff,0xff,0xff,0xff,0xbb,0xfd,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x57,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x8f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x37,0xfd,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0x5f,0xfa,0xff,0xff,0xff,0xff,0xff,0xb7,0xfd,0xff,0x7f,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xf5,0xff,0xef,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xbf,0x82,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xf2,0xff,0x57,0xc1,0xff,0xff,0xff,0xff,0xff,0x75,
+ 0xe9,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x53,0xe5,0xff,0x03,0x80,0xff,
+ 0xff,0xff,0xff,0xff,0xbb,0xf3,0xff,0x43,0x81,0xff,0xff,0xff,0xff,0xff,0xed,
+ 0xf5,0xff,0x81,0x82,0xff,0xff,0xff,0xff,0xff,0xf6,0xf7,0xff,0xa0,0xc7,0xff,
+ 0xff,0xff,0xff,0x7f,0xfb,0xeb,0xff,0xc1,0x82,0xff,0xff,0xff,0xff,0xff,0x7a,
+ 0xf7,0xff,0xa0,0x87,0xff,0xff,0xff,0xff,0xff,0xfd,0xf5,0xff,0xa0,0xc5,0xff,
+ 0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x81,0x83,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xf5,0xff,0xc7,0xc2,0xff,0xff,0xff,0xff,0xff,0xed,0xf6,0xff,0x43,0x85,0xff,
+ 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0xaf,0xf2,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xfd,0xff,0xb7,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xe8,0xff,0xff,0xff,0xff,0xff,0xab,
+ 0xfa,0xff,0x87,0xd6,0xff,0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x03,0x80,0xff,
+ 0xff,0xff,0xff,0xff,0x53,0xf5,0xff,0x03,0x41,0xff,0xff,0xff,0xff,0xff,0x69,
+ 0xf7,0xff,0x03,0x80,0xff,0xff,0xff,0xff,0xff,0xd7,0xfd,0xff,0x87,0xd6,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x83,0xfa,0xff,0xff,0xff,0xff,0xff,0xab,
+ 0xff,0xff,0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x2f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x3f,0xfa,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xff,0x3f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x5f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfe,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xfc,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xea,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0xff,0xe7,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0x5f,0xf5,0xff,0xff,0xff,0xff,0xff,0xd7,0xfb,0xff,0x4f,0xc5,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xf5,0xff,0x83,0x82,0xff,0xff,0xff,0xff,0xff,0x6b,
+ 0xf7,0xff,0x87,0xc5,0xff,0xff,0xff,0xff,0xff,0xf3,0xeb,0xff,0x43,0x85,0xff,
+ 0xff,0xff,0xff,0xff,0xdb,0xf5,0xff,0x43,0x83,0xff,0xff,0xff,0xff,0xff,0x75,
+ 0xeb,0xff,0x87,0xc2,0xff,0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x03,0x80,0xff,
+ 0xff,0xff,0xff,0xff,0x2b,0xf1,0xff,0x0f,0x80,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xf4,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x53,0xeb,0xff,0x03,0x80,0xff,
+ 0xff,0xff,0xff,0xff,0x4b,0xf5,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0xb7,
+ 0xeb,0xff,0x03,0x40,0xff,0xff,0xff,0xff,0xff,0xeb,0xf6,0xff,0x87,0x86,0xff,
+ 0xff,0xff,0xff,0xff,0xf5,0xef,0xff,0x83,0x8b,0xfe,0xff,0xff,0xff,0xff,0xf3,
+ 0xf7,0xff,0x87,0x46,0xff,0xff,0xff,0xff,0xff,0xbb,0xeb,0xff,0x43,0x87,0xff,
+ 0xff,0xff,0xff,0xff,0xeb,0xeb,0xff,0x87,0x05,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xf7,0xff,0x4b,0xc5,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x6f,0xd5,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x5f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0x3f,0xf5,0xff,
+ 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x57,0xd5,0xff,0xff,0xff,0xff,0xff,0xbb,
+ 0xf5,0xff,0x4f,0xc5,0xff,0xff,0xff,0xff,0xff,0xeb,0xf7,0xff,0x03,0x83,0xff,
+ 0xff,0xff,0xff,0xff,0xf7,0xf7,0xff,0xc7,0x46,0xff,0xff,0xff,0xff,0xff,0x7b,
+ 0xeb,0xff,0x03,0x87,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xc7,0x8b,0xfe,
+ 0xff,0xff,0xff,0xff,0xfb,0xeb,0xff,0x83,0x46,0xff,0xff,0xff,0xff,0xff,0xeb,
+ 0xf7,0xff,0x87,0x8b,0xfe,0xff,0xff,0xff,0xff,0xf3,0xd6,0xff,0x83,0x84,0xff,
+ 0xff,0xff,0xff,0xff,0x95,0xf5,0xff,0x03,0x42,0xff,0xff,0xff,0xff,0xff,0x6b,
+ 0xf5,0xff,0x07,0x80,0xff,0xff,0xff,0xff,0xff,0x45,0xf5,0xff,0x03,0xc0,0xff,
+ 0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x07,0xd0,0xff,0xff,0xff,0xff,0xff,0xd7,
+ 0xfe,0xff,0x0f,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x17,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x5f,0xf4,0xff,0xff,0xff,0xff,0xff,0x6f,
+ 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0xbf,0xfd,0xff,0x5f,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfa,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf9,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0xfe,0xff,0x7f,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xf8,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xfd,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xe9,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfe,0xff,0xff,0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xaf,0xc5,0xff,
+ 0xff,0xff,0xff,0xff,0xdb,0xf7,0xff,0x57,0x87,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfb,0xff,0xa9,0xcd,0xff,0xff,0xff,0xff,0xff,0xf5,0xf7,0xff,0xca,0xc7,0xff,
+ 0xff,0xff,0xff,0xff,0xde,0xed,0xff,0x60,0x05,0xff,0xff,0xff,0xff,0xbf,0x7a,
+ 0xab,0xff,0x90,0x02,0xf8,0xff,0xff,0xff,0x7f,0xdd,0x52,0x7f,0xa0,0x00,0xf4,
+ 0xff,0xff,0xff,0xff,0xb6,0xad,0xff,0x50,0x01,0xf8,0xff,0xff,0xff,0xff,0xfe,
+ 0xf7,0xff,0xd8,0xab,0xfe,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xfb,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x57,0xfe,0xff,0xff,0xff,0xff,0xff,0xeb,
+ 0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0x0f,0xfd,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0x77,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xfd,0xff,0x5f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x86,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xf5,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x87,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xf7,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xc2,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0xfe,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0xff,0xff,0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x8f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xdf,0xfa,0xff,0xff,0xff,0xff,0xff,0x6f,0xfd,0xff,0xaf,0xe8,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xfe,0xff,0x57,0xd1,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0xf5,0xff,0xd2,0x50,0xff,0xff,0xff,0xff,0xff,0xfa,0xfa,0xff,0xd5,0xa1,0xfe,
+ 0xff,0xff,0xff,0xff,0x7f,0xdd,0xff,0xe8,0x90,0xfe,0xff,0xff,0xff,0x7f,0xfd,
+ 0xed,0xff,0xb4,0xa9,0xfe,0xff,0xff,0xff,0x7f,0xbf,0xbc,0xff,0xf8,0x70,0xfa,
+ 0xff,0xff,0xff,0xff,0x7e,0xff,0x7f,0xf4,0x91,0xfa,0xff,0xff,0xff,0xff,0xfe,
+ 0xd5,0xfe,0xf8,0xaa,0xf5,0xff,0xff,0xff,0xbf,0xfe,0x7f,0x7f,0xf4,0x47,0xf1,
+ 0xff,0xff,0xff,0xff,0xfe,0xeb,0xfd,0xd8,0x85,0xf2,0xff,0xff,0xff,0xff,0xfe,
+ 0x77,0x7f,0xf0,0x47,0xf5,0xff,0xff,0xff,0x7f,0xfd,0xd7,0xff,0xf8,0x07,0xf5,
+ 0xff,0xff,0xff,0xff,0xef,0xff,0xfe,0x55,0x17,0xfa,0xff,0xff,0xff,0xff,0x7f,
+ 0xaf,0xff,0x6f,0x5f,0xfc,0xff,0xff,0xff,0xff,0xf7,0xdf,0xff,0x97,0x3d,0xfe,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x55,0xfd,0xff,
+ 0xff,0xff,0xff,0xdf,0x56,0xff,0xff,0x2a,0xea,0xff,0xff,0xff,0xff,0xff,0xad,
+ 0xfb,0x3f,0x09,0xd4,0xff,0xff,0xff,0xff,0xbf,0xd7,0xfe,0xff,0x15,0xe8,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0xff,0xbf,0x2a,0xfc,0xff,0xff,0xff,0xff,0xdf,0x4b,0xff,0x7f,0x1f,0xd4,0xff,
+ 0xff,0xff,0xff,0x6f,0xdf,0xfd,0x1f,0x12,0xfa,0xff,0xff,0xff,0xff,0xff,0x4d,
+ 0xff,0x7f,0x17,0xac,0xff,0xff,0xff,0xff,0xdf,0xaf,0xfb,0xbf,0x15,0xf4,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1e,0xba,0xff,0xff,0xff,0xff,0xff,0xad,
+ 0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x1d,0xf6,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0x5f,
+ 0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x3f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x1f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xd7,
+ 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0xff,0xff,0x3f,0xfd,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf3,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xaa,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x2b,0xa5,0xfe,0xff,0xff,0xff,0xff,0xfb,
+ 0xdf,0xff,0x47,0x55,0xfe,0xff,0xff,0xff,0xff,0x6b,0xb7,0xff,0x47,0x15,0xfe,
+ 0xff,0xff,0xff,0xff,0xf7,0xdd,0xff,0x03,0x2b,0xfc,0xff,0xff,0xff,0xff,0xab,
+ 0xaf,0xff,0x87,0x14,0xfe,0xff,0xff,0xff,0xff,0xdb,0xd4,0xff,0x03,0x01,0xfc,
+ 0xff,0xff,0xff,0xff,0x6b,0x57,0xff,0x06,0x00,0xfc,0xff,0xff,0xff,0xff,0x5a,
+ 0xd5,0xff,0x01,0x00,0xfc,0xff,0xff,0xff,0xff,0xad,0xb5,0xff,0x00,0x00,0xfa,
+ 0xff,0xff,0xff,0xbf,0x6a,0xd5,0xff,0x00,0x00,0xfd,0xff,0xff,0xff,0xff,0xdf,
+ 0xb6,0xff,0x22,0x81,0xfe,0xff,0xff,0xff,0xff,0x6b,0xe3,0xff,0x0b,0x01,0xfd,
+ 0xff,0xff,0xff,0xff,0xf7,0xf5,0xff,0xa7,0x82,0xff,0xff,0xff,0xff,0xff,0x5b,
+ 0xdf,0xff,0x47,0x85,0xfe,0xff,0xff,0xff,0xff,0xf5,0xf5,0xff,0x83,0xaa,0xfe,
+ 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x47,0x6d,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xff,0xff,0x87,0xfa,0xff,0xff,0xff,0xff,0xff,0xf7,0xfd,0xff,0xaf,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0x17,0xfc,0xff,0xff,0xff,0xff,0xff,0xd7,
+ 0xff,0xff,0x3f,0xfa,0xff,0xff,0xff,0xff,0xff,0xaf,0xfe,0xff,0x1f,0xf8,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xeb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xfd,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0x5b,0xc9,0xff,
+ 0xff,0xff,0xff,0xff,0xaa,0xfb,0xff,0xa0,0x82,0xff,0xff,0xff,0xff,0x7f,0x75,
+ 0xf5,0xff,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xab,0xeb,0xff,0x00,0x80,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xfe,0xff,0x07,0xad,0xfe,0xff,0xff,0xff,0xff,0xab,
+ 0xef,0xff,0x0b,0x52,0xff,0xff,0xff,0xff,0xff,0xdf,0xfb,0xff,0x17,0xac,0xfe,
+ 0xff,0xff,0xff,0xff,0x57,0xbf,0xff,0x3f,0xbe,0xfe,0xff,0xff,0xff,0xff,0xdf,
+ 0xff,0xff,0x1f,0xfc,0xfe,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xba,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfe,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xf9,0xff,
+ 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0xaf,0xf9,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xfd,0xff,0xc7,0xf0,0xff,0xff,0xff,0xff,0xff,0x7b,0xfe,0xff,0x43,0xf9,0xff,
+ 0xff,0xff,0xff,0xff,0x6b,0xfd,0xff,0x87,0xf0,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xfa,0xff,0x43,0xe9,0xff,0xff,0xff,0xff,0xff,0xab,0xfe,0xff,0xa7,0xf0,0xff,
+ 0xff,0xff,0xff,0xff,0xbb,0xfa,0xbf,0x82,0xa8,0xff,0xff,0xff,0xff,0xbf,0x69,
+ 0xfa,0x7f,0x01,0x50,0xff,0xff,0xff,0xff,0xdf,0xaa,0xd4,0x3f,0x00,0xa0,0xfe,
+ 0xff,0xff,0xff,0xf7,0xb5,0xfa,0xbf,0x02,0x40,0xff,0xff,0xff,0xff,0xff,0x77,
+ 0xfd,0xff,0xc3,0xb0,0xff,0xff,0xff,0xff,0xff,0xeb,0xf6,0xff,0x03,0xe9,0xff,
+ 0xff,0xff,0xff,0xff,0xbb,0xfd,0xff,0xc7,0xd1,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xf7,0xff,0xa3,0xca,0xff,0xff,0xff,0xff,0xff,0xf7,0xfd,0xff,0x87,0xc7,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xf7,0xff,0xc7,0xa5,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xfb,0xff,0xa7,0xcf,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xc7,0x87,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xff,0xff,0xcf,0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xff,0xff,0x2f,0xfa,0xff,0xff,0xff,0xff,0xff,0xde,0xfe,0xff,0x10,0xd4,0xff,
+ 0xff,0xff,0xff,0xbf,0x8a,0xf5,0xff,0x08,0x84,0xff,0xff,0xff,0xff,0xff,0x56,
+ 0xeb,0x7f,0x00,0x40,0xff,0xff,0xff,0xff,0x7f,0xad,0xff,0xff,0x18,0x04,0xff,
+ 0xff,0xff,0xff,0xbf,0xae,0xeb,0xff,0x28,0xa4,0xff,0xff,0xff,0xff,0xff,0xd6,
+ 0xf6,0x7f,0x10,0x84,0xfe,0xff,0xff,0xff,0x7f,0x4d,0xeb,0xff,0x00,0x40,0xff,
+ 0xff,0xff,0xff,0x7f,0x55,0xf7,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x9e,
+ 0xed,0xff,0x18,0x84,0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xff,0x15,0xea,0xff,
+ 0xff,0xff,0xff,0xff,0xd6,0xf7,0xff,0x3d,0x5c,0xff,0xff,0xff,0xff,0xff,0x5f,
+ 0xff,0xff,0x1f,0xf6,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xef,
+ 0xff,0xff,0x5f,0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xd1,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfa,0xff,0xff,0x69,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xa1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc2,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xf5,0xff,0xff,0x83,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc2,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xf5,0xff,0xff,0x81,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfa,0xff,0x7f,0xc0,0xff,0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0x40,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0x7f,0xa1,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xf5,0xff,0xff,0xa1,0xfe,0xff,0xff,0xff,0xff,0xbf,0xec,0xff,0xbf,0x41,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xd6,0xff,0xff,0x82,0xfe,0xff,0xff,0xff,0xff,0xff,
+ 0xf5,0xff,0xff,0x81,0xfe,0xff,0xff,0xff,0xff,0xbf,0xda,0xff,0x57,0x00,0xff,
+ 0xff,0xff,0xff,0xff,0x6b,0xf7,0xff,0x2a,0x80,0xff,0xff,0xff,0xff,0xff,0xae,
+ 0xfa,0xff,0x05,0xc0,0xff,0xff,0xff,0xff,0xff,0xf7,0xef,0xff,0x94,0x5a,0xff,
+ 0xff,0xff,0xff,0xbf,0xdd,0xff,0xff,0x6b,0xdf,0xfe,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xf6,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xef,0xff,0xff,0xaf,0xfc,0xff,0xff,
- 0xf5,0xff,0xff,0x2f,0xfd,0xff,0xff,0xdb,0xff,0xff,0x5f,0xfa,0xff,0xff,0xb7,
- 0xff,0xff,0x7f,0xe9,0xff,0xff,0xdf,0xfe,0xff,0xbf,0xe4,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xd2,0xff,0xff,0xdf,0xfd,0xff,0xff,0x4b,0xff,0xff,0x7f,0xf7,0xff,
- 0xff,0x2d,0xff,0xff,0xff,0xfb,0xff,0xff,0x17,0xfe,0xff,0xff,0xf5,0xff,0xff,
- 0x5f,0xff,0xff,0xff,0xf5,0xff,0xff,0x1f,0xfd,0xff,0xff,0xf7,0xff,0xff,0x17,
- 0xfe,0xff,0x7f,0xfb,0xff,0xff,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0xff,
- 0xff,0xbf,0xfe,0xff,0xff,0xe5,0xff,0xff,0xdf,0xff,0xff,0x7f,0xea,0xff,0xff,
- 0x6b,0xff,0xff,0xbf,0xf4,0xff,0xff,0xef,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,
- 0xff,0xff,0x2f,0xfc,0xff,0xff,0xfb,0xff,0xff,0x9f,0xff,0xff,0xff,0xfd,0xff,
- 0xff,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xe5,0xff,0xff,0xb7,0xfe,0xff,0x5f,0xa9,0xff,0xff,0x7d,
- 0xff,0xff,0x57,0x45,0xff,0xbf,0xbf,0xfa,0xff,0x55,0x53,0xfd,0xff,0x76,0xed,
- 0xff,0xab,0x83,0xfa,0xbf,0xbf,0xf6,0xff,0xd1,0x51,0xfa,0x6f,0x7f,0xbf,0xff,
- 0x6a,0xc7,0xfa,0xbf,0x7f,0xed,0xff,0xf1,0xa1,0xea,0xbf,0x7f,0xbf,0xff,0xf4,
- 0xd7,0xea,0xdf,0xbe,0xf5,0xfe,0xd2,0x4b,0xd5,0xbf,0xff,0xdf,0x7d,0xf9,0xa5,
- 0xca,0xaf,0xff,0xf5,0xfe,0xe2,0x1f,0xa6,0x7f,0xff,0xbb,0xff,0xb9,0x57,0xd5,
- 0xaf,0xff,0xed,0xfd,0xe0,0x2f,0xca,0x7f,0xfb,0x77,0xff,0xf5,0x9f,0xea,0xbf,
- 0xef,0xdb,0xff,0x97,0x3e,0xe9,0xff,0xfe,0x6f,0xff,0x6d,0xdb,0xf4,0xff,0xfb,
- 0xbf,0xff,0x5f,0x7d,0xf9,0xff,0xef,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x6d,0xfd,0xff,0xdf,0xab,0xff,0xbf,0x55,0xaa,0xff,0xbf,0xd6,
- 0xfa,0xff,0x24,0x50,0xff,0xf7,0xd7,0xff,0x7f,0x5b,0xda,0xff,0xff,0xd7,0xff,
- 0xff,0x57,0xe8,0xff,0xff,0xdb,0xff,0xff,0xbf,0xfc,0xff,0xbf,0xcf,0xff,0xbf,
- 0x5a,0xb4,0xff,0xf7,0x6b,0xff,0xbf,0x5e,0xd8,0xff,0x7b,0xd7,0xfd,0x5f,0x25,
- 0xea,0xfe,0xef,0xcb,0xff,0x3f,0x5d,0xb4,0xff,0xff,0x6f,0xff,0x7f,0x2b,0xd4,
- 0xfe,0xff,0xd5,0xfb,0xff,0xbf,0xe8,0xff,0xdf,0xd7,0xff,0x7f,0x2b,0x7a,0xff,
- 0xff,0xd7,0xff,0xff,0x7f,0xf8,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc,0xff,0xff,
- 0xd7,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7,
- 0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7,0xff,
- 0xff,0xbf,0xf8,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfa,0xff,0xff,0xe7,0xff,0xff,
- 0x7f,0xf4,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xef,0xff,0xff,0xff,0xfe,0xff,0xff,0xef,
- 0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,
- 0xff,0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,
- 0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xeb,0xff,0xff,0xbf,
- 0xfc,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc,
- 0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfd,0xff,
- 0xff,0xef,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0x7f,0xfc,0xff,0xff,
- 0xdf,0xff,0xff,0xbf,0xfa,0xff,0xff,0xef,0xff,0xff,0xff,0xf4,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xea,0xff,0xff,0x7f,0xff,0xff,0xff,0xe3,0xff,0xff,0xbf,0xff,
- 0xff,0xff,0xd5,0xff,0xff,0xff,0xfe,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xaf,0xaa,0xfe,0xff,0x55,0xf5,0xff,0x5f,0x95,0xfa,0xff,0xff,0xdf,
- 0xff,0x2f,0x52,0xf9,0x7f,0xd9,0xb6,0xff,0x8f,0xad,0xfa,0xff,0xf6,0xdf,0xff,
- 0x97,0xb6,0xf0,0xff,0xfb,0xab,0xff,0x0f,0x55,0xfa,0xff,0xac,0xde,0xff,0xa7,
- 0x54,0xf1,0xff,0xd7,0xaa,0xff,0x17,0x02,0xf8,0xff,0xb4,0xaa,0xff,0x8d,0x54,
- 0xf2,0x7f,0xab,0xd5,0xff,0x43,0x82,0xe8,0xbf,0xdd,0x6a,0xff,0x29,0x11,0xf4,
- 0xaf,0xb6,0xda,0xff,0x05,0x8a,0xea,0x7f,0x6b,0xeb,0xff,0xaa,0x24,0xfa,0xff,
- 0xbd,0xb1,0xff,0x57,0x09,0xfa,0xff,0xd6,0xed,0xff,0x8f,0x14,0xfd,0xff,0x7b,
- 0xf5,0xff,0x2f,0x25,0xfa,0x7f,0xed,0xdb,0xff,0x8f,0x9a,0xfa,0xff,0xfa,0xff,
- 0xff,0x4f,0xab,0xfa,0xff,0xdd,0xee,0xff,0x17,0xed,0xfe,0xff,0xf7,0xff,0xff,
- 0x4f,0xb5,0xff,0xff,0x5a,0xff,0xff,0xaf,0xea,0xff,0xff,0xef,0xff,0xff,0x3f,
- 0xf4,0xff,0xff,0xb7,0xff,0xff,0x5f,0xe9,0xff,0xff,0xcf,0xff,0xff,0x7f,0xf4,
- 0xff,0xff,0x7f,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xfa,0xff,
- 0xff,0x4b,0xff,0xff,0x7f,0xff,0xff,0xff,0xa5,0xff,0xff,0xdf,0xfa,0xff,0xbf,
- 0x25,0xff,0x7f,0x75,0xfb,0xff,0x41,0x95,0xfe,0x5f,0xad,0xf5,0xff,0x01,0x08,
- 0xff,0xbf,0xd5,0xfa,0xff,0x4a,0x25,0xfe,0xff,0x7a,0xf7,0xff,0x15,0x92,0xfe,
- 0xff,0xcf,0xfb,0xff,0x97,0xa8,0xfa,0xff,0xea,0xde,0xff,0x4f,0x56,0xfd,0xff,
- 0xaf,0xf7,0xff,0x3f,0xb8,0xfa,0xff,0xeb,0xdf,0xff,0xff,0xec,0xfa,0xff,0xdf,
- 0xff,0xff,0x3f,0xfa,0xfb,0xff,0xef,0xff,0xff,0x7f,0xe9,0xfd,0xff,0x7f,0xff,
- 0xff,0xff,0xed,0xff,0xff,0xbf,0xff,0xff,0x7f,0xe5,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xff,0xff,0xff,0xfd,0xff,0xff,
- 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0x5b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xe7,0xff,0xff,0xbd,0xff,0xff,0x9f,0xf3,0xff,0xff,0xff,0xfe,0xff,
- 0xaf,0xc5,0xff,0xff,0x5a,0xff,0xff,0x97,0xe2,0xff,0xff,0xbd,0xfe,0xff,0x4f,
- 0xd3,0xff,0xff,0xba,0xfe,0xff,0x0f,0xc5,0xff,0xff,0x7b,0xff,0xff,0xa7,0xd1,
- 0xff,0xff,0x5c,0xfd,0xff,0x8f,0x42,0xff,0xff,0x55,0xfe,0xff,0x8a,0x64,0xff,
- 0x57,0xba,0xfa,0x3f,0x05,0x41,0xfd,0xef,0x29,0xd5,0xbf,0x44,0x80,0xfa,0x7b,
- 0xb5,0xfe,0xbf,0x0a,0x45,0xfd,0xef,0xba,0xfa,0x7f,0x47,0xa1,0xfe,0xff,0x6d,
- 0xff,0xff,0x17,0xa5,0xff,0x7f,0x7d,0xfd,0xff,0x8f,0x53,0xff,0xff,0xbb,0xf7,
- 0xff,0xaf,0x4a,0xff,0xff,0xfd,0xfd,0xff,0x8f,0x55,0xff,0x7f,0x75,0xfb,0xff,
- 0x4f,0x2b,0xff,0xff,0xfd,0xff,0xff,0x97,0x9f,0xfe,0xff,0xff,0xf5,0xff,0x4f,
- 0x5f,0xff,0xff,0xfa,0xfb,0xff,0x97,0x2f,0xfe,0xff,0xfd,0xff,0xff,0xdf,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xaf,0xff,0xfa,0xff,0xff,0xdf,0xff,0xdf,0xff,0xfd,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xfe,0xff,0xff,0xef,0xff,0xff,0x7f,0xfd,0xff,0xff,0xf7,0xff,0xff,
- 0x7f,0xfc,0xff,0xff,0xdf,0xff,0xff,0x7f,0xfa,0xff,0xff,0xe7,0xff,0xff,0xbf,
- 0xf8,0xff,0xff,0xdb,0xff,0xff,0x5b,0xfc,0xff,0x7f,0xa7,0xff,0xff,0x2a,0x48,
- 0xff,0x9f,0xad,0xf5,0xff,0xa1,0x24,0xfe,0xaf,0xc6,0xf6,0xff,0x10,0x10,0xfd,
- 0x5f,0x6b,0xeb,0x7f,0x41,0x4a,0xfd,0x5f,0xd7,0xfd,0xff,0x34,0x28,0xfd,0xbf,
- 0xcf,0xeb,0xff,0xa9,0x2c,0xfd,0x5f,0xe5,0xfe,0xff,0x20,0x94,0xfc,0x2f,0x57,
- 0xeb,0xff,0x51,0x28,0xfe,0xbf,0xa5,0xf5,0xff,0x01,0x80,0xfa,0xdf,0xae,0xeb,
- 0xff,0x6a,0x2a,0xfe,0xbf,0xd7,0xfe,0xff,0x35,0xb8,0xff,0xff,0xef,0xff,0xff,
- 0xbb,0x5c,0xfd,0xff,0xd7,0xff,0xff,0x7f,0xf4,0xff,0xff,0xef,0xff,0xff,0xbf,
- 0xfc,0xff,0xff,0xd7,0xff,0xff,0x7f,0xfa,0xff,0xff,0xef,0xff,0xff,0xbf,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xef,0xff,0xff,0xff,0xfe,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xef,0xff,0xff,0x7f,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xfd,0xff,0xff,
- 0x53,0xff,0xff,0xbf,0xfe,0xff,0xff,0x45,0xfd,0xff,0x7f,0xf5,0xff,0xff,0x53,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0x85,0xfe,0xff,0xff,0xf2,0xff,0xff,0x2b,0xff,
- 0xff,0xff,0xfb,0xff,0xff,0x97,0xfe,0xff,0x5f,0xf5,0xff,0xff,0x01,0xfe,0xff,
- 0x7f,0xfd,0xff,0x7f,0x55,0xff,0xff,0x5f,0xf5,0xff,0xff,0x02,0xfd,0xff,0x7f,
- 0xfb,0xff,0xff,0xa5,0xfe,0xff,0x5f,0xed,0xff,0xff,0x43,0xfd,0xff,0x7f,0xfd,
- 0xff,0xff,0x92,0xfe,0xff,0xbf,0xea,0xff,0xff,0x45,0xfa,0xff,0x7f,0xdb,0xff,
- 0xff,0x13,0xfa,0xff,0xff,0xed,0xff,0xff,0x85,0xfa,0xff,0x2f,0xf5,0xff,0x2f,
- 0x25,0xfd,0xbf,0xf5,0xda,0xff,0xb5,0x10,0xfd,0x7f,0x97,0xfd,0xff,0x0a,0x8a,
- 0xfe,0xff,0xfd,0xf7,0xff,0x6b,0x69,0xfd,0xdf,0xef,0xff,0xff,0xaa,0xbe,0xff,
- 0x7f,0xff,0xdf,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xfd,0xff,0xff,0xef,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xf9,0xff,0xff,0xcf,0xff,0xff,0x7f,0xfc,0xff,0xff,0xeb,0xff,0xff,0x7f,0xf4,
- 0xff,0xff,0xaf,0xff,0xff,0x2b,0xd8,0xff,0xaf,0xa2,0xfd,0xff,0x21,0xa2,0xfe,
- 0x3f,0x8b,0xf6,0xff,0x08,0x28,0xfd,0x9f,0x6a,0xfb,0xff,0x50,0x80,0xfe,0xbf,
- 0xd7,0xee,0xff,0xa2,0xd4,0xfe,0xaf,0xbe,0xff,0xff,0x51,0x52,0xff,0xbf,0x6f,
- 0xfd,0xff,0x68,0xd5,0xff,0x5f,0xbf,0xff,0xff,0xb3,0xa2,0xff,0xbf,0xfb,0xfe,
- 0xff,0xd0,0xd3,0xff,0x7f,0x5f,0xff,0xff,0x6b,0xe5,0xff,0xdf,0x7d,0xfd,0xff,
- 0xa9,0xa2,0xff,0x7f,0xb7,0xff,0xff,0x55,0xd5,0xff,0xff,0xfd,0xfe,0xff,0x0b,
- 0xd5,0xff,0xff,0xd5,0xfb,0xff,0xa7,0xaa,0xfe,0xff,0xfa,0xff,0xff,0x17,0x3d,
- 0xff,0xff,0xed,0xeb,0xff,0x8f,0x5e,0xfd,0xff,0xff,0xff,0xff,0x5f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xbf,0xff,0xff,0xff,0x51,0x9f,
- 0xfe,0xdf,0xfe,0xf5,0xff,0xea,0x5b,0xfe,0xbf,0xff,0xfb,0xff,0xb1,0x5f,0xfd,
- 0xdf,0xfe,0xef,0xff,0xea,0x3e,0xfd,0xbf,0xff,0xf7,0xff,0xd1,0x57,0xfd,0x7f,
- 0xff,0xdd,0xff,0x6a,0xaf,0xfa,0xaf,0xfb,0xf7,0xff,0xe9,0x3f,0xfd,0x7f,0xff,
- 0xfb,0xff,0xb1,0x5b,0xfd,0xbf,0xff,0xdf,0xff,0xea,0x2f,0xfa,0xdf,0xfe,0xf5,
- 0xff,0x69,0xbf,0xfd,0xbf,0xf7,0xef,0xff,0xe1,0x57,0xfc,0x5f,0xdf,0xf5,0xff,
- 0xb5,0x2e,0xfb,0xbf,0xff,0xdb,0xff,0xa1,0x15,0xfd,0x7f,0x75,0xf5,0xff,0x54,
- 0x95,0xfc,0x5f,0xdf,0xf7,0xff,0x43,0x15,0xfd,0xff,0xfd,0xed,0xff,0xb4,0x5b,
- 0xfd,0xbf,0xff,0xfb,0xff,0xeb,0x5f,0xfe,0xdf,0xff,0xff,0xff,0xf2,0x7f,0xfb,
- 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xdb,0xfe,0xff,0x7f,0xed,0xff,0xff,0x55,0x53,
- 0xfd,0xbf,0xb6,0xea,0xff,0x02,0x09,0xfa,0x5f,0x59,0xb5,0xff,0x41,0xa2,0xf4,
- 0xff,0xb6,0xfe,0xff,0x17,0x91,0xfa,0xff,0x5b,0xf7,0xff,0x57,0x64,0xff,0xff,
- 0xb7,0xfe,0xff,0x5f,0xd1,0xff,0xff,0x6f,0xff,0xff,0xaf,0xc2,0xff,0xff,0x5f,
- 0xfd,0xff,0xff,0x65,0xff,0xff,0x7f,0xff,0xff,0xff,0xd2,0xff,0xff,0xbf,0xfe,
- 0xff,0xff,0xe3,0xff,0xff,0x7f,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xe5,0xff,0xff,0xbf,0xfe,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xd3,0xff,0xff,0xff,0xfe,0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,
- 0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,
- 0xff,0xff,0xfb,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,
- 0x9c,0xfe,0xff,0xd7,0xf5,0xff,0x7f,0x5a,0xfe,0xff,0xef,0xf7,0xff,0xbf,0x2c,
- 0xfd,0xff,0xdb,0xed,0xff,0x7f,0x3a,0xfd,0xff,0xef,0xfb,0xff,0x5f,0x98,0xfa,
- 0xff,0xab,0xd7,0xff,0x77,0x4c,0xfc,0xff,0xd7,0xea,0xff,0x1f,0x28,0xf2,0xff,
- 0x4a,0xab,0xff,0xa5,0x08,0xf9,0xff,0xd7,0xd5,0xff,0x17,0x52,0xe8,0xff,0x6b,
- 0xbb,0xff,0x5f,0x14,0xfa,0xff,0xd7,0xed,0xff,0x7f,0xa8,0xfa,0xff,0xdf,0xf7,
- 0xff,0xbf,0x2c,0xfd,0xff,0xe7,0xdb,0xff,0x7f,0xaa,0xfa,0xff,0xdf,0xf6,0xff,
- 0x7f,0x38,0xfd,0xff,0xeb,0xdb,0xff,0xbf,0x4c,0xfa,0xff,0xcf,0xff,0xff,0x7f,
- 0x3a,0xfd,0xff,0xef,0xeb,0xff,0x7f,0x94,0xfa,0xff,0xd7,0xf6,0xff,0x7f,0x5a,
- 0xfd,0xff,0xef,0xdb,0xff,0x7f,0x14,0xfd,0xff,0xaf,0xf6,0xff,0x7f,0x54,0xfc,
- 0xff,0xd7,0xf5,0xff,0x7f,0x08,0xfe,0xff,0xef,0xfb,0xff,0xbf,0xaa,0xfd,0xff,
- 0xff,0xef,0xff,0xff,0xbe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xa5,0xff,0xff,0xaf,0xfd,0xff,0xff,0xa9,0xeb,
- 0xff,0xbf,0x77,0xff,0xff,0x52,0x95,0xfe,0xff,0xde,0xe9,0xff,0xab,0x2a,0xf2,
- 0xff,0x6b,0x55,0xff,0x56,0x00,0xd4,0x7f,0xaf,0xeb,0xff,0x2b,0x15,0xf1,0xff,
- 0xf5,0xb5,0xff,0xaf,0xac,0xfc,0xff,0xdf,0xff,0xff,0x57,0x2a,0xf6,0xff,0xea,
- 0xd6,0xff,0x17,0xbd,0xfa,0xff,0xf5,0xff,0xff,0x4f,0xdd,0xfa,0xbf,0xde,0xbf,
- 0xff,0x25,0xfa,0xfa,0xff,0xf5,0xef,0xff,0x4b,0xfd,0xf9,0x5f,0xff,0xbf,0xff,
- 0x29,0xdd,0xf4,0x7f,0xd7,0xdf,0xff,0xe1,0xfa,0xfa,0xaf,0xff,0xbf,0xff,0x74,
- 0x7e,0xf1,0xff,0xd7,0xdf,0xff,0xb7,0xfa,0xf9,0xff,0xef,0xaf,0xff,0x7d,0xfc,
- 0xf8,0xff,0xb7,0xdf,0xff,0xbf,0x6c,0xf5,0xff,0xdf,0xf5,0xff,0xff,0x92,0xf8,
- 0xff,0x6f,0xad,0xff,0xbf,0x08,0xfd,0xff,0xbf,0xf5,0xff,0x7f,0x25,0xfc,0xff,
- 0xff,0xfe,0xff,0xff,0x95,0xff,0xff,0xff,0xfb,0xff,0xff,0x77,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,
- 0xff,0xff,0xfd,0xff,0xff,0xdf,0xfe,0xff,0xff,0xf7,0xff,0xff,0xaf,0xfe,0xfa,
- 0xff,0xff,0xdf,0xff,0x5f,0x5a,0xf9,0xff,0xd7,0xaf,0xff,0x2f,0xbd,0xf4,0xff,
- 0xed,0xfb,0xff,0x7f,0x5a,0xfa,0xff,0xd7,0xed,0xff,0x5f,0x2c,0xfd,0xff,0xef,
- 0xf7,0xff,0xbf,0xb8,0xfa,0xff,0xaf,0xfa,0xff,0x7f,0x0a,0xff,0xff,0xd7,0xff,
- 0xff,0xbf,0xd0,0xfe,0xff,0x3f,0xf5,0xff,0xff,0x44,0xff,0xff,0xaf,0xfe,0xff,
- 0x3f,0xa1,0xff,0xff,0xb7,0xfe,0xff,0xff,0xc4,0xff,0xff,0x2f,0xfd,0xff,0x5f,
- 0x50,0xff,0xff,0xbb,0xfe,0xff,0x7f,0xa1,0xff,0xff,0xd6,0xf5,0xff,0x05,0x8a,
- 0xfe,0xbf,0xea,0xfa,0xff,0x8b,0x14,0xfe,0xff,0xfa,0xf7,0xff,0x05,0x55,0xff,
- 0xbf,0xef,0xfd,0xff,0xd5,0x5e,0xfd,0xff,0xfe,0xf7,0xff,0xd5,0xff,0xfb,0xdf,
- 0xff,0xff,0xff,0xfb,0x7f,0xfd,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe9,0xff,0xff,
- 0x57,0xff,0xff,0xbf,0xd2,0xff,0xff,0xbf,0xfd,0xff,0xbf,0xc8,0xff,0xff,0xdf,
- 0xfe,0xff,0xff,0xa2,0xff,0xff,0x7f,0xff,0xff,0xff,0x95,0xff,0xff,0xdf,0xfd,
- 0xff,0xff,0xa3,0xff,0xff,0xff,0xfa,0xff,0xff,0x4a,0xff,0xfa,0x7f,0xfd,0xdf,
- 0xff,0x87,0xff,0xfa,0x7f,0xf9,0xef,0xff,0x0b,0x3f,0xf9,0xff,0xfd,0xfb,0xff,
- 0x8f,0x5d,0xfd,0xff,0xf6,0xef,0xff,0xa7,0xbe,0xfe,0xff,0xfb,0xfb,0xff,0x9f,
- 0x2a,0xff,0xff,0xd6,0xff,0xff,0x4f,0xbe,0xff,0xff,0xef,0xff,0xff,0x7f,0xf8,
- 0xff,0xff,0xab,0xff,0xff,0x3f,0xfc,0xff,0xff,0xef,0xff,0xff,0xff,0xea,0xff,
- 0xff,0xbf,0xfe,0xff,0x7f,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xff,0xff,
- 0xff,0xfe,0xff,0xff,0xd7,0xff,0xff,0xbf,0xff,0xff,0xff,0x55,0xff,0xff,0xff,
- 0xfb,0xff,0xff,0x2f,0xff,0xff,0xff,0xfd,0xff,0xff,0x5f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0x1f,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0x4f,
+ 0xff,0xff,0x09,0xf4,0xff,0xff,0xff,0xff,0x7f,0x55,0xfd,0xff,0x10,0xa8,0xff,
+ 0xff,0xff,0xff,0x7f,0x8d,0xf6,0x7f,0x00,0x40,0xff,0xff,0xff,0xff,0xff,0x76,
+ 0xfb,0xff,0x10,0xd0,0xff,0xff,0xff,0xff,0x7f,0xbe,0xfd,0xff,0xb0,0xec,0xff,
+ 0xff,0xff,0xff,0xff,0xdd,0xfe,0xff,0x58,0xd2,0xff,0xff,0xff,0xff,0x7f,0x7e,
+ 0xfb,0xff,0xa8,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xfe,0xff,0xf0,0xf0,0xff,
+ 0xff,0xff,0xff,0xbf,0xbe,0xfd,0xff,0x58,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,
+ 0xfe,0xff,0x54,0xe9,0xff,0xff,0xff,0xff,0xff,0xae,0xfd,0xff,0x52,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0x7b,0xff,0xff,0x45,0xf5,0xff,0xff,0xff,0xff,0xff,0xef,
+ 0xfb,0xff,0x83,0xaa,0xff,0xff,0xff,0xff,0xff,0xf3,0xf7,0xff,0x07,0xcf,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xd4,0xab,0xff,0xff,0xff,0xff,0xff,0xfe,
+ 0xf7,0xff,0xf4,0x8f,0xff,0xff,0xff,0xff,0xbf,0xfd,0xff,0xff,0x58,0x47,0xff,
+ 0xff,0xff,0xff,0xff,0xfe,0xeb,0xff,0xf0,0x4f,0xff,0xff,0xff,0xff,0x7f,0xfb,
+ 0xff,0xff,0xb4,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe,0xd7,0xff,0xf0,0x8f,0xfe,
+ 0xff,0xff,0xff,0x7f,0xdf,0xff,0xff,0xd8,0x56,0xff,0xff,0xff,0xff,0xff,0xfd,
+ 0xeb,0xff,0xf4,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xd4,0x8f,0xfe,
+ 0xff,0xff,0xff,0xbf,0xfe,0xdf,0xff,0xf0,0x4b,0xff,0xff,0xff,0xff,0xff,0xfe,
+ 0xf7,0xff,0x58,0x47,0xff,0xff,0xff,0xff,0x7f,0xdb,0xea,0xff,0xa8,0x85,0xfe,
+ 0xff,0xff,0xff,0xff,0xf6,0xf7,0xff,0x40,0x42,0xff,0xff,0xff,0xff,0xff,0x5d,
+ 0xdb,0xff,0xb0,0x02,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xd0,0x8b,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfc,0xcf,0xfe,0xff,0xff,0xff,0xff,0xfe,
+ 0xef,0xff,0xf5,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb6,0xfd,0xff,0xff,0xff,0xff,0xff,0xb5,
+ 0xfb,0xff,0x51,0x55,0xff,0xff,0xff,0xff,0xff,0xee,0xd6,0xff,0x40,0x01,0xfe,
+ 0xff,0xff,0xff,0xbf,0x52,0xb5,0xff,0x00,0x00,0xfd,0xff,0xff,0xff,0xff,0xbd,
+ 0xfe,0xff,0x03,0x68,0xff,0xff,0xff,0xff,0xff,0xd7,0xfa,0xff,0x17,0xf0,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0x6f,0xf1,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xfd,0xff,0xff,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xbf,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xfd,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfd,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf5,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xf7,0xff,0xff,0xa7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x05,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xef,0xff,0x1f,0xce,0xff,0xff,0xff,0xff,0xff,0x5f,0xf7,0xff,0x3f,0x84,0xfe,
+ 0xff,0xff,0xff,0xff,0xd7,0xed,0xff,0x17,0x46,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xdb,0xff,0x1f,0x8a,0xfe,0xff,0xff,0xff,0xff,0x5f,0xef,0xff,0x0b,0x00,0xfe,
+ 0xff,0xff,0xff,0xff,0xa5,0xaa,0xff,0x0b,0x04,0xfa,0xff,0xff,0xff,0xff,0x9f,
+ 0xd5,0xff,0x0a,0x00,0xfc,0xff,0xff,0xff,0xff,0xd7,0xb7,0xff,0x17,0x04,0xff,
+ 0xff,0xff,0xff,0xff,0x5f,0xef,0xff,0x1f,0x8a,0xfe,0xff,0xff,0xff,0xff,0xd7,
+ 0xf5,0xff,0x3f,0xa4,0xfe,0xff,0xff,0xff,0xff,0xaf,0xdf,0xff,0x1f,0x4c,0xff,
+ 0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x86,0xfe,0xff,0xff,0xff,0xff,0x5f,
+ 0xdb,0xff,0x1f,0x4a,0xff,0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x3f,0x8c,0xfe,
+ 0xff,0xff,0xff,0xff,0xaf,0xef,0xff,0x1f,0x46,0xff,0xff,0xff,0xff,0xff,0x5f,
+ 0xf7,0xff,0x3f,0x44,0xff,0xff,0xff,0xff,0xff,0xdf,0xdb,0xff,0x3f,0x00,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0xf5,0xff,0x1f,0x40,0xff,0xff,0xff,0xff,0xff,0xdf,
+ 0xf7,0xff,0x7f,0x8e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xeb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,
+ 0xff,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0x7f,0xb0,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xbd,0xfd,0xff,0xa8,0xaa,0xff,0xff,0xff,0xff,0xff,0xef,
+ 0xd6,0xff,0x55,0x01,0xfc,0xff,0xff,0xff,0x7f,0x5b,0x6b,0xff,0x15,0x00,0xf4,
+ 0xff,0xff,0xff,0xff,0xdf,0xd5,0xff,0x17,0x02,0xfe,0xff,0xff,0xff,0xff,0xeb,
+ 0xff,0xff,0x0b,0x8d,0xff,0xff,0xff,0xff,0xff,0xb7,0xd7,0xff,0x27,0x6e,0xfd,
+ 0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0x85,0xad,0xfe,0xff,0xff,0xff,0xff,0xed,
+ 0xdf,0xff,0x03,0x7e,0xfe,0xff,0xff,0xff,0x7f,0xb7,0xff,0xff,0x24,0x3b,0xff,
+ 0xff,0xff,0xff,0xff,0xfd,0xaf,0xff,0xa9,0x5e,0xfc,0xff,0xff,0xff,0xff,0xd6,
+ 0xdf,0xff,0xb0,0x3e,0xfe,0xff,0xff,0xff,0xbf,0xfe,0xbf,0xff,0x58,0x3e,0xfc,
+ 0xff,0xff,0xff,0xff,0xaf,0xdf,0xff,0x5d,0x5e,0xfe,0xff,0xff,0xff,0xff,0xdf,
+ 0xbf,0xff,0x3f,0x3d,0xfc,0xff,0xff,0xff,0xff,0x7f,0xdf,0xff,0x3f,0x16,0xfe,
+ 0xff,0xff,0xff,0xff,0xdf,0xea,0xff,0x5f,0x00,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xf5,0xff,0x7f,0x80,0xfe,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xcb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x97,0xbe,0xfe,0xff,0xff,0xff,0xff,0xaf,0xaf,0xff,0x97,0x56,0xfe,
+ 0xff,0xff,0xff,0xff,0xfb,0xdf,0xff,0x2f,0x1e,0xfc,0xff,0xff,0xff,0xff,0xaf,
+ 0xf7,0xff,0x1f,0x05,0xff,0xff,0xff,0xff,0xff,0xdf,0xdf,0xff,0x3f,0x8e,0xfe,
+ 0xff,0xff,0xff,0xff,0xaf,0xf5,0xff,0x1f,0x44,0xff,0xff,0xff,0xff,0xff,0x5f,
+ 0xf7,0xff,0x3f,0xca,0xff,0xff,0xff,0xff,0xff,0xb7,0xfd,0xff,0x1f,0xa8,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xf6,0xff,0x3f,0xe0,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0xfc,0xff,0x5f,0xf0,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0x3f,0xd0,0xff,
+ 0xff,0xff,0xff,0xff,0x5f,0xfd,0xff,0x57,0xe0,0xff,0xff,0xff,0xff,0xff,0xeb,
+ 0xf6,0xff,0x05,0x80,0xff,0xff,0xff,0xff,0xff,0xb5,0xeb,0xff,0x02,0xc6,0xff,
+ 0xff,0xff,0xff,0xff,0xd5,0xf7,0xff,0x01,0x85,0xff,0xff,0xff,0xff,0xff,0xfe,
+ 0xff,0xff,0xc4,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xbf,0xfe,
+ 0xff,0xff,0xff,0xbf,0xfd,0xdf,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xef,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf0,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xfd,0xff,0x5f,0xd4,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,
+ 0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc1,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,
+ 0xff,0xff,0x82,0xbf,0xfe,0xff,0xff,0xff,0xff,0xfb,0xdf,0xff,0xc3,0x5f,0xfe,
+ 0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0x83,0x2f,0xfe,0xff,0xff,0xff,0xff,0xf7,
+ 0xd7,0xff,0xc5,0x56,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x43,0xaf,0xff,
+ 0xff,0xff,0xff,0xff,0xd7,0xf7,0xff,0x87,0xc6,0xff,0xff,0xff,0xff,0xff,0xdb,
+ 0xff,0xff,0x2f,0xfe,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xff,0x1f,0xda,0xff,
+ 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x3f,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xfb,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
+ };
index 0aab685bf89b5cb0b49f907b112510d7e08f7d3e..6fe3bc80ee280c8e486b9246ca4357555c9e0710 100644 (file)
 /* XPM */
-static char * matrix[] = {
-"56 837 64 1",
+static char * matrix_xpm[] = {
+"84 837 65 1",
+"      c None",
 ".     c #000000",
 "+     c #020E04",
 "@     c #021804",
 "#     c #062604",
 "$     c #0B3008",
 "%     c #021E04",
-"&     c #114410",
-"*     c #0C360E",
-"=     c #0D3E0E",
-"-     c #0E4E0C",
-";     c #1F561E",
-">     c #145417",
-",     c #136314",
-"'     c #1D5E1D",
-")     c #1C4E1C",
-"!     c #127410",
-"~     c #269624",
-"{     c #1AA614",
-"]     c #169614",
-"^     c #26B529",
-"/     c #178618",
-"(     c #246624",
-"_     c #2F832F",
-":     c #2B7729",
-"<     c #368B34",
-"[     c #3B9439",
-"}     c #298B27",
-"|     c #3AC237",
-"1     c #42D73C",
-"2     c #62DA61",
-"3     c #32D634",
-"4     c #88E688",
-"5     c #1E751C",
-"6     c #4CB34A",
-"7     c #44AB42",
-"8     c #42A244",
-"9     c #26C227",
-"0     c #FFFFFF",
-"a     c #40CC44",
-"b     c #52BB54",
-"c     c #3E9C3C",
-"d     c #5AC254",
-"e     c #286E26",
-"f     c #32CB34",
-"g     c #5ACA5C",
-"h     c #5ED05C",
-"i     c #2AA62C",
-"j     c #166E14",
-"k     c #62DE64",
-"l     c #3EDE3C",
-"m     c #36B634",
-"n     c #D9F9D8",
-"o     c #26CB24",
-"p     c #2E9A34",
-"q     c #66E561",
-"r     c #9DD89F",
-"s     c #7AF67C",
-"t     c #E8FEEA",
-"u     c #92F294",
-"v     c #D8F3D8",
-"w     c #76EE74",
+"&     c #0C360E",
+"*     c #114410",
+"=     c #1F561E",
+"-     c #145417",
+";     c #136314",
+">     c #1D5E1D",
+",     c #0E4E0C",
+"'     c #1C4E1C",
+")     c #246624",
+"!     c #2F832F",
+"~     c #2B7729",
+"{     c #368B34",
+"]     c #3B9439",
+"^     c #298B27",
+"/     c #4CB34A",
+"(     c #44AB42",
+"_     c #42A244",
+":     c #0D3E0E",
+"<     c #26C227",
+"[     c #52BB54",
+"}     c #3E9C3C",
+"|     c #127410",
+"1     c #40CC44",
+"2     c #5AC254",
+"3     c #286E26",
+"4     c #178618",
+"5     c #269624",
+"6     c #62DA61",
+"7     c #5ACA5C",
+"8     c #5ED05C",
+"9     c #2AA62C",
+"0     c #3AC237",
+"a     c #FFFFFF",
+"b     c #166E14",
+"c     c #62DE64",
+"d     c #1E751C",
+"e     c #26B529",
+"f     c #88E688",
+"g     c #42D73C",
+"h     c #36B634",
+"i     c #2E9A34",
+"j     c #66E561",
+"k     c #7AF67C",
+"l     c #92F294",
+"m     c #76EE74",
+"n     c #1AA614",
+"o     c #169614",
+"p     c #32D634",
+"q     c #32CB34",
+"r     c #3EDE3C",
+"s     c #D9F9D8",
+"t     c #26CB24",
+"u     c #9DD89F",
+"v     c #E8FEEA",
+"w     c #D8F3D8",
 "x     c #73E774",
 "y     c #66E264",
 "z     c #D7F2D8",
-"........................................................",
-"...........++++++......................++++++...........",
-"........++++@++++++.................+@+@#@@@@++.........",
-".......+@@@###$#%@@++..............+@@#$$$&$#%@@+.......",
-"......+@####*#**$%%@+.............@@$$$=-=--&$#@@.......",
-".....+@$&;>>>,,'-)&$#++..........@%-!~{]]{{^]/!-$@+.....",
-"....+@#)(__:::<[_('&*@+.........+#$}|123|4442|{5-@+.....",
-"...+%%$([678[8668<:(=#@+.......+#%=90000000004a^,$%+....",
-"...+##-:[b8[<<c8c[<:;#@+.......@$&!a000044000041~&%@....",
-"..+@$-;_6d8_(e:_<86['*#@+.....+%-/~200019f|14000^-$%+...",
-".++%=;e[7gc:>>>>_8h6:=#++....++#,i|0000f]]]]1000a,$@+...",
-"..+@&(:cbg[j----:7k6:&##+.....@#5^|00009////|000a!=$@...",
-".+%#;:<c7b<e-&-&e8g6_>*$@....+%=~a400049////f0002]-=@...",
-".+@$;_[887_j---&:[g7_'&#@+...+%=i10000l9///!|0002i5&#+..",
-".+%$(<8777_'=&-&e[d6_()*@+...@%&^400001^!!/!|0002^/-%+..",
-".+@$(<888c_,--==:[b6<(;*%+...+#&m400003^//!!f0004^~-#+..",
-".+@*e[688c_>=&&=e8d6[('=@+...+%-|000003{!!!!|0000|i,#+..",
-".@@$([78cc:,--&&:[d6[e;=@+...@#&m000n0o{//!!|0000|~,#+..",
-".@@*;<c787<,--&&:[d6_;)*@+...@%-i400004^//!!f0004i/-#+..",
-".+@$':<86b<(----ecb7_;=#@+...+%=ia4000l9////|0002~,=@+..",
-".++$;e<86bp(--&-e[d8:)*#+....+%=~|400049////9000a/>$@...",
-".++#&;e[6g85->>>:8d6:&$#@....+@$!i|000qo/]]]f0003!-$%...",
-"..+@*-;cdk7:>>'(_7g8:=#++.....+#-/iq0003]]^^2000a,$@+...",
-"..+@$*)_dh75>,,e<7h6:$#@+.....+@=,/2000o]^^94000|-$@+...",
-"...+#*&e8bc_j::_<[8:'$@+.......@$-!a00n199o12002i=#@....",
-"...+@%$':<<_}_<[<:e'&@@+.......+@$=ia44214q041ri!%@+....",
-"....+%#='e_<cc8c<(&*$@+.........+#$,i|1400002^!>=#+.....",
-"....++@*&;;(ee::()=#@++.........+@@>!~im|||am/,=#++.....",
-".....++@$*&&))))=*#@+............++#=-!!}}/}!-$@%.......",
-".......+@@@##%%#%@+@...............+@#%$$$$$#%@%........",
-"........+++@@%+@@++.................++%@%#@@%++.........",
-"........................................................",
-"............+.+.........................+.+.............",
-"..........++@@+@++....................+@#%@@@+..........",
-".........+@%#$#%@++..................+%%$&=#%@+.........",
-"........+@#*=$*$#%++................+#$-,--=$#@+........",
-".......+@@)e<ee(;)&$+..............+@#/|4f|^~/5-@.......",
-".......+@#([d6[_:e()$..............@#$m000021|m}&.......",
-".......@@#_dskd8<<:(=..............@%=20t00002|m,.......",
-"......+@#*:gsh8_:(;=$.............+%$&a0t00aami5=.......",
-"......+@#*_bsd[;;))$@.............+#$-20t00ip}5=#.......",
-"......+@$$<dsb:&=##@+.............+#=-20t0a!,=$#+.......",
-"......+@#*<bu6:=$$@++.............+%=-20t0a,-=%@+.......",
-"......+%#*<bs6_=*#%@..............+#$>20t01,-$#%........",
-"......+@$$<dsb:=$#+@..............+#=-40t0a,-$@@........",
-"......+@$$<dsb:=##%+..............+%=-20t0f,=$#+........",
-"......@@#$<bs6:$$@++..............%%$-40t0a-=%%+........",
-"......+@$*<ds6:=##@...............+#=)20t0a,=$@.........",
-".....+@##$<bu6:=$@@..............+@$=-40t0|,=#@.........",
-"......+@$=<gsb:*##++..............%#=,20t01-=$@+........",
-".....+@#$$<bsb:=$#@+.............+@$=-40t01,=$@+........",
-".....+@#$=<gsb:=$#++.............+#$-,20t0o,-$@+........",
-".....++#$=_dsb:*$$@+.............+@$-,40t0a--=#+........",
-".....+%%$=<gs6:*$#@+.............+#$=,v0t0a,=*%+........",
-".....+%$$&_dwb_**#@+.............+#=-!40t01,-$#@........",
-".....@+$&;<6h8_,&=#@.............@@-!p20001{!,$@........",
-".....+@=)(_7d8_(>=#%+............+%,}m40002|],=%+.......",
-".....++=;e<[7[_e;&$@+............+@,i|20002|i5&#+.......",
-"......+$=);(:(;)=$@@..............+=,}ima|p_,=#@........",
-".......+%$*=&==$$@+................@$=),5,,=&#+.........",
-"........++@+@++@+...................+@@@@@@@+...........",
-".........++++++......................+++@++.............",
-"...........+++++.......................+++++............",
-"........+++@%++@++..................++@%#%%@@+..........",
-".......+@%#$*$#$#@++...............+##$=-=&=$%@+........",
-".....++@#$$=====$$%++............+@#$--,,,,,-=#@+.......",
-".....+@#&&))&)--&=*#@+...........+@=,!//////!,-=%+......",
-"....+%#;:<_ee(((((:'=+..........+#$~a429|9^^9|ai>@......",
-"...++#$e[d8[____<[[_)#+........+@$-|000011212002}$+.....",
-"...+%$=_bhdc<_<<[8b[;#+........+#=,2000044240000i$+.....",
-"...+#=)_bh6[:e(e_[7<;#+........+=,/40004ff9|2004p$@.....",
-"...+$)([bhc_,,>;(<c_;#+........@-/m00001^{{]|402~$+.....",
-"..+@=;([bg[e>--&;:[_)@+.......+%,~|0000f]//!ia02}#+.....",
-"..++$)([bh85--&&);(;$@+.......+@>/m00009//j!/imp>%+.....",
-"..+@$&;[6h8:--&*&&&&#+........+@-5i0000f//!,!55,$+......",
-"...+*&;[bh85--&=*$#@++.........@-5i0000o]/!,-=$#%+......",
-"...@$*)_8dc}j>-=$$#%+..........@=-/200039{/,-*$%%.......",
-"...+@$*:[78<_j'*=$#@++.........+%-,|000439{,,=$#++......",
-"..+@%$$(<[88c_,&=##@@+........+%#=-^400003{!,=$#@+......",
-"...+@#$>e_<p8_5>)=##++.........+#$-]91q4n3o{/,=$@+......",
-"...@@#$-'e_[7[}:,-*$@+.........@#$-/i910n0lo^/-=#@......",
-"...+%#*&->5~ccp[:'=##@+........+%=-!/]fl0n4qo{,=$@+.....",
-"..+@$$=->'e~[ccc_(>&$@+.......+%=-!/]{flqnnn19]!-%@.....",
-"...+$&;',!___~p8c}_(&#@........@&!]{^o331lqnn43^!$%.....",
-"...@=)'ee_555}c77c[:;#%+.......%,}^|93fool00n001~=%+....",
-"...@*;'5__}__~c7878};$++.......%>~if14l13l000004~=%+....",
-"...+$&;:<cp[[876778<>$++.......@=5~|40qq0n000004~=@+....",
-"...+$*):<878776768c_;#@........+&,}a000000000002~=%.....",
-"...+#*=(<8888c88c[[e)#+........+$-!m40000000000a/$@.....",
-"....+#$);(eee:ee((()*@+.........@$=/pm||mf|||mm}>%+.....",
-".....+@#$*=*&=&==**$@+...........@#$-),,!,!,,--*%+......",
-"......++@@######@@+++.............+@@%$$$$$$%%@%+.......",
-"........++.@++@+@++.................+++@@@@%%++.........",
-"..........++@+++......................++@+++............",
-"........+@@@###@++..................@%##$$$%%+..........",
-"......+@%#$*=$$*$%++..............+@#$&-,---*#@+........",
-".....++@$$=&&&&&$$@++............+%#=-,!!!!!-=%@+.......",
-"....++%=;';;;'';)=*#+...........+%%,]ii~iiii/,-$@.......",
-"....+%#;_c<:e::<:(;&#+..........+#=p2n4afa14am~5=+......",
-"...+@#*:7g6c_<[8[_:;=+.........+@$-a0000140002fp)@......",
-"...+@$&<bh6[_[[8[<:(=@.........+#&!400003400041m,@......",
-"...+$*)<6h7<e:_<_::;=@.........+=,_200029a222a|p,#......",
-"...+$);[6h8:''eeeee;*+.........@-/i0000f{^9|a||p>@......",
-"..+@=)([6g[e>';;(((;*+........+%,}^0000f]iiimmm~-+......",
-"..++*&)<7g7<(j';))&*#+........+@-!~4000499{~/}5>$+......",
-"..+@#$)_7g7[}:;&=$$%+.........+@$-/200001fi!j-=$+.......",
-"..+@#$&_8gbc<_;&$$@++.........+#=-!100004fi!-=%@+.......",
-"..+%$=)<8g67[_(&=$@@+.........+%=,/1000n01^!,=%%+.......",
-"..+@$&><8d67p_(;=#++..........%#-!~40000q19~,=@+........",
-"..+%=-;<7g68[_e;&*%++.........+#,/i4000002|~!-#%+.......",
-".+@@)(:[86c<:('-=$%@+........+@%/^o000n2f9i/,=#@+.......",
-"..+#;:<[cc<:,>)=$##+++........%$p|400043^]/,-*$@@+......",
-"..@#;<cc8p_,>-==*#$%@+........%$i40nnq3^]/!,-==#@+......",
-"..+#;:<ccc_j---->';)$+........+$~a000039////]ii/-@......",
-"..+@)e_<88_(>'>'e_<:)@+.......@#/|200019]{{{910a/#+.....",
-"..+%=;e[c6<!>>,e_8b['#+.......+#,i|40019]{^|2000i$+.....",
-"...+=&;:<8<:,ee__<c_;@+........@-5~a4n4o^9912002p%+.....",
-"...+#$&':___:___<__(=@+........+$-5ia413a122222m,#+.....",
-"....@@$&'ee_<<<[<e;)*++.........@#&!i||244404|i/-%+.....",
-"....+@+=);((:::ee;)=#@..........+@@,/im9|aa||i},$@......",
-".....+@#*=&)));;)=*$++...........+@$-,5//~~~_,-&@+......",
-".......++@###$###@+++..............+@#$$===$$%@++.......",
-"........+++@+@@@@@+.................++@@%%##%%+.........",
-"...........++++++.+....................++++++.+.........",
-"..........+.+.........................+.+...............",
-"........+@+@@++.....................@@%%@@+.............",
-"......+@@$##$@@++.................+@#=$&=#%++...........",
-"......+@$#**$$#@+.................+#==---=$#@...........",
-".....+@#&-;5e;=#@@...............+@=!/{9f~,$%@..........",
-".....@@=);_<8_'*$@++.............@#,/ia003i-=#@+........",
-"....+@#)(e8dh8e**$@+............+@$/^fn000f,-=%+........",
-"....+@%-(_c6h7<,-$%%+...........+#$/m100001^/-##@.......",
-"....@%#>j_86g7c_j-#%@+..........@#=]910000019/=#@+......",
-"....@#$;(_[6b68c_'*$@+..........%$=~^10000003{-=#@......",
-"....+##;e}[7bb78<(-=$@+.........@$=~f1q0000049/,=%+.....",
-"...+%%*,:}p77777c_5;*#@+.......+#$-{fl4n000n01f],$#+....",
-"...+%#*>:}pc77787p_:-$@+.......+#=-{olqnnn00n44f/=%@....",
-"...+%$=':~[i77i6ccc_'*#@+......+%=,iflq0n0n00n02i,$%+...",
-"...+#$-j_[88m7c8c87[e>*%+......+$-/91qnn0nn0nn0q|],$+...",
-"...+#=-([8i66i8}876c_'&$@......%=,/9qnn00nnl00003i!=%...",
-"..+@$&,5p766678}p6d8<()*@+....+%&!{f4n000nnl40004^/-#+..",
-"..++=>'<8b|ggmi87878_(>$%.....+@,~^4n00000nnn00029~-%...",
-"...@='e8bhghhb6i66mc_e;*@......@,i|n0000000n00002|p>%...",
-"..+@=;:cbghghg6m88c[_e;=%.....+#,ian00000000n0002|~,#...",
-"...+=-'_8mbmbi[}__ee;)=#+......%-/{1n0000nq1l3|9i/,=+...",
-"...@#$&e_ccc8}_,'>>-=$#@+......@$-!|10nn0lf^{]]/,-=@+...",
-"...+@##>(__<[5'&**$##%@+.......+#$=]91144f^!,>==$#%+....",
-"....@%$-(5___(-$*##%@+..........@$=/^fa149/--==%%+......",
-"....+@%=;(j::'&$#%%+++..........+@%'pm9a|i!=$##@++......",
-".....+@=);((e;=@@@+..............@#,/imm|~,#%@+.........",
-".....++$*&&))=$@++...............+@&>55//,=%++..........",
-".......+#$#$##++...................@$===&$++............",
-".........@+++........................@+++...............",
-"........................................................",
-"........................................................",
-"........++@+@+@+++..................++@@@@@@++..........",
-"......+@##$$*$*$#@+...............+#$&=-----=%@.........",
-".....++$=&)))>))=*%@+............+@=,5//}~//,-#%+.......",
-".....@#*);''';'()&$@+............@$>}~i^iiim}5&#@.......",
-"....+%$);ee__<<<_()&#+..........@$&/iaaa14401m/,$+......",
-"....@#=':<<<<87b[_;)$+..........@=,i|444000002i/-+......",
-"....%$=(_[c8cbghb[:;*@..........#=,m20n0000000ap>%......",
-"....+$*)(:_<_[6b7<:;&@+.........@=-~m|14100004ai,#+.....",
-"....@%$&;'j55}[7[<:'=@+.........%$&!]^9ool4001|i,@+.....",
-"...+@#$*&->',5_[<_e;&++........+@$=,!/]{{o1qq1ai!@+.....",
-"...++##&>'j5:[p7c_:'=%+........+%$=!]^9o3lq001ai,#+.....",
-"...+@#*>j__[~87b7<:;=++........+%$-]9334q00004ai,@+.....",
-"...+##*;:<876bgg6[:;=%+........@#=-ia400000000ap,#+.....",
-"..+@$*-:[8887876[_()$+........+@=,/o400nn00001^/-@......",
-"..++$)'}8d7c_<<<:')=#+........+%-/i400004144a^/,$+......",
-"..@%&'e8bg7~55(';)$$@+........@#!{f0000lf99^~_-&%+......",
-"..+#&e_86g8_j,'>&=#@++........+$5|2000039^{]!,=#@+......",
-"..@#>:<867<e'>>-=*$%++........@$~|4000qf{]]/,-=#@+......",
-"..+%;_cc[8_,-&&=$##%@.........%$p2n0003^/!!,-=$%%.......",
-"..+#;:<c[[_,-=&&==$#+.........+$~a00041{/!!!,,-$@.......",
-"..++&;:_[c_j>,,((;(;*+........+@5i|30039]{{^^im~>+......",
-"..@@*&;_[c_(>'e:___e&+........%@>!ia0029]{|a222|5@......",
-"...+$=-e<8_(>(:<<_[:&@.........%=,/|40l9]9o4440a5@......",
-"...+@$*;e_:5je_<:_e;*+.........+#=,{|2af9a2422|i>+......",
-"....@@#&>(e::__<:(;&$+..........@#$!~^|aa222ami5=+......",
-"....++%$&>(:__:_:;&*@+..........+@%-!]^a2a22|p5)#+......",
-".....+@#$=&);;(;)&$#@............+%$=,5]~iii}5=$@.......",
-"......++@#$$==**$$@...............+@#$=-,,)>==#+........",
-"........++@@+@@@+++.................+@@@%%##@++.........",
-"..........+++++++.....................+++++++...........",
-"........................................................",
-".......++###$%+@++.................+@$=$=$@@++..........",
-".......$=&);;)=#@++................=,5}pi/,&#@+.........",
-"......+=;e::_()=$#@++.............+,p|fa2m/,=$%++.......",
-"......+&;e:_<:(-&$@@+.............@,i|a24|^/!-##+.......",
-".....++*);(::__:(>*#@+...........++>_~ma2123^]-=%+......",
-".....++%*&;(:_c8<,&*#@+..........+@$-!i^f1004^!-$#+.....",
-".....+%#$*;;(<86c:>&*@+..........+%$=-]i92000f]!-%@.....",
-".....@@#$=->,:}8[<<(-$%+.........%#$-,/]^fl00449/=#@....",
-"....+@@$$=->,(_~[c7_(*%@........+@#=-,/]{93lqn04^-#@....",
-"....++##$*->>jj_p7b8(=#@+.......+%$=-,/]]991q000|,=#+...",
-"....@%$)(e555}}c7dh6:=$@+.......@#=/^9oooll00000f,=%+...",
-"...+@#=(<8c[[c77bgxb_-##+......+#=,m4000q0n000003/=$@...",
-"..++#$&_8g67876bgywg<-$#@.....++$-!30000n00000t04/=$@...",
-"..+@*)'<767p/[pcmgyb_-$#++....+%-/^2000qlqqn00003/-$@+..",
-"..+@&(e[76[_j55_[7h6_=*#@+....+#5^a00001^of340001!-$@+..",
-"..@#;:[[78<j'>>,:8d85&*#++....%$~a000019{{{{30009!-&%+..",
-"..+#;:c[88_,>>>,/cd8_=$#++....+$ia00001^]]]{3000a!=$@+..",
-"..+#;_[c[c_j->>>:cg75&$%@.....@$p2000n39/]]]f000o!-%@...",
-"..+#;_c[[[e,>---_pg8:=$@+.....@$i20000f^]/]/3000|,=#@...",
-"..+#)e<[[[_,->>,_8d85=#%+.....+$}a4400o^/]{{3000o,=#+...",
-"..++=;e<c8<j>,,(_8d8e*#%+.....+@,~|4n049]{^91000|-$#+...",
-"..+@$*):8b[e>,::[8b['$%+......+@=,/a004o{^fa4000^-%@....",
-"...+#*&e[8<:>e5__[8<'#@+.......@$-5|004f{9f12004i&@+....",
-"...+@$$)e_e5ee___:e;=%@+.......+%=-}|1a9|f122a|p,%%+....",
-"....+@#*)'(:::__e;&*#++.........+@$,/imaaaa2|i!-$@+.....",
-"....+++$=&'(::e:;)#@@++.........+@@*,!ima|aai!=##++.....",
-".....++@#*=&))))=$%@+............++#=-,!}//_,=#@+.......",
-".......+@@#$##$##@++...............+@#$=====$@@+........",
-".........+++@+@+++...................++@@@@@%+..........",
-"...........+++.+.......................+++.+............",
-"........................................................",
-"......+@#$#$$$*$#$##@+............+%$*&-----&==$%+......",
-".....+@$=);;;));)))=#@+..........+#-,/}~~}/~///,=%+.....",
-"....+@$&;'(eee(e'(;;=$@+........+#&5i^^|9|9|mmi~,&#+....",
-"....@#*;:<:__::_e_e()=#+........@$-pa422aaaaaaam},$@....",
-"....+#=:8d7[<<<<<[[<()=#........@$,a000044444004m/,$....",
-"....#$&<bxg7[[<<[86[:;&$........$&540t000q440000|i5=....",
-"....@$&[dxg6[[[<[[c[:;&#........%=500000q0q40000ap5=....",
-"....+#*:8g6c}_:e:::(;)*#........@$)2000nl1a9|aa|i5>$....",
-"....@@*([6c[_jj>);;&&*$+........%%-m00n0399]]~~5(>=@....",
-"....@@$'<8<__e'&==**$$#+........%#=i404419{!,,,--=$@....",
-"....+@@)(:<pc_,=&$$$#@@.........+@#/ma4403^!j-==$#@.....",
-".....@@=)(_[6_(==$#@@+...........@#,}^2002^,,-$%@+......",
-".....+@#=&:[b[,=$$#@+............+@*,/a00l9,-=$#%.......",
-"......+#$&e<8<e-=$#@@.............+$=!|2029/,-$@@.......",
-"......++%$;_[<(')$#@+.............+@$*i2049{/-$#+.......",
-".......@@#;:[_e')=#@+..............@#$~a02|i/,$#+.......",
-".......+%#=;(::_(&#%+..............+#$,i||119!$#@.......",
-"........+@$=)e<[:;#%@+..............+#=,/|20a~$#@+......",
-"........+@%$$'<6<;##++..............+@$=-^404{=$@+......",
-".........+@#$;<8<:=*#+...............+%$=i404|!-$+......",
-".........+@##;:8<:()$+...............+%$$~a0q|m}&@......",
-"..........+@#)e[<::;=@................+%$/|042|i,@......",
-"..........++@=;:::_e=+................++#(paaa2|,@......",
-"...........++$=)(:_e)+.................+@=,}ma2|5@......",
-"............++#$)e[:&@..................+@$=}|015@......",
-".............++@=;e;*+...................+@#(p|i;+......",
-"...............+$*&*#......................+=)5)$.......",
-".................++..........................++.........",
-"........................................................",
-"........................................................",
-"........................................................",
-"...........+++++++.....................+++@+++..........",
-".........+++@@%@+@++.................+@@%#%#@@@+........",
-".......++%$*===&$$%@+..............+@#&-,,,!-=$%@.......",
-"......+@#$&)'';';&*$%++...........+@$=!}iiii~!-=#@+.....",
-".....++@$=;(::::e'==$@+..........+@#&,~^aa1f|i!,=%@.....",
-".....+@=;(ee::::55:'&#@+.........+%,i||aaffaooai!$%@....",
-"....++#;_[<_e:5e_<c_'*%@........+@$~20419fff14n2i-#@....",
-"....+%#e[dc_ej55<7g85=#@+.......+#$|000199994000f,=#+...",
-"....+@$:7g8_5555}7g8e&$@+.......+%=a0001ooool000|,=%@...",
-"....+#$:6h7}(jjj[7g6_=##@.......@$&a00019999l0003!=$%...",
-"....@#$_6k7~jjj,}7h7_-$%@+......@$-2000l999930003/=$@+..",
-"...++#*e7g8p:___cbd6_-$#@+.....+%$-|000l3o33n0003/-$#+..",
-"...++#*e[6787i7m6|g85>$#++.....+@$-|000nnn000000f/-$@+..",
-"...+@$*;:[7mbghhhgg7:-&#%+.....+#=-ia0n000000000o/,=#+..",
-"...+@#$;_<6dhghhhgb7/&*$@+.....+#$-if0000000000n3/-=#+..",
-"...+%#*e_776gbb66bg8_>*#%+.....+%=-94n00000000003],=%@..",
-"...+%$$:cb|bdm7i7mg8_>&$@@.....+#=-fn00000nnn00n3],=%@..",
-"...+%#=5cb6|b7p}c6b7_'&$@+.....+#=,f00000nqln0001{!-%+..",
-"...+%$*:8g7cp}_5}p7c_,-*@+.....+#=,f0000ql3o14001^/-#+..",
-"...+@%=:7g7}55j!:}8p_(;*#+.....+%$,a00nloo993l0019],$@..",
-"...+%#=_6g8_>>,>5}[<_(,=%@.....+#$,20003{{{{o3441|i,#@..",
-"...+%#$:8hc5j>,>5<68_(;*@+.....+%=-|000o^{{]fq002^]>%+..",
-"....@%$:8g8_,',>5cd6_;)*++......@#-a0003^{{]o0002i/>@+..",
-"....@@$:8d8:,>>-:cg6<'&$@.......%#=|00no^{]/f0004i5=%...",
-"....++%;:[_:jj,,:<8<(&$@+.......+@#~a02a99^^f204m5-#+...",
-"....++@=;(ee:ee(:::e)$#@........++#,pm9|o|9|faa|}-$@....",
-"......+#$*;(e:::e(;)*@@+..........+$-,~m|a|a|mi/-#@+....",
-"......++%#=)';;;;&)*#@+...........+%%=,/i~pi~55>$@+.....",
-".......+@@#$=****$##.+.............+%#$&,>>--==$++......",
-"...........@+@+@++++..................+@@#@#@@++........",
-"............++++++......................++++++..........",
-"..........++@@@@+++...................++@@@%+++.........",
-"........++++@@@@@+++................++%@#####%@+........",
-".......++@$=)&))&*$#++.............+@#=,55//!-=$@+......",
-"......+@%#&;(((('&=*%@+...........@@#$!~9mmmi5,-$@+.....",
-".....+@@$$)e::::e'-=*@++.........+@#=-/9aaaa|{/,-#@+....",
-"....+@%=;(ee:::eee:()*%@........+%#,~9||afa9faa^/-$@....",
-"....+@#)_[__:e((:<[<'=$@+.......+%=~1441ff99|404^,=#+...",
-"...+@%*([68<55,,_868e)*#+......+%%-m0004f9^^1n00a/-=@...",
-"...+@#*ec6[_e(,'e<7[_>&$@+.....+@=-f00039^{{f400a~!=@+..",
-"...+%$*:cb[5,,>>j<c<:(>$@+.....+#=-an00f^{]]9404a^~-#+..",
-"...+@$*e8b[5>>>>(:<[:(;=%+.....%#=,f004o]]]]^f041|i,%@..",
-"..+@#*&_8gc5>,>-j_[[_e'=%@....+@$-!a000o{{]]91041|i,#@..",
-"...@%#=_7gc/>,>>j_8[_e'=#+.....@$=j100q3]{{]91n019i,$+..",
-"..+@$$=}6g8:>,',5_8c_e;=@+....+@==!100n3{{{{o1002|i,#@..",
-"...@%$&_6h6~5!5j_c6c_()$%+.....%$-j2000looo910001^/-#+..",
-"...@##=}bhdmc[~[c7b8:;&$@+.....@$=!10000nqlq0000ai!=@+..",
-"...+%$=_bkhb7667bbg8_)*%+......+#=,10000000000001/-$+...",
-"...+@#=:7ggdb66c877[(=$@+......+%=,a000000000000m,&#+...",
-"...+@##(<87bb7[___:()$@@.......+%$=^40000n03a2a|/-%@....",
-"....@#$>5<c76c/>>;)&$#++........@$=]f4n0003{]]/!&$%+....",
-"....++#&'5[8bp_'>=*$#@@+........+@$5if40041{]!,==#@+....",
-".....@@*&>_~8[_5(-*$#+++.........@#-!~1q00lf^/,*$@++....",
-".....+@#$*(<78c<5>*#%%+..........+@$-,m40004f]-=##+.....",
-"......+@##;:c[[[_'=$@++...........+@$={a0000a{,=#%+.....",
-".......@@#=;e:_<:';&$@.............%#$(~|a24a^]5=@......",
-"........+%$$=;(::ee;$+..............+%=-,~^aa||p-@......",
-".........++@%=;e(:e;&@...............+%%$,p||a|i,@......",
-"..........+@@$=))))=#+................+@#='}_}_,$+......",
-"...........+++@##$#@+..................++@#$*=$#+.......",
-"..............+++.+.......................@++++.........",
-"........................................................",
-"........................................................",
-"........................................................",
-"........................................................",
-".............++++........................++@+...........",
-"...........++@$$#+.....................+@%&=$@..........",
-"..........@#*&;e>&++..................@=-5i|~,@+........",
-"..........#*)(_[:)@+..................$>/m20a}%@........",
-".........+$=):[6<'#@+................+&,}a004i$%@.......",
-".........+#*)ecd[;$%@................+$)5|000i=#@.......",
-".........+@#*e[d[e$#%+...............+%=>r000|-$#@......",
-"........+@@#$(cg[e=#%@..............%%#$&|000|,*#@......",
-"........++%#*([6[e>=#@+.............+@#=-m000f],=@@.....",
-"......++%%#$$;_8<:()*%@...........++#%$=-{202a^/,#@.....",
-"......+@@##**'e[__e'=%++..........+%%$=--ia042|i,%@+....",
-".....+@$$&&));e::_:e)#@+.........@@&-!!//{|aa12|/$@+....",
-"....@@@=;';''';(:_[:>#@++.......@%%,~i{{i{i^f20a~&#@+...",
-"...+@%#)(:e(e,>-e_8_'*#@+......+##=/^1f9|^]/9102i-$@+...",
-"..+@#=&;:_5(;>>&(_8<(=#@++....+@=,!iaa|^{]]/^204^,$#@+..",
-".++%=;(e:_:,>>--j:8<'=$#@+...+%%,~^|a1f^]]//9104^,=$%@..",
-".+%#)e:___('---)(_8<(=*#%@+..+%$/||1129{////^104^!-=#%+.",
-".+@$;_[[<}:,'>>,_[6c}(;-=$#..+#-i20041f^{{{^300019~/,-$.",
-".+$=:cb8[__:(5__[6db8c<e()*+.%=,a000q41o99310000004a^/-@",
-"+@$&<bhb8____<c76dhgggb[:(&%+#=54000n123140000000000am5#",
-".@$&:6gc__:55_<[886666c[:;=%.#=!20004aff|12000000000ai,%",
-".+#=(<8_(;'>>;('e:::::e(')*+.@$,m2029~i]~i^m||aaaa|mi}>@",
-".@#$)e:;>*$$$*$*==&=&&&&&=$+.%$=~||i/,--->--(,5,55555,&+",
-".+@#=;'&*$$##$#%##$#$#$**$@..+#$'pi5-==$$=$$$=&$=*=>>=#.",
-"..+@$*=$#@@%@+@%@%@@@%@@@@@...+#&>,-$###%@#%#%%#%##%##@.",
-"....+@%+@@++++++++@+++@+........+#%%@@++++++++@+%+@+....",
-".......................+...........................+....",
-"........................................................",
-"........................................................",
-"..........+@@++.......................@@#@+.............",
-"........+@#$=$@+....................+@$-,=#+............",
-".......++%*&;=#++..................+@#>5~,=@+...........",
-".......@*=);()=@++.................#-,/im}>@@+..........",
-"......+$)'e:_(&#@++...............+-}i|12^!$%@+.........",
-"......+)e_<[[:>##%++..............+5|v200a]=$#@+........",
-"......+*(:<[[:()=$@++.............+,m2400am/,=%@+.......",
-"......+*&;e:<<_:,&$%++............+>5p|a4411^!=#@+......",
-".......+#*;e:<c8_'##@+.............@$)~|24002i=$@@......",
-".......++@&;:_87<(&*#%+............+@#5ia2004m!-=#@.....",
-".......+@@*&;(:<:_:(&$#+...........+@#-5~m|411a^5=$+....",
-"........+@#*=);(:<8_(=#@............@@$-(/i^a204^,=%....",
-"........++@#$*&):[68:&*#+...........+@%$=-!}a000a5-$+...",
-"........++@%$$=&e[bc:)$@+...........++%$=-,/|000|/-#+...",
-".........+@#$$=-e[68:)=#+............@@$=-,/9000a},$+...",
-".........+@@#$&&([6c:)$#+............+#%=-j!|000|/-$+...",
-"........++#$*);e::<:;=#+............++$=-/{||24ap,=@....",
-"........+@#$-(:<_e;;=#%+............+#*-/^a42|i~,=#+....",
-"........@@*&)e<c_(=$#@@.............@%-!/|402m,>$@%.....",
-".......+@$)(__:_()*#%++............@#=}m2222|/-$#@+.....",
-".......%$*(<c<:;)$$@@+.............#&,m402ai_-=%%+......",
-"......+#*):8dc(*$#+++.............+$,52000m-=$@++.......",
-"......+*)(:[c:;*%%@+..............+>}ma00ap-$#%+........",
-"......+=(_:ee;=@@++...............+,m2ar|~,#%++.........",
-".....++):[:;**$@+................++}a01p,>=%%...........",
-".......=;:;&*#+++..................,i|p5>$@++...........",
-".......#*)$$@%+....................$>}-=%#+.............",
-"........++++++......................+@++++..............",
-"..........+...........................+.................",
-"........................................................",
-"........................................................",
-"........................................................",
-".........+++@+@+@+...................++@@@@@@+..........",
-".......++@+%@%#%@+@++..............+@@@###$##@@@+.......",
-".....++%#**=&&&&&*$#@+...........++#&--,!!!!!,&$%+......",
-".....+@$=;;;'((e(;&*$+++........++@-,~~ii^9r^~!,&@++....",
-"...+@@#=;(ee:_<<_e')=%++.......+@#$,~|||a2442|i/,$@+....",
-"..++#$&;(eeee_<c<_e')=*#+.....++$-!~^9|||14041|i/,-$@...",
-"..+@=;e(e:(,':c6c<_ee')*@+....@#,p||rf9^{a00043||i/-%+..",
-".+@#;e<_:e(>-:[b7[__:e(&#@+..+%$~a221|^]/f000041aam5$#+.",
-"++@$'_[_:e'>-:cd6c____e)*#+.++#&i202f9i]/f00001111a}-$@.",
-".@$*(<[_'>>&=e[bc_jee::'&*$+.%=,m401^]]j!f00019f|a9i!,=+",
-"+#$&e[[_;==&&j[bc_',:_:('&$%+$=!|00ai!!!!94001{^f219~5-#",
-"+#$&:[8e>===&(<8[:,je::e(;=@%$-5a00|],,,,9400f{9ffa|mi,%",
-"@$=)ec7_>=*==>:[<_:_:ee::e)#@=,_f00a],,,,{a441aaf9|aa|}$",
-".$&;_[8e,*=**-(e__[_5ee_[<;#+&!p200f{>,,-/^a14q1f992q4p&",
-"@$&):c7:'=*=$->':_c[5,(_[<'*@=5~a001{,-,-/]^f4nqf^9z04i-",
-".%$):[7_>&=$=*->e<c[_ee:<_)$+$=5a002{!!-,,/]f2002f|122}=",
-".+#*ec6<(-&***=&j<78<e::_:)#.@$>r004^/!---,!92002f9a2a}$",
-".@+$([8_e>&=*$*=;<88<_e::e&#.%@=m002|]!!---,i4004aaaa|5$",
-".++#)(_ee('>>&==>e__<<_e()*+.+@$}ma||^{~]!,,]|22442|^~>@",
-"..++$&);(e('(>&$&;':_c<e&&#@..+%=5}pm|mim]!-!]^f40qr5,$@",
-"...++#$=;::ee'-$*&&;_8[(*#++...+@$=5i|a||i/-,!5i200m,$%+",
-"...+++#*&))))=*$$**);((&#++....++@$-5}}}/,)==--5i|m5$@+.",
-".....+@@$$$$$$$$###$*==$@+.......+@#*&-=--&=$=$=),,=@+..",
-".......++++@+@%#@@@@++++...........++@@@@@$$%@#@@%++....",
-"..........+++++@++++++................++++@%++++++......",
-"...............+...........................+............",
-"........................................................",
-"........................................................",
-"........................................................",
-".........++.+........................++.+...............",
-"..+++@+@@+@+@+@+++............++@@@%@@%@@@@+++..........",
-".++###$%@%%%#%@@@@++.........+@$$==#####$###%@@+........",
-".%#$$$=*$$##$#$##%@+++.......#$-&-,-=======$$#%@++......",
-"+#&);;>>->'(((>-&&&*#@+.....+=!}~~]]]]{^9^]/!!!-=%+.....",
-"@=;((:ee(5_[[_ee''')=#@+....@,~m|aa|9f1404a|^ii/,=%+....",
-"@&(:__<<__c7d7c:_:e(&$#+....#5m|22242100000aaaam5&$@....",
-"+*);(e(eje[7d8_(('')=$%@....@>}{^99f^f400019^ii},=#@....",
-"@$$&->,,',_8bc_'>>-&$#@+....%=-5/]{{^^100n1{]]/!-=#+....",
-"+##$$*&--,_7bc5-&=**$#@++...@$$=-,!//{3n00o]!,,-=$#@+...",
-"#$)>>>->',}8g8:>>-&=$$$@+...$-/]]]/]{^10003]]/!,-==@+...",
-"*)ee(>>,'j}6di},>,--=**@+...-}|a^{{{^9300nl^{{]/!,-#+...",
-"*(<c_e,j!5c7h7}j,>'>-&$$@...>|2039^999n00039^{{]/!-=%...",
-"$;:_ee''(!c6h7<j(''>)&*#+...=pa2|9{^99q00049^{{]/!,$@...",
-"$&;e'''(je[6g7}(,'-;-&*#+...&5i|ii{^99n0003^^i]~/5>$+...",
-"@*&))->',e<6g8_,,;>)&&*#+...#)5}/]~{^940001^^]]/5!-$+...",
-"+#$=&)->;,<8g8_'>>&&=*$++...+$-'!//]i{40003{]]5!,-&%+...",
-".@@#$**=->_8d[:&&=$$##@+.....@#$&>,,/]3000|!!,-=$$%+....",
-"..++@@#$$*:[b['=*##@++........+@#%$--,a000^,-=$#@+......",
-"....@@%#$$ecb['$*##@+...........@%%$=-|004^--$$@@.......",
-".....+@##*e[6<,*##+@+............+%$=-|004^-=$@%+.......",
-".....+.###e[6<'*##@+.............++%$=9004i-=$@+........",
-"......+@#$([b<'*$%++..............+#$=m001^-=#%+........",
-"......++@#([d[e=$#@+..............+@%$m0009,-$%+........",
-".......+%#([d[:)=#+................+#$m000f},$+.........",
-".......++@'[d[:)=#+................+@#i000|},=+.........",
-"........+@);_()*$@+.................+@5i2m},=@+.........",
-".........+$*=*$#@+...................+=)(,=$#+..........",
-"...........@+@++......................+@@@@+............",
-"............++.+........................++.+............",
-"........................................................",
-"...........++..........................+%...............",
-"........+@$*=$+.....................@%=>,&@.............",
-".......@#$&);&#....................%$>5_i,$.............",
-".......+$*)(e;$....................@&)}m|p).............",
-".......@#$;:[(*+...................@$=pa0i,+............",
-".......+@$;_8:&+...................+%&p2015+............",
-".......++$;[6:)++..................+@&i00a}@+...........",
-".......+%@;<6_)@+..................+##p402}@+...........",
-".......+%$;[6:)++..................+%&i00a}@@...........",
-".......@+#;<6_;%++.................@%$p002~#++..........",
-".......@@#;[6:;@@+.................@#$i002p#@+..........",
-".......@@$(_b_)#++.................@#=i402}$@+..........",
-".......@@$;[6_;#@+.................@#=i002~$#+..........",
-".......+@$;[6<;#%+.................@#&i004~$%@..........",
-".......@@$;[6_;##@+................@#=i004i$$@+.........",
-".......@@#(<b_'##@+................@#$m002{=$#+.........",
-".......+@#;[6_;$#@+................+#$i002i=$#@.........",
-".......+@#(:6<'$#%@+...............+#$i204i-=%@+........",
-".......++@;<c_(=*#++...............+@#i402^,-*@+........",
-"........@%)e[_e()$%+................@#_|02|^/-#@........",
-"........@+&;(::_e&$@+...............@%,p|a22|5=@+.......",
-".........+$=):[6_'#@+................@&,/|002i=#@.......",
-".........+@$*;:[:'&$@................+#=(ia0ai,=%.......",
-"..........+@$&;(';)=#.................@%&,pmip},$.......",
-"...........++#$*&;;)#..................+@$=>5~i}=.......",
-"............++@#*&;&$...................+%#$>5p5&.......",
-"..............++@$*$+.....................+@%&>=@.......",
-".................++..........................+@.........",
-"........................................................",
-"........................................................",
-"........................................................",
-"............+.+++.+.....................+.+++.+.........",
-"........+++@+@++@@+@+++.............++@@@%@@@%@@@++.....",
-".......+++%@%####%#@%@++...........++@###$$$$#$##%@+....",
-"......+#$===&=&*&=&&==$%@+........+$-,,,!,!,!!!!,,-$@+..",
-".....++=;((('(,(,,(,'>)*@+.......+@,~^m^^^^^^^^^{~/-#+..",
-"....+@@)(___________::'&#@+.....+%#/|232131a32a11f^!=%+.",
-"....+@#;_<<:_:_:_:__}__>$%+.....@#$~2022aa13a11114f]=#@.",
-"....@@#([8c_j55j555_[[<'*#@+....@%=m4041999o9oo34n4i,$@+",
-"...+%#*e[b~_jjjjj555p7c(&$@+...+#$-|00q399999oo3q009!=#+",
-"...+%#=:86c_j5,555/<cmcj=$@+...@#=,|000lo99o9ooln0n9!=#@",
-"..+@#*&:c68p<}}}}}}p7675&$%@..+@$-j3n0n43l3llllqn009!-#%",
-"..+@#*-_[78c8[pc878i66c/-##+..+@=,/f00nnnqqqnnnn00no/=$@",
-"..+@*)>_86m7i78i7i767m8:-*#@..+%-/]1n00nnnnnnnn00003/-$%",
-"..+#)(_<c8c888787m6668ce,=#@..@$/|20nnnnnnnnn000000f{!*%",
-"..+%;<c888iccip77m6m87p5'-*@..+$i20n0nn0nnnnn000nnq9{/-%",
-"..@#([78c8p88c8i76bm8p_e')*+..%$m000nnqnnqnnn000nq1fi/-%",
-"..@%)(_<pcp[ppcp8mgm7}_,-*$@..@#/m144nqq4qqqn000nl3^/,&@",
-"..++$&>e~cp[[}[p7bhb85,>=#@+..+@-5]fln4qqlqq0000nf^],=@+",
-"...@%$=,_c[}~}~}76hbp:>&$#++...%%=,^1nqllllln000qo]!=$@+",
-"...+%#*e[7p}<_:/~877<:'&$%+....%#=-940qll333l0004f^!=#+.",
-"...++#*j[bc}5/55_}p<_:(&#@+....+@$-9n0nloooo3lq41|^!=#+.",
-"...+%##e[b[:!5jj55_:::e)#+.....+%$=|0043oo99o93a1a|/$+..",
-"....@@$([8p_5jjj,(,''')*@+......%#*^40q3o9999^^^ii/-#+..",
-"....+@#'_8<__:5e'>)&&=$#+.......+#$i20413o99^]/!!,-$+...",
-".....@@)e_<___ej(-$*#@@+.........%%}|44111f9^/--&#@+....",
-".....+@&(e__[<_e'&$#%@+..........+#!ia24041a{!=$%#@.....",
-".....+@$=>:[7<_e'&#@@+...........+@&,]|000a|i!$%%+......",
-"......+@$$ecd7<e>*#++.............+#=>|0004|~,$@+.......",
-"......++@$;:<_(>&$@@..............++#=pa02m~!=%@........",
-".......++%*);;=*$@+................+@#)_i~5-=#+.........",
-".........+@%##%@++...................@%#$$%%@+..........",
-"........................................................",
-"........................................................",
-"...............+.+.........................+.+..........",
-".............++#%$##+....................+@$$==$@.......",
-"...........++##*==)=#+.................+@$=-,,/,$+......",
-".........++@%$*=);;)$+...............+@@#=-,}pi}-@......",
-"......+++%@##=>(((e;*@+...........++@##$=,]^^m|~>@+.....",
-"....++@+%###*>e:_::'&@+.........++@@#$$=-]|a1a|i!#@.....",
-"...++@%##$*=='_c<_e'&#@@.......++##$==-,,{1042ai!$%@....",
-"..+@$&>;>'>>'e_c[<<:;$%+......@#-5~]]{]{{f20044a~=#@....",
-".@%*;:<__<_::_}cc87<'*%@+....@%>pa44441aa1lqn004^-#@+...",
-".@$&:8d6668cp[<<c6bce*#@+....#&5a000000nq44l00009,$#+...",
-".@#=([7866878c[}c8bce&*@+....%$,m000000nnn4l0000|!-#@...",
-".@@#)(:<[87ccp}_[<c[e'&$@....%%=}ma40000nq43l0n0ai5=@...",
-"..+@$=)e<[887p_!_}<_:e'=@+....+%=,}|40nn0q1o1141a|i,%+..",
-"..+@%$=;:<c86[_j5e::::;&@+....+%$=,ia4000ql9ff1aa|i5#+..",
-"...++#$);(<i6c:',''(e:e)#@+....+@$=/i94n00f{{{i^|a|/&%+.",
-"...+++#$=-:cb[5---&)(:e;*#+....++@$-,/|n00o///!]ma|~>$+.",
-"....++%##=e[6<e-&**&;:e)*#+.....+@#$=,|0009/!,-5i||_>$@.",
-".....+@%##;_<<e'>&**&)=*#+.......+@%$=~a04|^]!--:},>$@..",
-"......+@%#)(::_:(-#$$##@+.........+%#$/^aaa1m/===&$#+...",
-".......++@$&((:_e)$#@%++...........+@%>/^|a1|/=$#%@+....",
-"........+@$$&;e:e)&*#@+.............+@=-5i|a|~!>$%+.....",
-".........+@#$;;:e;;&$++..............+@$*_ia|i~5&@+.....",
-"..........+++=;:e(;&$@+...............+%@,ia|mi5=@+.....",
-"...........++#&));;)*+.................++$,}}pp_>%......",
-"............++#$=&;&*#+.................+@$=,5p5)$@.....",
-"...............+$*)&*@@...................++=>}5>#@.....",
-"................+$*$#@......................@=-=$%......",
-".................@+++........................%@@+.......",
-"........................................................",
-"........................................................",
-"...........++++++......................++++++...........",
-"........+++++++@++..................+@+@@@@#@+..........",
-".......@$=$$#*);&$@+...............%&,==$-/p5-%+........",
-"......+$&;&=$)(_(=#@+.............@&5~5,=/m2^,$#+.......",
-".....+@=;(;=='_[:;$@@+...........+@,~|]!,{20a~=%#+......",
-"....+@@)e_e>=e<6_'$$#++.........@@#}|2|]!9404{-=$@+.....",
-"...+@@#;<c_(-e<b[j&##@++.......+%#*i402^/f0009!=$%@+....",
-"...+@#$([6<5'_8b[5==$#@+.......+%$&m004f{10009!,=$%+....",
-".+@%#$$:[6<5'_8gc/-=*#%@+....+##$=-f0049{100no/!-=$@+...",
-".+#$#$=:86c:j~8gc_>-=$$++....@$==-,|00039ln0q3]/,==@+...",
-"+@$**$=:c6p:j}7g8/>-*$$%++..+#----,fn0q39l00n3{/,-=$@+..",
-"@*)''';<7g7~:8mg6}5,,-=*%+..%-}ii{i400n33n0003o^{/,-#+..",
-"@&e_:eecbg78~7dkdc:5j',*#@+.@5|2aff0000nln000n3o9^{,=%+.",
-"#;<[[<[8bhb7cmghg6p~__()$%+.$i4004400000000000lllf|/&#+.",
-"@)(::::86g67}8dgm8__5('=#@+.@}maaa|n000nln000n13f^i,=#+.",
-"+$&);;;<mbc}/p6g6p5(,>&$%@..+=5}~~i4000l3q000q99^]!-%@..",
-".++##*=:cbp_j}cmc}j'&=$#++...+@$=-,a00q39ln0n19{!,=$%+..",
-".+++##*ecb<!'5p7p_j>-*#@@+...++@$&,|0049{oqnq39{/-=#@+..",
-"..+@%$#e[6<5,j_[<_:(-*$@+.....+@%=*|00qo{o1044|9/-=#@...",
-"...+@@$([6_(-(5__}<5>$#%@......+%%=m0029/^f31149]-$%%...",
-"....+@#(_6_(->,e:_<e>$#@+.......+#$m402^/]^9324a]-$#+...",
-"....+@@;<6_;&&>>(_[_'=$%+.......+%%i402i!!]~9202{,=%@...",
-".....+%;<8:;====;_[<(*$#@+.......+#i40ai,,,,i304^,=$@+..",
-".....+@;_8:;$$$*)e[_(&$#++.......+%p20a~----_|02m!-$@+..",
-"......+)e[(&####=;;;';&*@+........+}|0m!$$$$,~iii]5-#@..",
-".......&(_;=#@#@#*=&;(;=#@........+5m2p,$%$#$-,5~mp,$@..",
-".......*;e)*@+@+@@%$&(;=$++........)p|})%@@@%%#&5mi,&@+.",
-".......#*&*@@++++++#$==$@+.........$>5-#@+++++@$&,,&@+..",
-"........+@@+....+.++@#@+............@@@+....+.++#$#@....",
-"........................................................",
-"........................................................",
-"...........+++.........................+++..............",
-"........++@###@++...................++#$=$%++...........",
-".......++@$)(&*+++.................+@@-}m5-@@+..........",
-".....++@@#;:<e)#@+@+.............+@%#$~a4|/$%@@+........",
-"....+@%##$;_8:;$$%@++...........+@#$$=i401~=&##@+.......",
-"...+@@##$=e[6_,=$$#@++.........@#%$=-,|004^,-=$%@+......",
-"..@@#$$===:cb[(*=$$$%++.......@@$=-,,jf0009,,-==#@+.....",
-".+@#$&&&->_cdc:>-==*$%@+.....@%$-!!!/]1000f]/!!-=$@+....",
-"+%#=':__5([6h8_jj:5';=$@....+#$,{a33o94000399oo^~,-%....",
-"+#*):76c[_cbkbc__[c_e;&#+...+$,/10004l0000032404|~5=+...",
-"@$*'[bkbc~6dhb7}cc68_()=+...#=,i4000nl0000nl00002m}-@...",
-"+$*-<6d8}_pdhmc:}[8[_(;*+...@=,/4000l3n0000f10002m~>@...",
-"@$*&<6d8_5p7g7}j:<[<:(;$@...@=-/200n194000l93404am~-@...",
-"+#*&_8dp5,[7g7_>j_[<:(;*+...@$-!100qo^l00n1{9304am~>@...",
-"@#$=_7gc_jpbh7}5_<8<:(;*@...@$-j100qlo40003f34041m~>@...",
-"@#$=_7dm<_8bhbc_<c7[_()*+...%$=!a0004ln000n340002m}>@...",
-"+##*_6g6c~7gkb7_c768_()*@...@$=,10000400000400004m/)@...",
-"+%#$(<8[_:c6h7[:__8<:;)$+...+#$-90001fn0000f2404ai/&+...",
-"+@#$;:<e(,<7g7_'e:::;)*#+...+@$*~f2f^{20001{9|2ai},$+...",
-".+@#*)'--&e8b<(-)'(())*%.....@%$,}i//!|0009/}imi~5)$....",
-".++@$=)&**e[6[(==))&=*#%.....+@%=,/!,,|000^,!/~5,>$%....",
-"..++##$***ecb_(=$=**$@+.......++$=--->|002^,-,)>=#%.....",
-"....+@@%#$(<b_;$$#@++...........+@%#$*m002i=*$#@@.......",
-".....++@@#;_8_)%@%@+.............+@##$p202}$%#@+........",
-".......@@@):[e&#@++................%@%}|0r!$%@+.........",
-"........++&;_;&+@+..................++5i2i,@@+..........",
-"..........*)()$+.+...................+>}m}&+.+..........",
-"..........@$=$+.......................%&,=%.............",
-"...........+++.........................+@+..............",
-"........................................................",
-"........................................................",
-"...............++++++......................++++++.......",
-".............+@###@@@++..................+%==$%#%@+.....",
-"............+#*&=$*$#@@+................+$>5,--&$%#+....",
-"............+$&;;&=**$$+................@&5i~!,,-&=@....",
-"...........@+&':e'-&&*$@+..............%@,i1|i/!!,=%+...",
-"..........+@#):c<:'>-&=#+.............+#$/a02f^]/!,$+...",
-"..........@@#;<7[<(('>=#+.............@%$i200199i~,&@...",
-".........+@##(<68[_:'>=$@............+@$=^40001fi],=@...",
-".........++#$;_c[[<_(&$#+............+%$-i300041^!-$@...",
-".........+%$*>e<p87<(&$@@............%%=-]f440049!=#@...",
-"........+@#*&,e}pc7[,&$%@+..........+%=-!^flqn04^!=$@+..",
-"........++$&;:<8877<(-$#++..........+@=!~f4nnn049/-$@+..",
-"........+@$>(_cm7c8}e-=$++..........+@-]^10000n4|/,=@+..",
-"........@@=>e_8d77c_5>=$%+..........@#,]m4000n0l9],-#+..",
-".......+@@$-'_cb78p_e>-$@+.........+@%-/{3000n4lf]/-#@..",
-".......+@#$=-_8bmc}}5'-=#@.........+#$=!/1n00nl1f{/,$@..",
-"......+@@%**-jp668<_5'>=%@+.......+%#$-,/9q00n43f^],$@+.",
-".....@+@#$*=&:[b7i8<_e'&$++......@%%$=-,!fq00nn43|{!=@+.",
-"...++@%##$*=-!}76878}_(&$@+....++@#$==,!/9l000nn419!&%+.",
-"...++@#%*$==-5~877m8p_5)#@+....+%#$$--,!/oln0000q1f/=%+.",
-".+@#*=&->>,je<[8788c<:'&%@+..+#$-,!/]]^994q0nn0n4|i!$#+.",
-".+#$);e(e:__c[p[c88[e(-=%@+..@$-/i9|99140nq0nn04f^/,%@+.",
-".%*=':___<[8678pc[[<(-*$@+...%-,ia222400000400049/,=#@..",
-".@#*)(::::_<<_:e5:_5('&$@@...%$>}maaaa2222afffaf^i!-@%..",
-".+@$)'eeeee((;,;>'>'(;;*%+...@#=/i||||9^mi{~]i]i^i~,%+..",
-".+@@=;;';;)*$*$*$$$*'e'&+....+@#,~iiii/,----=--,i|i,%...",
-"..++$&)))-=*$###$%#$&))$+.....+@>,/}}/,-=$*$=$$-5}}=+...",
-"...+@#$$**##@%@+@%@%$$#@.......+#$-=--=$##%%##@#=-$#....",
-".....+++@@@@+@+@++++.+...........++@@@@@%%+@++++.+......",
-"........................................................",
-"........................................................",
-"...........++++........................++++.............",
-".........+@#$##@++...................+%=-=$%@+..........",
-".......+@+$&))=*#@+................+@@&5}/,-$%+.........",
-"......++%#&;e;)=*#++..............+@#$5p|i/,-$@+........",
-"....++@%##;:<:'=$#%@+...........+@##$=]a4aij-$#%+.......",
-"...+@###=$([6<'&$$$@+@.........+@$$=--^004^!--=#@@......",
-"..++@$$$=&:cg[:==*$$%++.......+@#=--,!|000f!,--=#@+.....",
-".+@#&'e(''<bh6<j,>-&=$#@.....+%$5i|^{^000029{{/!,-=%....",
-".+$=(<8<__7dybc__:e(';=$+....@=,m400110000031f|m{},&+...",
-".#$)<6gb8[bhxgbi[[__e(;$+....$-/40000000000n0442|m~-@...",
-"+@$=<bg6c[7dhg6cc<<:e;)$+...+#&540000400000n044a|i}&+...",
-".@$=:7d8_5<8b88c[_ee')=#+....%=,20001o4n00nnqlf|i/,=+...",
-".@#*:8d<:>!}[p<~__(;)*#@.....%$>|004a{o1q44l1a^i/-=@....",
-"+@@*:86<5'j:_~[p_5'>=*#@....+##>a0049{9f1lq41f^],-$%....",
-".@@$e86<(,,j5_p8_(>&$#@@.....@%-|0049{^9o1qn29]!-$#%....",
-".@@$([8<5>,>,:[6[j&=##@+.....@#=m004o{^{{30049!,=$@+....",
-".@@$([8<j',>,:<6<j&*$%@+.....@#=m0019{^{{o4049!-=##+....",
-".+@#;:[:_:jj,_<8<e-=##++.....+@=pa02ao99^14n4|/,=$@+....",
-".+@@)(:____:e_<<_'>&*@%+.....+@#}ma2113of3403^]!-%#+....",
-"..+@=(e:<<__5__<:(>)*#++......+%,i|a4021f112||]/-$@@....",
-"..+@$=):[7<<:5('(:e(;=$%+.....+%>5_a0002|f9m^||m~,&#+...",
-"...+@$=ecb8<:(;-;e<e(;&#+......+#=,a0004a^~/i|4a^~5=+...",
-"....@@#e[dc<:;&$)(<_e;&$+.......@#$|0004ai!-/|42|p5=+...",
-"....++%)(_e;;&*#=)(;;)=#+.......+@#5|2ri~!>$,}mi~/,=@...",
-".....++%&&&**$#@%$*===*#+........+@$,55)>=$%$=-(,,>$+...",
-".......++@+@++@%@++@$$$%+..........@+#@@@@%%@%@@&)&#+...",
-".........++++@++++++@#@+.............++++@++++++#$%+....",
-"....................+++.........................+++.....",
-"........................................................",
-"........................................................",
-"........................................................",
-"........................................................",
-"......++@+@+@+@+@+++..............+@@@@@@@@@@@++........",
-"....++@@%@##%#%@%@@@++..........+@@@##$$#$###%#%@+......",
-"...+@%###$#####$#$##%@+........+@#=$==$=$===$=$$#%+.....",
-"..++*)'>&*&$*$$#=&>)&$#@......+@-/i]!,,--=-=,!]/!-=%....",
-"..+#)e_:,>-==$==-':(;&=#+.....+$}|2f^]/,,-,,/ia|~5,$+...",
-".++#(<c_(,>-=&**>:<_e'&#@....+%$^4029{]/,!,,{f42|i!=@...",
-".+@#([8<5>>-*&&&,e<<e;)*+....+@=m0049{]/,!!!{f44|i}-@...",
-".+%#([8<e>--&&==,e<<:(;*@+...+%&m0049{//!j,!{944|^~>%+..",
-".+@$([8_(,--&&=&>:_<:(;=%+...+#=m0039{//!!!!{a423m~,#+..",
-".+@$([8<j--=&&&&':<_:('=@+...+%&m0029]/!!j!!{f4419i,#+..",
-".+@*([7<(,-&==&&>5[<_e;=%+...+#-|0049{/j,,!!{f42a9i,%@..",
-".@@$([8}j--==&=&>:<_:e;=%+...@%=m0019]/!,j,!{344a|ij#+..",
-".@%$([8<(,--===&,5[<_e'=@+...%#-m0019{//,!,!{fq4f|i,%+..",
-".+@$([7_j--====='5<_:('=#+...+#=|001^]/!>,!j{f44a9i,$@..",
-".+@$([8_(--&=*==,:[<_e'=@@...+#=m0019]/!,,,j{3q41|i,#@..",
-".+@$([7<5,,--->-j_[<_(;&@+...+#=|0049^{]//]/93041|{,#+..",
-".+@$([8[_e!j,,,(:<7[_e'=%+...+@=m0003o99{^^^a40029i,#@..",
-".+@#([7[[__:_::_<868<e;=%+...+#$m0004413afa140002|~,#+..",
-"..+#;<8c<_::eeee<[8c_e;=@+....@$i40041afff|f40001|~,%+..",
-"..+#;<[_e('';>',e_c<:';*++....@$i402f^i{~~{{9204a^~>@+..",
-"..+%;:[:'-&*=$=*>(<::;;*@.....+#pa0|i/!,,-,,]|42ai~)%...",
-"...@)e_()***$#$$&;ee';&$+......@}|2m/,--===-!i||ii5=+...",
-"...+$&)&$$##%##$*&))&)$#+......+=5}5-=$$$$$=-!_/55-$+...",
-"....+###@@@%%@@%%#$$###.........@$=$%%#%%#%%#=*&=$$+....",
-"......+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....",
-"........+.+......+++................+.+......+++........",
-"........................................................",
-"........................................................",
-"........................................................",
-".......++++++++++..................++++@+++++...........",
-".....+++@@@%@@+++@+++............++@#####%@@@@@++.......",
-"....+@#####$$#$##%@++@+.........@#$$$$$=&$=$$#%@@@+.....",
-"...+%$*$$*$$**$*##$#%@%+.......+#=------,---==&$##%@....",
-"...@#&-------&-&&===*$#@@+.....@=!///////!/!!!,,--$%@+..",
-"...@&e____:5jj!5555(,(;=#@+....#!|2133o999oo99f9^^~,&%+.",
-"..+#(<7877[<_<<p[[[[<_e;=#@...+$m40000nl314qq00042ap,&@.",
-"..+#([b6bb78<p878888[[_'=$+...+$m000000n4qn0n000002i,=@.",
-"..+@)(_<88c8pc86c<_::e()$#@...+%}m20000nq0n0041fa|m5&$@.",
-"...+$=)e_ppcc877p_';;))=@+.....+&'}|24qnn0n043^{i~/,#+..",
-"...++#$)e_[}[i66[5>&&&=#++.....+@$*]f144qn00q9]!!!,$@+..",
-"....@@#&>(5__p8bc5-&=$$@+.......%#$,~^ff1q000o/!,-&%+...",
-"....++@$*->>,<cb[5-*$##++.......+%#=,/]{^3n00f/,-=$%+...",
-".....+@@#$*--_pdce**$%%+.........+@#$=,//10009,-=%#+....",
-"......+@@$$=&(c6<j=$$@@+..........+@#=-,!90049,-=#@+....",
-".......+@@#$='<6<(*$#%+............+@#$-,^401^,==%%.....",
-"........+@##*'_c_,$$#@+.............+%$$-i202{-=$@+.....",
-".........+@%#-:[_'&$$%+..............+#%=]|02{!-=#@.....",
-"..........+%#)e_e(-=#@@...............+#$/|2|^/,=%@.....",
-"..........+@@=;:e;;&*@+...............+@#(i||ii!-@@.....",
-"...........++$);'((;=$@+...............+@&/ii^m~,&%+....",
-"............@#*&)(e()=$@................@$-5}^am},&#....",
-".............++%&(_e;&*@.................+@#5m2|i5)%....",
-".............+@+*;e(;=*%.................+@@)~|m~,>#....",
-"..............+@#*&)**$@..................+@$>55,)&%....",
-"................++@####@....................+@#$$$$%....",
-"..................++@@++......................++#%@+....",
-"....................+@+.........................+%+.....",
-"........................................................",
-"........................................................",
-"........................................................",
-".........++@+@@+%+@@+++..............@+@@%@@%@%@@++.....",
-".......+@@#&)**#*=&&*#@+...........+@%&,/,-$-,5!,=%+....",
-"......++#$);:'&#&(e(')*#+.........+@$&/iai!=5^ami5,$+...",
-"......+@$=(<8:'=;_c<e'&#+.........+#=,m40ai,{a00ai5=@...",
-".....@@$$=e[7_'&;_8[_(>*%+.......@#=-,|004{!i200am]-#+..",
-"....+%#*=&e<b<(&(_[<_(;=@+......@#&-,5|0049!^1041m~,%@..",
-"....%$*==):[d<5>'_[<_e;&#@+.....#=),!}a000f]{1043|i!$%+.",
-"....@*&));_7d8:>:_c[<_()$@+.....#-5!/~2000f{f1n4419/-%+.",
-"....$=);(([6g7[5_c88[__;&$@.....=,_i^|0000qf1000q4ai!&#.",
-"....$&;e:<cdg68}[7b67c[e)=#+....&5i||40000n1q00000q|_,$+",
-"....$&;ee_cbhbc_p86688<e>=#....+=5p|az000001q000004|],$.",
-"....@$=&;(<6g7[e}p87c<:;=$@.....#=,5~m4000qf1q0004ai,=#.",
-"....++#$*&:8dc:,:<8[<:e)$@@.....+@==,5a0003{31n4qa|/>#@.",
-".....@+#$$e[dc5,j_p[_e(&#@+......@@$=-|000f{91q41f^!$#+.",
-".....+@@$*ec6[e-j_c<_:(&#@+......+%#=-|000f]910q1fm!$@+.",
-"......+@$#e[d[:-(_p[_5;&#++.......+%==|000f/^1401fi5$@+.",
-"......+@%$e[b<5-j:[<_e'=#@.......++%$*|0009]93q419i,$%..",
-"......++##([d[5-,_[__:;&@+........+%$=m000o/^3041fi!%@..",
-"......+@@$([b[e>,_p<:e'=%@........+@#=m0009]^344a|i,#@..",
-".......@@#(<b[e-,_<[_(;=@+.........@%$m0009/{10439i,#+..",
-".......+@#([d[_,e<c<_e'=%+.........+#$m0003^f4n02|i,#+..",
-".......++#(8d8<e_c7[_e;$@+.........+@$^0002f10002|~-#+..",
-".......+@@(cg6[_<868_(;*@..........+%#m0000240002m~>@...",
-"........++):[_e(::[_e;&$+...........+@}a02|^a242|i!=@...",
-"........++*;(;)=;(e(;)=#+...........++)pmi_!~m|^p/,$+...",
-".........++#$$$%*=))=*#@.............+@$=&*$-,_/(>=@....",
-"..........++@@@@$$=$$##+..............+@#%##=-,-=$$+....",
-"...........+@++++@##@++................+%++@@#$$%%+.....",
-".................+.+.........................+.+........",
-"........................................................",
-"........................................................",
-"...+@###$##@+%+@+@+++..........+%$===$$%@%@@@@+++.......",
-"..@#=;';&&=*##$$$#@++++.......%$,]i]/!,-$=&-==#@@++.....",
-".@#$;:_:e'-=*==&=*$$%@+@+....%$-ia2||{/,-,,!,-=&$%@@+...",
-".@$=e[8<_e'-*&);>)**$#%+++...%&(|0002f^/,!/]]/,-=$#@@+..",
-".+#*;:[__:(5,((5e::((;)&*#@..@$>ia021f99^99f|fa|^]}!>=@.",
-".+@$)e::::___}___[7c<_:';&#+.+#=_|a|af132121400042|i~5&+",
-".+@#&;(e:5_888[c7bgg78[_e'*@.+#$!]m9ff1n000000000002|i>@",
-"..%@=)>(5_[[8[__[8668<<:;)$+..%#,/{9f14400110000002ai_=+",
-".+@@$&>,:_~<8<:,_[88<_e;)=%+.+%%&!]^fll001f^140042ri/($+",
-"..+%#$-'/<<[p:j-'_<<_e;)$#@+..@#=-!^34q4q19/^1442|i5-$#+",
-"..@%$=-(_[p<[:'-'(::::()##+...@%=,/924q44f{/{91aff^/=$%.",
-"..@@*)':<8[[_5'=-;(':ee)$%@+..%#,/io4nqq1f{!/~^^a||/=#@+",
-"..@%=>(_[8c<_e,=&&-;e_e;$@+...@#,]^100n44f{j!j/i92a~-#@.",
-"..@@&(:_p[p[_j>=**=;e_:;$%@...%%59a1q0q419],,,,]|4|~=%%.",
-"..+#'_c<_:___(>==**;:[_;*@+...+$i2043f1119],,,,]a04i-@@.",
-"..@#ec7[5,(e_(>==**;:8['$@@...%=|000f{9|2^],,--~200i-%@.",
-"..+#(c6_'>,:_j-***=;_8[($@+...+$m002^]^a2^/,-,,]200m-#+.",
-"..++&(:;)&(<[:>=*==;:7c'*%+...+@5mai}!^101],-,,~20ni>#+.",
-"...+$=)&==(<7_'*=$=;_7[($++....@=,5!,,m402{,,-,p200m*%+.",
-"....+%$##$([8<,&&&&(:8[($@+.....@$==*-^004{!!j!^z00m&@+.",
-"....++%%##;:[<:(::__[[:)#+......+@%#$=pa04a9|a2200a}=@..",
-"......+@%#)e<[[c[88c[:e&#@........+%#$}|4000000002|5$%..",
-".......++@=;:<[866d8[e;=@+.........+@@,ia40000000|p,%+..",
-"........++$=);::_:__;)=#+...........+@&(}iaaa222i_,$+...",
-"..........%$*=);;;;;&*$@+.............%&-,}ppii}5>&#+...",
-"...........+%%$****$#++................@#$&>>))=$@+.....",
-"............+@@####%@+..................+@#$$$$$@++.....",
-".............++@+++++....................+@@@@%++.......",
-"................+...........................+...........",
-"........................................................",
-"........................................................",
-".........++++........................++++...............",
-".......@$==$$#+++++@@@++...........%-,,-=$@+++@@%%@+....",
-"......+$);))&=$@@@@#$=$+..........+&}i~}5,&%#%#$&>&@....",
-"......+='e(;;&*%%##$$=*#+.........+,i|mii!-##$=--,>*+...",
-"......+*(eeee;&$*=&;(e'&#+........@(i|r||~!=-,5~m|i5$+..",
-"......@=;e:__(>$&)'(:[_;$+........@,p|av2|]-!/ima02p=@..",
-".....++=;e__[:'=-;(:[8[($%+......+@(i|140f{,/]^1000m-#+.",
-".....++*&;:[8_'&;e__<<e;*@+......+%-5pa001^!~|2z44a~>%+.",
-"......@$*):[6<(-':<<::'&*@+.......@=,/|0049/^o04aai5>#+.",
-".....++%$*:[dc5>(_8[e;)=$#+......+%%&,f0009]9200|i},=$@.",
-".....+@%$=e[6c}5__<_()=$#+.......+@$=,900nlo1102m/,-$@..",
-".....+@##$e<77[[[__e;&*#@+.......+%$=-9400044l3|~!-$%+..",
-".....+@#$=,_c876[<e(=$#+++.......+@=-,^1n00002f^!=$%++..",
-".....+%#$=e<876d8<e;&##@+........@%$-,92n000019~!=$%+...",
-"....+@@$*=,_[mbg6_'>&$@%+.......+%#=-,^1000001^]!=%#+...",
-"...++%##=&j_c6gh6~'-$$#++......++#$=,!93n00004{/-=*%+...",
-"...+@$=->':_p86d8<e;-##@+......+#-,/]^f1q00004f{/=$@+...",
-"..+%=);:<[c[cp[pccc_'$#@+.....+#,/if2000040qn002i-$#@...",
-"..+#&;:[6d88<<:e<868e&#%@+....%$5i|0000n44a94000|!=%@+..",
-"..@$)e_[868[_:';:<6[:&*#@+....@=}|2000044f^i|q00f5-*%+..",
-"..+#)e__<<ee;>-&;(ee(;)=##+...@$}|2244||i]/!pm||mi},&$+.",
-"..+#)e_:e(;&*=$$==);;(;)=$@...+$_|2||m~!-,--,,}~pmi/,=%.",
-"...@&(:;;&=$#####%$=);;)=$@....%5m2i~5,-$$$$$$=,}ic/,&#.",
-"...+$&;&**$@@%@+@@@#*&=$%%+....+=5}5>-&#%##@@%#$>,,&$#+.",
-"....+@%#@@++++++++@+@@@@@+......@#$$%@@+++++++@+%###@+..",
-"........++++.........+..............++++.........+......",
-"........................................................",
-"........................................................",
-"........................................................",
-"........................................................",
-"........................................................",
-"...+@@#@+++....................+%%$%@++.................",
-"..++#*$$#@+...................+@*--=$@@.................",
-".+#$=&)=$$%@+................@$=,5/!-=$@+...............",
-"@$&>(eee'>=#++..............@&5~^|a|i],=@+..............",
-"+&(:_<[_:e;*@++.............@5ma24011m~-#@+.............",
-"@)':<[8<<:'=#@++............@5m|400042{,$@++............",
-"+$&;e<[<<<(-##@+++++@##+@...+&5p|40444m/=$%@++++%$$@@...",
-"+@$=(:[[[<e-*#%%+++@#$##%+..+%&,ma0000|/-$##@@@#$==$#@..",
-".+@$;::[[c:>$##%%%%#$&=$#@+..@#&~a240na]-=$###%=>!,-$@+.",
-".@@%&(:[76<(=*$#$*=;;:;&#+...@@$5^|0004^,-===-,/i|i5$@..",
-".+@@&)e[7g[,=$$#*);(:<:)$+...+@#!~90000^,-==-/~ma4|}=+..",
-"..+%$&;[bh8(&=$**;(e<[_;#+....@%-!i000q9!,--,~ma404~$+..",
-"..+@$=):cdc5>-=*-;:::e(*@+....+@&,/1000f]/,-/iaaa|m,#@..",
-"....##=:[8<:,>&$;(_:(;&$@+.....+$=,|000f^]!-]m2amp5&@+..",
-"...+@@#'_8[_e,-*;e<:;=$#+......+@%={20q1o^/,]|4|i,=$+...",
-"....+%$)(_<[c5>=&;(;&$#++.......%#=}m22009],5~mp5>$%+...",
-"....++%=>(_c6<,=&&)&$#@+........+@%,]^100q^,!!}!=$@%....",
-".....@@#$&_8hce=**#$@@@+.........%#=-510009,,-==##@+....",
-"......+%$=(<8<e'-=$##+@+..........+#-,m404f{/,=$$%@+....",
-"......++@$)(::__e&*##@++..........+@#=/m|a239/-$$@@+....",
-".......+@@#=)e_c:;#$@%++...........+##=,/|20a]==##@+....",
-"........@%#$=;e_:(;&$#@+............@%$-,i|2a^]!-$%+....",
-".........+@##&;(eee(&#@@.............+#$=5~||||^!=#%....",
-"..........+@@$=&(:[:'=#%..............+@%=,j^20ai,$#....",
-"...........++#$*)(:e;=*@+..............+@$&,_m1r],-%+...",
-"............++@$*&;);)&$+...............+@%*>5~}~}5&+...",
-"..............++%#$=&;)#+.................+@%$&,5~/&@...",
-"...............++++#*)&$+..................++@@&-}5=+...",
-"................+.++#$#+....................+.+@$=$@....",
-".....................++..........................++.....",
-"........................................................"};
+"....................................................................................",
+".......................................++++++......................++++++...........",
+"...........+.+......................++++@++++++.................+@+@#@@@@++.........",
+"........++.++++++++................+@@@###$#%@@++..............+@@#$$$*$#%@@+.......",
+"........+++.+++++.+...............+@####&#&&$%%@+.............@@$$$:,:,,*$#@@.......",
+"......+++@@@@@@@@@+++............+@$*=---;;>,'*$#++..........@%,|5noonneo4|,$@+.....",
+"......++%##%#####%%+++..........+@#')!!~~~{]!)>*&@+.........+#$^0g6p0fff60nd,@+.....",
+"....+++%#$$$#$$$$##%@.+........+%%$)]/(_]_//_{~):#@+.......+#%:<aaaaaaaaaf1e;$%+....",
+".....+@##&$###$$###%@+.........+##,~][_]{{}_}]{~=#@+.......@$*|1aaaaffaaaafg5*%@....",
+"...++++#$&$#@@%##$$$@+++......+@$,=!/2_!)3~!{_/]>&#@+.....+%,456aaag<q0gfaaae,$%+...",
+"...++@%#$&##@@@+#$&&%++......++%:=3](7}~----!_8/~:#++....++#;90aaaaqoooogaaa1;$@+...",
+"....@%%$&&$@@+@@%$:$#+++......+@*)~}[7]b,,,,~(c/~*##+.....@#de0aaaa<44440aaa1|:$@...",
+"..++@###$&#@@+@+%$&$#@+++....+%#=~{}([{3,*,*3_7/!-&$@....+%:51faaaf<4444qaaa6o,:@...",
+"...++##$$$##+@@+%#&$#@++.....+@$=!]__(!b,,,*~]7(!>*#@+...+%:9gaaaar<444|0aaa69d*#+..",
+"..++@#$$$$%@++@+##&$#%+++....+%$){_(((!>:*,*3]2/!)'&@+...@%*efaaaage||4|0aaa6e4,%+..",
+"...+%##$#$#%@@++##&&#%@++....+@$){___}!;,,::~][/{)=&%+...+#*hfaaaape44||qaaafe5,#+..",
+"..++%$$$$##@+@++%$&$#%@+.....+@&3]/__}!-:**:3_2/])>:@+...+%,0aaaaapn||||0aaaa09;#+..",
+"...+@#$$#$%@@@@+##&$$%@@+....@@$)](_}}~;,,**~]2/]3=:@+...@#*haaasatn44||0aaaa05;#+..",
+".+.+@##$$$#@+@++##&$#@++.+...@@&={}(_({;,,**~]2/!='&@+...@%,9faaaafe44||qaaaf94,#+..",
+"..++@%#$$&#%@@@+##&$#@@+.....+@$>~{_/[{),,,,3}[(!=:#@+...+%:91faaar<44440aaa65;:@+..",
+"...+@%#$$$$@+@@+%#&$@+++.....++$=3{_/[i),,*,3]2_~'&#+....+%:50faaaf<4444<aaa14-$@...",
+"...++@@#$&$#@@@@%$&$#@+++....++#*=3]/7_d,---~_2/~*$#@....+@$|90aaajt4oooqaaap|,$%...",
+"....+@@$&*#%@+%%#$&$%++.......+@&,=}2c(~-->)!(7_~:#++.....+#,49jaaapooee6aaa1;$@+...",
+"...++++#&&&%@%@@#$&$%+.+......+@$&'!28(d-;;3{(8/~$#@+.....+@:;46aaatoee<faaa0,$@+...",
+"....+++@$&$%%#####$#@+.........+#&*3_[}!b~~!{]_~>$@+.......@$,|1aasg<<tg6aa69:#@....",
+".....++@%#########@@+++........+@%$>~{{!^!{]{~3>*@@+.......+@$:91ff6gfjafgu9|%@+....",
+"......++@@##$#$##%+++...........+%#:>3!{}}_}{)*&$@+.........+#$;90gfaaaa6e|-:#+.....",
+"....+..++@@@%%%#%+@+.+..........++@&*==)33~~)':#@++.........+@@-|59h0001h4;:#++.....",
+"......++++++@@++@++..............++@$&**'''':&#@+............++#:,||^^4^|,$@%.......",
+"...........++.++...+...............+@@@##%%#%@+@...............+@#%$$$$$#%@%........",
+".........+..+..++...................+++@@%+@@++.................++%@%#@@%++.........",
+"....................................................................................",
+"........................................+.+.........................+.+.............",
+"...........+.+.+......................++@@+@++....................+@#%@@@+..........",
+"...........++++.+....................+@%#$#%@++..................+%%$*:#%@+.........",
+".........+++++++++..................+@#&:$&$#%++................+#$,;,,:$#@+........",
+"..........+##%%@@@@+...............+@@'3{33)='*$+..............+@#40fq0e54d,@.......",
+"........++%#&$$##%@@+..............+@#)]2/]!~3)'$..............@#$haaaa6g0h^*.......",
+"........+.#&'&&$###%+..............@@#!2kc2_{{~):..............@%:6avaaaa60h;.......",
+"......+.++#$'&$#%@@++.............+@#&~7k8_!~)=:$.............+%$*1avaa11h9d:.......",
+"........++#$'$#@@+@++.............+@#&![k2]==''$@.............+#$,6avaa9i^d:#.......",
+"......+.++#$'&#++++...............+@$${2k[~*:##@+.............+#:,6ava1|;:$#+.......",
+"........++#$'$%+++.+..............+@#&{[l/~:$$@++.............+%:,6ava1;,:%@+.......",
+".......+.+#$'$#@+.+...............+%#&{[k/!:&#%@..............+#$-6avag;,$#%........",
+".......+++#$*$%+++.+..............+@$${2k[~:$#+@..............+#:,fava1;,$@@........",
+".........+#$'&#++.+...............+@$${2k[~:##%+..............+%:,6avaq;:$#+........",
+"......+.++#&'$%++.................@@#${[k/~$$@++..............%%$,fava1,:%%+........",
+"........++#$'$#++++...............+@$&{2k/~:##@...............+#:'6ava1;:$@.........",
+"......++.+#$*$#++.+..............+@##${[l/~:$@@..............+@$:,fava0;:#@.........",
+"........++#$'&%+.+................+@$:{7k[~&##++..............%#:;6avag,:$@+........",
+"......++++#$'$#++++..............+@#$${[k[~:$#@+.............+@$:,favag;:$@+........",
+"........++#$'$#+++...............+@#$:{7k[~:$#++.............+#$,;6avat;,$@+........",
+"......++++#&'$%+++...............++#$:!2k[~&$$@+.............+@$,;fava1,,:#+........",
+"........++#$'$#++++..............+%%$:{7k/~&$#@+.............+#$:;wava1;:&%+........",
+".....+++++#&*$#+++.+.............+%$$*!2m[!&&#@+.............+#:,|favag;,$#@........",
+".......+++#$&$#@+++..............@+$*={/8_!;*:#@.............@@,|i6aaagn|;$@........",
+".......@@%#$&##%@+++.............+@:')!(2_!)-:#%+............+%;^hfaaa60o;:%+.......",
+".......+@@##$$#%@++..............++:=3{](]!3=*$@+............+@;906aaa609d*#+.......",
+".......++@@@%@+@+++...............+$:'=)~)=':$@@..............+:;^9h10i!;:#@........",
+"........++++@++++..................+%$&:*::$$@+................@$:';d;;:*#+.........",
+"..........+..+.+....................++@+@++@+...................+@@@@@@@+...........",
+".....................................++++++......................+++@++.............",
+"............+..........................+++++.......................+++++............",
+"..........+.+.+.+...................+++@%++@++..................++@%#%%@@+..........",
+"........+.+++++++.+................+@%#$&$#$#@++...............+##$:,:*:$%@+........",
+".......++++++++++++..............++@#$$:::::$$%++............+@#$,,;;;;;,:#@+.......",
+"......+.++@@@@@+++++.............+@#**''*',,*:&#@+...........+@:;|444444|;,:%+......",
+"....+.+@#$#%%@@%%%#@@...........+%#=~{!33)))))~>:+..........+#$51f6<0<ee<019-@......",
+".....++%#&$#######$#@+.........++#$3]2_]!!!!{]]!'#+........+@$,0aaaagg6g6aa6^$+.....",
+"....+++#&&&$#####$&#@+.........+%$:![82}{!{{]_[]=#+........+#:;6aaaaff6faaaa9$+.....",
+".....+@#$&$$@%@%##$#++.........+#:'![8/]~3)3!]({=#+........+:;4faaafqq<06aafi$@.....",
+"....+@@#&:##%@@@@#$#@+.........+$')][8}!;;-=){}!=#+........@,4haaaagenno0fa65$+.....",
+"...++@@$$:##@@+@@%##++........+@:=)][7]3-,,*=~]!'@+.......+%;50aaaaqo44|91a6^#+.....",
+"....+@%#&&$%@+@++@@@+.........++$')][8_d,,**'=)=$@+.......+@-4haaaa<44b|49hi-%+.....",
+"....++@#$&$%@@++@++@+.........+@$*=]/8_~,,*&****#+........+@,d9aaaaq44|;|dd;$+......",
+"....++@#&&$%+@@++++............+&*=][8_d,,*:&$#@++.........@,d9aaaato4|;,:$#%+......",
+"...+++@#$&$#%@@+++++...........@$&'!_2}^b-,:$$#%+..........@:,46aaap<n4;,&$%%.......",
+".....++##$$##%@++++.+..........+@$&~](_{!b>&:$#@++.........+%,;0aaafp<n;;:$#++......",
+"...+.++@##$$##%@+++..+........+@%$$){]__}!;*:##@@+........+%#:,efaaaapn|;:$#@+......",
+"....+.+@@##$$##+@+++...........+@#$-3!{i_!d-':##++.........+#$,o<gjfsptn4;:$@+......",
+"....+++@@@##$###@+++...........@@#$,>3!](]^~;,&$@+.........@#$,49<gasarte4,:#@......",
+"....+.+++@@#$#$##@@+++.........+%#&*,-d5}}i]~>:##@+........+%:,|4oqrasfjtn;:$@+.....",
+"....++@@@%%$#$#$#@@++.........+@$$:,->35]}}}!)-*$@+.......+%:,|4onqrjsssg<o|,%@.....",
+"....++@@%%%#%#$#$###++.........+$*=>;|!!!5i_}^!)*#@........@*|onetppgrjssfpe|$%.....",
+"...+++%%%#%#%#$$$###@++........@:'>33!ddd^}((}]~=#%+.......%;^e0<pqttraasaag5:%+....",
+"....+@@%#######$$$$#@+.........@&=>d!!^!!5}(_(_^=$++.......%-59qgfrgpraaaaaf5:%+....",
+"....+@@%####$$$$$$$#++.+.......+$*=~{}i]]_(/((_{-$++.......@:d50fajjasaaaaaf5:@+....",
+"....+++##$$#$$$$$$##@+.........+$&'~{_(_((/(/_}!=#@........+*;^1aaaaaaaaaaa65:%.....",
+"....+++@#$$$##$$####@+.........+#&:){____}__}]]3'#+........+$,|hfaaaaaaaaaa14$@.....",
+".....++@@@@#%#@%@%%++...........+#$'=)333~33)))'&@+.........@$:4ih00hq000hh^-%+.....",
+".......++++++++@+++++............+@#$&:&*:*::&&$@+...........@#$,';;|;|;;,,&%+......",
+"..........+.+++.+.................++@@######@@+++.............+@@%$$$$$$%%@%+.......",
+"..............+..+..................++.@++@+@++.................+++@@@@%%++.........",
+"..........+.+.........................++@+++......................++@+++............",
+"..........+.++++....................+@@@###@++..................@%##$$$%%+..........",
+".......++++++++++++...............+@%#$&:$$&$%++..............+@#$*,;,,,&#@+........",
+"........++++++++++..+............++@$$:*****$$@++............+%#:,;|||||,:%@+.......",
+"....+.++@@@@@%%@@+++............++%:=>===>>=':&#+...........+%%;o99599994;,$@.......",
+".....++@#$##@#%##%@++...........+%#=!}{~3~~{~)=*#+..........+#:i6sf1q1gf1h5d:+......",
+"....+.+%$&$$##$$##%@+..........+@#&~(7/}!{]_]!~=:+.........+@$,1aaaagfaaa6qi'@......",
+".....++#&&$####$###%++.........+@$*{[8/]!]]_]{~):@.........+#*|faaaapfaaafgh;@......",
+"....++@#$:$##%####%@+..........+$&'{/8({3~!{!~~=:@.........+:;!6aaa6<166610i;#......",
+"....+@@#$&$%@@@%%%%@+..........+$'=]/8_~>>33333=&+.........@,49aaaaqne<0100i-@......",
+"..+.@+@$$&$@@@@@@%%@@.........+@:')]/7]3->==)))=&+........+%;^eaaaaqo999hhh5,+......",
+"....+@+#$&$#@#@@+@+++.........++&*'{(7({)b>=''*&#+........+@,|5faaaf<<n54^d-$+......",
+"...+++@#$&$##%@@++++..........+@#$'!(7(]^~=*:$$%+.........+@$,46aaaagq9|b,:$+.......",
+"....+++#$&&$##@+++............+@#$*!_7[}{!=*$$@++.........+#:,|gaaaafq9|,:%@+.......",
+"...++++#$&$$##@@++++..........+%$:'{_7/(]!)*:$@@+.........+%:;4gaaasage|;:%%+.......",
+"....+@@#$&$$$#@@+.............+@$*-{_2/(i!)=:#++..........%#,|5faaaajg<5;:@+........",
+"...++@+#$&$$##%@@+++..........+%:,={(7/_]!3=*&%++.........+#;49faaaaa605|,#%+.......",
+"...++%##$$$#%%@+@+.+.........+@@')~]_/}{~)>,:$%@+........+@%4etaaas6q<94;:#@+.......",
+"...+@###$##%@@@++++...........+#=~{]}}{~;-':$##+++........%$i0faaafpeo4;,&$@@+......",
+"...++##$###@@@+++.+++.........@#={}}_i!;-,::&#$%@+........%$9fassjpeo4|;,::#@+......",
+"...+@%#$$$##+@@@@%@++.........+#=~{}}}!b,,,,->='$+........+$51aaaap<4444o994,@......",
+"....@%###$%%@@@@%#$%@+........+@'3!{__!)->->3!{~'@+.......@#406aaag<onnn<ga14#+.....",
+"...+++@#$&#%@@@%%$$$@+........+%:=3]}/{|--;3!_[]>#+.......+#;90faag<one06aaa9$+.....",
+"....@@@%#$#%@#%###$%@..........+:*=~{_{~;33!!{}!=@+........@,d51fsfte<<g6aa6i%+.....",
+".....++@@###%####%#@++.........+#$*>~!!!~!!!{!!):@+........+$,d91fgp1g66666h;#+.....",
+".....++@@@@######%@@+.+.........@@$*>33!{{{]{3='&++.........@#*|9006fffaf094,%+.....",
+".......+@@%%%%%%%@@++...........+@+:'=))~~~33=':#@..........+@@;49h<011009^;$@......",
+"......+.+++@@@@@++++.............+@#&:*'''==':&$++...........+@$,;d44555!;,*@+......",
+".........++.++.+++.................++@###$###@+++..............+@#$$:::$$%@++.......",
+".............+...+..................+++@+@@@@@+.................++@@%%##%%+.........",
+"...............+.......................++++++.+....................++++++.+.........",
+"..........+...........................+.+.........................+.+...............",
+"........+..++.......................+@+@@++.....................@@%%@@+.............",
+"........+++.++.+..................+@@$##$@@++.................+@#:$*:#%++...........",
+"......+.+.+++++...................+@$#&&$$#@+.................+#::,,,:$#@...........",
+".......+@@@#@@++++...............+@#*,=d3=:#@@...............+@:|4n<q5;$%@..........",
+"......+++@##$#%++................@@:'=!{_!>&$@++.............@#;491aap9,:#@+........",
+".....++@@%$&&$@++++.............+@#')3_28_3&&$@+............+@$4eqsaaaq;,:%+........",
+"......++%#$$&$$@@+.+............+@%,)!}/8({;,$%%+...........+#$4hgaaaage4,##@.......",
+"....+.+@@#$$&$$#%@++............@%#-b!_/7(}!b,#%@+..........@#:o<gaaaaag<4:#@+......",
+".....++@@##$$$$$#@+++...........@#$=)!]/[/_}!>&$@+..........%$:5egaaaaaapn,:#@......",
+".....+.@%##$&$$##@@+++..........+##=3^]([[(_{),:$@+.........@$:5qgjaaaaaf<4;:%+.....",
+"...+.++@##$$$$$$$#%@+.+........+%%&;~^i(((((}!d=&#@+.......+#$,nqrfsaaasagqo;$#+....",
+"....+++@%###$$$$$###@++........+%#&-~^i}(((_(i!~,$@+.......+#:,ntrjsssaasffq4:%@....",
+".....++@###$$$$$$$##@++........+%$:>~5]9((9/}}}!>&#@+......+%:;9qrjasasaasa69;$%+...",
+"....++@@#$$#$$#$#$$#%@++.......+#$,b!]__h(}_}_(]3-&%+......+$,4<gjssassassaj0o;$+...",
+"....+++%#$$&$$$#$$$$#@+++......+#:,)]_9//9_^_(/}!>*$@......%:;4<jssaassraaaap9|:%...",
+"....+@@%#$$$$$###$&$#%@+......+@$*;di(///(_^i/2_{)'&@+....+%*|nqfsaaassrfaaafe4,#+..",
+"..+.+@%#$&&&&$$$$#$$#@@++.....++:->{_[077h9_(_(_!)-$%.....+@;5efsaaaaasssaaa6<5,%...",
+"...++@%$$&&&*$$$$$$##@@++......@:>3_[8788[/9//h}!3=&@......@;90saaaaaaasaaaa60i-%...",
+"....+@@$$*&&&&$$$$#$#%@+......+@:=~}[78787/h__}]!3=:%.....+#;91saaaaaaaasaaa605;#...",
+"....@@@#$$&&&$####@@@+@+.......+:,>!_h[h[9]^!!33=':#+......%,4ngsaaaasjgrp0<94;:+...",
+"...+.++@#$##$##@@@@@+++........@#$*3!}}}_^!;>--,:$#@+......@$,|0gassarqenoo4;,:@+...",
+".....+++@####%@++++++.+........+@##-)!!{]d>*&&$##%@+.......+#$:o<ggffqe|;-::$#%+....",
+".....++@%@###@@++++.............@%$,)d!!!),$&##%@+..........@$:4eq1gf<4,,::%%+......",
+"......++@@@%#@+++.+.+...........+@%:=)b~~>*$#%%+++..........+@%>ih<109|:$##@++......",
+".......+@@%%%@@..+...............+@:'=))3=:@@@+..............@#;49hh05;#%@+.........",
+"......+++++@++++.................++$&**'':$@++...............+@*-dd44;:%++..........",
+"........++++++.....................+#$#$##++...................@$:::*$++............",
+".....................................@+++........................@+++...............",
+"....................................................................................",
+"....................................................................................",
+"..........+.+.+.....................++@+@+@+++..................++@@@@@@++..........",
+".......+++++++++++................+@##$$&$&$#@+...............+#$*:,,,,,:%@.........",
+".......+++++@@@@++++.............++$:*'''-'':&%@+............+@:;d44^544;,#%+.......",
+".....+.+@@%@@@@%+++..............@#&'=>>>=>)'*$@+............@$-^59e999h^d*#@.......",
+".....++@@#%######%@@+...........+%$'=33!!{{{!)'*#+..........@$*49111gffagh4;$+......",
+".....++@%####$$&$%@++...........@#:>~{{{{_([]!='$+..........@:;90fffaaaaa694,+......",
+"....+++%###$#&&&&$#@++..........%$:)!]}_}[78[]~=&@..........#:;h6asaaaaaaa1i-%......",
+".....++@%#####$&$#%@+...........+$&')~!{!]/[({~=*@+.........@:,5h0gfgaaaaf19;#+.....",
+".....+++@@%%%##$###@@+..........@%$*=>bdd^](]{~>:@+.........%$*|oe<ttrfaag09;@+.....",
+".....+++++@@%%####%@+..........+@#$&*,->;d!]{!3=*++........+@$:;|4onntgjjg19|@+.....",
+"...+..++@%%#%#$$###@++.........++##*->bd~]i(}!~>:%+........+%$:|oe<tprjaag19;#+.....",
+"....+++@%###$$$&$#%@+.+........+@#&-b!!]5_([({~=:++........+%$,o<ppfjaaaaf19;@+.....",
+".....++@%#$$$$&&$##@++.........+##&=~{_(/[77/]~=:%+........@#:,91faaaaaaaa1i;#+.....",
+"...+++@%#$#$$$$$$#@@+.........+@$&,~]___(_(/]!)'$+........+@:;4tfaassaaaage4,@......",
+"....+@@#$&$#####%@@++.........++$'>^_2(}!{{{~>':#+........+%,49faaaafgff1e4;$+......",
+"..+.+@%$$&$$@%@@@@++..........@%*>3_[7(5dd)>='$$@+........@#|nqaaaarq<<e5!,*%+......",
+"...+@%#$$&$#%@@@+++.+.........+#*3!_/7_!b;>-*:#@++........+$d06aaaap<eno|;:#@+......",
+"...+@%#$$$#@%@@@+++..+........@#-~{_/({3>--,:&$%++........@$50faaajqnoo4;,:#@+......",
+"....@##$#$#%+@++++++..........+%=!}}]_!;,**:$##%@.........%$i6saaape4||;,:$%%.......",
+"...+@%#####%@+@+++++..........+#=~{}]]!;,:**::$#+.........+$51aaafgn4|||;;,$@.......",
+"....+@%##$#@@%@%%@@@+.........++*=~!]}!b-;;))=)=&+........+@d90paap<onnee9h5-+......",
+"..+.+@@#$##@@%%#####+.........@@&*=!]}!)->3~!!!3*+........%@-|91aa6<on016660d@......",
+"....+++@#$#%@@%#####++.........+$:,3{_!)-)~{{!]~*@.........%:;40far<o<tfffa1d@......",
+"....+++@@#%%#%##%#@@+..........+@$&=3!~db3!{~!3=&+.........+#:;n061q<16f6609-+......",
+"......++@@@#%####@@@+...........@@#*-)3~~!!{~)=*$+..........@#$|5e0116661h9d:+......",
+"......++@@@%##@##@+++...........++%$*-)~!!~!~=*&@+..........+@%,|oe161660id'#+......",
+".....+..++@@+@@@++++.............+@#$:*'==)='*$#@............+%$:;do5999^d:$@.......",
+"........+.+++@++++................++@#$$::&&$$@...............+@#$:,;;'-::#+........",
+"...........+...+....................++@@+@@@+++.................+@@@%%##@++.........",
+".............+..+.....................+++++++.....................+++++++...........",
+"....................................................................................",
+"........++++++...+.................++###$%+@++.................+@$:$:$@@++..........",
+".......++++@@+@+...................$:*'==':#@++................:;d^i94;*#@+.........",
+".......@@#%%#@@++++...............+:=3~~!)':$#@++.............+;i0q16h4;:$%++.......",
+".......+@@####%@++.+..............+*=3~!{~),*$@@+.............@;9016f0e4|,##+.......",
+"......++@@@#%###@@++.............++&'=)~~!!~)-&#@+...........++-!5h16g6peo,:%+......",
+"........++@@%##$$%++++...........++%&*=)~!}_{;*&#@+..........+@$,|9eqgaafe|,$#+.....",
+"......++++@@@#$$##@++............+%#$&==){_/}~-*&@+..........+%$:,o9<6aaaqo|,%@.....",
+".......+++@@%%#$###%@++..........@@#$:,-;~^_]{{),$%+.........%#$,;4oeqraaff<4:#@....",
+"....++.++++@@@#$#$$#%++.........+@@$$:,-;)!5]}(!)&%@........+@#:,;4on<prjsafe,#@....",
+"......++++@@@%@##$&$@+++........++##$&,--bb!i([_):#@+.......+%$:,;4oo<<gjaaa0;:#+...",
+".....+++%%%#%##$$&&&%++.........@%$')3ddd^^}(28/~:$@+.......@#:4e<tttrraaaaaq;:%+...",
+"....+.+%#$$##$$$&&*&#@++.......+@#:){_}]]}(([7x[!,##+......+#:;hfaaajasaaaaap4:$@...",
+"....+++#$&$$$$$$&**&#++++.....++#$*!_7/(_(/[7ym7{,$#@.....++$,|paaaasaaaaavaf4:$@...",
+"..+.+@@#$$$#%#$#$$*&#@+.......+@&'>{(/(i4]i}h7y[!,$#++....+%,4e6aaajrjjsaaaap4,$@+..",
+"....@%%#$$$#@#%##$&$%++++.....+@*)3](/]!bdd!](8/!:&#@+....+#de1aaaagetqpfaaag|,$@+..",
+"..++@###$$#@@@@@#$&$#@++......@#=~]](_{b>--;~_2_d*&#++....%$51aaaag<nnnnpaaa<|,*%+..",
+"....@#$#$$#%@+@@##&##+++......+#=~}]__!;---;4}2_!:$#++....+$91aaaageooonpaaa1|:$@+..",
+"...++####$#@@@@@%$&$%@+.+.....+#=!]}]}!b,---~}7(d*$%@.....@$i6aaasp<4oooqaaat|,%@...",
+"...+@#$###%@@+@+#$&$%++.......+#=!}]]]3;-,,,!i7_~:$@+.....@$96aaaaqeo4o4paaa0;:#@...",
+"...++@#$#$#@@@@%%$&$#+++......+#'3{]]]!;,--;!_2_d:#%+.....+$^1ffaate4onnpaaat;:#+...",
+"....@@@#$$#%@@@@#$&#%+++......++:=3{}_{b-;;)!_2_3&#%+.....+@;50fsaf<one<gaaa0,$#+...",
+"..+.++@@$&#%@@###$$$@+........+@$&'~_[]3-;~~]_[]>$%+......+@:;41aaftneq1faaae,%@....",
+"....+++%#$#%@%%#%#$#@++........+#&*3]_{~-3d!!]_{>#@+.......@$,d0aafqn<qg6aaf9*@+....",
+".....++@@#@#%@####@@@..........+@$$'3!3d33!!!~3=:%@+.......+%:,^0g1<0qg6610i;%%+....",
+"......+++%@##%##@@+++.+.........+@#&'>)~~~!!3=*&#++.........+@$;49h1111609|,$@+.....",
+"....+..+@+@@%%@#@@+.............+++$:*>)~~3~='#@@++.........+@@&;|9h10119|:##++.....",
+"........+++@@@+@++++.............++@#&:*'''':$%@+............++#:,;|^44!;:#@+.......",
+".........+++.++.+..................+@@#$##$##@++...............+@#$:::::$@@+........",
+".............+...+...................+++@+@+++...................++@@@@@%+..........",
+".......................................+++.+.......................+++.+............",
+"....................................................................................",
+".......++++++++++++++.............+@#$#$$$&$#$##@+............+%$&*,,,,,*::$%+......",
+".......++@@@@@@@+@++++...........+@$:'===''=''':#@+..........+#,;4^55^45444;:%+.....",
+".....+++@@%%%%@%%@@@+++.........+@$*=>)333)3>)==:$@+........+#*d9ee0<0<0hh95;*#+....",
+".....++@######%#%#%@+++.........@#&=~{~!!~~!3!3)':#+........@$,i1f661111111h^;$@....",
+".....++%$&$######$#$%@++........+#:~_2(]{{{{{]]{)':#........@$;1aaaafffffaafh4;$....",
+"....++@#&*&$#$###$$#%@++........#$*{[x7(]]{{]_/]~=*$........$*dfavaaajffaaaa09d:....",
+".....++#$'&$####$##$#@++........@$*]2x7/]]]{]]}]~=*#........%:daaaaajajfaaaa1id:....",
+".....++%$&$$##%@#%%@@@++........+#&~_7/}^!~3~~~)='&#........@$'6aaasrg1<01109d-$....",
+"....+.+@#$$##%%@+@@++++.........@@&)]/}]!bb-'==**&$+........%%,haasap<<oo55d)-:@....",
+".....++@#$###@%@+++++++.........@@$>{_{!!3>*::&&$$#+........%#:9faffg<n|;;;,,:$@....",
+".......@@@##$#@+@++++...........+@@')~{i}!;:*$$$#@@.........+@#4h1ffape|b,::$#@.....",
+".....+.+@@##$#%++++.+............@@:')!]/!)::$#@@+...........@#;^e6aa6e;;,$%@+......",
+"......++@+%#&$@+++.+.............+@#:*~][];:$$#@+............+@&;41aar<;,:$#%.......",
+"........+@%#$#%@+++.+.............+#$*3{_{3,:$#@@.............+$:|06a6<4;,$@@.......",
+"........++@###%@@++...............++%$=!]{)>'$#@+.............+@$&96af<n4,$#+.......",
+".........++###%@@+++...............@@#=~]!3>':#@+..............@#$51a6094;$#+.......",
+"........+++@%%##@@.+...............+%#:=)~~!)*#%+..............+#$;900gg<|$#@.......",
+"..........++@@#$%@+.+...............+@$:'3{]~=#%@+..............+#:;406a15$#@+......",
+".........+.++@#$#@++................+@%$$>{/{=##++..............+@$:,efafn:$@+......",
+"..........+.+@#$#%+++................+@#$={_{~:&#+...............+%$:9faf0|,$+......",
+"...........++@%$##%@+................+@##=~_{~)'$+...............+%$$51aj0h^*@......",
+"............++%##%#@++................+@#'3]{~~=:@................+%$40af609;@......",
+"..........+..+@%%%#%+.................++@:=~~~!3:+................++#)i11160;@......",
+"............+++@%%#%@..................++$:')~!3'+.................+@:;^h160d@......",
+"..............+++%##++..................++#$'3]~*@..................+@$:^0agd@......",
+"...............++@%@+....................++@:=3=&+...................+@#)i09=+......",
+"................+++++......................+$&*&#......................+:'d'$.......",
+".............................................++..........................++.........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"...............+.......................+++++++.....................+++@+++..........",
+"............+++..+...................+++@@%@+@++.................+@@%#%#@@@+........",
+".........++++++@+++................++%$&:::*$$%@+..............+@#*,;;;|,:$%@.......",
+".......+++@@@@@@@++++.............+@#$*'>>=>=*&$%++...........+@$:|^99995|,:#@+.....",
+"........++@%##%#%@@+++...........++@$:=)~~~~3>::$@+..........+@#*;5e11gq09|;:%@.....",
+"......++@%%%%%#%%#%@@.+..........+@:=)33~~~~dd~>*#@+.........+%;90011qq1tt19|$%@....",
+"......+@####%%#%##$#@++.........++#=!]{!3~d3!{}!>&%@........+@$56afg<qqqgfs69,#@....",
+".....++%#&$#%%%%#$&$#+++........+%#3]2}!3bdd{(7_d:#@+.......+#$0aaag<<<<faaaq;:#+...",
+"......+#$&$#%#%%#$&$@++.........+@$~(7_!dddd^(7_3*$@+.......+%:1aaagttttraaa0;:%@...",
+".....++#$&$#@%%%#$&&#++++.......+#$~/8(^)bbb](7/!:##@.......@$*1aaag<<<<raaap|:$%...",
+".....+.#$*$#%%%@#$&$#++.+.......@#$!/c(5bbb;^(8(!,$%@+......@$,6aaar<<<<paaap4:$@+..",
+".....++@#&$$%####&&$#@++.......++#&3(7_i~!!!}[2/!,$#@+.....+%$,0aaarptppsaaap4,$#+..",
+"...+.++%#$$$$$$&$&&$%@++.......++#&3]/(_(9(h/07_d-$#++.....+@$,0aaasssaaaaaaq4,$@+..",
+".....++@##$$&&&&&&&$#++++......+@$&=~](h[788877(~,*#%+.....+#:,91asaaaaaaaaat4;:#+..",
+".....++@##$&&&*&*&&$#+++.+.....+@#$=!{/2878887[(4*&$@+.....+#$,9qaaaaaaaaaasp4,:#+..",
+"....+++@#$$$&&$$$&&$#@+++......+%#&3!((/7[[//[7_!-&#%+.....+%:,<fsaaaaaaaaaapo;:%@..",
+".....++%$$&&&&$$$$&$#@++.......+%$$~}[0[2h(9(h7_!-*$@@.....+#:,qsaaaaasssaaspo;:%@..",
+"....+++%$&$&$$##$$&$#@+++......+%#:d}[/0[(i^}/[(!>*$@+.....+#:;qaaaaasjrsaaagn|,%+..",
+".....++%$&$$###%##$##%@++......+%$&~_7(}i^!d^i(}!;,&@+.....+#:;qaaaajrptgfaage4,#+..",
+"...+.++%$&$#%%%%%#$$#%+++......+@%:~(7(^ddb|~^_i!)=&#+.....+%$;1aasrtt<<praag<o;$@..",
+".....++#$&$#@@@@%####%@++......+%#:!/7_!--;-d^]{!);:%@.....+#$;6aaapnnnntpffg09;#@..",
+"...+.++#$&$%@@@@%#$$#@@+.......+%#$~_8}db-;-d{/_!)=&@+.....+%:,0aaatennoqjaa6eo-%+..",
+".....++@$&$#@%@@%$&$#@@++.......@%$~_7_!;>;-d}2/!='&++......@#,1aaapennotaaa694-@+..",
+"......+%$&$%@@@@%#&$#@++........@@$~_2_~;--,~}7/{>*$@.......%#:0aasteno4qaaaf9d:%...",
+"......++####@%@@##$#%@++........++%=~]!~bb;;~{_{)*$@+.......+@#51a61<<eeq6afhd,#+...",
+"....+..+@@%@#%%%%%%%+++.........++@:=)33~33)~~~3'$#@........++#;ih<0t0<0q110^,$@....",
+".......+++@@%###%%@@+.+...........+#$&=)3~~~3)='&@@+..........+$,;5h01010h94,#@+....",
+".........++@@@+@@++++.............++%#:'>====*'&#@+...........+%%:;495i95dd-$@+.....",
+"........+.++++++++++...............+@@#$:&&&&$##.+.............+%#$*;--,,::$++......",
+".............+.+.......................@+@+@++++..................+@@#@#@@++........",
+".................+......................++++++......................++++++..........",
+"............++.+......................++@@@@+++...................++@@@%+++.........",
+"..........+...+.+...................++++@@@@@+++................++%@#####%@+........",
+"........+.++@+@@@++++..............++@$:'*''*&$#++.............+@#:;dd44|,:$@+......",
+"........+++%%@@@@@+++.............+@%#*=))))>*:&%@+...........@@#$|5<hhh9d;,$@+.....",
+"......+.++@%%####@@+++...........+@@$$'3~~~~3>,:&@++.........+@#:,4<11110n4;,#@+....",
+".....+++@@%%%%%@%@#%@+++........+@%:=)33~~~333~)'&%@........+%#;5<001q1<q11e4,$@....",
+"......++#$###%%%%$##@++.........+@#'!]!!~3))~{]{>:$@+.......+%:5gffgqq<<0fafe;:#+...",
+"....+.+%#$$#%%@%#$$$%@++.......+@%&)]/_{dd;;!_/_3'&#+......+%%,haaafq<eegsaa14,:@...",
+".....++@$$##%%%@@#$##@+++......+@#&3}/]!3);>3{(]!-*$@+.....+@:,qaaap<ennqfaa15|:@+..",
+"...++++##&#%@@@@%#$#%%@+.......+%$&~}[]d;;--b{}{~)-$@+.....+#:,1saaqenoo<faf1e5,#+..",
+".....++@$&##@@@@@%###%@++......+@$&3_[]d----)~{]~)=:%+.....%#:;qaaftooooeqafg09;%@..",
+"...+.+@#$&$%@@@@%#$##@%+++....+@#&*!_7}d-;-,b!]]!3>:%@....+@$,|1aaatnnoo<gafg09;#@..",
+"....+++#$&$#@@@@@#$###@@.......@%#:!(7}4-;--b!_]!3>:#+.....@$:bgaajponno<gsag<9;$+..",
+"....+++#$&$@@@@@%##$#@@++.....+@$$:^/7_~-;>;d!_}!3=:@+....+@::|gaaspnnnntgaa609;#@..",
+"...+.++#$&$$#%#%#$$##%+++......@%$*!/8/5d|db!}/}!)'$%+.....%$,b6aaarttt<gaaage4,#+..",
+"....+++#&&&$$###$$&$%@++.......@##:^[82h}]5]}([_~=*$@+.....@$:|gaaaasjrjaaaa19|:@+..",
+".....++#$*&&$$&$$&&$#@++.......+%$:![c8[(//([[7_!'&%+......+#:;gaaaaaaaaaaaag4,$+...",
+"....+++%$&&&&$$#$$$#@+++.......+@#:~(772[//}_((]):$@+......+%:;1aaaaaaaaaaaah;*#+...",
+"......+%#$$$&$###%#@@+.........+@##){_([[(]!!!~)'$@@.......+%$:efaaaasap16104,%@....",
+"....+++@%#$$$$#+@@@+++.+........@#$-d{}(/}4--='*$#++........@$:oqfsaaapnoo4|*$%+....",
+".......+@@#$$$#@@+++++..........++#*>d]_[i!>-:&$#@@+........+@$d9qfaafgno|;::#@+....",
+"......++@@##$##%%@++.............@@&*-!5_]!d),&$#+++.........@#,|5gjaarqe4;&$@++....",
+".......+++@#$$$#%@++++...........+@#$&){(_}{d-&#%%+..........+@$,;hfaaafqo,:##+.....",
+"........+.@%#####@++..+...........+@##=~}]]]!>:$@++...........+@$:n1aaaa1n;:#%+.....",
+".......+.++@%###%@@@+..............@@#:=3~!{~>=*$@.............%#$)5016f1eod:@......",
+".........++++@@##%%@+...............+%$$:=)~~33=$+..............+%:,;5e1100i,@......",
+".............+@@@%%@++...............++@%:=3)~3=*@...............+%%$;i00109;@......",
+"...........++++@@+@++.................+@@$:'''':#+................+@#:>^!^!;$+......",
+"...............+++++...................+++@##$#@+..................++@#$&:$#+.......",
+"..........................................+++.+.......................@++++.........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+".........................................++++........................++@+...........",
+".............++++......................++@$$#+.....................+@%*:$@..........",
+"..........++++@%@@....................@#&*=3-*++..................@:,d905;@+........",
+"..........++@%##%@+...................#&')!]~'@+..................$-4h6a1^%@........",
+"..........+@+##&#@.+.................+$:'~]/{>#@+................+*;^1aaf9$%@.......",
+"...........+@%$&$@++.................+#&'3}2]=$%@................+$'d0aaa9:#@.......",
+"..........+++%#&$@+++................+@#&3]2]3$#%+...............+%:-uaaa0,$#@......",
+"...........++@$&#@+.+...............+@@#$)}7]3:#%@..............%%#$*0aaa0;&#@......",
+"........+.+.+@#$$#@+++..............++%#&)]/]3-:#@+.............+@#:,haaaqo;:@@.....",
+"........+.+++@#$#%%+++............++%%#$$=!_{~)'&%@...........++#%$:,n6a61e4;#@.....",
+".......+.++++@@###%%++............+@@##&&>3]!!3>:%++..........+%%$:,,91af609;%@+....",
+".......++++@@@%%%#%#+++..........+@$$**''=3~~!~3'#@+.........@@*,||44n011g604$@+....",
+"....+.++@%@@@@@%#%$%@+..........@@@:=>=>>>=)~!]~-#@++.......@%%;59nn9n9eq6a15*#@+...",
+".....+++%#%%#@@+%#$#@+++.......+@%#')~3)3;-,3!_!>&#@+......+##:4egq<0eo4<ga69,$@+...",
+"...++++@%#%@@@@@%%$#@++.......+@#:*=~!d)=--*)!_{):#@++....+@:;|9110enoo4e6afe;$#@+..",
+"....@@%%%##@@@+@%%$#%++++....++%:=)3~!~;--,,b~_{>:$#@+...+%%;5e01gqeoo44<gafe;:$%@..",
+"..+++%%###@@+@@+@#$#%+++.+...+%#'3~!!!)>,,,')!_{):&#%@+..+%$400gg6<n4444egafe|,:#%+.",
+"..++@######%@@@%##$$#%@@+++..+@$=!]]{^~;>--;!]/}^)=,:$#..+#,96aafgqennnepaaag<54;,$.",
+"..++%$&$###%%%###$&&$$#%%@+..+$:~}[_]!!~)d!!]/2[_}{3)'&+.%:;1aaajfgt<<pgaaaaaaf1e4,@",
+"..+@#&&&$#####$$$&&&&&&#%%@.+@$*{[8[_!!!!{}(/28777[]~)*%+#:dfaaasg6pgfaaaaaaaaaa1hd#",
+".+++#$&###%%@###$$$&$$$##@++.@$*~/7}!!~dd!{]__////}]~=:%.#:|6aaaf1qq0g6aaaaaaaaa19;%",
+"...+@#$#@@@@@+@@@#%#@#@@@@+..+#:){_!)=>--=)>3~~~~~3)>'&+.@$;h6a6<59o59eh0011110h9^-@",
+".+++@%%@@+++++++++++@++@+++..@#$'3~=-&$$$&$&::*:*****:$+.%$:50094;,,,-,,);d;ddddd;*+",
+"...++@@++++++++++++.+++++++..+@#:=>*&$$##$#%##$#$#$&&$@..+#$>i9d,::$$:$$$:*$:&:--:#.",
+"....+++++........+.+.+..+.....+@$&:$#@@%@+@%@%@@@%@@@@@...+#*-;,$###%@#%#%%#%##%##@.",
+".....+..+.+.+.+.......+.........+@%+@@++++++++@+++@+........+#%%@@++++++++@+%+@+....",
+"...................................................+...........................+....",
+"....................................................................................",
+"....................................................................................",
+"...........+..+.......................+@@++.......................@@#@+.............",
+"..........++@+......................+@#$:$@+....................+@$,;:#+............",
+"........+.++@++.+..................++%&*=:#++..................+@#-d5;:@+...........",
+"........++@@%@@....................@&:'=)':@++.................#,;49h^-@@+..........",
+".......+@@%%#@@++.................+$'>3~!)*#@++...............+,^90g6e|$%@+.........",
+".......@###$##@.+++...............+'3!{]]~-##%++..............+d0w6aa1o:$#@+........",
+".......+@%#$#%%@++..+.............+&)~{]]~)':$@++.............+;h6faa1h4;:%@+.......",
+".......+@@@%###%@+++..............+&*=3~{{!~;*$%++............+-di01ffgge|:#@+......",
+"........++@%##$$#@++...............+#&=3~{}_!>##@+.............@$'506faa69:$@@......",
+"..........+@%%$$#%++++.............++@*=~!_({)*&#%+............+@#d916aafh|,:#@.....",
+"........++++@@%####@+++............+@@&*=)~{~!~)*$#+...........+@#,d5h0fgg1ed:$+....",
+"..........+++@@@%#$#%@.+............+@#&:'=)~{_!):#@............@@$,)49e16afe;:%....",
+"..........+++++@%#&$%+++............++@#$&*'~]/_~*&#+...........+@%$:,|^1aaa1d,$+...",
+"............++++%#&##@+.............++@%$$:*3][}~'$@+...........++%$:,;40aaa04,#+...",
+".........+++++@@%#&$%@++.............+@#$$:,3]/_~':#+............@@$:,;4<aaa1^;$+...",
+"............++++@#$$%@++.............+@@#$**)]/}~'$#+............+#%:,b|0aaa04,$+...",
+"..........+++@@#%%##+++.............++#$&'=3~~{~=:#+............++$:,4n006f1i;:@....",
+"........+.+++@###%@@+++.............+@#$,)~{!3==:#%+............+#&,4e1f6095;:#+....",
+".........++@@@#$#@+++...............@@&*'3{}!):$#@@.............@%,|40fa6h;-$@%.....",
+".........++@##@#@@++.+.............+@$')!!~!)'&#%++............@#:^h666604,$#@+.....",
+".......+++%#$#%@++++...............%$&){}{~='$$@@+.............#*;hfa619!,:%%+......",
+".......++@%$&$%+++................+#&'~_2})&$#+++.............+$;d6aaah,:$@++.......",
+".......++%###%@+.+.+..............+&')~]}~=&%%@+..............+-^h1aa1i,$#%+........",
+".......+%#%%%@@.+.................+:)!~33=:@@++...............+;h61u05;#%++.........",
+"......++##%@+++..................++'~]~=&&$@+................++^1agi;-:%%...........",
+".......+@#@+++.+...................:=~=*&#+++..................;90id-$@++...........",
+".......++@++.+.....................#&'$$@%+....................$-^,:%#+.............",
+"....................................++++++......................+@++++..............",
+"......................................+...........................+.................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"...........+..+.+....................+++@+@+@+...................++@@@@@@+..........",
+".......+.+.++.++..+................++@+%@%#%@+@++..............+@@@###$##@@@+.......",
+".......+.++++++@@++++............++%#&&:*****&$#@+...........++#*,,;|||||;*$%+......",
+".....+.+@@@@%%%@@@+++............+@$:===>))3)=*&$+++........++@,;5599e<ue5|;*@++....",
+".....+.+@@#@###$#%@@++.........+@@#:=)33~!{{!3>':%++.......+@#$;500016ff6094;$@+....",
+"....++@@%%@#@######@@+++......++#$*=)3333!{}{!3>':&#+.....++$,|5e<000gfafg094;,$@...",
+"...++@%@%#@%@%$$$##%#@@++.....+@:=3)3~);>~}/}{!33>'&@+....@#;i00uq<en1aaafp0094,%+..",
+"...+@%###%%@+##$$###%#@@.+...+@#=3{!~3)-,~][(]!!~3)*#@+..+%$5166g0eo4qaaaafg11hd$#+.",
+".+.+@###%%@@@%$&$$%###@@++..++@$>!]!~3>-,~}2/}!!!!3'&#+.++#*96a6q<9o4qaaaagggg1^,$@.",
+"..++@#$#@@@++%#&##%%@%#@+++..@$&){]!>--*:3][}!b33~~>*&$+.%:;hfageoob|qaaag<q01<9|;:+",
+".+++%###@++@+%#&$#@%###%@@+++#$*3]]!=::**b][}!>;~!~)>*$%+$:|0aa19||||<faagneq6g<5d,#",
+".++@%$$@@@++@@#$#%@@@%%%%@+.+#$*~]_3-:::*){_]~;b3~~3)=:@%$,d1aa0o;;;;<faaqn<qq10h9;%",
+".++@@$$#+@+++@%######%%%%#@+@$:'3}(!-:&::-~]{!~!~33~~3'#@:;!qaa1o;;;;n1ffg11q<0110^$",
+".++@##$%%+++++%%####%%@#$#++.$*=!]_3;&:&&,)3!!]!d33!]{=#+*|i6aaqn-;;,4e1gfjgq<<6jfi*",
+".+++##$%@@+@+@@@%#$#%%@###@+@$*'~}(~>:&:$,->~!}]d;)!]{>&@:d51aagn;,;,4oeqfsjqe<zaf9,",
+".++@%$$#@++++++@%##$#%%%##@+.%$'~](!-*:$:&,-3{}]!33~{!'$+$:d1aa6n||,;;4oq6aa6q0g66^:",
+"..++%#$#%@++++++%#$$#%#%#%@+.+#&3}/{),*&&&:*b{(_{3~~!~'#.@$-uaafe4|,,,;|<6aa6q<161^$",
+"...+@$$#%@@@++@+@##$##@#%%++.@+$)]_!3-*:&$&:={__{!3~~3*#.%@:haa60o||,,,;9faaf11110d$",
+"...++@#%%@@@@+++@%#####%@@+..++#')!33)>--*::-3!!{{!3)'&+.+@$^h100en5o|;;o066ff60e5-@",
+"....+++@@#%@%@@++@@%%$#%@+.+..++$*'=)3)>)-*$*=>~!}{3**#@..+%:d^ih0h9ho|,|oeqfajud;$@",
+".....+++@%#@#@@++++@#$#@++.....++#$:=~~33>,$&**=!_])&#++...+@$:d9010094,;|d96aah;$%+",
+"...+..+++@+@+++++++@+@%++......+++#&*'''':&$$&&'=))*#++....++@$,d^^^4;'::,,d90hd$@+.",
+".......++++++++++++++++++........+@@$$$$$$$$###$&::$@+.......+@#&*,:,,*:$:$:';;:@+..",
+"...........+...+...+.+.............++++@+@%#@@@@++++...........++@@@@@$$%@#@@%++....",
+".............+.+......................+++++@++++++................++++@%++++++......",
+"...........................................+...........................+............",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+".....................................++.+........................++.+...............",
+".....+.+.++.+.+...............+++@+@@+@+@+@+++............++@@@%@@%@@@@+++..........",
+".+.+++++..+.++.++.+..........++###$%@%%%#%@@@@++.........+@$$::#####$###%@@+........",
+".++++++++++++++.+.+..........%#$$$:&$$##$#$##%@+++.......#$,*,;,:::::::$$#%@++......",
+"..+@+@@@@@@@@@@@@+@+++......+#*'==--,->)))-,***&#@+.....+:|^55oooone<eo4|||,:%+.....",
+"++@%@#%%@%#$$%%%%@@@+++.....@:=))~33)d!]]!33>>>':#@+....@;5h0110<qgfaf10e994;:%+....",
+".@@########$&$$%###@+++.....@*)~!!{{!!}(2(}~!~3)*$#+....#dh0666f6gaaaaa1111hd*$@....",
+".++@@%@%%%#$&$#@@@@@+++.....+&'=)3)3b3](2_!))>>':$%@....@-^ne<<qeqfaaag<e99^;:#@....",
+".+++@@%%@@#$&##@@@@+++......@$$*,-;;>;!_[}!>--,*$#@+....%:,d4onneegaasgnoo4|,:#+....",
+".++++++@@@#$&##++++++++.....+##$$&*,,;!([}d,*:&&$#@++...@$$:,;|44npsaato|;;,:$#@+...",
+"++@+@@@@@@%$&$#@@@@+++++....#$'---,->;^_7_~--,*:$$$@+...$,4ooo4onegaaapoo4|;,::@+...",
+"++#@@@@@@##$&$#@@@@+++++....&'33)--;>b^/29^;-;,,:&&@+...,^01ennne<paasrenno4|;,#+...",
+"+%#$#%@%#%#$&$##@@@@@++++...&){}!3;b|d}(8(^b;->-,*$$@...-06ap<e<<<saaap<enno4|,:%...",
+"+@%#%%@@@##$&$#%@@%@+++.....$=~!33>>)|}/8({b)>>-'*&#+...:i160<ne<<jaaaf<enno4|;$@...",
+"++@%@%@%%@$&&$#@%%+@@@++....$*=3>>>)b3]/7(^);>,=,*&#+...*d9099ne<<saaapee9o54d-$+...",
+".++@+@@@%%#$&$#@@@@@+@++....@&*'',->;3{/7_!;;=-'**&#+...#'d^4o5ne<faaageeoo4d|,$+...",
+".+++@@+@@@#$&$#%@@+++++.....+#$:*',-=;{_7_!>--**:&$++...+$,>|44o9nfaaapnood|;,*%+...",
+"..+.++++@@#$&#%+@+++++.+.....@@#$&&:,-!_2]~**:$$##@+.....@#$*-;;4opaaa0||;,:$$%+....",
+".....+++++%#&#%++++...........++@@#$$&~][]>:&##@++........+@#%$,,;1aaae;,:$#@+......",
+".......+++%$&#%++++.+...........@@%#$$3}[]>$&##@+...........@%%$:,0aafe,,$$@@.......",
+".....+.+.+@#$#@+.+...............+@##&3]/{;&##+@+............+%$:,0aafe,:$@%+.......",
+".......+++%$$#%++++..............+.###3]/{>&##@+.............++%$:<aaf9,:$@+........",
+".........+@#&#@++.................+@#$)][{>&$%++..............+#$:haage,:#%+........",
+".......+.+%#&$%++++...............++@#)]2]3:$#@+..............+@%$haaa<;,$%+........",
+"........++@$&##@++.................+%#)]2]~':#+................+#$haaaq^;$+.........",
+"..........@#&#%@++.................++@>]2]~':#+................+@#9aaa0^;:+.........",
+".........+@@#%@++...................+@'=!)'&$@+.................+@d96h^;:@+.........",
+"..........+++++++....................+$&:&$#@+...................+:');:$#+..........",
+".......................................@+@++......................+@@@@+............",
+"............+...........................++.+........................++.+............",
+"....................................................................................",
+".......................................++..........................+%...............",
+"..........++@+......................+@$&:$+.....................@%:-;*@.............",
+".......+++@+@@+....................@#$*'=*#....................%$-d!9;$.............",
+"........++@%%@+....................+$&')3=$....................@*'^h0i'.............",
+"........++@##@+....................@#$=~])&+...................@$:i1a9;+............",
+".........++#$#@....................+@$=!_~*+...................+%*i6agd+............",
+".........+@#$%@.+..................++$=]/~'++..................+@*9aa1^@+...........",
+"........++@#$#@....................+%@={/!'@+..................+##ifa6^@+...........",
+".........+@#&%@....................+%$=]/~'++..................+%*9aa1^@@...........",
+"........+.@#$#@+...................@+#={/!=%++.................@%$iaa65#++..........",
+".......+.+@$$%@.+..................@@#=]/~=@@+.................@#$9aa6i#@+..........",
+".......+.+@#&#@+...................@@$)![!'#++.................@#:9fa6^$@+..........",
+".........+@#&#@++..................@@$=]/!=#@+.................@#:9aa65$#+..........",
+".......+.+@#$#@.+..................+@$=]/{=#%+.................@#*9aaf5$%@..........",
+"........++@#$#@++..................@@$=]/!=##@+................@#:9aaf9$$@+.........",
+".........+@#&#@.++.................@@#){[!>##@+................@#$haa6n:$#+.........",
+"........+++$$#@++.+................+@#=]/!=$#@+................+#$9aa69:$#@.........",
+".........+%%$#@+.+.................+@#)~/{>$#%@+...............+#$96af9,:%@+........",
+"..........@#$#@+++.................++@={}!):&#++...............+@#9fa6e;,&@+........",
+".........+@@###%@++.................@%'3]!3)'$%+................@#!0a60e4,#@........",
+"..........@@@%%#%+++................@+*=)~~!3*$@+...............@%;i01660d:@+.......",
+"..........++@%$$#%+..................+$:'~]/!>#@+................@*;40aa69:#@.......",
+"...........++@%#%@@+.................+@$&=~]~>*$@................+#:)91a19;:%.......",
+"............++@%@@@++.................+@$*=)>=':#.................@%*;ih9i^;$.......",
+"...........+.++++@@@+..................++#$&*=='#..................+@$:-d59^:.......",
+"...............+++@++...................++@#&*=*$...................+%#$-did*.......",
+"................++++......................++@$&$+.....................+@%*-:@.......",
+".............................................++..........................+@.........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"........................................+.+++.+.....................+.+++.+.........",
+"..........+.++.++..+................+++@+@++@@+@+++.............++@@@%@@@%@@@++.....",
+".......+..+..++.+++.++.............+++%@%####%#@%@++...........++@###$$$$#$##%@+....",
+".......++++@++++++++++++..........+#$:::*:*&*:**::$%@+........+$,;;;|;|;||||;;,$@+..",
+".......+@%%@%%%%%%%%%@@++........++:=)))>););;);>-'&@+.......+@;5eheeeeeeeeen54,#+..",
+".....+.@%############%@+++......+@@')!!!!!!!!!!!~~>*#@+.....+%#406p6gpg1p61ggqe|:%+.",
+"....+.+@###%#%#%#%%####@+.......+@#=!{{~!~!~!~!!^!!-$%+.....@#$56a6611gp1ggggfqo:#@.",
+"......+@#$$%%%%%%#%##$#@+++.....@@#)]_}!bddbddd!]]{>&#@+....@%:hfafg<<<t<ttpfsf9;$@+",
+"....+++%#$$#%%%@%%%%#$$%++.....+%#&3][5!bbbbbdddi(})*$@+...+#$,0aajp<<<<<ttpjaa<|:#+",
+".....++#$$##%#@#%%##$$$%+++....+%#:~_/}!bd;ddd4{}h}b:$@+...@#:;0aaart<<t<ttrsas<|:#@",
+"...+++@@$$$#########$$$%@+.+..+@#&*~}/_i{^^^^^^i(/(d*$%@..+@$,bpsasfprprrrrjsaa<|,#%",
+"....++@##$$$$#$$$$$$$$$#+++...+@#&,!](_}_]i}_(_9//}4,##+..+@:;4qaasssjjjssssaast4:$@",
+"..+.+@+#$$$$$$#$$$$$$$$#@++...+@&'-!_/h(9(_9(9(/(h_~,&#@..+%,4ogsaassssssssaaaap4,$%",
+"...++%###$#$#$$$#$$$$$#@@++...+#')!{}_}___(_(h///_}3;:#@..@$406asssssssssaaaaaaqn|&%",
+"....@#$#$$$#$$#$&$$$$$##%@++..+%={}___9}}9i((h/h_(id>,&@..+$96asassasssssaaassj<n4,%",
+"..++@$$$#$#$##$$$$&$$##@@++...@#)](_}_i__}_9(/[h_i!3>'&+..%$haaassjssjsssaaasjgq94,%",
+"....@@####$##$##$$&$$##%@+++..@%')!{i}i]ii}i_h7h(^!;,&$@..@#4hgffsjjfjjjsaaasrpe4;*@",
+"....+++%$#$#$##$$&&&$%@@++....++$*-35}i]]^]i([8[_d;-:#@+..+@,doqrsfjjrjjaaaasqeo;:@+",
+"...+.++@%$######$$&$$%@++.+....@%$:;!}]^5^5^(/8[i~-*$#++...%%:;egsjrrrrrsaaajto|:$@+",
+"....+++##$####%##$$$##@@+.+....+%#&3](i^{!~45_(({~>*$%+....%#:,<fajrrpppraaafqe|:#+.",
+".....++%#&$#%#%%#####%%++......++#&b][}^d4dd!^i{!~)*#@+....+@$,<sasrttttprjfg0e|:#+.",
+"....++.##&#%%#%%%##%##%@+......+%##3][]~|dbbdd!~~~3'#+.....+%$:0aafptt<<t<p1g104$+..",
+"......+@#$$#%%%@@@@@@@@+........@@$)]_i!dbbb;);>>>'&@+......%#&efajpt<<<<eee994,#+..",
+".....++@#$###%#%@@++++++........+@#>!_{!!~d3>-'**:$#+.......+#$96afgpt<<eo4||;,$+...",
+".......+@##%##%%%@+++.+..........@@'3!{!!!3b),$&#@@+.........%%^0ffgggq<e4,,*#@+....",
+"......++@%#####%@@+++............+@*)3!!]{!3>*$#%@+..........+#|916fafg1n|:$%#@.....",
+".......++@%#$##%@++.+............+@$:-~]({!3>*#@@+...........+@*;o0aaa109|$%%+......",
+"......+.++%$&$##@++...............+@$$3}2({3-&#++.............+#:-0aaaf05;$@+.......",
+".........+@%##@@++.+..............++@$=~{!)-*$@@..............++#:i1a6h5|:%@........",
+".........+++@@+++..................++%&'==:&$@+................+@#'!95d,:#+.........",
+"...........++.++.....................+@%##%@++...................@%#$$%%@+..........",
+"....................................................................................",
+"....................................................................................",
+"...........................................+.+.........................+.+..........",
+"...............+++++.....................++#%$##+....................+@$$::$@.......",
+".............+++++@++..................++##&::':#+.................+@$:,;;4;$+......",
+"...........+++++@@@@+................++@%$&:'=='$+...............+@@#:,;^i9^,@......",
+"........++.+.+@%%@%@++............+++%@##:-)))3=&@+...........++@##$:;oeeh05-@+.....",
+"....+.+...+++@#%###@@...........++@+%###&-3~!~~>*@+.........++@@#$$:,o01g109|#@.....",
+"......+++++++@####%@+++........++@%##$&::>!}{!3>*#@@.......++##$::,;;ngaf619|$%@....",
+"...+++@@@@@@%%#$####@++.......+@$*-=->-->3!}]{{~=$%+......@#,d5oononnq6aaff15:#@....",
+"..++@######%####$$$#@++......@%&=~{!!{!~~!^}}_({>&%@+....@%-i1ffffg11grjsaafe,#@+...",
+"..++#$&$$$$$#####$$$%+++.....@$*~_2///_}i]{{}/[}3&#@+....#*d1aaaaaasjffraaaa<;$#+...",
+"..++@#$$$$$$$###$$&#%++.+....@#:)](_//_(_}]^}_[}3*&@+....%$;haaaaaasssfraaaa0|,#@...",
+".+.+@@%##$$$#$#####$%%++.....@@#')~{]_(}}i^!]{}]3>*$@....%%:^h1faaaasjfprasa19d:@...",
+"....++@@##$$$##%####%#@++.....+@$:'3{]__(i!|!^{!~3>:@+....+%:;^0fassajgtggfg109;%+..",
+"..+.+++@%###&##%%%%%#%@@......+@%$:=~{}_/]!bd3~~~~=*@+....+%$:;91faaajr<qqg1109d#+..",
+".....++@@@#$$$@@%@@@%#@@+......++#$'=){9/}~>;>>)3~3'#@+....+@$:49<fsaaqnnn9e0104*%+.",
+"...+..+++@##&##@+@+@@%#@++.....+++#$:,~}[]d,,,*')~3=&#+....++@$,;40saat444|oh105-$+.",
+".......+.+%#&#%@+++@@%%@++......++%##:3]/{3,*&&*=~3'&#+.....+@#$:;0aaa<4|;,d900!-$@.",
+"......+.++@###%@@@+++@+++........+@%##=!{{3>-*&&*':&#+.......+@%$:51af0eo|,,~^;-$@..",
+".......+.++@#%##@@+++++...........+@%#')~~!~),#$$##@+.........+%#$4e111gh4:::*$#+...",
+"..........++@%%##+++...............++@$*))~!3'$#@%++...........+@%-4e01g04:$#%@+....",
+".........++++@%%%+++++..............+@$$*=3~3'*&#@+.............+@:,d90105|-$%+.....",
+"...........++@+#%@@@+................+@#$==~3==*$++..............+@$&!91095d*@+.....",
+".............@@#%%@+++................+++:=~3)=*$@+...............+%@;910h9d:@+.....",
+"............+.+@+@@@+..................++#*''=='&+.................++$;^^ii!-%......",
+"..............++++@+++..................++#$:*=*&#+.................+@$:;did'$@.....",
+"................+++@@.+....................+$&'*&@@...................++:-^d-#@.....",
+".................++++.......................+$&$#@......................@:,:$%......",
+".................+...........................@+++........................%@@+.......",
+"....................................................................................",
+"....................................................................................",
+".............+.........................++++++......................++++++...........",
+"..........+....+....................+++++++@++..................+@+@@@@#@+..........",
+".......+++++++@@@++................@$:$$#&'=*$@+...............%*;::$,4id,%+........",
+".......++@@++@@#@@.+..............+$*=*:$')!):#@+.............@*d5d;:4h6e;$#+.......",
+".......@@@@++%#$%@++.+...........+@:=)=::>!]~=$@@+...........+@;50o|;n6a15:%#+......",
+".....+++%##@+@#$#@+++...........+@@'3!3-:3{/!>$$#++.........@@#^060o|<fafn,:$@+.....",
+"......+@#$#%@%#&#%+++..........+@@#={}!),3{[]b*##@++.......+%#&9fa6e4qaaa<|:$%@+....",
+"....+++@#$#%@#$&$%+++++........+@#$)]/{d>!_[]d::$#@+.......+%$*haafqngaaa<|;:$%+....",
+"..++.++##$#%@##&$#@++++......+@%#$$~]/{d>!_7}4,:&#%@+....+##$:,qaaf<ngaast4|,:$@+...",
+"...++++%$$$#%#$&$#@@+++......+#$#$:~_/}~b5_7}!-,:$$++....@$::,;0aaap<rsajpo4;::@+...",
+".++++++##&#%%#$&$%@@++++....+@$&&$:~}/i~b^(7_4-,&$$%++..+#,,,,;qsajp<raaspn4;,:$@+..",
+"++@@@@@#$&$$%$$&$#%@@@+++...@&'>>>={(7(5~_h7/^d;;,:&%+..%,^99n9faasppsaaapten4;,#+..",
+".+%##%%$$&$$#$&:&$#%%%%+++..@*3!~33}[7(_5(2c2}~db>;&#@+.@d061qqaaaasrsaaaspt<en;:%+.",
+"+@#$###$&&$$$$&&&$#$##@@+...#={]]{]_[8[(}h787/i5!!)'$%+.$9faaffaaaaaaaaaaarrrq04*#+.",
+".@@%%#%$&&$$#$&&&$#%%%@+++..@')~~~~_/7/(^_27h_!!d)>:#@+.@^h1110saaasrsaaasgpqe9;:#+.",
+".++@@@+#$&$#%$$&$#%%@@++....+$*'==={h[}^4i/7/id);-*$%@..+:d^559faaarpjaaaj<<eo|,%@..",
+"...+.++##&##@#$$$#%@+@++.+...++##&:~}[i!b^}h}^b>*:$#++...+@$:,;1aajp<rsasg<n|;:$%+..",
+"....+++@$&#%@@$$##%@@+++.....+++##&3}[{|>di(i!b-,&#@@+...++@$*;0aaf<ntjsjp<n4,:#@+..",
+"..+..++%#$##@%#####@+++.......+@%$#3]/{d;b!]{!~),&$@+.....+@%:&0aajtntgaff0<4,:#@...",
+"...+.++@$$#@@@%#####@++++......+@@$)]/!),)d!!^{d-$#%@......+%%:haa6<4eqpggf<o,$%%...",
+"......+@#$#@@@@@%##%@+..........+@#)!/!),-;3~!{3-$#@+.......+#$hfa6e4oe<p6f1o,$#+...",
+".....+.@#$#@++@@@###@+++........+@@={/!=**--)!]!>:$%+.......+%%9fa69||o5<6a6n;:%@...",
+".......@#$#@+++@@###%++++........+%={_~=::::=!]{)&$#@+.......+#9fa19;;;;9pafe;:$@+..",
+"......+@%$%@+++++@$#@@+..........+@=!_~=$$$&'3]!)*$#++.......+%i6a15,,,,!0a6h|,$@+..",
+".......@@$@@+++++@@@@@+@+.........+'3])*####:===>=*&@+........+^0ah|$$$$;5999od,#@..",
+".......+%#@+..+.++++@%@+.+.........*)!=:#@#@#&:*=)=:#@........+dh6i;$%$#$,;d5hi;$@..",
+".......+@@@++....++++%@++..........&=3'&@+@+@@%$*)=:$++........'i0^'%@@@%%#*dh9;*@+.",
+".......++@++...+...++++++..........#&*&@@++++++#$::$@+.........$-d,#@+++++@$*;;*@+..",
+"....................++..............+@@+....+.++@#@+............@@@+....+.++#$#@....",
+"....................................................................................",
+"....................................................................................",
+"...........+...........................+++.........................+++..............",
+"...........++++.....................++@###@++...................++#$:$%++...........",
+".......+.++@@+++...................++@$')*&+++.................+@@,^hd,@@+..........",
+"........+.@##%+++..+.............++@@#=~{3'#@+@+.............+@%#$51f04$%@@+........",
+".....+++++@#$#@+++..............+@%##$=!_~=$$%@++...........+@#$$:9fag5:*##@+.......",
+"......+.++@#$#@+++++...........+@@##$:3]/!;:$$#@++.........@#%$:,;0aafe;,:$%@+......",
+"..+++++@++#$$$@++++++.........@@#$$:::~}[])&:$$$%++.......@@$:,;;bqaaa<;;,::#@+.....",
+"...+++++@@##&$%@@++++++......+@#$***,-!}2}~-,::&$%@+.....@%$,|||4ogaaaqo4||,:$@+....",
+"..++@####@#&&$#%@##@@++.....+%#:>~!!d)]/8_!bb~d>=:$@....+#$;n1ppt<faaap<<tte5;,%....",
+".++@%$$$##$$*$$###$#%@++....+#&'~(/}]!}[c[}!!]}!3=*#+...+$;4gaaafraaaaap6faf05d:+...",
+"+++@#&:&$#$&&&$##$$$#%@@....@$&>][c[}5/28[(^}}/_!)':+...#:;9faaasraaaasraaaa6h^,@...",
+".++@#$&$#%#&&$$%##$#%@@+....+$&,{/2_^!i28h}~^]_]!)=&+...@:;4faaarpsaaaaqgaaa6h5-@...",
+".+++#$$$#%$$&$#%%####%@++...@$&*{/2_!di(7(^b~{]{~)=$@...@:,46aasg<faaar<pfaf1h5,@...",
+".+++#$&#%@#$&$#@@###%@@+....+#&*!_2id;](7(!-b!]{~)=&+...@$,|gaajteraasgn<paf1h5-@...",
+".+++#$&$#%$&&$#%##$##%@++...@#$:!(7}!bi[8(^d!{_{~)=&@...@$,bgaajrtfaaapqpfafgh5-@...",
+".+++#$&$##$&&&$##$$##@@+....@#$:!(2h{!_[8[}!{}(]!)'&+...%$:|1aaafrsaaaspfaaa6h^-@...",
+".+++#$&&##$&:$$##$$$#%+++...+##&!/7/}5(7c[(!}(/_!)'&@...@$:;gaaaafaaaaafaaaafh4'@...",
+"..++@#$##%$$&$#%##$#%@@+....+%#$){_]!~}/8(]~!!_{~='$+...+#$,<aaagqsaaaaq6faf194*+...",
+".+.+@%#%@@#$&$#@@%%%@@++....+@#$=~{3);{(7(!>3~~~='&#+...+@$&5q6qen6aaagn<0619^;$+...",
+"...+++@@@+%$&#@@+%%@++++.....+@#&'>,,*3_[{),'>))''&%.....@%$;^944|0aaa<4^9h95d'$....",
+".+..++@+++##$##++@+@@++......++@$:'*&&3]/])::''*:&#%.....+@%:;4|;;0aaae;|45d;-$%....",
+"...+++++++@$&#@@+++++.........++##$&&&3}[!):$:&&$@+.......++$:,,,-0aa6e;,;'-:#%.....",
+"........++@#&#@++++.............+@@%#$){[!=$$#@++...........+@%#$&haa69:&$#@@.......",
+"......+..+@#$%+..+...............++@@#=!_!'%@%@+.............+@##$i6a6^$%#@+........",
+"........+.+%##@++..................@@@'~]3*#@++................%@%^0au|$%@+.........",
+".........++@#++...+.................++*=!=*+@+..................++d969;@@+..........",
+"..........++@@++......................&')'$+.+...................+-^h^*+.+..........",
+"..........++++........................@$:$+.......................%*;:%.............",
+".......................................+++.........................+@+..............",
+"....................................................................................",
+"....................................................................................",
+"..................+........................++++++......................++++++.......",
+"..............++++.++....................+@###@@@++..................+%::$%#%@+.....",
+".............++++++++.+.................+#&*:$&$#@@+................+$-d;,,*$%#+....",
+".............++@@++++++.................+$*==*:&&$$+................@*d95|;;,*:@....",
+"...........+.@@#%%@++++................@+*>~3>,**&$@+..............%@;9g094||;:%+...",
+"............++%$#%@@@+@+..............+@#'~}{~>-,*:#+.............+#$41a6qeo4|;$+...",
+"..........+.+@#$$#%%%@++..............@@#={(]{))>-:#+.............@%$96aag<<95;*@...",
+"...........++%#$$###@@+++............+@##){/_]!~>-:$@............+@$:efaaagq9o;:@...",
+"...........+++##$###@@+..............++#$=!}]]{!)*$#+............+%$,9paaafge|,$@...",
+"...........++@@##$$#%+++.............+%$&-3{i_({)*$@@............%%:,oqffaaf<|:#@...",
+"........++++@%%#$#$#%++++...........+@#&*;3^i}(];*$%@+..........+%:,|eqrjsafe|:$@+..",
+"..........++@%#$$$$#%@.+............++$*=~{__(({),$#++..........+@:|5qfsssaf<4,$@+..",
+"..........+@@#$$$#$#%@++............+@$-)!}h(}_^3,:$++..........+@,oegaaaasf04;:@+..",
+".........++@%##&$$###@+++...........@@:-3!_2((}!d-:$%+..........@#;ohfaaasar<o;,#+..",
+".........+++@#$$$$##@@@++..........+@@$,>!}[(_i!3-,$@+.........+@%,4npaaasfrqo4,#@..",
+"........+.+@+#$&$$###@@+.+.........+@#$:,!_[h}^^d>,:#@.........+#$:|4gsaasrgqn4;$@..",
+".......+.++++%#$$$#%#@@++.........+@@%&&,bi//_{!d>-:%@+.......+%#$,;4<jaasfpqeo;$@+.",
+".....+..++++@%$$$$$##%%+++.......@+@#$&:*~][(9_{!3>*$++......@%%$:,;|qjaassfp0n|:@+.",
+".....++.++++@%#$$#$$##%++......++@%##$&:,|^(/_(_^!)*$@+....++@#$::;|4<raaassfg<|*%+.",
+"......+++++@+%#$$$$$##%@++.....++@#%&$::,d5_((h_i!d'#@+....+%#$$,,;|4trsaaaajgq4:%+.",
+"..++++++@@@%###$$$$##%@+.+...+@#&:*,--;b3{]_(__}{~>*%@+..+#$,;|4ooe<<fjassasf09|$#+.",
+"..++@@#%%#####$###$$%%@@+....+#$'=3)3~!!}]i]}__]3),:%@+..@$,49<0<<gfasjassafqe4;%@+.",
+"..++@%#####$$$$#$###@+++.+...%&:>~!!!{]_/(_i}]]{),&$@+...%,;91666faaaaafaaaf<4;:#@..",
+"..++@%%%%%####%%%##%%%+++....@#&')~~~~!{{!~3d~!d)>*$@@...%$-^h111166661qqq1qe9|,@%..",
+"..+++@%%%%%@@@@@@@@@@@@++....+@$'>33333))=;=->->)==&%+...@#:490000<eh9n5o9o9e95;%+..",
+"....+@@@@@@+++++++++@#@+.....+@@:==>=='&$&$&$$$&>3>*+....+@#;599994;,,,,:,,;909;%...",
+"...+++@+@+++++.++.++++@+......++$*''',:&$###$%#$*''$+.....+@-;4^^4;,:$&$:$$,d^^:+...",
+".....+++++++.+...+.++++........+@#$$&&##@%@+@%@%$$#@.......+#$,:,,:$##%%##@#:,$#....",
+"........+..+..+..................+++@@@@+@+@++++.+...........++@@@@@%%+@++++.+......",
+"....................................................................................",
+"....................................................................................",
+".......................................++++........................++++.............",
+"..........++++++.....................+@#$##@++...................+%:,:$%@+..........",
+"........+.++@@++++.................+@+$*'':&#@+................+@@*d^4;,$%+.........",
+"........+.@@%@@+++................++%#*=3=':&#++..............+@#$di094;,$@+........",
+".....+.+++@%##@+++++............++@%##=~{~>:$#%@+...........+@##$:o1f19b,$#%+.......",
+".....++.++@$$#%++++.+..........+@###:$)]/{>*$$$@+@.........+@$$:,,eaafe|,,:#@@......",
+"...+.+++++%$&##++++++.........++@$$$:*~}7]~::&$$%++.......+@#:,,;|0aaaq|;,,:#@+.....",
+"...++@#%%@#&&$#%@@@++++......+@#*>3)>>{[8/{b;-,*:$#@.....+%$d90eneaaaa6<nn4|;,:%....",
+"..++%#$###$&*&$##%%%%@@+.....+$:){_{!!(2y[}!!~3)>=:$+....@:;hfaaggaaaaapgq0hn^;*+...",
+".++@#$&&$#&&'$&$####%@@+.....#$'{/7[_][8x7[9]]!!3)=$+....$,4faaaaaaaaaasaff60h5,@...",
+"+.++#&&$$#$$&&$$$##%%@@+....+@$:{[7/}](287/}}{{~3='$+...+#*dfaaaafaaaaasaff109^*+...",
+".+++%$&$#@#$&$##$%%%@@++.....@$:~(2_!d{_[__}]!33>':#+....%:;6aaagtfsaassjrq094;:+...",
+"..++%$&#%@@##$####%@@++......@#&~_2{~-|^]i{5!!)='&#@.....%$-0aaf1ntgjffrg1e94,:@....",
+"..++%$$#%%%%##$##%@@++++....+@@&~_/{d>b~!5]i!d>-:&#@....+##-1aaf<n<qgrjfgqeo;,$%....",
+".+.+@$$#%@@%%##$#%@+++.......@@$3_/{);;bd!i_!)-*$#@@.....@%,0aaf<ne<tgjs6<o|,$#%....",
+"...+@#$##@@@@##$#%@++++......@@$)]_{d-;-;~]/]b*:##@+.....@#:haaftnennpaaf<|;:$@+....",
+"..++%#$#%@%@@%#$#%+++........@@$)]_{b>;-;~{/{b*&$%@+.....@#:haag<nenntfaf<|,:##+....",
+"..+.@##%#%%#@##$##@+++.+.....+@#=~]~!~bb;!{_{3,:##++.....+@:i1a61t<<egfsf04;:$@+....",
+"..+.@@%####%%####@@++.+......+@@')~!!!!~3!{{!>-*&@%+.....+@#^h16ggptqpfapeo|,%#+....",
+"....@@%%####%###%@@@++........+@:)3~{{!!d!!{~)-'&#++......+%;901fa6gqgg600o4,$@@....",
+"..+.+@+##$##%@@@@##%@+++......+@$:'~]({{~d)>)~3)=:$%+.....+%-d!1aaa60q<he00h5;*#+...",
+".....++%$$$##%@@@@#%%@++.......+@$:3}[_{~)=,=3{3)=*#+......+#:;1aaaf1e5490f1e5d:+...",
+"....+.+@#&$#%@+++%##%@@+........@@#3]2}{~=*$'){!3=*$+.......@#$0aaaf19|,40f60id:+...",
+"......+@@#@@@++++@@@@+++........++%')!3==*&#:')==':#+.......+@#d06u95|-$;^h954;:@...",
+"........++@++++.++++++++.........++%***&&$#@%$&:::&#+........+@$;dd'-:$%$:,);;-$+...",
+".......+......+....+++++...........++@+@++@%@++@$$$%+..........@+#@@@@%%@%@@*'*#+...",
+"..........+.+..+.+...+...............++++@++++++@#@+.............++++@++++++#$%+....",
+"......................+.........................+++.........................+++.....",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"..........+...+.+.................++@+@+@+@+@+++..............+@@@@@@@@@@@++........",
+"......+++.++++..+++.............++@@%@##%#%@%@@@++..........+@@@##$$#$###%#%@+......",
+"....+++.++.+.+++.+++++.........+@%###$#####$#$##%@+........+@#:$::$:$:::$:$$#%+.....",
+"....++@@@+++++++++@++++.......++&'>-*&*$&$$#:*-'*$#@......+@,49o|;;,,:,:;|o4|,:%....",
+"...++##%@@@@++++@@#%@+++......+#'3!~;-,::$::,>~)=*:#+.....+$^06qeo4;;,;;49105d;$+...",
+"...+@#$#%@@@+@++@%###@++.....++#){}!);-,:*&&-~{!3>*#@....+%$efa6<no4;|;;nqf609|:@...",
+".+.+%#$#%@@+++@+@%##%@@+.....+@#)]_{d--,&***;3{{3='&+....+@:haaf<no4;|||nqff09^,@...",
+"..++@#$#%@@@@++@%%###%@++....+%#)]_{3-,,**::;3{{~)=&@+...+%*haaf<n44|b;|n<ff0e5-%+..",
+"...+%#$#%@+@+@++@%##%@@++....+@$)]_!);,,**:*-~!{~)=:%+...+#:haap<n44||||n1f6ph5;#+..",
+"...+%#$#%@@++@++@####%%+.....+@$)]_{b,,:****>~{!~)>:@+...+%*haa6<o4||b||nqffg<9;#+..",
+"..++@$$#%@+@++@+@%###@@@+....+@&)]({);,*::**-d]{!3=:%+...+#,0aaf<n4b;;||nqf61<9;%@..",
+"..++@#$#%@@+@++@@####@@++....@@$)]_^b,,::*:*-~{!~3=:%+...@%:haag<o4|;b;|npff109b#+..",
+".+.+@#$#%@@@+@++@%####@+.....@%$)]_{);,,:::*;d]{!3>:@+...%#,haag<n44;|;|nqjfq09;%+..",
+"...+%#$#%+@+++@+@%##%%@@+....+@$)](!b,,:::::>d{!~)>:#+...+#:0aageo4|-;|bnqff1<9;$@..",
+"..++@#$#%@@+@+++@####%%+.+...+@$)]_!),,*:&::;~]{!3>:@@...+#:haag<o4|;;;bnpjfg09;#@..",
+"...+%$$#@@%@@@@@%####@@@.....+@$)]({d;;,,,-,b!]{!)=*@+...+#:0aaf<eno44o4<pafg0n;#+..",
+"..++@##$##%%@@%@%#$##%@++....+@$)]_]!3|b;;;)~{(]!3>:%+...+@:haaapt<<neee1faa6<9;#@..",
+"...+@$$##########$$$##@++....+@#)](]]!!~!~~!{_/_{3=:%+...+#$haaaffgp1q1gfaaa605;#+..",
+"...++#$$##%%%@%@##$##@@@......+#={_}{!~~3333{]_}!3=:@+....@$9faafg1qqq0qfaaag05;%+..",
+"...+@###@@@@@@@@%#$##@@+.+....+#={]!3)>>=->;3!}{~>=&++....@$9fa6qe9n55nn<6af1e5-@+..",
+"....@%##@@@+++++@@#%%@@@......+%=~]~>,*&:$:&-){~~==&@.....+#i1a094|;;,;;o0f6195'%...",
+"...++%#@+++++++++@%%@@++.......@'3!)'&&&$#$$*=33>=*$+......@^06h4;,,:::,|90099d:+...",
+"....+++@++++.++++++@++++.......+$*'*$$##%##$&*''*'$#+......+:d^d,:$$$$$:,|!4dd,$+...",
+".....+++..++...++++++++.........+###@@@%%@@%%#$$###.........@$:$%%#%%#%%#:&*:$$+....",
+".............+.....+..............+++++++++@+@@@@+@...........+++++++++%@@#@#%@.....",
+"....................................+.+......+++................+.+......+++........",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"........+...+..+...................++++++++++..................++++@+++++...........",
+"......+..+++.+....+..............+++@@@%@@+++@+++............++@#####%@@@@@++.......",
+"......+++.++++++++.+.+..........+@#####$$#$##%@++@+.........@#$$$$$:*$:$$#%@@@+.....",
+"....++++++++++++.++++.+........+%$&$$&$$&&$&##$#%@%+.......+#:,,,,,,;,,,::*$##%@....",
+"...++++@@++@@+@+@++++++.+......@#*,,,,,,,*,**:::&$#@@+.....@:|4444444|4|||;;,,$%@+..",
+"....+%#####%@#%#%%#%%@@@.+.....@*3!!!!~dbb|dddd);)=:#@+....#|06gppt<<<tt<<q<ee5;*%+.",
+"...+%#$$$$#$%##$####$%@@++....+#){(_((]{!{{i]]]]{!3=:#@...+$hfaaaasrpgfjjaaaf61i;*@.",
+"...+@#&$$&$$##$$$$$$#$#%++....+#)][/[[(_{i_(____]]!>:$+...+$haaaaaasfjsasaaaaa69;:@.",
+"...++@##$$#$$#$$###%%%@@+++...+@')!{__}_i}_/}{!~~3)'$#@...+%^h6aaaasjasaafgq10hd*$@.",
+"....+@+@%$###$$$##@@@@@+.......+$:'3!ii}}_((i!>=='':@+.....+*>^06fjssasafpen954;#+..",
+".....++@@#$##$$&#%@+++@+.......++#$'3!]^]9//]d-***:#++.....+@$&oqgffjsaaj<o|||;$@+..",
+"....+.++@@%###$$$#+@+++.........@@#*-)d!!i_[}d,*:$$@+.......%#$;5eqqgjaaat4|;,*%+...",
+".......+++@@@#$$##+++++.+.......++@$&,--;{}[]d,&$##++.......+%#:;4onepsaaq4;,:$%+...",
+".....+.++++@+##&$%+++.+..........+@@#$&,,!i2}3&&$%%+.........+@#$:;44gaaa<;,:%#+....",
+".........++++%$$#%@++.+...........+@@$$:*)}/{b:$$@@+..........+@#:,;|<aaf<;,:#@+....",
+"........+.+++@#$#%++++.............+@@#$:>{/{)&$#%+............+@#$,;efage;::%%.....",
+"..........+++@#$#@++.+..............+@##&>!}!;$$#@+.............+%$$,96a6n,:$@+.....",
+"............+@%##@++++...............+@%#,~]!>*$$%+..............+#%:o0a6n|,:#@.....",
+"..........+.++%#%%+++.+...............+%#'3!3),:#@@...............+#$4060e4;:%@.....",
+"...........+.+@%%@@@+.................+@@:=~3==*&@+...............+@#)90099|,@@.....",
+".............+@@@%@@+++................++$'=>))=:$@+...............+@*499eh5;*%+....",
+".............+++@@#%@++.................@#&*')3)':$@................@$,d^e1h^;*#....",
+"...............++@#@@+++.................++%*)!3=*&@.................+@#dh609d'%....",
+".............+..+@%%@@+..................+@+&=3)=:&%.................+@@'50h5;-#....",
+"...............++++@++++..................+@#&*'&&$@..................+@$-dd;'*%....",
+"..................+.+++.....................++@####@....................+@#$$$$%....",
+"..............................................++@@++......................++#%@+....",
+".....................+..........................+@+.........................+%+.....",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"...........+..+.+.+.+................++@+@@+%+@@+++..............@+@@%@@%@%@@++.....",
+"........+.++@++++++++++............+@@#*'&&#&:**&#@+...........+@%*;4;,$,;d|;:%+....",
+"........++@@#@+++%%#@@++..........++#$'=~>*#*)3)>'&#+.........+@$*4919|:de1h9d;$+...",
+"......+.++@#$#@+@#$#@@++..........+@$:){_~>:=!}{3>*#+.........+#:;hfa19;n1aa19d:@...",
+".....+.+++##$#@@@#$##%@++........@@$$:3](!>*=!_]!)-&%+.......@#:,;0aafn|96aa1ho,#+..",
+".....+++++%#&#@+@####%@++.......+%#&:*3{[{)*)!]{!)=:@+......@#*,;d0aaf<|egafgh5;%@..",
+".....++++@##&##@@#$##@@@.+......%$&::'~]2{d->!]{!3=*#@+.....#:';|^1aaaqongafp09|$%+.",
+".....+@@@@#$&$%@#%##$%@@++......@&*''=!(2_~-~!}]{!)'$@+.....#,d|456aaaqnqgsffg<4,%+.",
+"....+@+@@@#$&$$%#$$$###@++......$:'=))]/7(]d!}__]!!=*$@.....:;!9e0aaaajqgaaajf19|*#.",
+"....++@%##$&&$$##$$&$$#%@++.....$*=3~{}27/_^]([/(}]3':#+....*d900faaaasgjaaaaaj0!;$+",
+"....+@@%@#$&&$###$$$#$#%@++.....$*=33!}[8[}!i_//__{3-:#....+:di01zaaaaagjaaaaaf0o;$.",
+".....+++@@#$&&#%##$$$#%@++......@$:*=){/7(]3^i_(}{~=:$@.....#:;d5hfaaajqgjaaaf19;:#.",
+"......++++#$&##@%#$##%%@+.+.....++#$&*~_2}~;~{_]{~3'$@@.....+@::;d1aaapnpgsfj104-#@.",
+".......+++@#&$%@%####%@@+........@+#$$3]2}d;b!i]!3)*#@+......@@$:,0aaaqn<gjfgqe|$#+.",
+"......+.++@$$$%@@#$###%+++.......+@@$&3}/]3,b!}{!~)*#@+......+%#:,0aaaqo<gajgqh|$@+.",
+"........++%#&#%@@####%@+.+........+@$#3]2]~,)!i]!d=*#++.......+%::0aaaq4egfagq9d$@+.",
+".......+.+%#&##+%%###%@@+.........+@%$3][{d,b~]{!3>:#@.......++%$&0aaa<o<pjfg<9;$%..",
+"........++@$&##@%#$##%@++.........++##)]2]d,;!]!!~=*@+........+%$:haaat4epafgq9|%@..",
+".......+.+@#$$@@@###%%@+.+........+@@$)][]3-;!i{~3>:%@........+@#:haaa<oepff109;#@..",
+".........+%#&$@+@##$#@@@...........@@#){[]3,;!{]!)=:@+.........@%$haaa<4ngafp<9;#+..",
+".......+.+@#&##%%#####@++..........+@#)]2]!;3{}{!3>:%+.........+#$haaapeqfsa609;#+..",
+".........+@$&$#%#$$##%@++..........++#)_2_{3!}(]!3=$@+.........+@$eaaa6qgaaa605,#+..",
+"........+.@$&$###$$$#@@+...........+@@)}7/]!{_/_!)=&@..........+%#haaaa6faaa6h5-@...",
+"..........@%##%@%%##%@++............++'~]!3)~~]!3=*$+...........+@^1a60e16f609|:@...",
+"........+.+@@@@+@@%@@+@+............++&=)=':=)3)=':#+...........++'ih9!|5h0ei4;$+...",
+"...........++++.++@+@++..............++#$$$%&:'':&#@.............+@$:*&$,;!4)-:@....",
+"...............++++++++...............++@@@@$$:$$##+..............+@#%##:,;,:$$+....",
+"...........+.+...++....................+@++++@##@++................+%++@@#$$%%+.....",
+".............................................+.+.........................+.+........",
+"....................................................................................",
+"....................................................................................",
+"....+++++++..+.+.+..+..........+@###$##@+%+@+@+++..........+%$:::$$%@%@@@@+++.......",
+"...++@@@+++++++++++...........@#:=>=**:&##$$$#@++++.......%$;o9o4|;,$:*,::#@@++.....",
+".+++@###%%@+++++++++++.+.....@#$=~!~3>,:&::*:&$$%@+@+....%$,91600n4;,;;|;,:*$%@@+...",
+"..++@#$##%@@++@@@++++++......@$:3]_{!3>,&*'=-'&&$#%+++...%*)0aaa6qe4;|4oo4;,:$#@@+..",
+"..++@%####@#@%%#%#%@@+@@++...+#&=~]!!~)d;))d3~~))='*&#@..@$-91a6gq<<e<<q0q10eo^|-:@.",
+"...++%%%%%########$$$#%@@++..+@$'3~~~~!!!^!!!](}{!~>=*#+.+#:!0101qgp6g6gfaaaf6095d*+",
+"..+++@%%#%#$$##$$&&&$$$#%@++.+@#*=)3~d!___]}([77(_]!3>&@.+#$|oh<qqgsaaaaaaaaaaa609-@",
+"..+.+@@@%###$####$$$$##%@@+...%@:'-)d!]]_]!!]_//_{{~='$+..%#;4n<qgffaaggaaaaaa619!:+",
+"...+++@@%###$#%@##$$##%@+++..+@@$*-;~!5{_{~;!]__{!3=':%+.+%%*|oeqrraagqegfaaf6u94)$+",
+"....++@@####$%%@@####@@@++....+%#$,>4{{]i~b,>!{{!3='$#@+..@#:,|epfjfjg<4egff609d,$#+",
+"..+.++@@##$##%@+@@%%#%@@++....@%$:,)!]i{]~>,>)~~~~)'##+...@%:;4<6fjffqn4n<g1qqe4:$%.",
+"...++@@##$####%+@@@@#@#++.+...@@&'>~{_]]!d>:,=)>~33'$%@+..%#;49tfsjjgqn|45ee1004:#@+",
+"...++@@##$$##@%++@+@%#%@+.+...@%:-)!]_}{!3;:**,=3!3=$@+...@#;oegaasffqnb|b49<615,#@.",
+"..+.+@#######%@@+++@%##@++....@@*)~!i]i]!b-:&&:=3!~=$%@...%%d<1gjajfg<o;;;;o0f05:%%.",
+"...+@########@@++++@%##++.....+#>!}{!~!!!)-::&&=~]!=&@+...+$96afpqggg<o;;;;o1af9,@@.",
+"...+%$$$%@@@#%@+@++@%$$%++....@#3}(]d;)3!)-::&&=~_]>$@@...%:0aaaqn<06eo;;,,56aa9,%@.",
+"...+@#$#@@%%#@@++++@#$#%+.+...+#)}/!>-;~!b,&&&:=!_])$@+...+$haa6eoe16e4;,;;o6aah,#+.",
+"....+%%@@+@###@++@+@@$$@++....++*)~='*){]~-:&::=~(}>&%+...+@dh19^|egago;,;;56as9-#+.",
+"....++++@+%#$#@++++@#$#@+......+$:'*::){(!>&:$:=!(])$++....@:;d|;;hfa6n;;,;i6aah&%+.",
+".....+++++%#$##+@+@%@$$%++......+%$##$)]_{;****)~_])$@+.....@$::&,eaafn||b|ezaah*@+.",
+"........++@%###@#%####%++.......++%%##=~]{~)~~!!]]~'#+......+@%#$:i1af1<0166aa1^:@..",
+".......+.++%###$#$$#$#@@.+........+@%#'3{]]}]__}]~3*#@........+%#$^0faaaaaaaa60d$%..",
+"..........@@###$$$&$#%@+...........++@:=~{]_//2_]3=:@+.........+@@;91faaaaaaa0i;%+..",
+"........+.++@+#%####@@++............++$:'=~~!~!!=':#+...........+@*)^91116669!;$+...",
+"...........++++@++@+++++..............%$&:'=====*&$@+.............%*,;^ii99^d-*#+...",
+"............+++++++++..................+%%$&&&&$#++................@#$*--'':$@+.....",
+".............+.+++++.+..................+@@####%@+..................+@#$$$$$@++.....",
+".........................................++@+++++....................+@@@@%++.......",
+"............................................+...........................+...........",
+"....................................................................................",
+"....................................................................................",
+"..........+..........................++++........................++++...............",
+"........++++++..+..+.+.............@$::$$#+++++@@@++...........%,;;,:$@+++@@%%@+....",
+".......+@@@@+@+..+.++++...........+$'=''*:$@@@@#$:$+..........+*^95^d;*%#%#$*-*@....",
+".......+%%%@@@++++++++@+..........+:>3)==*&%%##$$:&#+.........+;90h99|,##$:,,;-&+...",
+".......+@%%#@@+++++@%%@++.........+&)3333=*$&:*=)3>*#+........@)90u005|:,;d5h09d$+..",
+"......+@@@###%@++@@@#$#@+.........@:=3~!!)-$*'>)~]!=$+........@;i01w60o,|49h1a6i:@..",
+".......+@%%##%@+@@@##$#@++.......++:=3!!]~>:,=)~]_])$%+......+@)90gfaqn;4oegaaah,#+.",
+".......++@%$$#@+@%#####+++.......++&*=~]_!>*=3!!{{3=&@+......+%,di1aage|506zff15-%+.",
+"......++++##$#%@@%##%%@@+.........@$&'~]/{),>~{{~~>*&@+.......@:;40aaf<4etaf119d-#+.",
+".......+++##&$%@%#$#%@+@++.......++%$&~]2}d-)!_]3=':$#+......+%%*;qaaa<o<6aa09^;:$@.",
+"......+.++##$$#%####%@+++........+@%$:3]/}^d!!{!)':$#+.......+@$:;<aasrtgga6h4;,$@..",
+"......++.+@#$$#$###@@++.+........+@##$3{((]]]!!3=*&#@+.......+%$:,<faaaffrp05|,$%+..",
+".......+++@##$$$##%%+++..........+@#$:;!}_(/]{3):$#+++.......+@:,;egsaaaa6qe|:$%++..",
+"......++++%#$$$&$#%@@+++.........+%#$:3{_(/2_{3=*##@+........@%$,;<6saaaag<5|:$%+...",
+"....+..+++@##$&&$#@@++.+........+@@$&:;!]h[7/!>-*$@%+.......+%#:,;egaaaaageo|:%#+...",
+".....++++@@##$&&$$@@+++........++%##:*b!}/78/5>,$$#++......++#$:;|<psaaaafn4,:&%+...",
+"...+.++@@@##$$$&$#%+@.++.......+@$:,->~!i_/2_{3=,##@+......+#,;4oeqgjaaaafqn4:$@+...",
+"...++@@###$####$#$$#@+.+......+%:'=~{]}]}i]i}}}!>$#@+.....+#;49q6aaaafajsaa69,$#@...",
+"...+++%#$&$$###@#$$$#++.+.....+#*=~]/2__{{~3{_/_3*#%@+....%$d90aaaasff1<faaa0|:%@+..",
+"...+@%##$$$##%@@%#$##++++.....@$'3!]_/_]!~>=~{/]~*&#@+....@:^06aaaaffqe90jaaqd,&%+..",
+"...+@%####%@@@@+@@%@@@@+++....+#'3!!{{33=-,*=)33)=':##+...@$^066ff009o4|ih00h9^;*$+.",
+"...++%#@%@@+++++++@@@@@+++....+#'3!~3)=*&:$$::'==)=':$@...+$!0600h5|,;,,;;^5ih94;:%.",
+"....@@%@@@+++++++++@+@@@@+.....@*)~==*:$#####%$:'==':$@....%dh695d;,$$$$$$:;^9}4;*#.",
+"....++@++++........+++++++.....+$*=*&&$@@%@+@@@#&*:$%%+....+:d^d-,*#%##@@%#$-;;*$#+.",
+"......++.+.+..+...+.+.+.........+@%#@@++++++++@+@@@@@+......@#$$%@@+++++++@+%###@+..",
+"....................................++++.........+..............++++.........+......",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....................................................................................",
+"....+.++.......................+@@#@+++....................+%%$%@++.................",
+"....++++++....................++#&$$#@+...................+@&,,:$@@.................",
+"..++++@++++.+................+#$:*':$$%@+................@$:;d4|,:$@+...............",
+"+++@%%@#@@++................@$*-)333>-:#++..............@*d5e0109o;:@+..............",
+".@@#####%%@++...............+*)~!{]!~3=&@++.............@dh16faggh5,#@+.............",
+".@@%#$$###@@.+..............@'>~{]_{{~>:#@++............@dh0faaaf6n;$@++............",
+".++@@#####@@+++..+..+++.....+$*=3{]{{{),##@+++++@##+@...+*di0fafffh4:$%@++++%$$@@...",
+".+++%%#$###++.++...+.++++...+@$:)~]]]{3,&#%%+++@#$##%+..+%*;h1aaaa04,$##@@@#$::$#@..",
+"..++@#%##$%@++.+++.++++++....+@$=~~]]}~-$##%%%%#$*:$#@+..@#*516fas1o,:$###%:-|;,$@+.",
+".+..+@%$$$#%+++.+++@@#@++....@@%*)~](/{):&$#$&:==~=*#+...@@$de0aaafe;,:::,;4909d$@..",
+"..+++@%#$:#%+++++@@@%##++....+@@*'3](7];:$$#&'=)~{~'$+...+@#|5<aaaae;,::,45h1f0^:+..",
+"....++@#&&$%@++++@@####@+.....+%$*=][8_)*:$&&=)3{]!=#+....@%,|9aaaj<|;,,;5h1faf5$+..",
+"...+++@%$&#%@@+++@%#%%%++.....+@$:'~}2}d-,:&,=~~~3)&@+....+@*;4gaaaqo4;,491110h;#@..",
+"....+++##$##%@++@%#%%@++........##:~]_{~;-*$=)!~)=*$@+.....+$:;0aaaqeo|,oh61hid*@+..",
+"......+@#$##@%@+@@$%@+++.......+@@#>!_]!3;,&=3{~=:$#+......+@%:n6ajgte4;o0f09;:$+...",
+".....+++@###$#@++@@@+++.........+%$')!{]}d-:*=)=*$#++.......%#:^h66aa<o;d5hid-$%+...",
+"......++@@#$$#%++@@+++.+........++%:-)!}/{;:**'*$#@+........+@%;oegaaje;||^|:$@%....",
+".......+++#$&$%@++++.+...........@@#$*!_8}3:&&#$@@@+.........%#:,dgaaa<;;,::##@+....",
+"........++@#$#@@@++++.+...........+%$:){_{3>,:$##+@+..........+#,;hfafqn4;:$$%@+....",
+".......+.++@%%##%+++.+............++@$')~~!!3*&##@++..........+@#:4h016p<4,$$@@+....",
+"........++++@%#$#@.+.+.+...........+@@#:'3!}~=#$@%++...........+##:;406a1o::##@+....",
+"..........+++@@##%@@++..............@%#$:=3!~)=*$#@+............@%$,;9061eo|,$%+....",
+"...........+.@@@@%%%+++..............+@##*=)333)*#@@.............+#$:d50000e|:#%....",
+"...........+.+++%###@+++..............+@@$:*)~]~>:#%..............+@%:;be6a19;$#....",
+".............++++%%%@++................++#$&')~3=:&@+..............+@$*;!hguo;,%+...",
+"...............+++@@@@@+................++@$&*='='*$+...............+@%&-d5^5^d*+...",
+"...............++.+++@@+..................++%#$:*='#+.................+@%$*;d54*@...",
+"...................+++++...................++++#&'*$+..................++@@*,^d:+...",
+"....................+++.....................+.++#$#+....................+.+@$:$@....",
+".................................................++..........................++.....",
+"...................................................................................."};
diff --git a/hacks/images/matrix2.xbm b/hacks/images/matrix2.xbm
new file mode 100644 (file)
index 0000000..9321477
--- /dev/null
@@ -0,0 +1,176 @@
+#define matrix2_width 42
+#define matrix2_height 432
+static char matrix2_bits[] = {
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xe0,0xff,0xff,0xff,0xb3,0xff,0xc0,0xff,
+ 0xff,0xff,0x7f,0x7f,0xcc,0xff,0xff,0xff,0x79,0x3f,0x8c,0xff,0xff,0xff,0x7b,
+ 0x7f,0x8c,0xff,0xff,0xff,0xbd,0x3f,0x8e,0xff,0xff,0xff,0x7b,0x3f,0x8c,0xff,
+ 0xff,0xff,0x7b,0x7f,0xcc,0xff,0xff,0xff,0x75,0xff,0xcc,0xff,0xff,0xff,0xbb,
+ 0x7f,0xc4,0xff,0xff,0xff,0xef,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xcf,0xff,0xe1,0xff,
+ 0xff,0xff,0xef,0xff,0xe1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xe7,
+ 0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,
+ 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef,
+ 0xff,0xf1,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xf7,0xff,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,
+ 0xff,0xff,0xb3,0x7f,0xc4,0xff,0xff,0xff,0xfb,0xff,0xc8,0xff,0xff,0xff,0x6b,
+ 0x7f,0xdc,0xff,0xff,0xff,0xfb,0x7f,0xf8,0xff,0xff,0xff,0xfb,0xff,0xfc,0xff,
+ 0xff,0xff,0xf7,0xff,0xf0,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xdf,
+ 0xff,0xe2,0xff,0xff,0xff,0xb7,0xff,0xc2,0xff,0xff,0xff,0xaf,0xff,0xc0,0xff,
+ 0xff,0xff,0xb7,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xf2,0xff,0xff,0xff,0xab,0xff,0xc0,0xff,0xff,0xff,0xf5,
+ 0x7f,0xec,0xff,0xff,0xff,0xdb,0x7f,0xf4,0xff,0xff,0xff,0xf7,0xff,0xf8,0xff,
+ 0xff,0xff,0xf7,0x7f,0xf0,0xff,0xff,0xff,0xeb,0xff,0xf8,0xff,0xff,0xff,0xfb,
+ 0x3f,0xfc,0xff,0xff,0xff,0xfd,0x7f,0xf6,0xff,0xff,0xff,0x77,0x7f,0xcc,0xff,
+ 0xff,0xff,0xdb,0xff,0xc2,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xef,
+ 0xff,0xf9,0xff,0xff,0xff,0xd7,0xff,0xf0,0xff,0xff,0xff,0xdf,0xff,0xe1,0xff,
+ 0xff,0xff,0xab,0xff,0xc0,0xff,0xff,0xff,0x6f,0xff,0xc0,0xff,0xff,0xff,0x55,
+ 0xff,0x80,0xff,0xff,0xff,0xab,0x7f,0x80,0xff,0xff,0xff,0xeb,0x7f,0xd0,0xff,
+ 0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xd7,
+ 0xff,0xe0,0xff,0xff,0xff,0xaf,0xff,0xc1,0xff,0xff,0xff,0xdf,0xff,0xe6,0xff,
+ 0xff,0xff,0xb7,0xff,0xc3,0xff,0xff,0xff,0xdb,0xff,0xe0,0xff,0xff,0xff,0xd7,
+ 0x7f,0xe4,0xff,0xff,0xff,0xfb,0x7f,0xf8,0xff,0xff,0xff,0xfb,0x3f,0xfe,0xff,
+ 0xff,0xff,0xfd,0x7f,0xf4,0xff,0xff,0xff,0xb7,0xff,0xcc,0xff,0xff,0xff,0xdf,
+ 0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xff,0xf9,0xff,0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,
+ 0xff,0xff,0x5f,0xff,0xcf,0xff,0xff,0xff,0x6f,0xff,0xc0,0xff,0xff,0xff,0x33,
+ 0xff,0x80,0xff,0xff,0xff,0x7d,0x7f,0xc4,0xff,0xff,0xff,0xb7,0x3f,0xcc,0xff,
+ 0xff,0xff,0x7b,0x7f,0x8e,0xff,0xff,0xff,0xbd,0x7f,0xc8,0xff,0xff,0xff,0x77,
+ 0xff,0xc6,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xd1,0xff,0xff,0xff,0x53,0x7f,0xc4,0xff,
+ 0xff,0xff,0xfb,0xff,0x80,0xff,0xff,0xff,0xd7,0xff,0xfc,0xff,0xff,0xff,0xff,
+ 0xff,0xf8,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xef,0xff,0xf3,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff,
+ 0xff,0xe7,0xff,0xff,0xff,0xbf,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xab,0xff,0xc8,0xff,0xff,0xff,0x7b,
+ 0xff,0xca,0xff,0xff,0xff,0x6b,0x7f,0x84,0xff,0xff,0xff,0x57,0xff,0xc0,0xff,
+ 0xff,0xff,0x57,0xff,0xc0,0xff,0xff,0xff,0x57,0xff,0x80,0xff,0xff,0xff,0xf7,
+ 0xff,0xc8,0xff,0xff,0xff,0x5b,0xff,0x88,0xff,0xff,0xff,0x7b,0xff,0x9c,0xff,
+ 0xff,0xff,0xf7,0xff,0xc8,0xff,0xff,0xff,0xbf,0xff,0xeb,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,0xff,0xeb,0xff,0xff,0xff,0x77,
+ 0xff,0xc8,0xff,0xff,0xff,0xfb,0xff,0x8c,0xff,0xff,0xff,0x77,0x7f,0xda,0xff,
+ 0xff,0xff,0x7b,0xff,0x8c,0xff,0xff,0xff,0x6b,0xff,0x88,0xff,0xff,0xff,0xab,
+ 0x7f,0xc0,0xff,0xff,0xff,0xaf,0xff,0xc0,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,
+ 0xff,0xff,0xdf,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xdf,
+ 0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,
+ 0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xbf,
+ 0xff,0xd7,0xff,0xff,0xff,0xfb,0xff,0xca,0xff,0xff,0xff,0x7f,0x7f,0xdd,0xff,
+ 0xff,0xff,0xb5,0x7f,0x8a,0xff,0xff,0xff,0xbd,0x3c,0x04,0xfe,0xff,0xff,0xee,
+ 0x3f,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xef,0xff,0xf8,0xff,
+ 0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0x7f,
+ 0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0x8f,0xff,0xff,0xff,0x7f,0xff,0xcf,0xff,
+ 0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xf3,0xff,0xff,0xff,0xf7,
+ 0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xdf,0xff,0xe1,0xff,0xff,0xff,0xbb,0x7f,0x86,0xff,0xff,0xff,0xde,
+ 0x3f,0xc5,0xff,0xff,0xff,0xbf,0x3e,0x27,0xff,0xff,0xff,0xfd,0x3f,0xd7,0xfe,
+ 0xff,0xff,0x7e,0x3d,0x4e,0xfe,0xff,0xff,0xbd,0x3f,0x8f,0xfe,0xff,0xff,0xff,
+ 0x7d,0x1d,0xff,0xff,0xff,0x77,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xf5,0xff,0xff,0xff,0xd6,0xbf,0xd0,0xff,0xff,0xff,0xef,
+ 0xff,0xf9,0xff,0xff,0xff,0xef,0x5f,0xf1,0xff,0xff,0xff,0xed,0xbf,0xd1,0xff,
+ 0xff,0xff,0xef,0xdf,0xf0,0xff,0xff,0xff,0xaf,0xff,0xf9,0xff,0xff,0xff,0xf7,
+ 0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,
+ 0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,0xff,0xff,0xff,
+ 0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,
+ 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xef,
+ 0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf3,0xff,
+ 0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xaa,0xff,0xff,0xff,0xab,0xfe,0xa8,0xff,0xff,0xff,0xff,0xff,0x14,0xff,
+ 0xff,0xff,0x6b,0xfd,0x08,0xff,0xff,0xff,0xab,0x7e,0x00,0xff,0xff,0xff,0x5d,
+ 0x7f,0x00,0xff,0xff,0xff,0xb7,0x7e,0x82,0xff,0xff,0xff,0x6b,0xff,0x88,0xff,
+ 0xff,0xff,0x7f,0xff,0x94,0xff,0xff,0xff,0xf7,0xff,0xd4,0xff,0xff,0xff,0xdb,
+ 0xff,0xf4,0xff,0xff,0xff,0xef,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,
+ 0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0x55,0x3f,0xc0,0xff,0xff,0xff,0xb7,
+ 0x3f,0xc8,0xff,0xff,0xff,0xeb,0xff,0x90,0xff,0xff,0xff,0x6f,0xff,0xb1,0xff,
+ 0xff,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xef,0xff,0xf7,0xff,0xff,0xff,0xff,
+ 0xff,0xeb,0xff,0xff,0xff,0xdf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,
+ 0xff,0xff,0xdf,0xff,0xe5,0xff,0xff,0xff,0xdb,0xff,0xe4,0xff,0xff,0xff,0xdb,
+ 0xff,0xe0,0xff,0xff,0xff,0xaf,0x7f,0xc0,0xff,0xff,0xff,0xb2,0x1f,0xa0,0xff,
+ 0xff,0xff,0x9b,0xff,0xc4,0xff,0xff,0xff,0xfb,0xff,0xe4,0xff,0xff,0xff,0x5f,
+ 0xff,0xca,0xff,0xff,0xff,0xfb,0xff,0xdc,0xff,0xff,0xff,0x7f,0xff,0xcc,0xff,
+ 0xff,0xff,0xfb,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xef,
+ 0xff,0xf1,0xff,0xff,0xff,0x65,0x3f,0x80,0xff,0xff,0xff,0xb5,0x3f,0xc8,0xff,
+ 0xff,0xff,0x6e,0x3f,0x89,0xff,0xff,0xff,0xab,0x3f,0x80,0xff,0xff,0xff,0xed,
+ 0x3e,0xc0,0xff,0xff,0xff,0xef,0xff,0xd9,0xff,0xff,0xff,0xf7,0xff,0xf9,0xff,
+ 0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,
+ 0xff,0xc7,0xff,0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0x7f,0xff,0xcf,0xff,
+ 0xff,0xff,0xbf,0xff,0xc7,0xff,0xff,0xff,0xaf,0xff,0x83,0xff,0xff,0xff,0xbf,
+ 0xff,0xc7,0xff,0xff,0xff,0x5f,0xff,0x87,0xff,0xff,0xff,0xff,0xfe,0x85,0xff,
+ 0xff,0xff,0x5f,0xff,0xc2,0xff,0xff,0xff,0xeb,0xbf,0x88,0xff,0xff,0xff,0xff,
+ 0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xff,0xff,0xeb,0x7f,0xe0,0xff,
+ 0xff,0xff,0x4d,0x3f,0x80,0xff,0xff,0xff,0xea,0x3f,0xe1,0xff,0xff,0xff,0xbf,
+ 0x3f,0xea,0xff,0xff,0xff,0xdd,0x3f,0xe7,0xff,0xff,0xff,0xfb,0x7f,0xe2,0xff,
+ 0xff,0xff,0xdf,0xff,0xf4,0xff,0xff,0xff,0xf3,0xff,0xd8,0xff,0xff,0xff,0x7f,
+ 0xff,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xde,0xff,
+ 0xff,0xff,0x7d,0x3f,0x9b,0xff,0xff,0xff,0xfe,0x3f,0xce,0xff,0xff,0xff,0x7d,
+ 0x3f,0x9f,0xff,0xff,0xff,0xff,0x3f,0xae,0xff,0xff,0xff,0xba,0x3e,0x9f,0xff,
+ 0xff,0xff,0xff,0x3f,0xca,0xff,0xff,0xff,0x5a,0x7f,0x8a,0xff,0xff,0xff,0xff,
+ 0x3f,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xed,0xff,
+ 0xff,0xff,0x52,0x3f,0x00,0xff,0xff,0xff,0xbf,0x7f,0xc0,0xff,0xff,0xff,0xd7,
+ 0xff,0xe2,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,
+ 0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,0xff,0xe7,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc9,0xff,
+ 0xff,0xff,0x6f,0xff,0x99,0xff,0xff,0xff,0xb7,0xff,0x89,0xff,0xff,0xff,0xd7,
+ 0x7e,0x01,0xff,0xff,0xff,0xaf,0xfe,0x88,0xff,0xff,0xff,0x77,0xff,0x29,0xff,
+ 0xff,0xff,0xef,0xff,0xc9,0xff,0xff,0xff,0xff,0xfe,0x91,0xff,0xff,0xff,0x6f,
+ 0xff,0x99,0xff,0xff,0xff,0xaf,0xff,0xc9,0xff,0xff,0xff,0x7f,0xff,0x81,0xff,
+ 0xff,0xff,0xef,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xda,0x7f,0x85,0xff,0xff,0xff,0x6f,
+ 0x7e,0x01,0xff,0xff,0xff,0xb7,0xff,0x48,0xff,0xff,0xff,0xff,0xfe,0xba,0xff,
+ 0xff,0xff,0xf5,0x7f,0x58,0xff,0xff,0xff,0xfb,0x7e,0x3a,0xff,0xff,0xff,0xef,
+ 0x3f,0x3b,0xff,0xff,0xff,0xff,0xfe,0x39,0xff,0xff,0xff,0xef,0xff,0x93,0xff,
+ 0xff,0xff,0xbf,0xfe,0x83,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xf7,
+ 0xff,0xba,0xff,0xff,0xff,0xef,0xfe,0x19,0xff,0xff,0xff,0x7f,0xff,0xc9,0xff,
+ 0xff,0xff,0xd7,0xff,0x91,0xff,0xff,0xff,0xaf,0xff,0xe3,0xff,0xff,0xff,0xdf,
+ 0xff,0xe1,0xff,0xff,0xff,0xaf,0xff,0xc1,0xff,0xff,0xff,0x75,0x7f,0xc0,0xff,
+ 0xff,0xff,0xff,0x7f,0x9c,0xff,0xff,0xff,0xfd,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xfd,0x1f,0xfe,0xff,0xff,0xff,0xfb,0x3f,0xfe,0xff,
+ 0xff,0xff,0xfd,0x7f,0xfc,0xff,0xff,0xff,0xfb,0x7f,0x3c,0xff,0xff,0xff,0x77,
+ 0xff,0xac,0xff,0xff,0xff,0xfb,0xff,0xda,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,
+ 0xff,0xff,0xf7,0xff,0xf1,0xff,0xff,0xff,0xdf,0xff,0xf7,0xff,0xff,0xff,0xff,
+ 0xff,0xd7,0xff,0xff,0xff,0x7f,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
diff --git a/hacks/images/matrix2.xpm b/hacks/images/matrix2.xpm
new file mode 100644 (file)
index 0000000..7cfab0b
--- /dev/null
@@ -0,0 +1,500 @@
+/* XPM */
+static char * matrix2_xpm[] = {
+"42 432 65 1",
+"      c None",
+".     c #000000",
+"+     c #020E04",
+"@     c #021804",
+"#     c #062604",
+"$     c #0B3008",
+"%     c #021E04",
+"&     c #0C360E",
+"*     c #114410",
+"=     c #1F561E",
+"-     c #145417",
+";     c #136314",
+">     c #1D5E1D",
+",     c #0E4E0C",
+"'     c #1C4E1C",
+")     c #246624",
+"!     c #2F832F",
+"~     c #2B7729",
+"{     c #368B34",
+"]     c #3B9439",
+"^     c #298B27",
+"/     c #4CB34A",
+"(     c #44AB42",
+"_     c #42A244",
+":     c #0D3E0E",
+"<     c #26C227",
+"[     c #52BB54",
+"}     c #3E9C3C",
+"|     c #127410",
+"1     c #40CC44",
+"2     c #5AC254",
+"3     c #286E26",
+"4     c #178618",
+"5     c #269624",
+"6     c #62DA61",
+"7     c #5ACA5C",
+"8     c #5ED05C",
+"9     c #2AA62C",
+"0     c #3AC237",
+"a     c #FFFFFF",
+"b     c #166E14",
+"c     c #62DE64",
+"d     c #1E751C",
+"e     c #26B529",
+"f     c #88E688",
+"g     c #42D73C",
+"h     c #36B634",
+"i     c #2E9A34",
+"j     c #66E561",
+"k     c #7AF67C",
+"l     c #92F294",
+"m     c #76EE74",
+"n     c #1AA614",
+"o     c #169614",
+"p     c #32D634",
+"q     c #32CB34",
+"r     c #3EDE3C",
+"s     c #D9F9D8",
+"t     c #26CB24",
+"u     c #9DD89F",
+"v     c #E8FEEA",
+"w     c #D8F3D8",
+"x     c #73E774",
+"y     c #66E264",
+"z     c #D7F2D8",
+"..........................................",
+"..................@@%%@+........@##$%+....",
+".+..@@@@++.+..+..@::**:#+.+..+.#-;b|>:@.+.",
+"...@###$#@+.....@:!!!]!=$+....%;uful85:+..",
+"..+%$#####+..+.+$>/]!]]{:@...+'9vwfzsf)%..",
+"..+#&#@@#&%+...+'![!->][=#+..@4uauoiua5$..",
+".+@###@+#&%+...#>]/~,*{2)$+..#hzvg44fah'+.",
+".+@$&@+@#&@@..+#3__d**![~*@.+$1aaqd4ua7;%.",
+".+##$%++#&#++.+#!/_b*:!/~'@..&uaa<|dfafd%.",
+".+@$$%@@#$@@..+#3}_d-*![~:+.+$7vaq4|ua7b@.",
+".+@$$#++#&@+...%)]/!,,!/)$+..$9zag44uah*+.",
+"..@@&#@%#&@+...+*~8{->][=%...@|7axo9la5#+.",
+"..+@$#@%##+....+$=/{)~]}'%..++*}vf<1zz|%..",
+"...+%##$#@+.+...+:3!{]~'#+....@-[yuz1!:+..",
+"....+@@@+........%:=>>*#+.....+#;^99|:+...",
+"....+...+..+..+...+@@@%+...+....+###%+.+..",
+".+..............+............+............",
+"..+...+.....+......@#%+.+........@##@.+...",
+".....@@@+.+...+...@:='&@..+...+.@3{d-$..+.",
+"....+#&#$%.....+.+@{2]~)@..+...+$uvz8_$...",
+"..+.+$:#@@.......@$}x{)'@......+:lvu[!%...",
+"....+#:@++.+.....+$_6>&#...+...%&zv(,$....",
+"....+$:@+....+...@$_6=$@.....+.%*la5*%..+.",
+"....+#:@+.....+..+$_6>#@.......+&zv5&%....",
+".+..+$&@+.+......@$_8=#+.+....+%*zv^&+....",
+"...++$:@+.....+..@&_6=#+..+....%,zv5$@+...",
+"...+.$&++...+....@&(6=$+....+.+#,la5:+..+.",
+"....+$:%++......+@&(8=$@.......#=wv5:@....",
+".+.++$$@+.....+.+#*_2):@.+....+$dzae>#....",
+"...+%%$#@+.+.....#={_~'#...+...:9lv24$+...",
+"....+@+++........@&'=:#@.....+.+-~5):+..+.",
+"...........+..+....+++..........+@++......",
+".+...+..........+.++++..+..+.....+%@......",
+"....++@++...+....+@$:&$+.......+$*'=:@+...",
+"...+@+@@@@....+.+$=====*%...+.@*i9oo^d#...",
+"+..@$$####@.....@=/_!!{]&+....#{vvc8zz=+..",
+"..+#&$@%##+.+..+&32}3)!}*....+-2az<<uz;+..",
+"..+#&#@+@#+....+*~7!-')~$++..+duvuo4eu-...",
+"..+@&#@@++.....+:~2{,:::+...++;uaf4b;;#...",
+"..+%#$%++..+...+$)/5>'&@+....+*(afe|,#++..",
+"..+@###@@+...+.+#'{}!-:#+....+&4zzxo-$+...",
+"...+@#$#++.....+@:){}~=$@+....#;exwq5*%...",
+"..+@@%$$%@.+...+$*=4]}3'%..+.+*|nplzq4$+..",
+"..@%%#%$$#@....+*)d~^}}!*@...+be0qpwzf>@..",
+"..+%##$#$%@.....:3{5}((]:+...+;efxlaazb@..",
+"..++##$#$#++...+#=]}}_}!:+....*}wvavvu>+..",
+"...++@@@++...+..@#*=-='*@..+..+*3^^^4b#...",
+"....+..+.+........@+@@+.+......+@%%#@+.+..",
+".+................+@%%......+...+%%%......",
+"....+@@@+..+.+...@#$::&+.+.....@&-;>:@.+..",
+"...+@@@%@+.....++&3)))=:+.....%-[he[o>+...",
+"+.+@&$#$#%+.....#=[}!}{)#..+..#]vv6alh&+..",
+"..+@&$@##@..+...&32]3~~)$....+=2aze88h&...",
+"..@@&#@@@@+....@:~[{=>>=%....+;uvue99{$+..",
+"..+@&$#++......@$)[_!'&#+.+..@*9avg^;&+...",
+"..+@$$#@@+..+..+$3//{=&@.....@,havx5,@....",
+".+@@&##+@......@*~/(!=&@...+.%d7avfi;%....",
+"..@$$#@@++..+..%){_!>'&%+....#9zv6n4*#@+..",
+"..%##%++@@.....%3]}~-*-'%....#/sw0o44!#...",
+"..+#$#@%##@.+..+'~_~-)!]*+...@4uvpoefz)...",
+"..++##%##@+...+.&=!!3!!~$..+.+,^6818f8'.+.",
+"...+@%%#@@......+$>)!!3'%.....+,i076h4#...",
+"....+++@++.......+#$:&$@+......@&-;)'#+...",
+"+..........+.+.....+++++..+.+....+++@+....",
+"..+............+..+++.........+.+@@....+..",
+"....+++.+........@#$#%.+.......@&::@+.....",
+"....%%#+..+..+...#*3~:@..+..+.+$422>#...+.",
+"+..+@$&@@.......@$3_[):@......+>hva9=#....",
+"..++##&#%+......%:~(/{>#+.....#b0aali:@...",
+"...+#$$&@@+.+...%*~_/(!'$+.+..#btzav6!&+..",
+".+++##$$$#+...+.#'!}((}~:@....$4plvaz8b%..",
+"..+@%$$$#$%+...+#>^_(}}_>$...+:5czszsz9'..",
+"..+#$#$$#$#+...+:)_/h}_/~*+..@;ezavlsa1b@.",
+"..+#&:&$#$@@...+'![72((_~*+..+46aaavva1d+.",
+"..@@$&$$##++...+:~(0(i!~=:...+)2sawf68}-+.",
+".+.+###@++++....#:!{^>*$$@....&|8fxi)-&%..",
+"...+@@%++....+..@$)33:#@+..+..%-900;$%+...",
+"...+@@@+........+#*-'%@........&~54&@.....",
+"..........+.......+%@.....+.....##@....+..",
+".......+....+..........+...+........+.....",
+".+...+.+......+..+@###+......+.+#$&$%...+.",
+"...+@@%@@........#*===*#.......$d5i5)&....",
+"...@@##$#@.+....%')~{}~'#..+..#b08fs8!#...",
+"+.++###$$%+..+..%'!]}2})$.....$!8zsash:...",
+"...+@%#$%@+.....%:=)~}{)#.....#;5<qffh:.+.",
+"..++%@##$%+..+..@$;~^_])$+.+..#>n0czf0*+..",
+"..++#$$&$++....+$'!_([}>#....+&4xwvas9:...",
+"..+%$$%#%@.....@:3/_{{3*#....%b2av6f[d#...",
+".+%#&#@@++.+...@>{[{b'*%+.+..%ilafe5b&@.+.",
+".+@$##@++...+..%)}}3,'&#+....#/saq4|-$+...",
+"..@##@@%%@.....@=!]~,===@....@56a<oni^#...",
+"..++$#@###+....+&>]~=!{~$.+..+'nzgn7f6*...",
+"..++@%@#@@..+...%:;~~!3=%.....#>eq16[i#.+.",
+"...+++#@@@......+#:=)3=$+.+...+#>5hhi*@...",
+".....+.+.....+....@###@+....+..+%#:$#+....",
+"..........+......................+....+...",
+".+..++++.........+$::#+..+....+@*)b&@...+.",
+"...+%##@+..+..+..$=!~'&@...+...&9174'%....",
+"....+%##%+.......%')!{)&@......$!hgf(-%...",
+"+..++@@$#@+.+...+#$=3}{=&+....+#,o1wli*@..",
+"...++@@##$@...+.+#$->^}}'%.+..@$-oe1zz4#..",
+"+..+@###&&@+....@*3~^][2=#....#b[78lvai$..",
+"..@%$$$$:&@+...+$)(_i(76)$+..+*9avzsaah:+.",
+"..+#$#@@$&#+...@=!/{d~}2>$+..@^lax<qza9*@.",
+".+@#$#@@#$@+.+.@3]}d--^/=$+.+#haaqonfa5&@.",
+".+%##@@+%&%....%)]})--{[=$...#/vv<45fa5&+.",
+"..@#$%%%$$@....+'!}!-b]/-#...@!8a1oela4#..",
+"..++$#@@%$@.+..+#>}~>~{]:@...+*isce1lzd@..",
+"...+@%%#@++...+.@$)d~!)'@+....@-90q8[|$+..",
+"....+@%@@.......+@$'>>:@+.....+@,4ii;#+...",
+"..........+.......+@@%@...+.....@##$%...+.",
+"+..+...+....+..........+....+........+....",
+"....@+@@++....+..%&***&&@.....+#=bbb>-%...",
+"...@%%@@%%@.....%:33~~3=*@....@;01000e)#..",
+".+.@&$####%+....%=2_{{]]=&.+..$}avffzzi,..",
+"...%&&####%++...#)7/{!]{)&....#/aaf6ul9=..",
+"...@$##+@++...+.+'_]~='*:@....#~vzqn{!>#..",
+"...+@#$@+++.....@$~{{-&$%+.+..+-[lfo-&#+..",
+"...++#$@+........@*{}-$%+......#|fu5-#+...",
+"....+@#@++..+....@#3{)*%....+..@&0ze;$++..",
+".+...@%#@+....+...%'3~=#+.+.....#^[g5#+...",
+"..+..++#%++.......+$']~#+...+...@&oz[:@...",
+".....++##+..+...+..%*{!=%.....+..#;f8^#+..",
+"......+@@#+..+.....+$3~3$........+*[81:...",
+"..+....@@#+.........+&)~$..+......%'9x*...",
+"........++...+.+.....+&'%...+..+...+>~%+..",
+"....+..+.........+........................",
+".+.......+..............+......+.......+..",
+"...........+..+...+++@+...+.+....+@#++....",
+"...+.+@@++.......+@:''*#+......+$;!4)&++..",
+"...+@@##%@+..+...%*)3~3'$+....+#~h0qe^:+..",
+"+..@##@@#$@.....@*]!~d{]'%.+..+;zxq<ul!#..",
+"...+&$%##&@...+.+=[])d}/=#...+%!vfq<lai$+.",
+"...%&##@$&#+....%=2idb_[)$@...#!alqtzan:@.",
+".+.@$#$$$$%+...+@'_((/[[>$+...$!szzzva9*@.",
+"..++#&&&&&%++...#*{/277/)$@..+#4uavaave,@.",
+"...@$$&$#$@+....#=_0[9(/):@...$^saazvve-@.",
+"..+@$$#%$$#++..+#-/_5!i_~:@..+$5avxpfaqb@.",
+"..+@&#@%###+....#=2]>;^]3'+..+#iafenpzq4@.",
+"...@$$%+#&@@+...@=/{;-!/3*@...#^afeo6a[b@.",
+"...+##%@#$@+..+.@:]!b-!_>$..+.@)u60n8w9*..",
+"...++@@@@@+......#:))~3>&%.....$de0009'%..",
+".....+@@++.......+@&**:$+......+#-dd>,+...",
+"+..........+.+......+@+..+..+.....@+@..+..",
+"...+...+.......+..+++%++......+.+@%#%+....",
+"+....@%@@+.......+@:==*$@.+....+#;55d*#...",
+"...+@@%%%@+..+..+#*)~~)=&+..+.+$b9q0h5,@..",
+"+..+##@@#$@+....+:{!3)!]=$....@)ff0<6z5:..",
+"..+@$$%@#$@+...+#=({3>!]3:+...$^aleo6vh;@.",
+"...@$#+@@##++..+#=/!-,3])'%..@&5a6n5<z04%.",
+"..+@&$+%#$#+...+#)[^>-d_~'@..+:9a6nnqv1!%.",
+"...%$$#@%$@@...+#;2_dd](3:@..+:}al0<la0b%.",
+".++@&&&$$&@+.+.+#=72(_/(>$+..+$iaaasaa9*+.",
+"...@#&$$#@@+....@,}//{!~*@....$|zaau67b@..",
+"...+@#$@@+......@&b}_d':%+....%-<zs<^>&@..",
+"...++#$#@++.+....%:!_{)$@++....#;gaun,#...",
+".....+##@+....+..+%=~{)*@...+..+#5uf0|#...",
+".....++@%#+.......+@&)3)$.......+#>h09:+..",
+".+.....+++..+......+@$:$+..+..+..+%'='+...",
+"..+...........+....................+......",
+".....+..........+.+.........+...........+.",
+"..+...+..+.+..........+.+......+.....+....",
+".......@+....+.....@$:$...+......@:~*.....",
+".....+%#%.......+..$=])%....+....,5z/#+...",
+"..+..+@$#+..+.....+#=/~$+.....+..*}vu$++..",
+"......+$#+....+...+%'(!&%.......%$~af>#...",
+"..+.+++##%+.....++@$:]!=$+.+...+@:4z85:+..",
+"...++@@@#%+......%:*=3~~:+..+.+$;|o2g8=@..",
+"...@@%%+##@.+..+%:3))=~{*%....$>heeo1l~#..",
+"..@@#%@@@$@+...+')~3-*~}'#@..%deg<54qz^&#.",
+".+%##@@@#$@@+.+#)]!3->!_~'$@+:[z8ennfv0!-@",
+".+$$####$&&$%++:]/{~!{/7[])$+-lamg7laavze*",
+".+#$@@@@###@@+.:{}3;)3~{{~=#+'8zh992uu6u5&",
+".++@+++++++@+.+%'=&###$$$::++#^5-:*$**,--%",
+"...+...........+##%@+@+@+++..+$&%+@@@@%%+.",
+"..........................................",
+"..+.....+..........+....+...+....++.......",
+".....++....+..+...@&*@...+....+.@';#..+...",
+"...+@%%+........++*>3$+........@b9(*@...+.",
+"+..+@##@+.+......#3{!*$+..+....:8lld&@....",
+"....@@##@...+....%')!!>#+...+..#~[ffi$@...",
+"...+.@@##@+..+....@'~}~'#+......%!0z7d:+..",
+".....+@@##@....+..+$*=!]'#...+..@:d96l{$..",
+"......++#&@+......+@$*!(>$+.....+#*dua9*..",
+".+....++#$%.....+.+@&'~_=#......+#-4fwi:..",
+"..+..+@%@@+.+.....+$=~~=&@..+...+*481_-%..",
+"....+@##@++...+...#=~!>&@.....++$]8u9,#+..",
+"....+#$@+........%:!_=&+++.....@;fz5*@+...",
+"..+.%#@+...+.....#3~3$@+...+...:[8[-%+....",
+"...+@@+.+.....+..#3=&++........:2i,@+..+..",
+"....+.......+....+#@@.....+..+.+:#@.......",
+"+........+.............+..............+...",
+"..+...+.......+............+........+...+.",
+"...+....+..+......++@@@.+.......+@%%++....",
+"....@@@+@+.....+.%:*'''&+....++#>d^]!,%...",
+"...+@@##@@+.+..+%:>3~{~=:%+...#>9h1f7i=$..",
+".+@#%%%$$#%+...@'33)3_}~)*@..#^17eeaw1hd%.",
+".+%#@@@$###%+.+#~{)==(}!~)$++:[l<o9asgp9'@",
+".+##+++$#@%%@++&!{'*=_{)~3=#@-uu^|owfe104:",
+"++%$@@@##%##%+#*!{*:,!!~3~3:#dlf4>46y1q01>",
+".@#%+++@##@##+@'{],&:>!]d~{*#dul!;>96l06ud",
+".+#$@+++%$#@#++#!}=:$*~}~~~:@*zlo;-|2ag1g>",
+"..@#%%@+@###@+.%=~)=*:){{~>#.#_7ho|;huf1_:",
+"...+%@@+++#@+..+#:))>::={~$@.+$bhhn;|ifu-@",
+"....++++++@+....+@$:$$#$*:+...+#'>-:&*d;@.",
+".......+...........+@+@++........++#+@+...",
+".+..........+..+..........+...............",
+"....+...+.....................+.......+...",
+"..+.......+.....+.+++..+....+.+++++.....+.",
+"..+++.+.....+.+#$&$@$#%+.+..+$:*&&:&#@....",
+"++@@%##%@@....%'==>33='*#+..$^999h794d:+..",
+".%##%#$#%@@...#)~!~_/!3):+..*9181sa80e=%..",
+".++@@$$@@@+.+.#&*->]()':$@..$>4onlae4|*%..",
+"+@@@%#&%++++..$=-->}/b'*&#..*^o4efa<4d-$..",
+"+#@@@$$#@+@+..'!3;b_[4=-*$..!6qeewa1nod,+.",
+"+@@%@$&@%@++..$>>>b_/3;'*$+.'h9n<saq9o4*..",
+".+@@@#&@@++...%$*,>}/3-*:%..#'|onzv<ob-$..",
+"...++#$@++.+...@##:!('$#+....@$&;fa4,$%...",
+"...++%$++....+..+@$!_,#@..+...+#*uz4&@..+.",
+"....+#$@+........@#!_'$@.......+$fz4$@....",
+".....##++..+......#~_=$+....+..+%uv9,+....",
+"+....@#@+....+....+){'$..+......@_u!:.+...",
+"..+.+++........+...%#@+......+...#:@+...+.",
+"........+.................+...............",
+"......+...+..+..+..%%...+......++$$...+...",
+"....+@@..........+&==@......+..+*!i$......",
+".+..+%$..+....+..+#3!#....+....+$hu:....+.",
+".....@$+...+......@~]&.+........$8u'.+....",
+"....+@$+.........+@3}&......+...$uu)+.....",
+".+...%#++....+...+#~]:@..+.....+#ul=+.+...",
+"...++##+..+....+.+%~]:@......+.+$uz;@...+.",
+"....+@$++........+%~_:%...+....+#uz3#.....",
+".+..+@$+....+....+@3}*%+........#6ud$+....",
+".....%#%++...+....%3]=$+..+.....#/z^*@+...",
+"...+.@@#@......+..+'~~=%....+...%!76^#..+.",
+".....+@#@+.........#'{3&+........&5uh'@...",
+".+....+@@@.+.....+.+#*''@.+..+...+&3^!%...",
+"........++....+......+$:+.....+...+@*;@...",
+"....+.......+...........................+.",
+".+.......+....+...+.......+...+....+......",
+"................+...++++....+...++++++....",
+"...+.++++++......+#&$&&$$#.....+&:*'--*$..",
+"...+#%%%%%%@.+..+#)33))3)*%...+*h0e<h0ed#.",
+"+..+##%####%+...+*{!d!!!{3$+..@)l61qqqfh:+",
+"...@$#@@@#$%+..+@=({b;dd_~&@.+$!ay<t<pz6>@",
+"+.+@$$##$#&#@..+$=_}^^{i(]:@.+:nvzcgyxvu;#",
+"..+##$$$$$$#@..@'3__(9((({*%.@3[vsszwvaf|#",
+".+%#$##$#$$#@+.@3}_9__([_!=#.#2sszzsvas6o$",
+"..%#$#$$$&%%@..%>!}ii5(0i)*%.%_flmxxaaf<|#",
+"..++$#%#$&#@+..+#-]{{5(2^-#+.+&^lyggsac4*+",
+"...@$##@###++...#,(5~d^]!=#..+$4sxpp6fg5$.",
+"..++$#@#@%@@.+..@'}^|b)>>*@...#dw6t<ehe|@.",
+"...+###@@++.....+$!{!d>:$@....+>x6pqo;,#..",
+"...++#%$++...+...#=!]3'#+.+....&^uvg4#@...",
+".+..+#$@+........+#~}):%....+..@:2z/b%....",
+".....+++++...+....+$:$%.........@*;:#..+..",
+"...+.......+...+........+.+...+...........",
+"+....................+@+...+.......@%@+...",
+".......+@@...+...+.+@&*'@.......++#'d~#.+.",
+".+..+.@%%%+......+@%:>3)$....+.+@$-9<(:...",
+"..++@+@##%+...++#&&:={!3:@...@&->bouf1>%..",
+".+%######$@+..+#3{{!!{_}'%..+&[fu68jvz4#..",
+".+%$##$##$@+..+$~_/_}{}(=$..@*uzavlcvv9*+.",
+"..+@#$$###@@...+:>{__~!!3'@..@-9zal1gf0d@.",
+"...+@$#@%%%%...+@:=]();)3=#..+#;ezvhn90i$.",
+"+..++#$%++@@+...+#&!}>*:)=$...+#-6and;hi:+",
+"....++@#@+++.....@%>~~=$$#+....@#i615:,&+.",
+".....+%@@+..+.....+$=~=:@+..+...+,5q9;#+..",
+".+...++@%@....+....+$)>'@........@*hh4#...",
+".......++@+.....+...@&*'&....+....@'d{:+..",
+"......+.+@..+.....+...$&#.+....+....&>$...",
+".+..........................+........+.+..",
+"...+.........+..+....+..........+..+......",
+".......++.+.......#%%$#++....+..$##-:..+..",
+".+.+%@@#@.....+..#=**!=@+.+....&]|b8i$+...",
+"...+#%+$%@.+....@&~3'}~&@.....%=6h5v8*#+..",
+"..++$#@$#@+....+#'_~3/!:$@..+@$!a8<afd&@..",
+".++@$##&#+++..+$$=({~/{=&#..+:*5vx0v64-$+.",
+"+@@@$$%:$@@+..#'>~/}{29;=:@.$557alfalh5;%.",
+".##$&#$&&##@+.&{~]2/98/^3=#+=ffuavzavr0o&.",
+".+@@&$%$$@@+..%'=3[]^[_3>:+.$d52af6alq5;#.",
+"..+@$#%##@++...+#-(^b}^b&#@..%:^ar<zceb$+.",
+"..++$#@###@+...+%*_!;~!!:#....#~v1ngcgb$+.",
+"...+$@@+##+.+...+:}),>3!*#+...+;z1d51fd$+.",
+"...+#@++@#%+.....:{)$&)!-#+...+=l/--9l^:@.",
+"...+#@++++@++....%!'%#$'='%+...*84##>~9b#.",
+"....++....@+..+..@'$+@+%*:+..+.@!-@+@#d;%.",
+"..................++...+++......++....++..",
+".+.....+...+...............+.........+....",
+"...+.++.+.....+...+$*%......+...@';#+.....",
+".....%#+..+.....+%#)~*%+.+....+@$/6>#@.+..",
+"...+@#$@++..+..+@$:!_'$#+....+#*>fs4'$@...",
+".+@@@#&@+@+...+#''=]/)>*$@..@&do5lae44'%..",
+".@#$#$&$##%+..%*]({/2{{]):..#dfsyaaffz(>..",
+".+$$#$$#$##+..@*_/!(1!{}3'..#dzvgva6lv0d+.",
+"++$$@$&@##@@..%:]/d_[d!{3'+.%>lzqua0gz0d+.",
+"++%&#$:##$%@..@&][^/2{]_3*..#-faxvaxlv13+.",
+".+###$$##$%+..@#!}!(2{{]3:+.%:fw8saufz/;..",
+".++%+#$@+@@+..+%'>,{(>=)'#..+#494ua99e!*..",
+"..+++%$@@++....+#&$!}-:&#+...+:-'fw4->&@..",
+"....+%#+.....+..+@#3]:@+......+##7z;#@....",
+".....@%+..+.......+=3$@.+.+.....+58*@..+..",
+".+..+++............$*+......+....'d@......",
+".......+...+..+.....+..................+..",
+".....+..........+.....+..+....+.....+.....",
+"+......++....+......+$$$++.+....+.+**:%+..",
+"..+....#%@+.......+.#==*&%...+...+&i5b=$..",
+"...+..@##@@++..+...+:{!='&.......@>f6e4'..",
+"......+###@+......+@*}]~=&....+.+#dzsg5-+.",
+".....++#$#@+..+...+$*~}}=$@.....+$4gzzo$+.",
+".+.+.+%#$#@+....+.+:)]_i-$+.+...+-eusln*@.",
+".....@@$$#@+......@*~/({)&+.....%|7aal9>+.",
+".....@@&$#%@.+....%&)((^b*%...++#>esvge|#.",
+".+.+++@$$##++...+@#:;__]~'@+...@&-ilalq^#.",
+"...+++@$$#$@...+@$$:bi(_{>#..+$:-|elavcn$+",
+".+@@@####$@@+..#'>)~]}}}3*@.+&4nhcuzsz0d%.",
+".+%%######@+..+&>!!{{!!!>:@.@*(18ff6f8e-#.",
+"..@%+@@+++@@+..@'>=-***:>'+..#4hh5~;;de4+.",
+"..+@++..+.++...+$::$@@##:$...+&;;:$###>*..",
+"..................++++.........+++++......",
+".....+.......+............................",
+".....+++..+.......+$:$@+..+.....+*):#..+..",
+".+..+%%@+.....+..@%=3*$+....+..%$504:@....",
+"...++#$@++.+....##&!_=$$@....+#:-uz5':#...",
+".+@@@$&%%@++..+#=~)_2~)':#...&}7eva89^;:..",
+".+$&#&&$##@+..+:_[][8({!)*+.%;zazaavl8hb..",
+".+#$##&##%@+..+$]/!](}{3=$..+,fv7lzzc0^-..",
+".+$#@%#$#@+...+#{_>|{i~=&%..@&fze<gx1n-#..",
+"..#$@@@$@@+...+%!}>;3_~*#@..+&uzee<w8b&@..",
+".+@#%%###@+...+@3!~;d]!*#+..+#[f<e<z1|$%..",
+"..+%##%#@@+....+=~{!~~3-$@...@^1lg1cq5*%..",
+"..+@$#%+%%%+...+#>(]3=)~=$...+:]azq5e75'..",
+"...@%@@+@%%+.+..+:!3=$'3=&....@-u75*4[o>..",
+"+...+++...++.....+##@@@%&$+....@:$###$-&+.",
+"...................+...+++..+.....+...@+..",
+"+......+.....+............................",
+"..+.......+....+..+.+...+.....+..+....+...",
+"...+...+.........@+@%@@@...+...@@#%#%@.+..",
+"..+@+++++++.+..+$:$$$#&:#+...+:>'*::'-:@..",
+"..@#%+++%%@+...@)~=*:&=~=:...#(cnd>;o7^'..",
+"..##%+++@#%+..+@!])'::)!)*+..$uze4bbemhb+.",
+".+%$%@@+%#%@...#~];,**){3'@.+$ufe4||ex04%.",
+".+##@++@@##@..+$~]>*:*){3'@.+&fzn4;|efq!%.",
+"..##%@@+@$@@..+#!i;,::b{~'+.+$ufn4;bex04%.",
+".+##@++@%$%@...#~];'::){~,@.+$fl94;|<f14%.",
+"..#$%%%@###@..+%!}~;;)!}~'+..$uvpene6v14@.",
+"..@$#@%@#$#@...@~]{~)~{_~,@..#8a6q00ua1~@.",
+"+.%#@@+@@#@@...+3!>***)!)*+..@/u9dbdefhb+.",
+"..+@++.++@++.+..*=$$%#:='#...+d5,:&:b5!,..",
+".........+......+@++@@@#@++...+@@@++###@..",
+"..............+...........................",
+"+..+...+..+......+.........+..............",
+".....+......+....++@@++.+....+.+%#@@+..+..",
+"...++++++.......%#$$$$#%++....#:::*::$%+..",
+".++@@@@@%@@+...+*)>>-==='$@..+d_n55o54d'%.",
+".+#$$##$#$##+..@~_(]^i]]!):..%8valglzvlh-+",
+"..+#$$#$#@@%...+=!}}}(]~3'#..+{uzwzsl[[^$.",
+".+.+%##&#@+++...@:d{i/!'*$+...#;0xfa64|,+.",
+"....+@#$#+++....+#:-d(!:$%....@$bo0af)*#..",
+"...+.++$#+.......+#$>_!&%++....@$-5v8-$@..",
+".....++#%++..+....@#*]d&#...+...@$|l0,#+..",
+".+....+#%@....+....+&33:#+.......#=8h|$+..",
+"...+...@@%+.....+..+#=>=&+.......+$599'@..",
+".....+..@%@+........+%=3'$+.+.....+:514:..",
+".+......+@++.+....+..+&'&%....+....+'!>&..",
+"..........+....+.......+@@.....+....+@#%..",
+"...+..+.............+...+..+.....+........",
+"+......+...+..+..+....+............+...+..",
+"....+.+.++........+#$@#$%+..+..+@$*#:'#+..",
+".+..+@%@@%%+..+..+&)~*=!=&.....+*(7bnu9=..",
+"...+@#$+#$%@....@#:~_=3]~'@...@:>uzo0s0|%.",
+"..+++%$%@##@....%&'{()~]~'@+..$;4fae<zg5$.",
+"..+@%$&##$##+.+.&=3_[!](]~:+.+'i[va6fvl/;@",
+"..+@@$&#$$$%@...&=3_[{]/}~*+..,i7vaflav1b@",
+"...++#$@###@+...+$:{/3!}!=$+..@:)uahguy9:+",
+"....+#$@@##@.....@$!_b3]~=@....#,uae1lg5#.",
+"....+%$%###@..+..+$!_;d{~'%....+&fanqf14#.",
+"+...+#$@@#@%.....+%!_>d]~'@+...@$ua90lq!@.",
+".....#$@#$@@.+..+.@!(3!{~,+..+.+#uae6w14%.",
+"..+..#$#%$#@......%~/~{_3'+.....%uvflv7)+.",
+".....@@%@@++......+'3=)3=$......@~2!(2n,..",
+"......+.+@++.+.+...+#%$*$#..+....@$#,;*#..",
+".+...............+...+++......+...+.@@+...",
+"...+.+....+...............................",
+"..++.+..+...+..@&*&$%%%@+.+..@=)>:#$$@+.+.",
+".+@#%@@@@+....+$3!3':'*&%@..+*7f<4;db'$%+.",
+".+@#%%@%###@+..$)!~~)~~!3=:+.:/f1q<18u/^;@",
+".+@@##$#$&##%+.@')~]_{_[}!>#.#deqfalaaa69$",
+"..+@###@#$%%+..+&>~]]b!}!)*@.#-ngffe6z6/)@",
+"..+@###@@%%@+..%&>^]!=>3~=#+.%-9fx8o9115$@",
+".+@##$%@+@#@+..@,~]]~,*'~)#+.%4qwfg4|51h$+",
+".+@###%+++##+..@3]!~~*&'!)$..%[zgg1|>4u7$+",
+"..##+%#@++##+.+@~{>)!*$*]~#..#8uiq7|-|lu&+",
+"..++@##+@+##....:,:!{':']!#+.+=4;8l4>4zu$.",
+"....+@#@##%%+...+%#)])3~{3%...@$$[z[/7v/$.",
+".+...@###$#@.....++'!]_(~'@....+%!6svsu4@.",
+".....++%@@++.......$:>)):#......+:3i(_):..",
+"..+....+++...+......@#$#+..+......@:&:%...",
+".....+.........+.+...+.......+.....+++....",
+"..........+.............+......+.......+..",
+"..+...+.....+.....#%@.+++.+.....&&%..++...",
+"....%@@+..+...+..#==*$%#&#.+...$9i~:#&'*..",
+"...+%%%@@%#@.....$)33&:=~=+..+.:h8h;;57i#.",
+"+...@##+@%#%+....#={!'=3]3&....&9ff457z7&.",
+"..++.$$@@$#@+..+.%:!_=3{~'$....#)usn<z0^:+",
+"....+%$###++.....%${_^!!'&%...+#,fv66fi-#.",
+"...++##$#%++.....#$~_/]3:@+.+..#-1vvf0>#+.",
+"....+@$&$@+.+...@%:d_2}=&%+...@$;0aaln-#..",
+".++@@##$$@@...++#*>!}/}3:@...+:|_6zszh;#..",
+".++#$####$@+...@'!(}{~]}=#@..#4usvf1zv5&@.",
+"..%#$%+@@@%++..@=!{!>,)~=:#..$9xu7_497(b$.",
+".++@+++.+@@@+..@=3':###:='&+.+5[5;:$:;54-@",
+"...++.....+.....@$#++++@#%+...$'$#@++@$$@.",
+"......+.....+............+................",
+"..+.......+...+....+.......+.........+....",
+"...+............+............+....+....+..",
+"...+...+....+..+%$@..+..+....+&:%.........",
+".+%@@....+....@&'=*$.....+..%-^i):++..+...",
+"+@#$#@........$3{{~'@.......*hfz1d@.....+.",
+".@###@+...+...@*~]{=$#++%%+.#48szi:#+@$#+.",
+"..@##%+.++@+..+#=!_3$%#&**%.+$9fvh'$$*~;#.",
+"..@#&#@+@@#%+..@*![~:$:=!)@..@4ua8>*)9x(#.",
+"..+@$#++@#%@...+&)(!'$=!)'@..+'(af4-o12!%.",
+"...+###+@%++....@*{{)*=~'$....%blx0|924:..",
+"...+@#$++@+..+..+$>{_-**$+..+.@*]lz4|d*%..",
+"....+%$%@+.......+$!]):#@@.....#-7ze|:#@..",
+".+...+@#@++...+..+@:){)$%+.....+#;9x9*#@..",
+".....++@%%++......+#$)3)&@.+....+$;h0e>%..",
+"...+...+@#++...+...+@:=~'$...+...+#-_6!$..",
+"+.......++@++........@$:':.........@:;^;+.",
+"....+.....++.....+....+@$$..........+@':..",
+"+.....+.......+.............+..+.........."};
index 15cb66ae9eea9d69df270f6f5ec2c7f582a94650..f89f95fede33925458a1d8262c4fbab7171f33bb 100644 (file)
@@ -27,7 +27,7 @@
 #define COUNT (1 << NSTEPS)
 #define CELL(c, r) cell[((unsigned int)(c)) + ((unsigned int) (r)) * xmax]
 
-static enum mode_t { MODE_H, MODE_S, MODE_V, MODE_RANDOM } mode;
+static enum imsmap_mode { MODE_H, MODE_S, MODE_V, MODE_RANDOM } mode;
 
 static GC gc, gc2;
 static XWindowAttributes xgwa;
@@ -55,7 +55,7 @@ init_map (Display *dpy, Window window)
   int fg_h, bg_h;
   double fg_s, fg_v, bg_s, bg_v;
 
-  enum mode_t this_mode;
+  enum imsmap_mode this_mode;
   static Bool rv_p;
     
   XGCValues gcv;
diff --git a/hacks/phosphor.man b/hacks/phosphor.man
new file mode 100644 (file)
index 0000000..e586f89
--- /dev/null
@@ -0,0 +1,85 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+phosphor - simulates an old terminal with long-sustain phosphor
+.SH SYNOPSIS
+.B phosphor
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] [\-font \fIfont\fP] [\-scale \fIint\fP]
+[\-ticks \fIint\fP] [\-delay \fIusecs\fP] [\-program \fIcommand\fP]
+.SH DESCRIPTION
+The \fIphosphor\fP program draws text on the screen in a very large 
+pixellated font that looks like an old low resolution dumb tty.  The
+pixels flare and fade out as if the phosphor was very long-sustain.
+.SH OPTIONS
+.I phosphor
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-font \fIfont-name\fP
+The X font to use.  Phosphor can take any font and scale it up to pixellate
+it.  The default is \fIfixed\fP.
+.TP 8
+.B \-scale \fIint\fP
+How much to scale the font up: in other words, the size in real pixels of
+the simulated pixels.  Default 6.
+.TP 8
+.B \-ticks \fIint\fP
+The number of colors to use when fading to black.  Default 20.
+.TP 8
+.B \-delay \fIusecs\fP
+The speed of the terminal: how long to wait between drawing each character.
+Default 50000, or about 1/20th second.
+.TP 8
+.B \-program \fIsh-command\fP
+The command to run to generate the text to display.  This option may be
+any string acceptable to /bin/sh.  The program will be run at the end of
+a pipe, and any characters that it prints to \fIstdout\fP will be printed
+on phosphor's window.  The characters will be printed artificially slowly,
+as per the \fI\-delay\fP option above.  If the program exits, it will be
+launched again after 5 seconds.
+
+Note that phosphor is \fInot\fP a terminal emulator: programs that try to
+directly address the screen will not do what you might expect.  Phosphor
+merely draws the characters on the screen left to right, top to bottom.
+Lines wrap when they reach the right edge, and the screen scrolls when
+characters reach the bottom.
+
+In other words, programs like
+.BR fortune (1)
+will work, but programs like
+.BR top (1)
+won't.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1999 by Jamie Zawinski.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 27-Apr-99.
index cca0654ead0ecabf12411b96c779506b01852c9a..422bc1b2abbd3b0ab55067d886fdfef0f49e64f5 100644 (file)
@@ -77,7 +77,7 @@ static float nExtentDelta;
 
 typedef struct
 {
-  char *anDeltaMap;
+  signed char *anDeltaMap;
   double nVelocityX, nVelocityY;
   double nAngleX, nAngleY;
   float nExtentX, nExtentY;
@@ -97,7 +97,7 @@ static void ResetShadeBob( SShadeBob *pShadeBob )
 static void InitShadeBob( SShadeBob *pShadeBob, Bool bDark )
 {
   double nDelta;
-  char iWidth, iHeight;
+  int iWidth, iHeight;
 
   if( ( pShadeBob->anDeltaMap = calloc( nBobDiameter * nBobDiameter, sizeof(char) ) ) == NULL )
   {
index 7d965b50745886021b4f18b770de752cf265166d..3a8cf468cf668f1ac8b4f0a709a89120bfc5bdf0 100644 (file)
@@ -37,7 +37,7 @@
  * software for any purpose.  It is provided "as is" without express or 
  * implied warranty.
  *
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
  *
  * Version 1.0 April 27, 1998.
  * - Initial version
@@ -1486,7 +1486,8 @@ DrawBogie(sonar_info *si, int draw, char *name, int degrees,
 
     /* Compute the coordinates of the object */
 
-    distance = (log((double) distance) / 10.0) * si->radius;
+    if (distance != 0)
+      distance = (log((double) distance) / 10.0) * si->radius;
     x = ox + ((double) distance * cos(4.0 * ((double) degrees)/57.29578));
     y = oy - ((double) distance * sin(4.0 * ((double) degrees)/57.29578));
 
index 53bf34b0695ae31bfeb93eac82ef3ee5795b4690..8c76fc74e7faa698e036d0f5f0384f83b3fc03f3 100644 (file)
@@ -117,6 +117,7 @@ init_hack (Display *dpy, Window window)
   /* create buffer to reduce flicker */
   buffer = XCreatePixmap(dpy, window, sizex, sizey, xgwa.depth);
   buffer_gc = XCreateGC(dpy, buffer, gcflags, &gcv);
+  XFillRectangle(dpy, buffer, buffer_gc, 0, 0, sizex, sizey);
 
   /* blank out screen */
   XFillRectangle(dpy, window, window_gc, 0, 0, sizex, sizey);
index 2a727006d90446729e39e1df73dfb05972e322b4..d5c4ff1354ae0209a6cc62106aa248533ae2f1c2 100755 (executable)
@@ -27,7 +27,7 @@ require POSIX;
 use Fcntl ':flock'; # import LOCK_* constants
 
 
-my $version = q{ $Revision: 1.36 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.40 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 my $copyright = "WebCollage $version, Copyright (c) 1999" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "            http://www.jwz.org/xscreensaver/\n";
@@ -36,15 +36,15 @@ my $argv0 = $0;
 my $progname = $argv0; $progname =~ s@.*/@@g;
 
 my $random_redirector = "http://random.yahoo.com/bin/ryl";
-my $image_randomizer_1 = "http://image.altavista.com/cgi-bin/avncgi" .
-                         "?do=3" .
-                         "&verb=n" .
-                         "&oshape=n" .
-                         "&oorder=" .
-                         "&ophoto=1&oart=1&ocolor=1&obw=1" .
+my $image_randomizer_1 = "http://www.altavista.com/query" .
+                         "?mmdo=3" .
+                         "&nbq=12" .
                          "&stype=simage" .
-                         "&oprem=0" .
-                         "&query=";
+                         "&oart=1" .
+                         "&obw=1" .
+                         "&oshape=0" .
+                         "&what=web" .
+                         "&q=";
 my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" .
                          "&submit=SEARCH&SM=SC&LG=any" .
                          "&AM0=MC&AT0=words&AW0=" .
@@ -56,9 +56,13 @@ my $image_randomizer_2 = "http://www.hotbot.com/?clickSrc=search" .
                          "&MT=";
 my $image_randomizer_3 = "http://www.altavista.com/cgi-bin/query?pg=q" .
                          "&text=yes&kl=XX&stype=stext&q=";
-my $photo_randomizer   = "http://albums.photopoint.com/j/View?u=1&a=1&p=";
-my $photo_randomizer_lo = 10000001;
-my $photo_randomizer_hi = 12400000;
+
+# I guess Photopoint got wise to me, because now they are doing error
+# checking on the user ("u=") and album ("a=") parameters.  Oh well.
+#
+#my $photo_randomizer   = "http://albums.photopoint.com/j/View?u=1&a=1&p=";
+#my $photo_randomizer_lo = 10000001;
+#my $photo_randomizer_hi = 12400000;
 
 my $image_ppm   = ($ENV{TMPDIR} ? $ENV{TMPDIR} : "/tmp") . "/webcollage." . $$;
 my $image_tmp1  = $image_ppm . "-1";
@@ -626,9 +630,11 @@ sub pick_from_image_randomizer {
     my $href_count = 0;
 
     $_ = $body;
-    s/[\r\n\t ]+/ /g;
 
-    s/Result Pages:.*$//;               # trim off page footer
+    s/Result [Pp]ages:.*$//s;            # trim off page footer
+    s/^.*?IMAGE RESULTS//s;              # trim off page header
+
+    s/[\r\n\t ]+/ /g;
 
     s/(<A )/\n$1/gi;
     foreach (split(/\n/)) {
@@ -647,6 +653,14 @@ sub pick_from_image_randomizer {
         next unless ($u =~ m@^http://@i);  # skip non-http and relative urls.
 
         next if ($u =~ m@[/.]altavista\.com@i);  # skip altavista builtins
+        next if ($u =~ m@[/.]av\.com@i);
+        next if ($u =~ m@[/.]virage\.com@i);
+        next if ($u =~ m@[/.]photoloft\.com@i);
+        next if ($u =~ m@[/.]shopping\.com@i);
+        next if ($u =~ m@[/.]thetrip\.com@i);
+        next if ($u =~ m@[/.]cmgi\.com@i);
+        next if ($u =~ m@[/.]intelihealth\.com@i);
+        next if ($u =~ m@[/.]wildweb\.com@i);
         next if ($u =~ m@[/.]digital\.com@i);
         next if ($u =~ m@[/.]doubleclick\.net@i);
 
@@ -710,13 +724,13 @@ sub pick_from_image_randomizer {
 # to an image.  Returns two URLs, both of which are the URL of the image.
 # Returns () if nothing found this time.
 #
-sub pick_from_photo_randomizer {
-    my ( $timeout ) = @_;
-    my $n = ($photo_randomizer_lo +
-             int(rand() * ($photo_randomizer_hi - $photo_randomizer_lo)));
-    my $url = $photo_randomizer . $n;
-    return ( $url, $url, "photopoint" );
-}
+#sub pick_from_photo_randomizer {
+#    my ( $timeout ) = @_;
+#    my $n = ($photo_randomizer_lo +
+#             int(rand() * ($photo_randomizer_hi - $photo_randomizer_lo)));
+#    my $url = $photo_randomizer . $n;
+#    return ( $url, $url, "photopoint" );
+#}
 
 
 # Picks a random image on a random page, and returns two URLs:
@@ -751,10 +765,10 @@ sub pick_image {
         $total = ++$total_1;
         $count = ++$count_1 if $img;
 
-    } elsif ($r < 70) {
-        ($base, $img, $source) = pick_from_photo_randomizer ($timeout);
-        $total = ++$total_4;
-        $count = ++$count_4 if $img;
+#    } elsif ($r < 70) {
+#        ($base, $img, $source) = pick_from_photo_randomizer ($timeout);
+#        $total = ++$total_4;
+#        $count = ++$count_4 if $img;
 
 #    } elsif ($r < 80) {
 #        # HotBot sucks: 98% of the time, it says "no pages match your
@@ -1070,6 +1084,9 @@ sub x_output {
         which ($_) || die "$progname: $_ not found on \$PATH.\n";
         $_ = `$_`;
         ($img_width, $img_height) = m/dimensions: *(\d+)x(\d+) /;
+        if (!defined($img_height)) {
+            die "$progname: xdpyinfo failed.\n";
+        }
     }
 
     my $bgcolor = "#000000";
index 006bd5660bc1f44494927b76c1599cce14161e58..11ff592b2f4ded2fd0060e343710d1c86c0b3551 100644 (file)
 #ifdef HAVE_XPM
 # include <X11/xpm.h>
 # include "images/matrix.xpm"
+# include "images/matrix2.xpm"
 #endif
 
 #include "images/matrix.xbm"
+#include "images/matrix2.xbm"
 
-#define CHAR_HEIGHT 31
+#define CHAR_ROWS 27
+#define CHAR_COLS 3
+#define FADE_COL  0
+#define PLAIN_COL 1
+#define GLOW_COL  2
 
 typedef struct {
-  int glyph;
-  Bool changed;
-  int glow;
+  unsigned int glyph   : 8;
+           int glow    : 8;
+  unsigned int changed : 1;
+  unsigned int spinner : 1;
 } m_cell;
 
 typedef struct {
@@ -51,6 +58,7 @@ typedef struct {
   int char_width, char_height;
   m_cell *cells;
   m_feeder *feeders;
+  Bool small_p;
   Bool insert_top_p, insert_bottom_p;
   int density;
 
@@ -89,7 +97,10 @@ load_images (m_state *state)
       xpmattrs.colormap = state->xgwa.colormap;
 # endif
 
-      result = XpmCreatePixmapFromData (state->dpy, state->window, matrix,
+      result = XpmCreatePixmapFromData (state->dpy, state->window,
+                                        (state->small_p
+                                         ? matrix2_xpm
+                                         : matrix_xpm),
                                         &state->images, 0 /* mask */,
                                         &xpmattrs);
       if (!state->images || (result != XpmSuccess && result != XpmColorError))
@@ -97,15 +108,15 @@ load_images (m_state *state)
 
       state->image_width = xpmattrs.width;
       state->image_height = xpmattrs.height;
-      state->nglyphs = state->image_height / CHAR_HEIGHT;
+      state->nglyphs = CHAR_ROWS;
     }
   else
 #endif /* !HAVE_XPM */
     {
       unsigned long fg, bg;
-      state->image_width = matrix_width;
-      state->image_height = matrix_height;
-      state->nglyphs = state->image_height / CHAR_HEIGHT;
+      state->image_width =  (state->small_p ? matrix2_width  : matrix_width);
+      state->image_height = (state->small_p ? matrix2_height : matrix_height);
+      state->nglyphs = CHAR_ROWS;
 
       fg = get_pixel_resource("foreground", "Foreground",
                               state->dpy, state->xgwa.colormap);
@@ -113,13 +124,39 @@ load_images (m_state *state)
                               state->dpy, state->xgwa.colormap);
       state->images =
         XCreatePixmapFromBitmapData (state->dpy, state->window,
-                                     (char *) matrix_bits,
+                                     (state->small_p
+                                      ? (char *) matrix2_bits
+                                      : (char *) matrix_bits),
                                      state->image_width, state->image_height,
                                      bg, fg, state->xgwa.depth);
     }
 }
 
 
+static void
+init_spinners (m_state *state)
+{
+  int i = get_integer_resource ("spinners", "Integer");
+  int x, y;
+  m_cell *cell;
+
+  for (y = 0; y < state->grid_height; y++)
+    for (x = 0; x < state->grid_width; x++)
+      {
+        cell = &state->cells[state->grid_width * y + x];
+        cell->spinner = 0;
+      }
+
+  while (--i > 0)
+    {
+      x = random() % state->grid_width;
+      y = random() % state->grid_height;
+      cell = &state->cells[state->grid_width * y + x];
+      cell->spinner = 1;
+    }
+}
+
+
 static m_state *
 init_matrix (Display *dpy, Window window)
 {
@@ -130,6 +167,8 @@ init_matrix (Display *dpy, Window window)
   state->window = window;
 
   XGetWindowAttributes (dpy, window, &state->xgwa);
+
+  state->small_p = get_boolean_resource ("small", "Boolean");
   load_images (state);
 
   gcv.foreground = get_pixel_resource("foreground", "Foreground",
@@ -142,8 +181,8 @@ init_matrix (Display *dpy, Window window)
   state->erase_gc = XCreateGC (state->dpy, state->window,
                                GCForeground|GCBackground, &gcv);
 
-  state->char_width = state->image_width / 2;
-  state->char_height = CHAR_HEIGHT;
+  state->char_width =  state->image_width  / CHAR_COLS;
+  state->char_height = state->image_height / CHAR_ROWS;
 
   state->grid_width  = state->xgwa.width  / state->char_width;
   state->grid_height = state->xgwa.height / state->char_height;
@@ -185,6 +224,8 @@ init_matrix (Display *dpy, Window window)
   if (insert)
     free (insert);
 
+  init_spinners (state);
+
   return state;
 }
 
@@ -208,14 +249,15 @@ insert_glyph (m_state *state, int glyph, int x, int y)
         {
           from = &state->cells[state->grid_width * (y-1) + x];
           to   = &state->cells[state->grid_width * y     + x];
-          *to = *from;
-          to->changed = True;
+          to->glyph   = from->glyph;
+          to->glow    = from->glow;
+          to->changed = 1;
         }
       to = &state->cells[x];
     }
 
   to->glyph = glyph;
-  to->changed = True;
+  to->changed = 1;
 
   if (!to->glyph)
     ;
@@ -301,7 +343,7 @@ hack_matrix (m_state *state)
           if (cell->glyph && cell->glow == 0)
             {
               cell->glow = random() % 10;
-              cell->changed = True;
+              cell->changed = 1;
             }
         }
     }
@@ -334,6 +376,9 @@ hack_matrix (m_state *state)
       else
         f->y = -1;
     }
+
+  if (! (random() % 500))
+    init_spinners (state);
 }
 
 
@@ -365,18 +410,35 @@ draw_matrix (m_state *state)
                           state->char_height);
         else
           XCopyArea (state->dpy, state->images, state->window, state->draw_gc,
-                     (cell->glow ? state->char_width : 0),
+                     ((cell->glow > 0 || cell->spinner)
+                      ? (state->char_width * GLOW_COL)
+                      : (cell->glow == 0
+                         ? (state->char_width * PLAIN_COL)
+                         : (state->char_width * FADE_COL))),
                      (cell->glyph - 1) * state->char_height,
                      state->char_width, state->char_height,
                      x * state->char_width,
                      y * state->char_height);
 
-        cell->changed = False;
+        cell->changed = 0;
 
         if (cell->glow > 0)
           {
             cell->glow--;
-            cell->changed = True;
+            cell->changed = 1;
+          }
+        else if (cell->glow < 0)
+          {
+            cell->glow++;
+            if (cell->glow == 0)
+              cell->glyph = 0;
+            cell->changed = 1;
+          }
+
+        if (cell->spinner)
+          {
+            cell->glyph = random() % CHAR_ROWS;
+            cell->changed = 1;
           }
       }
 
@@ -407,13 +469,17 @@ char *progclass = "XMatrix";
 char *defaults [] = {
   ".background:                   black",
   ".foreground:                   green",
+  "*small:                False",
   "*delay:                10000",
   "*insert:               both",
+  "*spinners:             5",
   "*density:              75",
   0
 };
 
 XrmOptionDescRec options [] = {
+  { "-small",          ".small",               XrmoptionNoArg, "True" },
+  { "-large",          ".small",               XrmoptionNoArg, "False" },
   { "-delay",          ".delay",               XrmoptionSepArg, 0 },
   { "-top",            ".insert",              XrmoptionNoArg, "top" },
   { "-bottom",         ".insert",              XrmoptionNoArg, "bottom" },
diff --git a/hacks/xmatrix.man b/hacks/xmatrix.man
new file mode 100644 (file)
index 0000000..92f6715
--- /dev/null
@@ -0,0 +1,71 @@
+.TH XScreenSaver 1 "30-Oct-99" "X Version 11"
+.SH NAME
+xmatrix - simulates the computer displays from the movie
+.SH SYNOPSIS
+.B xmatrix
+[\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
+[\-visual \fIvisual\fP] 
+[\-delay \fIusecs\fP] 
+[\-density \fIpercentage\fP]
+[\-top | \-bottom | \-both]
+[\-small | \-large]
+.SH DESCRIPTION
+The \fIxmatrix\fP program draws dropping characters similar to the
+displays in the Wachowski brothers' film, "The Matrix".
+.SH OPTIONS
+.I xmatrix
+accepts the following options:
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-delay \fIusecs\fP
+The delay between steps of the animation, in microseconds: default 10000.
+.TP 8
+.B \-density \fIpercentage\fP
+The approximate percentage of the screen that should be filled with 
+characters at any given time.  Default 75%.
+.TP 8
+.B \-top\fP | \fB\-bottom\fP | \fB\-both
+If \fB\-top\fP is specified, the characters will only drop in from the
+top of the screen as sliding columns of characters.  If \fB\-bottom\fP
+is specified, then instead of sliding columns, the characters will appear
+as columns that grow downwards and are erased from above.  If \fB\-both\fP
+is specified, then a mixture of both styles will be used.  The default
+is \fB\-both\fP.
+.TP 8
+.B \-small\fP | \fB\-large
+These options specify the sizes of the characters.  The default 
+is \fB\-large\fP.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 1999 by Jamie Zawinski.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski <jwz@jwz.org>, 25-Apr-99.
index 65385c92b14ddd2c6b14784132e578e8b2147dd8..81104d7fea13038182ccf183a1e2c005176ab5b1 100644 (file)
@@ -88,6 +88,7 @@
 #include <X11/SGIScheme.h>
 #endif
 
+#include "yarandom.h"
 #include "usleep.h"
 #include "resources.h"
 
index 3919457c7b5a5c6e6b7a72c9972fe50942cffe6f..6f88e5a10dc4ad9772c8a9874cf44d41a5968a65 100644 (file)
@@ -288,6 +288,13 @@ grab_screen_image_1 (Screen *screen, Window window)
 #endif /* DEBUG */
          copy_default_colormap_contents (screen, xgwa.colormap, xgwa.visual);
          raise_window(dpy, window, saver_p);
+
+          /* Generally it's bad news to call XInstallColormap() explicitly,
+             but this file does a lot of sleazy stuff already...  This is to
+             make sure that the window's colormap is installed, even in the
+             case where the window is OverrideRedirect. */
+          if (xgwa.colormap) XInstallColormap (dpy, xgwa.colormap);
+          XSync (dpy, False);
        }
     }
   else  /* root_p */
index c6d3d380d70094b0d0f5aec64e9f49960e3536f6..0c28fefd138f2c87cba58452b3d94cdbe102eb3a 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 3.18 (13-Oct-99), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 3.19 (30-Oct-99), by Jamie Zawinski (jwz@jwz.org)";
index ff55062b3bfee90214ca9b2d0c1c0a249f6d0d02..fab2d30dfc1276ff70a16387af0df9eceadd8b9d 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title:          xscreensaver
-Version:        3.18
-Entered-date:   13OCT99
+Version:        3.19
+Entered-date:   30OCT99
 Description:    A modular screen saver and locker for the X Window System.
                 Highly customizable: allows the use of any program that
                 can draw on the root window as a display mode.
@@ -10,16 +10,16 @@ Keywords:       screen saver, screen lock, lock, xlock, X11
 Author:         jwz@jwz.org (Jamie Zawinski)
 Maintained-by:  jwz@jwz.org (Jamie Zawinski)
 Primary-site:   http://www.jwz.org/xscreensaver/
-                1163K xscreensaver-3.18.tar.gz
-                36K  xscreensaver.README
+                1163K xscreensaver-3.19.tar.gz
+                37K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: sunsite.unc.edu /pub/Linux/X11/screensavers/
-                1163K xscreensaver-3.18.tar.gz
-                36K  xscreensaver.README
+                1163K xscreensaver-3.19.tar.gz
+                37K  xscreensaver.README
                 1K   xscreensaver.lsm
 Alternate-site: ftp.x.org /contrib/applications/
-                1163K xscreensaver-3.18.tar.gz
-                36K  xscreensaver.README
+                1163K xscreensaver-3.19.tar.gz
+                37K  xscreensaver.README
                 1K   xscreensaver.lsm
 Platforms:      Linux, Irix, SunOS, Solaris, HPUX, AIX, FreeBSD, NetBSD,
                 BSDI, SCO, OSF1, Ultrix, VMS.
index a7280bfeccf7f56ceac75a290c221f770f790855..8fab8fac83ca2e17ddd3bfc30eb8700ea7c82980 100644 (file)
@@ -1,7 +1,7 @@
 Name: xscreensaver
 Summary: X screen saver and locker
 Vendor: Jamie Zawinski <jwz@jwz.org>
-Version: 3.18
+Version: 3.19
 Release: 1
 URL: http://www.jwz.org/xscreensaver/
 Source: xscreensaver-%{version}.tar.gz