[LON-CAPA-cvs] cvs: loncom /cgi/mimeTeX README VERSION gifsave.c mimetex.c mimetex.h mimetex.html texfonts.h

raeburn raeburn at source.lon-capa.org
Fri Jun 8 20:58:14 EDT 2012


raeburn		Sat Jun  9 00:58:14 2012 EDT

  Modified files:              
    /loncom/cgi/mimeTeX	README gifsave.c mimetex.c mimetex.h 
                       	mimetex.html texfonts.h VERSION 
  Log:
  - upgrade to 1.74.
  
  
-------------- next part --------------
Index: loncom/cgi/mimeTeX/README
diff -u loncom/cgi/mimeTeX/README:1.2 loncom/cgi/mimeTeX/README:1.3
--- loncom/cgi/mimeTeX/README:1.2	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/README	Sat Jun  9 00:58:11 2012
@@ -1,10 +1,10 @@
 
  --------------------------------------------------------------------------
- September 6, 2008                                             Version 1.70
+ March 31, 2012                                                Version 1.74
 
                   m i m e T e X   R e a d m e   F i l e
 
- Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
+ Copyright(c) 2002-2012, John Forkosh Associates, Inc. All rights reserved.
  --------------------------------------------------------------------------
 
                             by: John Forkosh
@@ -179,6 +179,8 @@
   A more detailed account of mimeTeX's revision history
   is maintained at  http://www.forkosh.com/mimetexchangelog.html
   ---
+  03/31/12  J.Forkosh      version 1.74 released.
+  08/24/11  J.Forkosh      version 1.72 released.
   09/06/08  J.Forkosh      version 1.70 released.
   11/30/04  J.Forkosh      version 1.60 released
   10/02/04  J.Forkosh      version 1.50 released on CTAN with various new
Index: loncom/cgi/mimeTeX/gifsave.c
diff -u loncom/cgi/mimeTeX/gifsave.c:1.4 loncom/cgi/mimeTeX/gifsave.c:1.5
--- loncom/cgi/mimeTeX/gifsave.c:1.4	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/gifsave.c	Sat Jun  9 00:58:11 2012
@@ -1,4 +1,4 @@
-/* $Id: gifsave.c,v 1.4 2008/12/04 12:17:13 riegler Exp $ */
+/* $Id: gifsave.c,v 1.5 2012/06/09 00:58:11 raeburn Exp $ */
 /**************************************************************************
  *
  *  FILE            gifsave.c
Index: loncom/cgi/mimeTeX/mimetex.c
diff -u loncom/cgi/mimeTeX/mimetex.c:1.4 loncom/cgi/mimeTeX/mimetex.c:1.5
--- loncom/cgi/mimeTeX/mimetex.c:1.4	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/mimetex.c	Sat Jun  9 00:58:11 2012
@@ -1,6 +1,6 @@
 /****************************************************************************
  *
- * Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
+ * Copyright(c) 2002-2012, John Forkosh Associates, Inc. All rights reserved.
  *           http://www.forkosh.com   mailto: john at forkosh.com
  * --------------------------------------------------------------------------
  * This file is part of mimeTeX, which is free software. You may redistribute
@@ -49,9 +49,21 @@
  *		usage is available on its homepage,
  *		  http://www.forkosh.com/mimetex.html
  *		and similarly in mimetex.html included with your mimetex.zip
- *		distribution file.
+ *		distribution file. (Note: http://www.forkosh.com/mimetex.html
+ *		is a "quickstart" version of the the full mimetex.html manual
+ *		included in your mimetex.zip distribution file.)
  *
- * Functions:	===================== Raster Functions ======================
+ * Functions:	The following "table of contents" lists each function
+ *		comprising mimeTeX in the order it appears in this file.
+ *		See individual function entry points for specific comments
+ *		about its purpose, calling sequence, side effects, etc.
+ *		(All these functions eventually belong in several
+ *		different modules, possibly along the lines suggested
+ *		by the divisions below.  But until the best decomposition
+ *		becomes clear, it seems better to keep mimetex.c
+ *		neatly together, avoiding a bad decomposition that
+ *		becomes permanent by default.)
+ *		===================== Raster Functions ======================
  *	PART2	--- raster constructor functions ---
  *		new_raster(width,height,pixsz)   allocation (and constructor)
  *		new_subraster(width,height,pixsz)allocation (and constructor)
@@ -63,6 +75,8 @@
  *		rastcpy(rp)                           allocate new copy of rp
  *		subrastcpy(sp)                        allocate new copy of sp
  *		rastrot(rp)         new raster rotated right 90 degrees to rp
+ *		rastmag(rp,magstep)   new raster magnified by "magstep" to rp
+ *		bytemapmag(bytemap,width,height,magstep)      magnify bytemap
  *		rastref(rp,axis)    new raster reflected (axis 1=horz,2=vert)
  *		rastput(target,source,top,left,isopaque)  overlay src on trgt
  *		rastcompose(sp1,sp2,offset2,isalign,isfree) sp2 on top of sp1
@@ -72,7 +86,7 @@
  *		rastsmash(sp1,sp2,xmin,ymin)      calc #smash pixels sp1||sp2
  *		rastsmashcheck(term)         check if term is "safe" to smash
  *		--- raster "drawing" functions ---
- *		accent_subraster(accent,width,height)       draw \hat\vec\etc
+ *		accent_subraster(accent,width,height,direction,pixsz)\hat\vec
  *		arrow_subraster(width,height,drctn,isBig)    left/right arrow
  *		uparrow_subraster(width,height,drctn,isBig)     up/down arrow
  *		rule_raster(rp,top,left,width,height,type)    draw rule in rp
@@ -117,8 +131,15 @@
  *		strchange(nfirst,from,to)   change nfirst chars of from to to
  *		strreplace(string,from,to,nreplace)  change from to to in str
  *		strwstr(string,substr,white,sublen)     find substr in string
+ *		strdetex(s,mode)    replace math chars like \^_{} for display
  *		strtexchr(string,texchr)                find texchr in string
  *		findbraces(expression,command)    find opening { or closing }
+ *		strpspn(s,reject,segment)     non-() chars of s not in reject
+ *		isstrstr(string,snippets,iscase)  are any snippets in string?
+ *		isnumeric(s)                     determine if s is an integer
+ *		evalterm(store,term)     evaluate numeric value of expression
+ *		getstore(store,identifier)return value corresponding to ident
+ *		unescape_url(url,isescape), x2c(what)   xlate %xx url-encoded
  *	PART3	=========== Rasterize an Expression (recursively) ===========
  *		--- here's the primary entry point for all of mimeTeX ---
  *		rasterize(expression,size)     parse and rasterize expression
@@ -152,12 +173,16 @@
  *		rastbezier(expression,size,basesp,arg1,arg2,arg3)     \bezier
  *		rastraise(expression,size,basesp,arg1,arg2,arg3)    \raisebox
  *		rastrotate(expression,size,basesp,arg1,arg2,arg3)  \rotatebox
+ *		rastmagnify(expression,size,basesp,arg1,arg2,arg3)   \magnify
  *		rastreflect(expression,size,basesp,arg1,arg2,arg3)\reflectbox
  *		rastfbox(expression,size,basesp,arg1,arg2,arg3)         \fbox
  *		rastinput(expression,size,basesp,arg1,arg2,arg3)       \input
  *		rastcounter(expression,size,basesp,arg1,arg2,arg3)   \counter
+ *		rasteval(expression,size,basesp,arg1,arg2,arg3)         \eval
  *		rasttoday(expression,size,basesp,arg1,arg2,arg3)       \today
  *		rastcalendar(expression,size,basesp,arg1,arg2,arg3) \calendar
+ *		rastenviron(expression,size,basesp,arg1,arg2,arg3)   \environ
+ *		rastmessage(expression,size,basesp,arg1,arg2,arg3)   \message
  *		rastnoop(expression,size,basesp,arg1,arg2,arg3) flush \escape
  *		--- helper functions for handlers ---
  *		rastopenfile(filename,mode)      opens filename[.tex] in mode
@@ -168,6 +193,10 @@
  *		timestamp(tzdelta,ifmt)              formats timestamp string
  *		tzadjust(tzdelta,year,month,day,hour)        adjust date/time
  *		daynumber(year,month,day)     #days since Monday, Jan 1, 1973
+ *		strwrap(s,linelen,tablen)insert \n's and spaces to wrap lines
+ *		strnlower(s,n)        lowercase the first n chars of string s
+ *		urlprune(url,n)  http://abc.def.ghi.com/etc-->abc.def.ghi.com
+ *		urlncmp(url1,url2,n)   compares topmost n levels of two url's
  *		dbltoa(d,npts)                double to comma-separated ascii
  *		=== Anti-alias completed raster (lowpass) or symbols (ss) ===
  *		aalowpass(rp,bytemap,grayscale)     lowpass grayscale bytemap
@@ -192,12 +221,12 @@
  *	PART1	========================== Driver ===========================
  *		main(argc,argv) parses math expression and emits mime xbitmap
  *		CreateGifFromEq(expression,gifFileName)  entry pt for win dll
- *		isstrstr(string,snippets,iscase)  are any snippets in string?
  *		ismonth(month)          is month current month ("jan"-"dec")?
- *		unescape_url(url,isescape), x2c(what)   xlate %xx url-encoded
  *		logger(fp,msglevel,logvars)        logs environment variables
  *		emitcache(cachefile,maxage,valign,isbuffer)    emit cachefile
  *		readcachefile(cachefile,buffer)    read cachefile into buffer
+ *		advertisement(expression,mode)  wrap expression in ad message
+ *		crc16(s)                               16-bit crc of string s
  *		md5str(instr)                      md5 hash library functions
  *		GetPixel(x,y)           callback function for gifsave library
  *
@@ -205,7 +234,10 @@
  *		and also needs gifsave.c when compiled with -DAA or -DGIF)
  *
  * --------------------------------------------------------------------------
- * Notes      o	See bottom of file for main() driver (and "friends"),
+ * Notes      o	See individual function entry points for specific comments
+ *		about the purpose, calling sequence, side effects, etc
+ *		of each mimeTeX function listed above.
+ *	      o	See bottom of file for main() driver (and "friends"),
  *		and compile as
  *		   cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi
  *		to produce an executable that emits gif images with
@@ -217,15 +249,39 @@
  *		to produce an executable that just emits mime xbitmaps.
  *		In either case you'll need mimetex.h and texfonts.h,
  *		and with -DAA or -DGIF you'll also need gifsave.c
+ *	      o	The font information in texfonts.h was produced by multiple
+ *		runs of gfuntype, one run per struct (i.e., one run per font
+ *		family at a particular size).  Compile gfuntype as
+ *		   cc gfuntype.c mimetex.c -lm -o gfuntype
+ *		See gfuntype.c, and also mimetex.html#fonts, for details.
  *	      o	For gif images, the gifsave.c library by Sverre H. Huseby
  *		<http://shh.thathost.com> slightly modified by me to allow
  *		(a)sending output to stdout or returning it in memory,
  *		and (b)specifying a transparent background color index,
  *		is included with mimeTeX, and it's documented in
- *		mimetex.html#gifsave .
+ *		mimetex.html#gifsave
+ *	      o	MimeTeX's principal reusable function is rasterize(),
+ *		which takes a string like "f(x)=\int_{-\infty}^xe^{-t^2}dt"
+ *		and returns a (sub)raster representing it as a bit or bytemap.
+ *		Your application can do anything it likes with this pixel map.
+ *		MimeTeX just outputs it, either as a mime xbitmap or as a gif.
+ *		See  mimetex.html#makeraster  for further discussion
+ *		and examples.
+ *	      o	File mimetex.c also contains library functions implementing
+ *		a raster datatype, functions to manipulate rasterized .mf
+ *		fonts (see gfuntype.c which rasterizes .mf fonts), functions
+ *		to parse LaTeX expressions, etc.  As already mentioned,
+ *		a complete list of mimetex.c functions is above.  See their
+ *		individual entry points below for further comments.
+ *		   As also mentioned, these functions eventually belong in
+ *		several different modules, possibly along the lines suggested
+ *		by the divisions above.  But until the best decomposition
+ *		becomes clear, it seems better to keep mimetex.c
+ *		neatly together, avoiding a bad decomposition that
+ *		becomes permanent by default.
  *	      o	Optional compile-line -D defined symbols are documented
  *		in mimetex.html#options .  They include (additional -D
- *		switches are discussed in mimetex.html#options)...
+ *		switches are discussed at mimetex.html#options)...
  *		-DAA
  *		    Turns on gif anti-aliasing with default values
  *		    (CENTERWT=32, ADJACENTWT=3, CORNERWT=1)
@@ -233,6 +289,9 @@
  *		-DCENTERWT=n
  *		-DADJACENTWT=j
  *		-DCORNERWT=k
+ *			*** Note: Ignore these three switches because
+ *			*** mimeTeX's current anti-aliasing algorithm
+ *			*** no longer uses them (as of version 1.60).
  *		    MimeTeX currently provides a lowpass filtering
  *		    algorithm for anti-aliasing, which is applied to the
  *		    existing set of bitmap fonts.  This lowpass filter
@@ -262,6 +321,12 @@
  *		    be writable by it.  Files created under  path/  are
  *		    named filename.gif, where filename is the 32-character
  *		    MD5 hash of the LaTeX expression.
+ *		-DDEFAULTSIZE=n
+ *		    MimeTeX currently has eight font sizes numbered 0-7,
+ *		    and always starts in DEFAULTSIZE whose default value
+ *		    is 3 (corresponding to \large). Specify -DDEFAULTSIZE=4
+ *		    on the compile line if you prefer mimeTeX to start in
+ *		    larger default size 4 (corresponding to \Large), etc.
  *		-DDISPLAYSIZE=n
  *		    By default, operator limits like \int_a^b are rendered
  *		    \textstyle at font sizes \normalsize and smaller,
@@ -273,11 +338,15 @@
  *		    \textstyle, \displaystyle, \limits or \nolimits
  *		    directives in an expression always override
  *		    the DISPLAYSIZE default.
- *		-NORMALSIZE=n
- *		    MimeTeX currently has six font sizes numbered 0-5,
- *		    and always starts in NORMALSIZE whose default value
- *		    is 2.  Specify -DNORMALSIZE=3 on the compile line if
- *		    you prefer mimeTeX to start in default size 3, etc.
+ *		-DERRORSTATUS=n
+ *		    The default, 0, means mimeTeX always exits with status 0,
+ *		    regardless of whether or not it detects error(s) while
+ *		    trying to render your expression.  Specify any non-zero
+ *		    value (typically -1) if you write a script/plugin for
+ *		    mimeTeX that traps non-zero exit statuses.  MimeTeX then
+ *		    exits with its own non-zero status when it detects an
+ *		    error it can identify, or with your ERRORSTATUS value
+ *		    for errors it can't specifically identify.
  *		-DREFERER=\"domain\"   -or-
  *		-DREFERER=\"domain1,domain2,etc\"
  *		    Blocks mimeTeX requests from unauthorized domains that
@@ -308,28 +377,6 @@
  *		    MimeTeX usually renders black symbols on a white
  *		    background.  This option renders white symbols on
  *		    a black background instead.
- *	      o	See individual function entry points for further comments.
- *	      o	The font information in texfonts.h was produced by multiple
- *		runs of gfuntype, one run per struct (i.e., one run per font
- *		family at a particular size).  See gfuntype.c, and also
- *		mimetex.html#fonts, for details.
- *	      o	mimetex.c contains library functions implementing a raster
- *		datatype, functions to manipulate rasterized .mf fonts
- *		(see gfuntype.c which rasterizes .mf fonts), functions
- *		to parse LaTeX expressions, etc.  A complete list of
- *		mimetex.c functions is above.  See their individual entry
- *		points below for further comments.
- *		   All these functions eventually belong in several
- *		different modules, possibly along the lines suggested
- *		by the divisions above.  But until the best decomposition
- *		becomes clear, it seems better to keep mimetex.c
- *		neatly together, avoiding a bad decomposition that
- *		becomes permanent by default.
- *	      o	The "main" reusable function is rasterize(),
- *		which takes a string like "f(x)=\int_{-\infty}^xe^{-t^2}dt"
- *		and returns a (sub)raster representing it as a bit or bytemap.
- *		Your application can do anything it likes with this pixel map.
- *		MimeTeX just outputs it, either as a mime xbitmap or as a gif.
  * --------------------------------------------------------------------------
  * Revision History:
  * 09/18/02	J.Forkosh	Installation.
@@ -343,10 +390,23 @@
  * 10/11/05	J.Forkosh	Version 1.64 released.
  * 11/30/06	J.Forkosh	Version 1.65 released.
  * 09/06/08	J.Forkosh	Version 1.70 released.
+ * 03/23/09	J.Forkosh	Version 1.71 released.
+ * 11/18/09	J.Forkosh	Version 1.72 released.
+ * 11/15/11	J.Forkosh	Version 1.73 released.
+ * 02/15/12	J.Forkosh	Version 1.74 released.
+ * 03/31/12	J.Forkosh	Most recent revision (also see REVISIONDATE)
+ * See  http://www.forkosh.com/mimetexchangelog.html  for further details.
  *
  ****************************************************************************/
 
 /* -------------------------------------------------------------------------
+Program id
+-------------------------------------------------------------------------- */
+#define	VERSION "1.74"			/* mimeTeX version number */
+#define REVISIONDATE "31 March 2012" /* date of most recent revision */
+#define COPYRIGHTTEXT "Copyright(c) 2002-2012, John Forkosh Associates, Inc"
+
+/* -------------------------------------------------------------------------
 header files and macros
 -------------------------------------------------------------------------- */
 /* --- standard headers --- */
@@ -357,8 +417,48 @@
 #include <ctype.h>
 #include <math.h>
 #include <time.h>
+extern	char **environ;		/* for \environment directive */
+
+/* -------------------------------------------------------------------------
+messages (used mostly by main() and also by rastmessage())
+-------------------------------------------------------------------------- */
+static	char *copyright1 =		/* copyright, gnu/gpl notice */
+ "+-----------------------------------------------------------------------+\n"
+ "|mimeTeX vers " VERSION ", " COPYRIGHTTEXT                             "|\n"
+ "+-----------------------------------------------------------------------+\n"
+ "| mimeTeX is free software, licensed to you under terms of the GNU/GPL, |\n"
+ "|           and comes with absolutely no warranty whatsoever.           |",
+*copyright2 =
+ "|          See http://www.forkosh.com/mimetex.html for details.         |\n"
+ "+-----------------------------------------------------------------------+";
+static	int maxmsgnum = 3,		/* maximum msgtable[] index */
+	/* --- keep these message numbers updated if table changes --- */
+	invmsgnum = 0,			/* general invalid message */
+	refmsgnum = 3;			/* urlncmp() failed to validate */
+static	char *msgtable[] = {		/* messages referenced by [index] */
+ "\\red\\small\\rm\\fbox{\\array{"	/* [0] is invalid_referer_msg */
+   "Please~read~www.forkosh.com/mimetex.html\\\\and~install~mimetex.cgi~"
+   "on~your~own~server.\\\\Thank~you,~John~Forkosh}}",
+ "\\red\\small\\rm\\fbox{\\array{"	/* [1] */
+   "Please~provide~your~{\\tiny~HTTP-REFERER}~to~access~the~public\\\\"
+   "mimetex~server.~~Or~please~read~~www.forkosh.com/mimetex.html\\\\"
+   "and~install~mimetex.cgi~on~your~own~server.~~Thank~you,~John~Forkosh}}",
+ "\\red\\small\\rm\\fbox{\\array{"	/* [2] */
+   "The~public~mimetex~server~is~for~testing.~~For~production,\\\\"
+   "please~read~~www.forkosh.com/mimetex.html~~and~install\\\\"
+   "mimetex.cgi~on~your~own~server.~~Thank~you,~John~Forkosh}}",
+ "\\red\\small\\rm\\fbox{\\array{"	/* [3] */
+   "Only~SERVER_NAME~may~use~mimetex~on~this~server.\\\\"
+   "Please~read~~www.forkosh.com/mimetex.html~~and~install\\\\"
+   "mimetex.cgi~on~your~own~server.~~Thank~you,~John~Forkosh}}",
+ NULL } ;				/* trailer */
 
-/* --- windows-specific header info --- */
+/* -------------------------------------------------------------------------
+additional symbols
+-------------------------------------------------------------------------- */
+/* ---
+ * windows-specific header info
+ * ---------------------------- */
 #ifndef WINDOWS			/* -DWINDOWS not supplied by user */
   #if defined(_WINDOWS) || defined(_WIN32) || defined(WIN32) \
   ||  defined(DJGPP)		/* try to recognize windows compilers */ \
@@ -388,7 +488,9 @@
   #define ISWINDOWS 0
 #endif
 
-/* --- check for supersampling or low-pass anti-aliasing --- */
+/* ---
+ * check for supersampling or low-pass anti-aliasing
+ * ------------------------------------------------- */
 #ifdef SS
   #define ISSUPERSAMPLING 1
   #ifndef AAALGORITHM
@@ -410,7 +512,9 @@
   #define MAXFOLLOW 8			/* aafollowline() maxturn default */
 #endif
 
-/* --- set aa (and default gif) if any anti-aliasing options specified --- */
+/* ---
+ * set aa (and default gif) if any anti-aliasing options specified
+ * --------------------------------------------------------------- */
 #if defined(AA) || defined(GIF) || defined(PNG) \
 ||  defined(CENTERWT) || defined(ADJACENTWT) || defined(CORNERWT) \
 ||  defined(MINADJACENT) || defined(MAXADJACENT)
@@ -434,29 +538,29 @@
   #endif
 #endif
 
-/* --- decide whether to compile main() --- */
+/* ---
+ * decide whether or not to compile main()
+ * --------------------------------------- */
 #if defined(XBITMAP) || defined(GIF) || defined(PNG)
-  #define DRIVER			/* driver will be compiled */
-  /* --- check whether or not to perform http_referer check --- */
-  #ifndef REFERER			/* all http_referer's allowed */
-    #define REFERER NULL
-  #endif
-  /* --- max query_string length if no http_referer supplied --- */
-  #ifndef NOREFMAXLEN
-    #define NOREFMAXLEN 9999		/* default to any length query */
-  #endif
-#else
+  /* --- yes, compile main() --- */
+  #define DRIVER			/* main() driver will be compiled */
+#else /* --- main() won't be compiled (e.g., for gfuntype.c) --- */
   #ifndef TEXFONTS
     #define NOTEXFONTS			/* texfonts not required */
   #endif
 #endif
 
-/* --- application headers --- */
+/* ---
+ * application headers
+ * ------------------- */
 #if !defined(NOTEXFONTS) && !defined(TEXFONTS)
   #define TEXFONTS			/* to include texfonts.h */
 #endif
 #include "mimetex.h"
-/* --- info needed when gif image returned in memory buffer --- */
+
+/* ---
+ * info needed when gif image returned in memory buffer
+ * ---------------------------------------------------- */
 #ifdef GIF				/* compiling along with gifsave.c */
   extern int gifSize;
   extern int maxgifSize;
@@ -476,7 +580,10 @@
 #else
   #define ISTRANSPARENT 0
 #endif
-/* --- internal buffer sizes --- */
+
+/* ---
+ * internal buffer sizes
+ * --------------------- */
 #if !defined(MAXEXPRSZ)
   #define MAXEXPRSZ (32768-1)		/*max #bytes in input tex expression*/
 #endif
@@ -499,7 +606,9 @@
 /* -------------------------------------------------------------------------
 adjustable default values
 -------------------------------------------------------------------------- */
-/* --- anti-aliasing parameters --- */
+/* ---
+ * anti-aliasing parameters
+ * ------------------------ */
 #ifndef	CENTERWT
   /*#define CENTERWT 32*/		/* anti-aliasing centerwt default */
   /*#define CENTERWT 10*/		/* anti-aliasing centerwt default */
@@ -574,6 +683,14 @@
 #ifndef	FGBLUE
   #define FGBLUE  (ISBLACKONWHITE?0:255)
 #endif
+/* --- advertisement
+   one image in every ADFREQUENCY is wrapped in "advertisement" --- */
+#if !defined(ADFREQUENCY)
+  #define ADFREQUENCY 0			/* never show advertisement if 0 */
+#endif
+#ifndef	HOST_SHOWAD
+  #define HOST_SHOWAD "\000"		/* show ads on all hosts */
+#endif
 /* --- "smash" margin (0 means no smashing) --- */
 #ifndef SMASHMARGIN
   #ifdef NOSMASH
@@ -615,6 +732,72 @@
 #if !defined(NODUMPENVP) && !defined(DUMPENVP)
   #define DUMPENVP			/* assume char *envp[] available */
 #endif
+/* --- max query_string length if no http_referer supplied --- */
+#ifndef NOREFMAXLEN
+  #define NOREFMAXLEN 9999		/* default to any length query */
+#endif
+#ifndef NOREFSAFELEN
+  #define NOREFSAFELEN 24		/* too small for hack exploit */
+#endif
+/* --- check whether or not to perform http_referer check --- */
+#ifdef REFERER				/* only specified referers allowed */
+  #undef NOREFMAXLEN
+  #define NOREFMAXLEN NOREFSAFELEN
+#else					/* all http_referer's allowed */
+  #define REFERER NULL
+#endif
+/* --- check top levels of http_referer against server_name --- */
+#ifdef REFLEVELS			/* #topmost levels to check */
+  #undef NOREFMAXLEN
+  #define NOREFMAXLEN NOREFSAFELEN
+#else
+  #ifdef NOREFCHECK
+    #define REFLEVELS 0			/* don't match host and referer */
+  #else
+    #define REFLEVELS 3			/* default matches abc.def.com */
+  #endif
+#endif
+/* --- check whether or not \input, \counter, \environment permitted --- */
+#ifdef DEFAULTSECURITY			/* default security specified */
+  #define EXPLICITDEFSECURITY		/* don't override explicit default */
+#else					/* defualt security not specified */
+  #define DEFAULTSECURITY (8)		/* so set default security level */
+#endif
+#ifdef INPUTREFERER 			/*http_referer's permitted to \input*/
+  #ifndef INPUTSECURITY			/* so we need to permit \input{} */
+    #define INPUTSECURITY (99999)	/* make sure SECURITY<INPUTSECURITY */
+  #endif
+#else					/* no INPUTREFERER list supplied */
+  #define INPUTREFERER NULL		/* so init it as NULL pointer */
+#endif
+#ifndef INPUTPATH 			/* \input{} paths permitted for... */
+  #define INPUTPATH NULL		/* ...any referer */
+#endif
+#ifndef INPUTSECURITY			/* \input{} security not specified */
+  #ifdef INPUTOK			/* but INPUTOK flag specified */
+    #define INPUTSECURITY (99999)	/* so enable \input{} */
+    #ifndef EXPLICITDEFSECURITY		/* don't override explicit default */
+      #undef  DEFAULTSECURITY		/* but we'll override our default */
+      #define DEFAULTSECURITY (99999)	/*let -DINPUTOK enable \counter,etc*/
+    #endif
+  #else					/* else no \input{} specified */
+    #define INPUTSECURITY DEFAULTSECURITY /* set default \input security */
+  #endif
+#endif
+#ifndef COUNTERSECURITY			/*\counter{} security not specified*/
+  #ifdef COUNTEROK			/* but COUNTEROK flag specified */
+    #define COUNTERSECURITY (99999)	/* so enable \counter{} */
+  #else					/* else no \counter{} specified */
+    #define COUNTERSECURITY DEFAULTSECURITY /*set default \counter security*/
+  #endif
+#endif
+#ifndef ENVIRONSECURITY			/* \environ security not specified */
+  #ifdef ENVIRONOK			/* but ENVIRONOK flag specified */
+    #define ENVIRONSECURITY (99999)	/* so enable \environ */
+  #else					/* else no \environ specified */
+    #define ENVIRONSECURITY DEFAULTSECURITY /*set default \environ security*/
+  #endif
+#endif
 /* --- image caching (cache images if given -DCACHEPATH=\"path\") --- */
 #ifndef CACHEPATH
   #define ISCACHING 0			/* no caching */
@@ -653,8 +836,16 @@
 #ifndef FORMLEVEL
   #define FORMLEVEL LOGLEVEL		/*msglevel if called from html form*/
 #endif
+#ifndef	ERRORSTATUS			/* exit(ERRORSTATUS) for any error */
+  #define ERRORSTATUS 0			/* default doesn't signal errors */
+#endif
 GLOBAL(int,seclevel,SECURITY);		/* security level */
+GLOBAL(int,inputseclevel,INPUTSECURITY); /* \input{} security level */
+GLOBAL(int,counterseclevel,COUNTERSECURITY); /* \counter{} security level */
+GLOBAL(int,environseclevel,ENVIRONSECURITY); /* \environ{} security level */
 GLOBAL(int,msglevel,MSGLEVEL);		/* message level for verbose/debug */
+GLOBAL(int,errorstatus,ERRORSTATUS);	/* exit status if error encountered*/
+GLOBAL(int,exitstatus,0);		/* exit status (0=success) */
 STATIC	FILE *msgfp;			/* output in command-line mode */
 /* --- embed warnings in rendered expressions, [\xxx?] if \xxx unknown --- */
 #ifdef WARNINGS
@@ -671,6 +862,7 @@
 /* -------------------------------------------------------------------------
 control flags and values
 -------------------------------------------------------------------------- */
+GLOBAL(int,daemonlevel,0);		/* incremented in main() */
 GLOBAL(int,recurlevel,0);		/* inc/decremented in rasterize() */
 GLOBAL(int,scriptlevel,0);		/* inc/decremented in rastlimits() */
 GLOBAL(int,isstring,0);			/*pixmap is ascii string, not raster*/
@@ -679,18 +871,25 @@
 /*SHARED(int,imageformat,1);*/		/* image is 1=bitmap, 2=.gf-like */
 GLOBAL(int,isdisplaystyle,1);		/* displaystyle mode (forced if 2) */
 GLOBAL(int,ispreambledollars,0);	/* displaystyle mode set by $$...$$ */
+GLOBAL(int,ninputcmds,0);		/* # of \input commands processed */
 GLOBAL(int,fontnum,0);			/* cal=1,scr=2,rm=3,it=4,bb=5,bf=6 */
 GLOBAL(int,fontsize,NORMALSIZE);	/* current size */
+GLOBAL(int,magstep,1);			/* magstep (1=no change) */
 GLOBAL(int,displaysize,DISPLAYSIZE);	/* use \displaystyle when fontsize>=*/
 GLOBAL(int,shrinkfactor,3);		/* shrinkfactors[fontsize] */
+GLOBAL(int,rastlift,0);			/* rastraise() lift parameter */
+GLOBAL(int,rastlift1,0);		/* rastraise() lift for base exprssn*/
 GLOBAL(double,unitlength,1.0);		/* #pixels per unit (may be <1.0) */
+GLOBAL(int,iunitlength,1);		/* #pixels per unit as int for store*/
 /*GLOBAL(int,textwidth,TEXTWIDTH);*/	/* #pixels across line */
+GLOBAL(int,adfrequency,ADFREQUENCY);	/* advertisement frequency */
 GLOBAL(int,isnocatspace,0);		/* >0 to not add space in rastcat()*/
 GLOBAL(int,smashmargin,SMASHMARGIN);	/* minimum "smash" margin */
 GLOBAL(int,mathsmashmargin,SMASHMARGIN); /* needed for \text{if $n-m$ even}*/
 GLOBAL(int,issmashdelta,1);		/* true if smashmargin is a delta */
 GLOBAL(int,isexplicitsmash,0);		/* true if \smash explicitly given */
 GLOBAL(int,smashcheck,SMASHCHECK);	/* check if terms safe to smash */
+GLOBAL(int,isnomath,0);			/* true to inhibit math mode */
 GLOBAL(int,isscripted,0);		/* is (lefthand) term text-scripted*/
 GLOBAL(int,isdelimscript,0);		/* is \right delim text-scripted */
 GLOBAL(int,issmashokay,0);		/*is leading char okay for smashing*/
@@ -732,8 +931,26 @@
 /*GLOBAL(int,iswindows,ISWINDOWS);*/	/* true if compiled for ms windows */
 
 /* -------------------------------------------------------------------------
+store for evalterm() [n.b., these are stripped-down funcs from nutshell]
+-------------------------------------------------------------------------- */
+#define	STORE struct store_struct	/* "typedef" for store struct */
+#define	MAXSTORE 100			/* max 100 identifiers */
+STORE {
+  char	*identifier;			/* identifier */
+  int	*value;				/* address of corresponding value */
+  } ; /* --- end-of-store_struct --- */
+static STORE mimestore[MAXSTORE] = {
+    { "fontsize", &fontsize },	{ "fs", &fontsize },	/* font size */
+    { "fontnum", &fontnum },	{ "fn", &fontnum },	/* font number */
+    { "unitlength", &iunitlength },			/* unitlength */
+    /*{ "mytestvar", &mytestvar },*/
+    { NULL, NULL }					/* end-of-store */
+  } ; /* --- end-of-mimestore[] --- */
+
+/* -------------------------------------------------------------------------
 miscellaneous macros
 -------------------------------------------------------------------------- */
+#if 0	/* --- these are now #define'd in mimetex.h --- */
 #define	max2(x,y)  ((x)>(y)? (x):(y))	/* larger of 2 arguments */
 #define	min2(x,y)  ((x)<(y)? (x):(y))	/* smaller of 2 arguments */
 #define	max3(x,y,z) max2(max2(x,y),(z))	/* largest of 3 arguments */
@@ -741,13 +958,47 @@
 #define absval(x)  ((x)>=0?(x):(-(x)))	/* absolute value */
 #define	iround(x)  ((int)((x)>=0?(x)+0.5:(x)-0.5)) /* round double to int */
 #define	dmod(x,y)  ((x)-((y)*((double)((int)((x)/(y)))))) /*x%y for doubles*/
+#endif
 #define compress(s,c) if((s)!=NULL)	/* remove embedded c's from s */ \
-	{ char *p; while((p=strchr((s),(c)))!=NULL) strcpy(p,p+1); } else
+	{ char *p; while((p=strchr((s),(c)))!=NULL) {strsqueeze(p,1);} } else
 #define	slower(s)  if ((s)!=NULL)	/* lowercase all chars in s */ \
 	{ char *p=(s); while(*p!='\000'){*p=tolower(*p); p++;} } else
 /*subraster *subrastcpy();*/		/* need global module declaration */
-/*#define spnosmash(sp) if (sp->type==CHARASTER) sp=subrastcpy(sp); \*/
-/*	sp->type=blanksignal*/
+/*#define spnosmash(sp) if (sp->type==CHARASTER) sp=subrastcpy(sp); \ */
+/*	sp->type=blanksignal */
+/* ---evaluate \directive[arg] or \directive{arg} scaled by unitlength--- */
+#define	eround(arg) (iround(unitlength*((double)evalterm(mimestore,(arg)))))
+/* --- check if a string is empty --- */
+#define	isempty(s)  ((s)==NULL?1:(*(s)=='\000'?1:0))
+/* --- last char of a string --- */
+#define	lastchar(s) (isempty(s)?'\000':*((s)+(strlen(s)-1)))
+/* --- lowercase a string --- */
+#define	strlower(s) strnlower((s),0)	/* lowercase an entire string */
+/* --- strip leading and trailing whitespace (including ~) --- */
+#define	trimwhite(thisstr) if ( (thisstr) != NULL ) { \
+	int thislen = strlen(thisstr); \
+	while ( --thislen >= 0 ) \
+	  if ( isthischar((thisstr)[thislen]," \t\n\r\f\v") ) \
+	    (thisstr)[thislen] = '\000'; \
+	  else break; \
+	if ( (thislen = strspn((thisstr)," \t\n\r\f\v")) > 0 ) \
+	  {strsqueeze((thisstr),thislen);} } else
+/* --- strncpy() n bytes and make sure it's null-terminated --- */
+#define	strninit(target,source,n) if( (target)!=NULL && (n)>=0 ) { \
+	  char *thissource = (source); \
+	  (target)[0] = '\000'; \
+	  if ( (n)>0 && thissource!=NULL ) { \
+	    strncpy((target),thissource,(n)); \
+	    (target)[(n)] = '\000'; } }
+/* --- strcpy(s,s+n) using memmove() (also works for negative n) --- */
+#define	strsqueeze(s,n) if((n)!=0) { if(!isempty((s))) { \
+	int thislen3=strlen(s); \
+	if ((n) >= thislen3) *(s) = '\000'; \
+	else memmove(s,s+(n),1+thislen3-(n)); }} else/*user supplies final;*/
+/* --- strsqueeze(s,t) with two pointers --- */
+#define	strsqueezep(s,t) if(!isempty((s))&&!isempty((t))) { \
+	int sqlen=strlen((s))-strlen((t)); \
+	if (sqlen>0 && sqlen<=999) {strsqueeze((s),sqlen);} } else
 
 /* ---
  * PART2
@@ -1139,6 +1390,178 @@
 
 
 /* ==========================================================================
+ * Function:	rastmag ( rp, magstep )
+ * Purpose:	magnifies rp by integer magstep,
+ *		e.g., double-height and double-width if magstep=2
+ * --------------------------------------------------------------------------
+ * Arguments:	rp (I)		ptr to raster struct to be "magnified"
+ *		magstep (I)	int containing magnification scale,
+ *				e.g., 2 to double the width and height of rp
+ * --------------------------------------------------------------------------
+ * Returns:	( raster * )	ptr to new raster magnified relative to rp,
+ *				or NULL for any error.
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+raster	*rastmag ( raster *rp, int magstep )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+raster	*new_raster(), *magnified=NULL;	/* magnified raster back to caller */
+int	height = rp->height, irow,	/* height, row index */
+	width = rp->width, icol,	/* width, column index */
+	mrow = 0, mcol = 0,		/* dup pixels magstep*magstep times*/
+	pixsz = rp->pixsz;		/* #bits per pixel */
+/* -------------------------------------------------------------------------
+check args
+-------------------------------------------------------------------------- */
+if ( rp == NULL ) goto end_of_job;	/* no input raster supplied */
+if ( magstep<1 || magstep>10 ) goto end_of_job; /* sanity check */
+/* -------------------------------------------------------------------------
+allocate magnified raster and fill it
+-------------------------------------------------------------------------- */
+/* --- allocate magnified raster with magstep*width, magstep*height --- */
+if ( (magnified = new_raster(magstep*width,magstep*height,pixsz))/*allocate*/
+!=   NULL )				/* check that allocation succeeded */
+  /* --- fill reflected raster --- */
+  for ( irow=0; irow<height; irow++ )	/* for each row of rp */
+    for ( mrow=0; mrow<magstep; mrow++ ) /* dup row magstep times */
+      for ( icol=0; icol<width; icol++ ) /* and for each column of rp */
+        for ( mcol=0; mcol<magstep; mcol++ ) { /* dup col magstep times */
+         int value = getpixel(rp,irow,icol);
+	 int row1 = irow*magstep, col1 = icol*magstep;
+         setpixel(magnified,(row1+mrow),(col1+mcol),value); }
+end_of_job:
+  return ( magnified );			/*return magnified raster to caller*/
+} /* --- end-of-function rastmag() --- */
+
+
+/* ==========================================================================
+ * Function:	bytemapmag ( bytemap, width, height, magstep )
+ * Purpose:	magnifies a bytemap by integer magstep,
+ *		e.g., double-height and double-width if magstep=2
+ * --------------------------------------------------------------------------
+ * Arguments:	bytemap (I)	intbyte * ptr to byte map to be "magnified"
+ *		width (I)	int containing #cols in original bytemap
+ *		height (I)	int containing #rows in original bytemap
+ *		magstep (I)	int containing magnification scale,
+ *				e.g., 2 to double the width and height of rp
+ * --------------------------------------------------------------------------
+ * Returns:	( intbyte * )	ptr to new bytemap magnified relative to
+ *				original bytemap, or NULL for any error.
+ * --------------------------------------------------------------------------
+ * Notes:     o	Apply EPX/Scale2x/AdvMAME2x  for magstep 2,
+ *		and Scale3x/AdvMAME3x  for magstep 3,
+ *		as described by http://en.wikipedia.org/wiki/2xSaI
+ * ======================================================================= */
+/* --- entry point --- */
+intbyte	*bytemapmag ( intbyte *bytemap, int width, int height, int magstep )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+intbyte	*magnified=NULL;		/* magnified bytemap back to caller*/
+int	irow, icol,			/* original height, width indexes */
+	mrow=0, mcol=0;			/* dup bytes magstep*magstep times */
+int	imap = (-1),			/* original bytemap[] index */
+	byteval = 0;			/* byteval=bytemap[imap] */
+int	isAdvMAME = 1;			/* true to apply AdvMAME2x and 3x */
+int	icell[10],			/* bytemap[] nearest neighbors */
+	bmmdiff = 64;			/* nearest neighbor diff allowed */
+#define	bmmeq(i,j) ((absval((icell[i]-icell[j]))<=bmmdiff)) /*approx equal*/
+/* -------------------------------------------------------------------------
+check args
+-------------------------------------------------------------------------- */
+if ( bytemap == NULL ) goto end_of_job;	/* no input bytemap supplied */
+if ( width<1 || height<1 ) goto end_of_job; /* invalid bytemap dimensions */
+if ( width*height>100000 ) goto end_of_job; /* sanity check */
+if ( magstep<1 || magstep>10 ) goto end_of_job; /* sanity check */
+/* -------------------------------------------------------------------------
+allocate magnified bytemap and fill it
+-------------------------------------------------------------------------- */
+/* --- allocate bytemap for magstep*width, magstep*height --- */
+if ( (magnified = (intbyte *)(malloc(magstep*width*magstep*height)))/*alloc*/
+!=   NULL )				/* check that allocation succeeded */
+  /* --- fill reflected raster --- */
+  for ( irow=0; irow<height; irow++ )	/* for each row of bytemap */
+   for ( icol=0; icol<width; icol++ ) { /* and for each column of bytemap */
+    int imag1 = (icol + irow*(width*magstep))*magstep; /*upper-left corner*/
+    imap++;				/* bump bytemap[] index */
+    byteval = (int)(bytemap[imap]);	/* grayscale value at this pixel */
+    for ( mrow=0; mrow<magstep; mrow++ ) /* dup row magstep times */
+     for ( mcol=0; mcol<magstep; mcol++ ) { /* dup col magstep times */
+      int idup = mcol + mrow*(width*magstep); /* offset from imag1 */
+      int imag = imag1+idup;		/* adjust magnified[imag] */
+      magnified[imag] = (intbyte)(byteval);
+      /* --- apply AdvMAME2x and 3x (if desired) --- */
+      if ( isAdvMAME ) {		/* AdvMAME2x and 3x wanted */
+       int mcell = 1 + mcol + magstep*mrow; /*1,2,3,4 or 1,2,3,4,5,6,7,8,9*/
+       icell[5]= byteval,		/* center cell of 3x3 bytemap[] */
+       icell[4]= (icol>0?(int)(bytemap[imap-1]):byteval), /*left of center*/
+       icell[6]= (icol<width?(int)(bytemap[imap+1]):byteval), /*right*/
+       icell[2]= (irow>0?(int)(bytemap[imap-width]):byteval),/*above center*/
+       icell[8]= (irow<height?(int)(bytemap[imap+width]):byteval), /*below*/
+       icell[1]= (irow>0&&icol>0?(int)(bytemap[imap-width-1]):byteval),
+       icell[3]= (irow>0&&icol<width?(int)(bytemap[imap-width+1]):byteval),
+       icell[7]= (irow<height&&icol>0?(int)(bytemap[imap+width-1]):byteval),
+      icell[9]=(irow<height&&icol<width?(int)(bytemap[imap+width+1]):byteval);
+       switch ( magstep ) {		/* 2x magstep=2, 3x magstep=3 */
+        default: break;			/* no AdvMAME at other magsteps */
+        case 2:				/* AdvMAME2x */
+         if ( mcell == 1 )
+           if ( bmmeq(4,2) && !bmmeq(4,8) && !bmmeq(2,6) )
+             magnified[imag] = icell[2];
+         if ( mcell == 2 )
+           if ( bmmeq(2,6) && !bmmeq(2,4) && !bmmeq(6,8) )
+             magnified[imag] = icell[6];
+         if ( mcell == 4 )
+           if ( bmmeq(6,8) && !bmmeq(6,2) && !bmmeq(8,4) )
+             magnified[imag] = icell[8];
+         if ( mcell == 3 )
+           if ( bmmeq(8,4) && !bmmeq(8,6) && !bmmeq(4,2) )
+             magnified[imag] = icell[4];
+         break;
+        case 3:				/* AdvMAME3x */
+         if ( mcell == 1 )
+           if ( bmmeq(4,2) && !bmmeq(4,8) && !bmmeq(2,6) )
+             magnified[imag] = icell[4];
+         if ( mcell == 2 )
+           if ( (bmmeq(4,2) && !bmmeq(4,8) && !bmmeq(2,6) && !bmmeq(5,3))
+             || (bmmeq(2,6) && !bmmeq(2,4) && !bmmeq(6,8) && !bmmeq(5,1)) )
+             magnified[imag] = icell[2];
+         if ( mcell == 3 )
+           if ( bmmeq(2,6) && !bmmeq(2,4) && !bmmeq(6,8) )
+             magnified[imag] = icell[6];
+         if ( mcell == 4 )
+           if ( (bmmeq(8,4) && !bmmeq(8,6) && !bmmeq(4,2) && !bmmeq(5,1))
+             || (bmmeq(4,2) && !bmmeq(4,8) && !bmmeq(2,6) && !bmmeq(5,7)) )
+             magnified[imag] = icell[4];
+         if ( mcell == 6 )
+           if ( (bmmeq(2,6) && !bmmeq(2,4) && !bmmeq(6,8) && !bmmeq(5,9))
+             || (bmmeq(6,8) && !bmmeq(6,2) && !bmmeq(8,4) && !bmmeq(5,3)) )
+             magnified[imag] = icell[6];
+         if ( mcell == 7 )
+           if ( bmmeq(8,4) && !bmmeq(8,6) && !bmmeq(4,2) )
+             magnified[imag] = icell[4];
+         if ( mcell == 8 )
+           if ( (bmmeq(6,8) && !bmmeq(6,2) && !bmmeq(8,4) && !bmmeq(5,7))
+             || (bmmeq(8,4) && !bmmeq(8,6) && !bmmeq(4,2) && !bmmeq(5,9)) )
+             magnified[imag] = icell[8];
+         if ( mcell == 9 )
+           if ( bmmeq(6,8) && !bmmeq(6,2) && !bmmeq(8,4) )
+             magnified[imag] = icell[6];
+         break;
+        } } /* --- end-of-switch(magstep) --- */
+      } /* --- end-of-for(mrow,mcol) --- */
+    } /* --- end-of-for(irow,icol) --- */
+end_of_job:
+  return ( magnified );			/*return magnified raster to caller*/
+} /* --- end-of-function bytemapmag() --- */
+
+
+/* ==========================================================================
  * Function:	rastref ( rp, axis )
  * Purpose:	reflects rp, horizontally about y-axis |_ becomes _| if axis=1
  *		or vertically about x-axis M becomes W if axis=2.
@@ -1259,14 +1682,50 @@
  *				to horizontally shift sp2 relative to sp1,
  *				either positive (right) or negative
  *		isalign (I)	int containing 1 to align baselines,
- *				or 0 to vertically center sp2 over sp1
+ *				or 0 to vertically center sp2 over sp1.
+ *				For isalign=2, images are vertically
+ *				centered, but then adjusted by \raisebox
+ *				lifts, using global variables rastlift1
+ *				for sp1 and rastlift for sp2.
  *		isfree (I)	int containing 1=free sp1 before return,
  *				2=free sp2, 3=free both, 0=free none.
  * --------------------------------------------------------------------------
  * Returns:	( subraster * )	pointer to constructed subraster
  *				or  NULL for any error
  * --------------------------------------------------------------------------
- * Notes:
+ * Notes:     o	The top-left corner of each raster box has coords (0,0),
+ *		down to (h-1,w-1) for a box of height h and width w.
+ *	      o	A raster's baseline, b, is typically 0 <= b < h.
+ *		But b can actually go out-of-bounds, b>=h or b<0, for
+ *		an image additionally lifted (b>=h) or lowered (b<0)
+ *		with respect to the surrounding expression.
+ *	      o	Note that b=h-1 means no descenders and the bottom
+ *		of the symbol rests exactly on the baseline,
+ *		whereas b=0 means the top pixel of the symbol rests
+ *		on the baseline, and all other pixels are descenders.
+ *	      o	The composite raster is constructed as follows...
+ *		The base image is labelled height h1 and baseline b1,
+ *		the overlay h2 and b2, and the composite H and B.
+ *		     base       overlay
+ *	    --- +------------------------+ ---   For the overlay to be
+ *	     ^  |   ^        +----------+|  ^    vertically centered with
+ *	     |  |   |        |          ||  |    respect to the base,
+ *	     |  |   |B-b1    |          ||  |      B - b1 = H-B -(h1-b1), so
+ *	     |  |   v        |          ||  |      2*B = H-h1 + 2*b1
+ *	     |  |+----------+|          ||  |      B = b1 + (H-h1)/2
+ *	     B  ||  ^    ^  ||          ||  |    And when the base image is
+ *	     |  ||  |    |  ||          ||  |    bigger, H=h1 and B=b1 is
+ *	     |  ||  b1   |  ||          ||  |    the obvious correct answer.
+ *	     |  ||  |    h1 ||          || H=h2
+ *	     v  ||  v    |  ||          ||  |
+ *    ----------||-------|--||          ||--|--------
+ *    baseline  || h1-b1 v  || overlay  ||  |
+ *    for base  |+----------+| baseline ||  |
+ *    and com-  |   ^        | ignored  ||  |
+ *    posite    |   |H-B-    |----------||  |
+ *		|   | (h1-b1)|          ||  |
+ *		|   v        +----------+|  v
+ *		+------------------------+ ---
  * ======================================================================= */
 /* --- entry point --- */
 subraster *rastcompose ( subraster *sp1, subraster *sp2, int offset2,
@@ -1287,20 +1746,39 @@
 	height2 = (sp2->image)->height,	/* height for overlaid subraster */
 	width2  = (sp2->image)->width,	/* width for overlaid subraster */
 	pixsz2  = (sp2->image)->pixsz;	/* pixsz for overlaid subraster */
-int	height=0, width=0, pixsz=0, base=0; /* overlaid composite */
+int	height  = max2(height1,height2), /*composite height if sp2 centered*/
+	base    = base1 + (height-height1)/2, /* and composite baseline */
+	tlc2    = (height-height2)/2,	/* top-left corner for overlay */
+	width=0, pixsz=0;		/* other params for composite */
+int	lift1   = rastlift1,		/* vertical \raisebox lift for sp1 */
+	lift2   = rastlift;		/* vertical \raisebox lift for sp2 */
 /* -------------------------------------------------------------------------
 Initialization
 -------------------------------------------------------------------------- */
 /* --- determine height, width and baseline of composite raster --- */
-if ( isalign )				/* baselines of sp1,sp2 aligned */
-  { height = max2(base1+1,base2+1)	/* max height above baseline */
-           + max2(height1-base1-1,height2-base2-1); /*+ max descending below*/
-    base   = max2(base1,base2); }	/* max space above baseline */
-else					/* baselines not aligned */
-  { height = max2(height1,height2);	/* max height */
-    base   = base1 + (height-height1)/2; } /* baseline for sp1 */
-width      = max2(width1,width2+abs(offset2)); /* max width */
-pixsz      = max2(pixsz1,pixsz2);	/* bitmap,bytemap becomes bytemap */
+switch ( isalign ) {
+  default:
+  case 0:				/* centered, baselines not aligned */
+    height = max2(height1,height2);	/* max height */
+    base   = base1 + (height-height1)/2; /* baseline for sp1 */
+    break;
+  case 1:				/* baselines of sp1,sp2 aligned */
+    height = max2(base1+1,base2+1)	/* max height above baseline */
+           + max2(height1-base1-1,height2-base2-1); /*+max descending below*/
+    base   = max2(base1,base2);		/* max space above baseline */
+    break;
+  case 2:				/* centered +/- \raisebox lifts */
+    base1 -= lift1;  base2 -= lift2;	/* reset to unlifted images */
+    /* --- start with default for centered, unlifted images --- */
+    height2 += 2*absval(lift2);		/* "virtual" height of overlay */
+    height = max2(height1,height2);	/* max height */
+    base   = base1 + (height-height1)/2; /* baseline for sp1 */
+    tlc2   = (height-height2)/2		/* top-left corner for overlay */
+           + (lift2>=0?0:2*absval(lift2)); /* "reflect" overlay below base */
+    break;
+  } /* --- end-of-switch(isalign) --- */
+width = max2(width1,width2+abs(offset2)); /* max width */
+pixsz = max2(pixsz1,pixsz2);		/* bitmap,bytemap becomes bytemap */
 /* -------------------------------------------------------------------------
 allocate concatted composite subraster
 -------------------------------------------------------------------------- */
@@ -1311,19 +1789,29 @@
 sp->type = IMAGERASTER;			/* image */
 sp->baseline = base;			/* composite baseline */
 sp->size = sp1->size;			/* underlying char is sp1 */
+if ( isalign == 2 ) sp->baseline += lift1; /* adjust baseline */
 /* --- extract raster from subraster --- */
 rp = sp->image;				/* raster allocated in subraster */
 /* -------------------------------------------------------------------------
 overlay sp1 and sp2 in new composite raster
 -------------------------------------------------------------------------- */
-if ( isalign )
-  { rastput (rp, sp1->image, base-base1, (width-width1)/2, 1);	/*underlying*/
-    rastput (rp, sp2->image, base-base2,			/*overlaid*/
-		(width-width2)/2+offset2, 0); }
-else
-  { rastput (rp, sp1->image, base-base1, (width-width1)/2, 1);	/*underlying*/
+switch ( isalign ) {
+  default:
+  case 0:				/* centered, baselines not aligned */
+    rastput (rp, sp1->image, base-base1, (width-width1)/2, 1);	/*underlying*/
     rastput (rp, sp2->image, (height-height2)/2,		/*overlaid*/
-		(width-width2)/2+offset2, 0); }
+		(width-width2)/2+offset2, 0);
+    break;
+  case 1:				/* baselines of sp1,sp2 aligned */
+    rastput (rp, sp1->image, base-base1, (width-width1)/2, 1);	/*underlying*/
+    rastput (rp, sp2->image, base-base2,			/*overlaid*/
+		(width-width2)/2+offset2, 0);
+    break;
+  case 2: if(1){			/* centered +/- \raisebox lifts */
+    rastput (rp, sp1->image, base-base1, (width-width1)/2, 1);
+    rastput (rp, sp2->image, tlc2, (width-width2)/2+offset2, 0); }
+    break;
+  } /* --- end-of-switch(isalign) --- */
 /* -------------------------------------------------------------------------
 free input if requested
 -------------------------------------------------------------------------- */
@@ -1846,16 +2334,16 @@
 skip leading white and gray space
 -------------------------------------------------------------------------- */
 /* --- first check input --- */
-if ( term == NULL )    goto end_of_job; /* no input so return 0 to caller */
-if ( *term == '\000' ) goto end_of_job; /* ditto for empty string */
+if ( isempty(term) ) goto end_of_job; /* no input so return 0 to caller */
 /* --- skip leading white space --- */
-skipwhite(term);		/* skip leading white sapce */
+skipwhite(term);		/* skip leading white space */
 if ( *term == '\000' ) goto end_of_job; /* nothing but white space */
 /* --- skip leading gray space --- */
 skipgray:
  for ( i=0; (token=grayspace[i]) != NULL; i++ ) /* check each grayspace */
   if ( strncmp(term,token,strlen(token)) == 0 ) { /* found grayspace */
    term += strlen(token);	/* skip past this grayspace token */
+   skipwhite(term);		/* and skip any subsequent white space */
    if ( *term == '\000' ) {	/* nothing left so quit */
      if ( msgfp!=NULL && msglevel >= 99 ) /* display for debugging */
        fprintf(msgfp,"rastsmashcheck> only grayspace in %.32s\n",expression);
@@ -1890,7 +2378,7 @@
 
 
 /* ==========================================================================
- * Function:	accent_subraster ( accent, width, height, pixsz )
+ * Function:	accent_subraster ( accent, width, height, direction, pixsz )
  * Purpose:	Allocate a new subraster of width x height
  *		(or maybe different dimensions, depending on accent),
  *		and draw an accent (\hat or \vec or \etc) that fills it
@@ -1899,6 +2387,8 @@
  *				etc, indicating the type of accent desired
  *		width (I)	int containing desired width of accent (#cols)
  *		height (I)	int containing desired height of accent(#rows)
+ *		direction (I)	int containing desired direction of accent,
+ *				+1=right, -1=left, 0=left/right
  *		pixsz (I)	int containing 1 for bitmap, 8 for bytemap
  * --------------------------------------------------------------------------
  * Returns:	( subraster * )	ptr to newly-allocated subraster with accent,
@@ -1908,7 +2398,8 @@
  *		and caller should check dimensions in returned subraster
  * ======================================================================= */
 /* --- entry point --- */
-subraster *accent_subraster (  int accent, int width, int height, int pixsz )
+subraster *accent_subraster (  int accent, int width, int height,
+int direction, int pixsz )
 {
 /* -------------------------------------------------------------------------
 Allocations and Declarations
@@ -1931,6 +2422,13 @@
 	*rastcpy();			/* may need copy of original */
 subraster *arrow_subraster();		/* rightarrow for vec */
 subraster *rastack();			/* stack accent atop extra space */
+int	iswidthneg = 0;			/* set true if width<0 arg passed */
+int	serifwidth=0;			/* serif for surd */
+int	isBig=0;			/* true for ==>arrow, false for -->*/
+/* -------------------------------------------------------------------------
+initialization
+-------------------------------------------------------------------------- */
+if ( width < 0 ) { width=(-width); iswidthneg=1; } /* set neg width flag */
 /* -------------------------------------------------------------------------
 outer switch() traps accents that may change caller's height,width
 -------------------------------------------------------------------------- */
@@ -1987,11 +2485,15 @@
 	break;
     /* --- sqrt request --- */
     case SQRTACCENT:
-	col1 = SQRTWIDTH(height) - 1;	/* right col of sqrt symbol */
-	col0 = (col1+2)/3;		/* midpoint col of sqrt */
-	row0 = (height+1)/2;		/* midpoint row of sqrt */
+	serifwidth = SURDSERIFWIDTH(height); /* leading serif on surd */
+	col1 = SQRTWIDTH(height,(iswidthneg?1:2)) - 1; /*right col of sqrt*/
+	/*col0 = (col1-serifwidth+2)/3;*/ /* midpoint col of sqrt */
+	col0 = (col1-serifwidth+1)/2;	/* midpoint col of sqrt */
+	row0 = max2(1,((height+1)/2)-2); /* midpoint row of sqrt */
 	row1 = height-1;		/* bottom row of sqrt */
-	line_raster(rp,row0,0,row1,col0,thickness); /* descending portion */
+	/*line_raster(rp,row0,0,row1,col0,thickness);*/ /*descending portion*/
+	line_raster(rp,row0+serifwidth,0,row0,serifwidth,thickness);
+	line_raster(rp,row0,serifwidth,row1,col0,thickness); /* descending */
 	line_raster(rp,row1,col0,0,col1,thickness); /* ascending portion */
 	line_raster(rp,0,col1,0,width-1,thickness); /*overbar of thickness 1*/
 	break;
@@ -2018,7 +2520,10 @@
  /* --- vec request --- */
  case VECACCENT:
     height = 2*(height/2) + 1;		/* force height odd */
-    if ( (accsp=arrow_subraster(width,height,pixsz,1,0)) /*build rightarrow*/
+    if ( absval(direction) >= 9 ) {	/* want ==> arrow rather than --> */
+      isBig = 1;			/* signal "Big" arrow */
+      direction -= 10; }		/* reset direction = +1, -1, or 0 */
+    if ((accsp=arrow_subraster(width,height,pixsz,direction,isBig)) /*arrow*/
     !=  NULL )				/* succeeded */
 	{ rp = accsp->image;		/* "extract" raster with bitmap */
 	  free((void *)accsp); }	/* and free subraster "envelope" */
@@ -2810,14 +3315,22 @@
  *				if negative, abs(nbot) used, and same
  *				number of extra cols added at right.
  *		isline (I)	int containing 0 to leave border pixels clear
- *				or >0 to draw a line around border of width
- *				isline.
+ *				or >0 to draw a line around border of
+ *				thickness isline pixels.  See Notes below.
  *		isfree (I)	int containing true to free rp before return
  * --------------------------------------------------------------------------
  * Returns:	( raster * )	ptr to bordered raster,
  *				or NULL for any error.
  * --------------------------------------------------------------------------
- * Notes:     o
+ * Notes:     o	The isline arg also controls which sides border lines
+ *		are drawn for.  To do this, isline is interpreted as
+ *		thickness + 100*sides  so that, e.g., passing isline=601
+ *		is interpreted as sides=6 and thickness=1.  And
+ *		sides is further interpreted as 1=left side, 2=top,
+ *		4=right and 8=bottom.  For example, sides=6 where 6=2+4
+ *		draws the top and right borders only.  15 draws all four
+ *		sides.  And 0 (no sides value embedded in isline)
+ *		draws all four sides, too.
  * ======================================================================= */
 /* --- entry point --- */
 raster	*border_raster ( raster *rp, int ntop, int nbot,
@@ -2832,6 +3345,7 @@
 	height = (rp==NULL?0:rp->height), /* height of raster */
 	istopneg=0, isbotneg=0,		/* true if ntop or nbot negative */
 	leftmargin = 0;		/* adjust width to whole number of bytes */
+int	left=1, top=1, right=1, bot=1;	/* frame sides to draw */
 int	delete_raster();		/* free input rp if isfree is true */
 /* -------------------------------------------------------------------------
 Initialization
@@ -2854,6 +3368,22 @@
     leftmargin = (width%8==0? 0 : 8-(width%8)); /*makes width multiple of 8*/
     width += leftmargin;		/* width now multiple of 8 */
     leftmargin /= 2; }			/* center original raster */
+/* --- check which sides to draw --- */
+if ( isline > 100 ) {			/* sides arg embedded in isline */
+  int iside=0, sides=isline/100;	/* index, sides=1-15 from 101-1599 */
+  isline -= 100*sides;			/* and remove sides from isline */
+  for ( iside=1; iside<=4; iside++ ) {	/* check left, top, right, bot */
+    int shift = sides/2;		/* shift sides left one bit */
+    if ( sides == 2*shift )		/* low-order bit is >>not<< set */
+      switch ( iside ) {		/* don't draw corresponding side */
+        default: break;			/* internal error */
+        case 1: left = 0; break;	/* 1 = left side */
+        case 2: top  = 0; break;	/* 2 = top side */
+        case 3: right= 0; break;	/* 4 = tight side */
+        case 4: bot  = 0; break; }	/* 8 = bottom side */
+    sides = shift;			/* ready for next side */
+    } /* --- end-of-for(iside) --- */
+  } /* --- end-of-if(isline>100) --- */
 /* -------------------------------------------------------------------------
 allocate bordered raster, and embed rp within it
 -------------------------------------------------------------------------- */
@@ -2870,13 +3400,13 @@
   /* --- draw left- and right-borders --- */
   for ( irow=0; irow<height; irow++ )	/* for each row of bp */
     for ( icol=0; icol<nthick; icol++ )	/* and each pixel of thickness */
-      {	setpixel(bp,irow,icol,255);	/* left border */
-	setpixel(bp,irow,width-1-icol,255); } /* right border */
+      {	if(left){setpixel(bp,irow,icol,255);}		/* left border */
+	if(right){setpixel(bp,irow,width-1-icol,255);} } /* right border */
   /* --- draw top- and bottom-borders --- */
   for ( icol=0; icol<width; icol++ )	/* for each col of bp */
     for ( irow=0; irow<nthick; irow++ )	/* and each pixel of thickness */
-      {	setpixel(bp,irow,icol,255);	/* top border */
-	setpixel(bp,height-1-irow,icol,255); } /* bottom border */
+      {	if(top){setpixel(bp,irow,icol,255);}		/* top border */
+	if(bot){setpixel(bp,height-1-irow,icol,255);} }	/* bottom border */
  } /* --- end-of-if(isline) --- */
 /* -------------------------------------------------------------------------
 free rp if no longer needed
@@ -2953,7 +3483,7 @@
 if ( (bp=new_raster(newwidth,height,rp->pixsz)) /*allocate backspaced raster*/
 ==   (raster *)NULL ) goto end_of_job;	/* and quit if failed */
 /* --- fill new raster --- */
-if ( width-nback > 0 )			/* don't fill 1-pixel wide empty bp*/
+if ( 1 || width-nback > 0 )		/* don't fill 1-pixel wide empty bp*/
  for ( icol=0; icol<newwidth; icol++ )	/* find first non-empty col in row */
   for ( irow=0; irow<height; irow++ )	/* for each row inside rp */
     { int value = getpixel(rp,irow,icol); /* original pixel at irow,icol */
@@ -3666,7 +4196,8 @@
 int	symlen = strlen(symbol),	/* length of input symbol */
 	deflen, minlen=9999;		/*length of shortest matching symdef*/
 int	/*alnumsym = (symlen==1 && isalnum(*symbol)),*/ /*alphanumeric sym*/
-	alphasym = (symlen==1 && isalpha(*symbol)); /* or alpha symbol */
+	alphasym = (symlen==1 && isalpha(*symbol)), /* or alpha symbol */
+	slashsym = (*symbol=='\\');	/* or \backslashed symbol */
 int	family = fontinfo[fontnum].family; /* current font family */
 static	char *displaysyms[][2] = {	/*xlate to Big sym for \displaystyle*/
 	/* --- see table on page 536 in TLC2 --- */
@@ -3723,6 +4254,8 @@
   else					/* check against caller's symbol */
     if ( strncmp(symbol,symdefs[idef].symbol,symlen) == 0 ) /* found match */
      if ( (fontnum==0||family==CYR10)	/* mathmode, so check every match */
+     || (1 && symdefs[idef].handler!=NULL) /* or check every directive */
+     || (1 && istextmode && slashsym)	/*text mode and \backslashed symbol*/
      || (0 && istextmode && (!alphasym	/* text mode and not alpha symbol */
 	|| symdefs[idef].handler!=NULL))   /* or text mode and directive */
      || (symdefs[idef].family==family	/* have correct family */
@@ -4158,10 +4691,10 @@
     {
     strcpy(lcsymbol,defsym);		/* local copy of symdefs[] symbol */
     if ( isunesc && *lcsymbol=='\\' )	/* ignored leading \ in symbol */
-     strcpy(lcsymbol,lcsymbol+1);	/* so squeeze it out of lcsymbol too*/
+     {strsqueeze(lcsymbol,1);}		/*so squeeze it out of lcsymbol too*/
     if ( 0 )				/* don't ignore case */
-     for ( symptr=lcsymbol; *symptr!='\000'; symptr++ ) /*for each symbol ch*/
-      if ( isalpha(*symptr) ) *symptr=tolower(*symptr); /*lowercase the char*/
+     for ( symptr=lcsymbol; *symptr!='\000'; symptr++ )/*for each symbol ch*/
+      if ( isalpha(*symptr) ) *symptr=tolower(*symptr);/*lowercase the char*/
     deflen = strlen(lcsymbol);		/* #chars in symbol we're checking */
     if ((symptr=strstr(lcsymbol,unescsymbol)) != NULL) /*found caller's sym*/
      if ( (isoint || strstr(lcsymbol,"oint")==NULL) /* skip unwanted "oint"*/
@@ -5144,7 +5677,8 @@
 	*size = (isdelta? *size+sizevalue : sizevalue); /* so reset size */
       /* --- finally, set flag and shift size parameter out of preamble --- */
       isfontsize = 1;			/*set flag showing font size present*/
-      if ( comma != NULL ) strcpy(pretext,comma+1);/*leading size param gone*/
+      if ( comma != NULL )		/*2/15/12-isn't this superfluous???*/
+        {strsqueezep(pretext,comma+1);}	/* squeeze out leading size param */
      } /* --- end-of-if(comma!=NULL||etc) --- */
     /* --- copy any preamble params following size to caller's subexpr --- */
     if ( comma != NULL || !isfontsize )	/*preamb contains params past size*/
@@ -5209,6 +5743,7 @@
 	*tokptr=NULL,			/*ptr to token found in expression*/
 	*texsubexpr(), argval[8192];	/*parse for macro args after token*/
 char	*strchange();			/* change leading chars of string */
+int	strreplace();			/* replace nnn with actual num, etc*/
 char	*strwstr();			/*use strwstr() instead of strstr()*/
 char	*findbraces();			/*find left { and right } for \atop*/
 int	idelim=0,			/* left- or right-index */
@@ -5266,15 +5801,31 @@
  * -------------------------------------------------------- */
 char	*htmlsym=NULL;			/* symbols[isymbol].html */
 static	struct { char *html; char *args; char *latex; } symbols[] =
- { /* ---------------------------------------
+ { /* --------------------------------------------
      user-supplied newcommands
-   --------------------------------------- */
- #ifdef NEWCOMMANDS			/* -DNEWCOMMANDS=\"filename.h\" */
-   #include NEWCOMMANDS
- #endif
-   /* ---------------------------------------
-     Cyrillic termchar  mimeTeX equivalent...
-   --------------------------------------- */
+   -------------------------------------------- */
+   #ifdef NEWCOMMANDS			/* -DNEWCOMMANDS=\"filename.h\" */
+     #include NEWCOMMANDS
+   #endif
+   /* --------------------------------------------
+     Specials        termchar  value...
+   -------------------------------------------- */
+   { "\\version",	NULL, "{\\small\\red\\text \\fbox{\\begin{gather}"
+	"mime\\TeX version \\versionnumber \\\\"
+	"last revised \\revisiondate \\\\ \\copyrighttext \\\\"
+	"see \\homepagetext for details \\end{gather}}}" },
+   { "\\copyright",	NULL,
+	"{\\small\\red\\text \\fbox{\\begin{gather}"
+	"mimeTeX \\copyrighttext \\\\"
+	"see \\homepagetext for details \\end{gather}}}" },
+   { "\\versionnumber",	NULL, "{\\text " VERSION "}" },
+   { "\\revisiondate",	NULL, "{\\text " REVISIONDATE "}" },
+   { "\\copyrighttext",	NULL, "{\\text " COPYRIGHTTEXT ".}" },
+   { "\\homepagetext",	NULL,
+	"{\\text http://www.forkosh.com/mimetex.html}" },
+   /* --------------------------------------------
+     Cyrillic  termchar  mimeTeX equivalent...
+   -------------------------------------------- */
    { "\\\'G",	"embed\\","{\\acute{G}}" },
    { "\\\'g",	"embed\\","{\\acute{g}}" },
    { "\\\'K",	"embed\\","{\\acute{K}}" },
@@ -5285,9 +5836,9 @@
    /*{ "\\\"e",	"embed\\","{\\ddot{e}}" },*/
    { "\\\"I",	"embed\\","{\\ddot{\\=I}}" },
    { "\\\"\\i",	"embed\\","{\\ddot{\\=\\i}}" },
-   /* ------------------------------------------
-   LaTeX Macro  #args,default   template...
-   ------------------------------------------ */
+   /* --------------------------------------------
+     LaTeX Macro #args,default  template...
+   -------------------------------------------- */
    { "\\lvec",	"2n",	"{#2_1,\\cdots,#2_{#1}}" },
    { "\\grave", "1",	"{\\stackrel{\\Huge\\gravesym}{#1}}" }, /* \grave */
    { "\\acute", "1",	"{\\stackrel{\\Huge\\acutesym}{#1}}" }, /* \acute */
@@ -5296,14 +5847,19 @@
    { "\\buildrel","3",	"{\\stackrel{#1}{#3}}" }, /* ignore #2 = \over */
    { "\\overset", NULL,	"\\stackrel" },		/* just an alias */
    { "\\underset", "2",	"\\relstack{#2}{#1}" },	/* reverse args */
-   /* ---------------------------------------
-    html char termchar  LaTeX equivalent...
-   --------------------------------------- */
+   { "\\dfrac", "2",	"{\\frac{#1}{#2}}" },
+   { "\\binom", "2",	"{\\begin{pmatrix}{#1}\\\\{#2}\\end{pmatrix}}" },
+   { "\\aangle","26",	"{\\boxaccent{#1}{#2}}" },
+   { "\\actuarial","2 ","{#1\\boxaccent{6}{#2}}" }, /*comprehensive sym list*/
+   { "\\boxaccent","2", "{\\fbox[,#1]{#2}}" },
+   /* --------------------------------------------
+     html char termchar  LaTeX equivalent...
+   -------------------------------------------- */
    { "&quot",	";",	"\"" },		/* " is first, " */
    { "&amp",	";",	"&" },
    { "&lt",	";",	"<" },
    { "&gt",	";",	">" },
-   { "&#092",	";",	"\\" },		/* backslash */
+   /*{ "&#092",	";",	"\\" },*/	/* backslash */
    { "&backslash",";",	"\\" },
    { "&nbsp",	";",	"~" },
    { "&iexcl",	";",	"{\\raisebox{-2}{\\rotatebox{180}{!}}}" },
@@ -5322,21 +5878,27 @@
    { "&Auml",	";",	"{\\rm~\\ddot~A}" },
    { "&Aring",	";",	"{\\rm~A\\limits^{-1$o}}" },
    { "&atilde",	";",	"{\\rm~\\tilde~a}" },
-   { "&yuml",	";",	"{\\rm~\\ddot~y}" },  /* ÿ is last, ÿ */
-   /* ---------------------------------------
-    html tag  termchar  LaTeX equivalent...
-   --------------------------------------- */
-   { "<br>",	"embed\\i","\\\\" },
-   { "<br/>",	"embed\\i","\\\\" },
-   /* ---------------------------------------
-    garbage  termchar  LaTeX equivalent...
-   --------------------------------------- */
-   { "< TEX >",	"embed\\i","\000" },
-   { "< / TEX >","embed\\i","\000" },
-   { "<br / >",	"embed\\i","\000" },
-   /* ---------------------------------------
+   { "&yuml",	";",	"{\\rm~\\ddot~y}" }, /* ÿ is last, ÿ */
+   { "&#",	";",	"{[\\&\\#nnn?]}" },  /* all other explicit &#nnn's */
+   /* --------------------------------------------
+     html tag     termchar    LaTeX equivalent...
+   -------------------------------------------- */
+   { "< br >",    "embed\\i", "\\\\" },
+   { "< br / >",  "embed\\i", "\\\\" },
+   { "< dd >",    "embed\\i", " \000" },
+   { "< / dd >",  "embed\\i", " \000" },
+   { "< dl >",    "embed\\i", " \000" },
+   { "< / dl >",  "embed\\i", " \000" },
+   { "< p >",     "embed\\i", " \000" },
+   { "< / p >",   "embed\\i", " \000" },
+   /* --------------------------------------------
+     garbage      termchar  LaTeX equivalent...
+   -------------------------------------------- */
+   { "< tex >",   "embed\\i", " \000" },
+   { "< / tex >", "embed\\i", " \000" },
+   /* --------------------------------------------
      LaTeX   termchar   mimeTeX equivalent...
-   --------------------------------------- */
+   -------------------------------------------- */
    { "\\AA",	NULL,	"{\\rm~A\\limits^{-1$o}}" },
    { "\\aa",	NULL,	"{\\rm~a\\limits^{-1$o}}" },
    { "\\bmod",	NULL,	"{\\hspace2{\\rm~mod}\\hspace2}" },
@@ -5344,19 +5906,23 @@
    { "\\dots",	NULL,	"{\\cdots}" },
    { "\\cdots",	NULL,	"{\\raisebox3{\\ldots}}" },
    { "\\ldots",	NULL,	"{\\fs4.\\hspace1.\\hspace1.}" },
-   { "\\ddots",	NULL,	"{\\fs4\\raisebox8.\\hspace1\\raisebox4.\\hspace1.}"},
+   { "\\ddots",	NULL,	"{\\fs4\\raisebox8.\\hspace1\\raisebox4."
+			"\\hspace1\\raisebox0.}"},
    { "\\notin",	NULL,	"{\\not\\in}" },
    { "\\neq",	NULL,	"{\\not=}" },
    { "\\ne",	NULL,	"{\\not=}" },
+   { "\\mapsto", NULL,	"{\\rule[fs/2]{1}{5+fs}\\hspace{-99}\\to}" },
    { "\\hbar",	NULL,	"{\\compose~h{{\\fs{-1}-\\atop\\vspace3}}}" },
    { "\\angle",	NULL, "{\\compose{\\hspace{3}\\lt}{\\circle(10,15;-80,80)}}"},
    { "\\textcelsius", NULL, "{\\textdegree C}"},
    { "\\textdegree", NULL, "{\\Large^{^{\\tiny\\mathbf o}}}"},
    { "\\cr",	NULL,	"\\\\" },
+   /*{ "\\colon",	NULL,	"{:}" },*/
    { "\\iiint",	NULL,	"{\\int\\int\\int}\\limits" },
    { "\\iint",	NULL,	"{\\int\\int}\\limits" },
    { "\\Bigiint", NULL,	"{\\Bigint\\Bigint}\\limits" },
    { "\\bigsqcap",NULL,	"{\\fs{+4}\\sqcap}" },
+   { "\\_",	"embed","{\\underline{\\ }}" }, /* displayed underscore */
    { "!`",	NULL,	"{\\raisebox{-2}{\\rotatebox{180}{!}}}" },
    { "?`",	NULL,	"{\\raisebox{-2}{\\rotatebox{180}{?}}}" },
    { "^\'",	"embed","\'" }, /* avoid ^^ when re-xlating \' below */
@@ -5374,9 +5940,10 @@
    { "\\cancel",NULL,	"\\Not" },
    { "\\hhline",NULL,	"\\Hline" },
    { "\\Hline", NULL,	"\\hline\\,\\\\\\hline" },
-   /* ---------------------------------------------------------
+   /* -----------------------------------------------------------------------
+     As per emails with Zbigniew Fiedorowicz <fiedorow at math.ohio-state.edu>
      "Algebra Syntax"  termchar   mimeTeX/LaTeX equivalent...
-   ------------------------------------------------------------ */
+   ----------------------------------------------------------------------- */
    { "sqrt",	"1",	"{\\sqrt{#1}}" },
    { "sin",	"1",	"{\\sin{#1}}" },
    { "cos",	"1",	"{\\cos{#1}}" },
@@ -5384,14 +5951,66 @@
    { "acos",	"1",	"{\\cos^{-1}{#1}}" },
    { "exp",	"1",	"{{\\rm~e}^{#1}}" },
    { "det",	"1",	"{\\left|{#1}\\right|}" },
-   /* ---------------------------------------
-   LaTeX Constant    termchar   value...
-   --------------------------------------- */
-   { "\\thinspace",	NULL,	"2" },
-   { "\\thinmathspace",	NULL,	"2" },
+   /* --------------------------------------------
+     LaTeX Constant    termchar   value...
+   -------------------------------------------- */
+   { "\\thinspace",	NULL,	"\\," },
+   { "\\thinmathspace",	NULL,	"\\," },
    { "\\textwidth",	NULL,	"400" },
+   /* --- end-of-table indicator --- */
    { NULL,	NULL,	NULL }
  } ; /* --- end-of-symbols[] --- */
+/* ---
+ * html &#nn chars converted to latex equivalents
+ * ---------------------------------------------- */
+int	htmlnum=0;			/* numbers[inum].html */
+static	struct { int html; char *latex; } numbers[] =
+ { /* ---------------------------------------
+    html num  LaTeX equivalent...
+   --------------------------------------- */
+   { 9,		" " },			/* horizontal tab */
+   { 10,	" " },			/* line feed */
+   { 13,	" " },			/* carriage return */
+   { 32,	" " },			/* space */
+   { 33,	"!" },			/* exclamation point */
+   { 34,	"\"" },			/* " */
+   { 35,	"#" },			/* hash mark */
+   { 36,	"$" },			/* dollar */
+   { 37,	"%" },			/* percent */
+   { 38,	"&" },			/* & */
+   { 39,	"\'" },			/* apostrophe (single quote) */
+   { 40,	")" },			/* left parenthesis */
+   { 41,	")" },			/* right parenthesis */
+   { 42,	"*" },			/* asterisk */
+   { 43,	"+" },			/* plus */
+   { 44,	"," },			/* comma */
+   { 45,	"-" },			/* hyphen (minus) */
+   { 46,	"." },			/* period */
+   { 47,	"/" },			/* slash */
+   { 58,	":" },			/* colon */
+   { 59,	";" },			/* semicolon */
+   { 60,	"<" },			/* < */
+   { 61,	"=" },			/* = */
+   { 62,	">" },			/* > */
+   { 63,	"\?" },			/* question mark */
+   { 64,	"@" },			/* commercial at sign */
+   { 91,	"[" },			/* left square bracket */
+   { 92,	"\\" },			/* backslash */
+   { 93,	"]" },			/* right square bracket */
+   { 94,	"^" },			/* caret */
+   { 95,	"_" },			/* underscore */
+   { 96,	"`" },			/* grave accent */
+   { 123,	"{" },			/* left curly brace */
+   { 124,	"|" },			/* vertical bar */
+   { 125,	"}" },			/* right curly brace */
+   { 126,	"~" },			/* tilde */
+   { 160,	"~" },			/*   (use tilde for latex) */
+   { 166,	"|" },			/* ¦ (broken vertical bar) */
+   { 173,	"-" },			/* ­ (soft hyphen) */
+   { 177,	"{\\pm}" },		/* ± (plus or minus) */
+   { 215,	"{\\times}" },		/* × (plus or minus) */
+   { -999,	NULL }
+ } ; /* --- end-of-numbers[] --- */
 /* -------------------------------------------------------------------------
 first remove comments
 -------------------------------------------------------------------------- */
@@ -5409,7 +6028,7 @@
 	{ *leftptr = '\000';		/*so terminate expr at leftcomment*/
 	  break; }			/* and stop looking for comments */
        *leftptr = '~';			/* replace entire comment by ~ */
-       strcpy(leftptr+1,tokptr);	/* and squeeze out comment */
+       strsqueezep(leftptr+1,tokptr);	/* squeeze out comment */
        goto next_comment; }		/* stop looking for rightcomment */
   /* --- no rightcomment after opening leftcomment --- */
   *leftptr = '\000';			/* so terminate expression */
@@ -5426,6 +6045,7 @@
   int	htmllen = strlen(htmlsym);	/* length of escape, _without_ ; */
   int	isalgebra = isalpha((int)(*htmlsym)); /* leading char alphabetic */
   int	isembedded = 0,			/* true to xlate even if embedded */
+	istag=0, isamp=0,		/* true for <tag>, &char; symbols */
 	isstrwstr = 0,			/* true to use strwstr() */
 	wstrlen = 0;			/* length of strwstr() match */
   char	*aleft="{([<|", *aright="})]>|"; /*left,right delims for alg syntax*/
@@ -5434,9 +6054,14 @@
   int	embedlen = strlen(embedkeywd);	/* #chars in embedkeywd */
   char	*args = symbols[isymbol].args,	/* number {}-args, optional []-arg */
 	*htmlterm = args,		/*if *args nonumeric, then html term*/
-	*latexsym = symbols[isymbol].latex; /*latex replacement for htmlsym*/
+	*latexsym = symbols[isymbol].latex, /*latex replacement for htmlsym*/
+	errorsym[256];			/*or latexsym may point to error msg*/
   char	abuff[8192];  int iarg,nargs=0;	/* macro expansion params */
   char	wstrwhite[99];			/* whitespace chars for strwstr() */
+  skipwhite(htmlsym);			/*skip any bogus leading whitespace*/
+  htmllen = strlen(htmlsym);		/* reset length of html token */
+  istag = (isthischar(*htmlsym,"<")?1:0); /* html <tag> starts with < */
+  isamp = (isthischar(*htmlsym,"&")?1:0); /* html &char; starts with & */
   if ( args != NULL )			/*we have args (or htmlterm) param*/
    if ( *args != '\000' ) {		/* and it's not an empty string */
     if ( strchr("0123456789",*args) != NULL ) /* is 1st char #args=0-9 ? */
@@ -5444,44 +6069,84 @@
        *abuff = *args;  abuff[1] = '\000'; /* #args char in ascii buffer */
        nargs = atoi(abuff); }		/* interpret #args to numeric */
     else if ( strncmp(args,embedkeywd,embedlen) == 0 )/*xlate embedded token*/
-     { htmlterm = NULL;			/* if so, then we have no htmlterm */
+     { int arglen = strlen(args);	/* length of "embed..." string */
+       htmlterm = NULL;			/* if so, then we have no htmlterm */
        isembedded = 1 ;			/* turn on embedded flag */
-       embedterm = args[embedlen];	/* char immediately after embed */
-       if (strlen(args) > embedlen+1) {	/* have embed,white for strwstr() */
-	isstrwstr = 1;			/* turn on strwtsr flag */
-	strcpy(wstrwhite,args+6); } }	/* and set its whitespace arg */
+       if ( arglen > embedlen )		/* have embed "allow escape" flag */
+         embedterm = args[embedlen];	/* char immediately after "embed" */
+       if (arglen > embedlen+1) {	/* have embed,flag,white for strwstr*/
+	 isstrwstr = 1;			/* turn on strwtsr flag */
+	 strcpy(wstrwhite,args+embedlen+1); } } /*and set its whitespace arg*/
     } /* --- end-of-if(*args!='\000') --- */
   expptr = expression;			/* re-start search at beginning */
   while ( ( tokptr=(!isstrwstr?strstr(expptr,htmlsym): /* just use strtsr */
   strwstr(expptr,htmlsym,wstrwhite,&wstrlen)) ) /* or use our strwstr */
-  != NULL )				/* found another sym */
-    { int  toklen = (!isstrwstr?htmllen:wstrlen); /* length of matched sym */
+  != NULL ) {				/* found another sym */
+      int  toklen = (!isstrwstr?htmllen:wstrlen); /* length of matched sym */
       char termchar = *(tokptr+toklen),	/* char terminating html sequence */
-           prevchar = (tokptr==expptr?' ':*(tokptr-1)); /*char preceding html*/
+           prevchar = (tokptr==expptr?' ':*(tokptr-1));/*char preceding html*/
+      int  isescaped = (isthischar(prevchar,ESCAPE)?1:0); /* token escaped?*/
       int  escapelen = toklen;		/* total length of escape sequence */
+      int  isflush = 0;			/* true to flush (don't xlate) */
+      /* --- check odd/even backslashes preceding tokens --- */
+      if ( isescaped ) {		/* have one preceding backslash */
+	char *p = tokptr-1;		/* ptr to that preceding backslash */
+	while ( p != expptr ) {		/* and we may have more preceding */
+	  p--; if(!isthischar(*p,ESCAPE))break; /* but we don't, so quit */
+	  isescaped = 1-isescaped; } }	/* or flip isescaped flag if we do */
+      /* --- init with "trivial" abuff,escapelen from symbols[] table --- */
       *abuff = '\000';			/* default to empty string */
       if ( latexsym != NULL )		/* table has .latex xlation */
        if ( *latexsym != '\000' )	/* and it's not an empty string */
 	strcpy(abuff,latexsym);		/* so get local copy */
-      if ( htmlterm != NULL )		/* sequence may have terminator */
+      if ( !isembedded )		/*embedded sequences not terminated*/
+       if ( htmlterm != NULL )		/* sequence may have terminator */
 	escapelen += (isthischar(termchar,htmlterm)?1:0); /*add terminator*/
-      if ( !isembedded )		/* don't xlate embedded sequence */
-       if ( isalpha((int)termchar) )	/*we just have prefix of longer sym*/
-	{ expptr = tokptr+toklen;	/* just resume search after prefix */
+      /* --- don't xlate if we just found prefix of longer symbol, etc --- */
+      if ( !isembedded ) {		/* not embedded */
+	if ( isescaped )		/* escaped */
+	  isflush = 1;			/* set flag to flush escaped token */
+	if ( !istag && isalpha((int)termchar) ) /* followed by alpha */
+	  isflush = 1;			/* so just a prefix of longer symbol*/
+	if ( isalpha((int)(*htmlsym)) )	/* symbol starts with alpha */
+          if ( (!isspace(prevchar)&&isalpha(prevchar)) ) /* just a suffix*/
+	    isflush = 1; }		/* set flag to flush token */
+      if ( isembedded )			/* for embedded token */
+       if ( isescaped )			/* and embedded \token escaped */
+	if ( !isthischar(embedterm,ESCAPE) ) /* don't xlate escaped \token */
+	  isflush = 1;			/* set flag to flush token */
+      if ( isflush )			/* don't xlate this token */
+	{ expptr = tokptr+1;/*toklen;*/	/* just resume search after token */
 	  continue; }			/* but don't replace it */
-      if ( isembedded )			/* for embedded sequence */
-	if ( !isthischar(embedterm,ESCAPE)  /* don't xlate escaped \token */
-	&&    isthischar(prevchar,ESCAPE) ) /* and we have escaped \token */
-	  { expptr = tokptr+toklen;	/*just resume search after literal*/
-	    continue; }			/* but don't replace it */
-      if ( !isthischar(*htmlsym,ESCAPE)	/* our symbol isn't escaped */
-      &&   isalpha(*htmlsym)		/* and our symbol starts with alpha*/
-      &&   !isthischar(*htmlsym,"&") )	/* and not an &html; special char */
-       if ( tokptr != expression )	/* then if we're past beginning */
-	if ( isthischar(*(tokptr-1),ESCAPE) /*and if inline symbol escaped*/
-	||   (isalpha(*(tokptr-1))) )	/* or if suffix of longer string */
-	  { expptr = tokptr+escapelen;	/*just resume search after literal*/
-	    continue; }			/* but don't replace it */
+      /* --- check for &# prefix signalling &#nnn; --- */
+      if ( strcmp(htmlsym,"&#") == 0 ) { /* replacing special &#nnn; chars */
+       /* --- accumulate chars comprising number following &# --- */
+       char anum[32];			/* chars comprising number after &# */
+       int  inum = 0;			/* no chars accumulated yet */
+       while ( termchar != '\000' ) {	/* don't go past end-of-string */
+         if ( !isdigit((int)termchar) ) break; /* and don't go past digits */
+         if ( inum > 10 ) break;	/* some syntax error in expression */
+         anum[inum] = termchar;		/* accumulate this digit */
+         inum++;  toklen++;		/* bump field length, token length */
+         termchar = *(tokptr+toklen); }	/* char terminating html sequence */
+       anum[inum] = '\000';		/* null-terminate anum */
+       escapelen = toklen;		/* length of &#nnn; sequence */
+       if ( htmlterm != NULL )		/* sequence may have terminator */
+         escapelen += (isthischar(termchar,htmlterm)?1:0); /*add terminator*/
+       /* --- look up &#nnn in number[] table --- */
+       htmlnum = atoi(anum);		/* convert anum[] to an integer */
+       strninit(errorsym,latexsym,128);	/* init error message */
+       latexsym = errorsym;		/* init latexsym as error message */
+       strreplace(latexsym,"nnn",anum,1); /*place actual &#num in message*/
+       for ( inum=0; numbers[inum].html>=0; inum++ ) /* run thru numbers[] */
+         if ( htmlnum ==  numbers[inum].html ) { /* till we find a match */
+           latexsym = numbers[inum].latex; /* latex replacement */
+           break; }			/* no need to look any further */
+       if ( latexsym != NULL )		/* table has .latex xlation */
+        if ( *latexsym != '\000' )	/* and it's not an empty string */
+	 strcpy(abuff,latexsym);	/* so get local copy */
+       } /* --- end-of-if(strcmp(htmlsym,"&#")==0) --- */
+      /* --- substitute macro arguments --- */
       if ( nargs > 0 )			/*substitute #1,#2,... in latexsym*/
        {
        char *arg1ptr = tokptr+escapelen;/* nargs begin after macro literal */
@@ -5498,22 +6163,25 @@
 	&&   !isalgebra )		/* but not in "algebra syntax" */
 	 { strcpy(argval,optarg);	/* init with default value */
 	   if ( *expptr == '[' )	/* but user gave us [argval] */
-	    expptr = texsubexpr(expptr,argval,0,"[","]",0,0); } /*so get it*/
+	     expptr = texsubexpr(expptr,argval,0,"[","]",0,0); } /*so get it*/
 	else				/* not optional, so get {argval} */
 	 if ( *expptr != '\000' ) {	/* check that some argval provided */
-	  if ( !isalgebra )		/* only { } delims for latex macro */
-	    expptr = texsubexpr(expptr,argval,0,"{","}",0,0); /*get {argval}*/
-	  else				/*any delim for algebra syntax macro*/
-	   { expptr = texsubexpr(expptr,argval,0,aleft,aright,0,1);
+	   if ( !isalgebra )		/* only { } delims for latex macro */
+	     expptr = texsubexpr(expptr,argval,0,"{","}",0,0);/*get {argval}*/
+	   else {			/*any delim for algebra syntax macro*/
+	     expptr = texsubexpr(expptr,argval,0,aleft,aright,0,1);
 	     if ( isthischar(*argval,aleft) ) /* have delim-enclosed arg */
-	      if ( *argval != '{' )	/* and it's not { }-enclosed */
-	       { strchange(0,argval,"\\left"); /* insert opening \left, */
-		 strchange(0,argval+strlen(argval)-1,"\\right"); } }/*\right*/
-	   } /* --- end-of-if(*expptr!='\000') --- */
+	       if ( *argval != '{' ) {	/* and it's not { }-enclosed */
+	         strchange(0,argval,"\\left"); /* insert opening \left, */
+	         strchange(0,argval+strlen(argval)-1,"\\right"); } }/*\right*/
+	  } /* --- end-of-if(*expptr!='\000') --- */
+	/* --- (recursively) call mimeprep() to prep the argument --- */
+	if ( !isempty(argval) )		/* have an argument */
+	  mimeprep(argval);		/* so (recursively) prep it */
 	/* --- replace #`iarg` in macro with argval --- */
 	sprintf(argsignal,"#%d",iarg);	/* #1...#9 signals argument */
 	while ( (argsigptr=strstr(argval,argsignal)) != NULL ) /* #1...#9 */
-	 strcpy(argsigptr,argsigptr+strlen(argsignal)); /*can't be in argval*/
+	 {strsqueeze(argsigptr,strlen(argsignal));} /* can't be in argval */
 	while ( (argsigptr=strstr(abuff,argsignal)) != NULL ) /* #1...#9 */
 	 strchange(strlen(argsignal),argsigptr,argval); /*replaced by argval*/
 	} /* --- end-of-for(iarg) --- */
@@ -5521,7 +6189,7 @@
        } /* --- end-of-if(nargs>0) --- */
       strchange(escapelen,tokptr,abuff); /*replace macro or html symbol*/
       expptr = tokptr + strlen(abuff); /*resume search after macro / html*/
-    } /* --- end-of-while(tokptr!=NULL) --- */
+      } /* --- end-of-while(tokptr!=NULL) --- */
   } /* --- end-of-for(isymbol) --- */
 /* -------------------------------------------------------------------------
 convert \left( to \(  and  \right) to \),  etc.
@@ -5539,7 +6207,7 @@
   while ( (tokptr=strstr(expptr,lrstr)) != NULL ) /* found \left or \right */
     {
     if ( isthischar(*(tokptr+lrlen),braces) ) /* followed by a 1-char brace*/
-      {	strcpy(tokptr+1,tokptr+lrlen);	/* so squeeze out "left" or "right"*/
+      {	strsqueeze((tokptr+1),(lrlen-1));/*so squeeze out "left" or "right"*/
 	expptr = tokptr+2; }		/* and resume search past brace */
     else				/* may be a "long" brace like \| */
       {
@@ -5547,7 +6215,7 @@
       for(isymbol=0; (lrsym=lrfrom[isymbol]) != NULL; isymbol++)
 	{ int symlen = strlen(lrsym);	/* #chars in delim, e.g., 2 for \| */
 	  if ( memcmp(tokptr+lrlen,lrsym,symlen) == 0 ) /* found long delim*/
-	    { strcpy(tokptr+1,tokptr+lrlen+symlen-1); /* squeeze out delim */
+	    { strsqueeze((tokptr+1),(lrlen+symlen-2)); /*squeeze out delim*/
 	      *(tokptr+1) = *(lrto[isymbol]); /* last char now 1-char delim*/
 	      expptr = tokptr+2 - lrlen; /* resume search past 1-char delim*/
 	      break; }			/* no need to check more lrsym's */
@@ -5595,7 +6263,7 @@
 	arg[rightlen] = '}';		/* add closing } */
 	arg[rightlen+1] = '\000';	/* and null terminate it */
 	if ( isthischar(*arg,WHITEMATH) ) /* 1st char was mandatory space */
-	  strcpy(arg,arg+1);		/* so squeeze it out */
+	  {strsqueeze(arg,1);}		/* so squeeze it out */
 	strcat(command,arg);		/* concatanate right-arg} */
 	if (close!=NULL) strcat(command,close); /* add close delim if needed*/
 	strchange(totlen-2,leftbrace+1,command); /* {\atop} --> {\atop{}{}} */
@@ -5644,7 +6312,7 @@
 shift from left or right to accommodate replacement of its nfirst chars by to
 -------------------------------------------------------------------------- */
 if ( tolen < nfirst )			/* shift left is easy */
-  strcpy(from,from+nshift);		/* because memory doesn't overlap */
+  {strsqueeze(from,nshift);}		/* memmove avoids overlap memory */
 if ( tolen > nfirst )			/* need more room at start of from */
   { char *pfrom = from+strlen(from);	/* ptr to null terminating from */
     for ( ; pfrom>=from; pfrom-- )	/* shift all chars including null */
@@ -5784,9 +6452,9 @@
  if ( *white != '\000' ) {		/*and it's not just an empty string*/
    strcpy(whitespace,white);		/* so use caller's white spaces */
    while ( (pwhite=strchr(whitespace,'i')) != NULL ) /* have an embedded i */
-     strcpy(pwhite,pwhite+1);		/* so squeeze it out */
+     {strsqueeze(pwhite,1);}		/* so squeeze it out */
    while ( (pwhite=strchr(whitespace,'I')) != NULL ) /* have an embedded I */
-     strcpy(pwhite,pwhite+1);		/* so squeeze it out */
+     {strsqueeze(pwhite,1);}		/* so squeeze it out */
    if ( *whitespace == '\000' )		/* caller's white just had i,I */
      strcpy(whitespace,WHITEMATH); }	/* so revert back to default */
 /* -------------------------------------------------------------------------
@@ -5855,6 +6523,63 @@
 
 
 /* ==========================================================================
+ * Function:	strdetex ( s, mode )
+ * Purpose:	Removes/replaces any LaTeX math chars in s
+ *		so that s can be displayed "verbatim",
+ *		e.g., for error messages.
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I)		char * to null-terminated string
+ *				whose math chars are to be removed/replaced
+ *		mode (I)	int containing 0 to _not_ use macros (i.e.,
+ *				mimeprep won't be called afterwards),
+ *				or containing 1 to use macros that will
+ *				be expanded by a subsequent call to mimeprep.
+ * --------------------------------------------------------------------------
+ * Returns:	( char * )	ptr to "cleaned" copy of s
+ *				or "" (empty string) for any error.
+ * --------------------------------------------------------------------------
+ * Notes:     o	The returned pointer addresses a static buffer,
+ *		so don't call strdetex() again until you're finished
+ *		with output from the preceding call.
+ * ======================================================================= */
+/* --- entry point --- */
+char	*strdetex ( char *s, int mode )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+static	char sbuff[4096];		/* copy of s with no math chars */
+int	strreplace();			/* replace _ with -, etc */
+/* -------------------------------------------------------------------------
+Make a clean copy of s
+-------------------------------------------------------------------------- */
+/* --- check input --- */
+*sbuff = '\000';			/* initialize in case of error */
+if ( isempty(s) ) goto end_of_job;	/* no input */
+/* --- start with copy of s --- */
+strninit(sbuff,s,2048);			/* leave room for replacements */
+/* --- make some replacements -- we *must* replace \ { } first --- */
+strreplace(sbuff,"\\","\\backslash~\\!\\!",0);	/*change all \'s to text*/
+strreplace(sbuff,"{", "\\lbrace~\\!\\!",0);	/*change all {'s to \lbrace*/
+strreplace(sbuff,"}", "\\rbrace~\\!\\!",0);	/*change all }'s to \rbrace*/
+/* --- now our further replacements may contain \directives{args} --- */
+if( mode >= 1 ) strreplace(sbuff,"_","\\_",0);	/* change all _'s to \_ */
+else strreplace(sbuff,"_","\\underline{\\qquad}",0); /*change them to text*/
+if(0)strreplace(sbuff,"<","\\textlangle ",0);	/* change all <'s to text */
+if(0)strreplace(sbuff,">","\\textrangle ",0);	/* change all >'s to text */
+if(0)strreplace(sbuff,"$","\\textdollar ",0);	/* change all $'s to text */
+strreplace(sbuff,"$","\\$",0);			/* change all $'s to \$ */
+strreplace(sbuff,"&","\\&",0);			/* change all &'s to \& */
+strreplace(sbuff,"%","\\%",0);			/* change all %'s to \% */
+strreplace(sbuff,"#","\\#",0);			/* change all #'s to \# */
+/*strreplace(sbuff,"~","\\~",0);*/		/* change all ~'s to \~ */
+strreplace(sbuff,"^","{\\fs{+2}\\^}",0);	/* change all ^'s to \^ */
+end_of_job:
+  return ( sbuff );			/* back with clean copy of s */
+} /* --- end-of-function strdetex() --- */
+
+
+/* ==========================================================================
  * Function:	strtexchr ( char *string, char *texchr )
  * Purpose:	Find first texchr in string, but texchr must be followed
  *		by non-alpha
@@ -5960,58 +6685,524 @@
       brace = ptr;			/* { before expressn, } after cmmnd*/
   return ( brace );			/*back to caller with delim or NULL*/
 } /* --- end-of-function findbraces() --- */
-#endif /* PART2 */
 
-/* ---
- * PART3
- * ------ */
-#if !defined(PARTS) || defined(PART3)
+
 /* ==========================================================================
- * Function:	rasterize ( expression, size )
- * Purpose:	returns subraster corresponding to (a valid LaTeX) expression
- *		at font size
+ * Function:	strpspn ( char *s, char *reject, char *segment )
+ * Purpose:	finds the initial segment of s containing no chars
+ *		in reject that are outside (), [] and {} parens, e.g.,
+ *		   strpspn("abc(---)def+++","+-",segment) returns
+ *		   segment="abc(---)def" and a pointer to the first '+' in s
+ *		because the -'s are enclosed in () parens.
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I)		(char *)pointer to null-terminated string
+ *				whose initial segment is desired
+ *		reject (I)	(char *)pointer to null-terminated string
+ *				containing the "reject chars"
+ *		segment (O)	(char *)pointer returning null-terminated
+ *				string comprising the initial segment of s
+ *				that contains non-rejected chars outside
+ *				(),[],{} parens, i.e., all the chars up to
+ *				but not including the returned pointer.
+ *				(That's the entire string if no non-rejected
+ *				chars are found.)
+ * --------------------------------------------------------------------------
+ * Returns:	( char * )	pointer to first reject-char found in s
+ *				outside parens, or a pointer to the
+ *				terminating '\000' of s if there are
+ *				no reject chars in s outside all () parens.
+ * --------------------------------------------------------------------------
+ * Notes:     o	the return value is _not_ like strcspn()'s
+ *	      o	improperly nested (...[...)...] are not detected,
+ *		but are considered "balanced" after the ]
+ *	      o	if reject not found, segment returns the entire string s
+ *	      o	leading/trailing whitespace is trimmed from returned segment
+ * ======================================================================= */
+/* --- entry point --- */
+char	*strpspn ( char *s, char *reject, char *segment )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*ps = s;			/* current pointer into s */
+int	depth = 0;			/* () paren nesting level */
+int	seglen=0, maxseg=2047;		/* segment length, max allowed */
+/* -------------------------------------------------------------------------
+initialization
+-------------------------------------------------------------------------- */
+/* --- check arguments --- */
+if ( isempty(s) )			/* no input string supplied */
+  goto end_of_job;			/* no reject chars supplied */
+/* -------------------------------------------------------------------------
+find first char from s outside () parens (and outside ""'s) and in reject
+-------------------------------------------------------------------------- */
+while ( *ps != '\000' ) {		/* search till end of input string */
+  if ( isthischar(*ps,"([{") ) depth++;	/* push another paren */
+  if ( isthischar(*ps,")]}") ) depth--;	/* or pop another paren */
+  if ( depth < 1 ) {			/* we're outside all parens */
+    if ( isempty(reject) ) break;	/* no reject so break immediately */
+    if ( isthischar(*ps,reject) ) break; } /* only break on a reject char */
+  if ( segment != NULL )		/* caller gave us segment */
+    if ( seglen < maxseg )		/* don't overflow segment buffer */
+      memcpy(segment+seglen,ps,1);	/* so copy non-reject char */
+  seglen += 1;  ps += 1;		/* bump to next char */
+  } /* --- end-of-while(*ps!=0) --- */
+end_of_job:
+  if ( segment != NULL ) {		/* caller gave us segment */
+    if ( isempty(reject) ) {		/* no reject char */
+      segment[min2(seglen,maxseg)] = *ps;  seglen++; } /*closing )]} to seg*/
+    segment[min2(seglen,maxseg)] = '\000'; /* null-terminate the segment */
+    trimwhite(segment); }		/* trim leading/trailing whitespace*/
+  return ( ps );			/* back to caller */
+} /* --- end-of-function strpspn() --- */
+
+
+/* ==========================================================================
+ * Function:	isstrstr ( char *string, char *snippets, int iscase )
+ * Purpose:	determine whether any substring of 'string'
+ *		matches any of the comma-separated list of 'snippets',
+ *		ignoring case if iscase=0.
  * --------------------------------------------------------------------------
- * Arguments:	expression (I)	char * to first char of null-terminated
- *				string containing valid LaTeX expression
- *				to be rasterized
- *		size (I)	int containing 0-4 default font size
+ * Arguments:	string (I)	char * containing null-terminated
+ *				string that will be searched for
+ *				any one of the specified snippets
+ *		snippets (I)	char * containing null-terminated,
+ *				comma-separated list of snippets
+ *				to be searched for in string
+ *		iscase (I)	int containing 0 for case-insensitive
+ *				comparisons, or 1 for case-sensitive
  * --------------------------------------------------------------------------
- * Returns:	( subraster * )	ptr to subraster corresponding to expression,
- *				or NULL for any parsing error.
+ * Returns:	( int )		1 if any snippet is a substring of
+ *				string, 0 if not
  * --------------------------------------------------------------------------
- * Notes:     o	This is mimeTeX's "main" reusable entry point.  Easy to use:
- *		just call it with a LaTeX expression, and get back a bitmap
- *		of that expression.  Then do what you want with the bitmap.
+ * Notes:     o
  * ======================================================================= */
 /* --- entry point --- */
-subraster *rasterize ( char *expression, int size )
+int	isstrstr ( char *string, char *snippets, int iscase )
 {
 /* -------------------------------------------------------------------------
 Allocations and Declarations
 -------------------------------------------------------------------------- */
-char	*preamble(), pretext[512];	/* process preamble, if present */
-char	chartoken[MAXSUBXSZ+1], *texsubexpr(), /*get subexpression from expr*/
-	*subexpr = chartoken;		/* token may be parenthesized expr */
-int	isbrace();			/* check subexpr for braces */
-mathchardef *symdef, *get_symdef();	/*get mathchardef struct for symbol*/
-int	ligdef, get_ligature();		/*get symtable[] index for ligature*/
-int	natoms=0;			/* #atoms/tokens processed so far */
-int	type_raster();			/* display debugging output */
-subraster *rasterize(),			/* recurse */
-	*rastparen(),			/* handle parenthesized subexpr's */
-	*rastlimits();			/* handle sub/superscripted expr's */
-subraster *rastcat(),			/* concatanate atom subrasters */
-	*subrastcpy(),			/* copy final result if a charaster*/
-	*new_subraster();		/* new subraster for isstring mode */
-subraster *get_charsubraster(),		/* character subraster */
-	*sp=NULL, *prevsp=NULL,		/* raster for current, prev char */
-	*expraster = (subraster *)NULL;	/* raster returned to caller */
-int	delete_subraster();		/* free everything before returning*/
-int	family = fontinfo[fontnum].family; /* current font family */
-int	isleftscript = 0,		/* true if left-hand term scripted */
-	wasscripted = 0,		/* true if preceding token scripted*/
-	wasdelimscript = 0;		/* true if preceding delim scripted*/
-/*int	pixsz = 1;*/			/*default #bits per pixel, 1=bitmap*/
+int	status = 0;			/*1 if any snippet found in string*/
+char	snip[256], *snipptr = snippets,	/* munge through each snippet */
+	delim = ',', *delimptr = NULL;	/* separated by delim's */
+char	stringcp[4096], *cp = stringcp;	/*maybe lowercased copy of string*/
+/* -------------------------------------------------------------------------
+initialization
+-------------------------------------------------------------------------- */
+/* --- arg check --- */
+if ( string==NULL || snippets==NULL ) goto end_of_job; /* missing arg */
+if ( *string=='\000' || *snippets=='\000' ) goto end_of_job; /* empty arg */
+/* --- copy string and lowercase it if case-insensitive --- */
+strninit(stringcp,string,4064);		/* local copy of string */
+if ( !iscase )				/* want case-insensitive compares */
+  for ( cp=stringcp; *cp != '\000'; cp++ ) /* so for each string char */
+    if ( isupper(*cp) ) *cp = tolower(*cp); /*lowercase any uppercase chars*/
+/* -------------------------------------------------------------------------
+extract each snippet and see if it's a substring of string
+-------------------------------------------------------------------------- */
+while ( snipptr != NULL )		/* while we still have snippets */
+  {
+  /* --- extract next snippet --- */
+  if ( (delimptr = strchr(snipptr,delim)) /* locate next comma delim */
+  ==   NULL )				/*not found following last snippet*/
+    { strninit(snip,snipptr,255);	/* local copy of last snippet */
+      snipptr = NULL; }			/* signal end-of-string */
+  else					/* snippet ends just before delim */
+    { int sniplen = (int)(delimptr-snipptr) - 1;  /* #chars in snippet */
+      memcpy(snip,snipptr,sniplen);	/* local copy of snippet chars */
+      snip[sniplen] = '\000';		/* null-terminated snippet */
+      snipptr = delimptr + 1; }		/* next snippet starts after delim */
+  /* --- lowercase snippet if case-insensitive --- */
+  if ( !iscase )			/* want case-insensitive compares */
+    for ( cp=snip; *cp != '\000'; cp++ ) /* so for each snippet char */
+      if ( isupper(*cp) ) *cp=tolower(*cp); /*lowercase any uppercase chars*/
+  /* --- check if snippet in string --- */
+  if ( strstr(stringcp,snip) != NULL )	/* found snippet in string */
+    { status = 1;			/* so reset return status */
+      break; }				/* no need to check any further */
+  } /* --- end-of-while(*snipptr!=0) --- */
+end_of_job: return ( status );		/*1 if snippet found in list, else 0*/
+} /* --- end-of-function isstrstr() --- */
+
+
+/* ==========================================================================
+ * Function:	isnumeric ( s )
+ * Purpose:	determine if s is an integer
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I)		(char *)pointer to null-terminated string
+ *				that's checked for a leading + or -
+ *				followed by digits
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		1 if s is numeric, 0 if it is not
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+int	isnumeric ( char *s )
+{
+/* -------------------------------------------------------------------------
+determine whether s is an integer
+-------------------------------------------------------------------------- */
+int	status = 0;			/* return 0 if not numeric, 1 if is*/
+char	*p = s;				/* pointer into s */
+if ( isempty(s) ) goto end_of_job;	/* missing arg or empty string */
+skipwhite(p);				/*check for leading +or- after space*/
+if ( *p=='+' || *p=='-' ) p++;		/* skip leading + or - */
+for ( ; *p != '\000'; p++ ) {		/* check rest of s for digits */
+  if ( isdigit(*p) ) continue;		/* still got uninterrupted digits */
+  if ( !isthischar(*p,WHITESPACE) ) goto end_of_job; /* non-numeric char */
+  skipwhite(p);				/* skip all subsequent whitespace */
+  if ( *p == '\000' ) break;		/* trailing whitespace okay */
+  goto end_of_job;			/* embedded whitespace non-numeric */
+  } /* --- end-of-for(*p) --- */
+status = 1;				/* numeric after checks succeeded */
+end_of_job:
+  return ( status );			/*back to caller with 1=string, 0=no*/
+} /* --- end-of-function isnumeric() --- */
+
+
+/* ==========================================================================
+ * Function:	evalterm ( STORE *store, char *term )
+ * Purpose:	evaluates a term
+ * --------------------------------------------------------------------------
+ * Arguments:	store (I/O)	STORE * containing environment
+ *				in which term is to be evaluated
+ *		term (I)	char * containing null-terminated string
+ *				with a term like "3" or "a" or "a+3"
+ *				whose value is to be determined
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		value of term,
+ *				or NOVALUE for any error
+ * --------------------------------------------------------------------------
+ * Notes:     o	Also evaluates index?a:b:c:etc, returning a if index<=0,
+ *		b if index=1, etc, and the last value if index is too large.
+ *		Each a:b:c:etc can be another expression, including another
+ *		(index?a:b:c:etc) which must be enclosed in parentheses.
+ * ======================================================================= */
+/* --- entry point --- */
+int	evalterm ( STORE *store, char *term )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+int	termval = 0;			/* term value returned to caller */
+char	token[2048] = "\000",		/* copy term */
+	*delim = NULL;			/* delim '(' or '?' in token */
+/*int	evalwff(),*/			/* recurse to evaluate terms */
+/*	evalfunc();*/			/* evaluate function(arg1,arg2,...)*/
+char	*strpspn();			/* span delims */
+int	getstore();			/* lookup variables */
+int	isnumeric();			/* numeric=constant, else variable */
+static	int evaltermdepth = 0;		/* recursion depth */
+int	novalue = (-89123456);		/* dummy (for now) error signal */
+/* -------------------------------------------------------------------------
+Initialization
+-------------------------------------------------------------------------- */
+if ( ++evaltermdepth > 99 ) goto end_of_job; /*probably recursing forever*/
+if ( store==NULL || isempty(term) ) goto end_of_job; /*check for missing arg*/
+skipwhite(term);			/* skip any leading whitespace */
+/* -------------------------------------------------------------------------
+First look for conditional of the form term?term:term:...
+-------------------------------------------------------------------------- */
+/* ---left-hand part of conditional is chars preceding "?" outside ()'s--- */
+delim = strpspn(term,"?",token);	/* chars preceding ? outside () */
+if ( *delim != '\000' ) {		/* found conditional expression */
+  int ncolons = 0;			/* #colons we've found so far */
+  if ( *token != '\000' )		/* evaluate "index" value on left */
+    if ( (termval=evalterm(store,token)) /* evaluate left-hand term */
+    == novalue ) goto end_of_job;	/* return error if failed */
+  while ( *delim != '\000' ) {		/* still have chars in term */
+    delim++; *token='\000';		/* initialize for next "value:" */
+    if ( *delim == '\000' ) break;	/* no more values */
+    delim = strpspn(delim,":",token);	/* chars preceding : outside () */
+    if ( ncolons++ >= termval ) break;	/* have corresponding term */
+    } /* --- end-of-while(*delim!='\000')) --- */
+  if ( *token != '\000' )		/* have x:x:value:x:x on right */
+    termval=evalterm(store,token);	/* so evaluate it */
+  goto end_of_job;			/* return result to caller */
+  } /* --- end-of-if(*delim!='\000')) --- */
+/* -------------------------------------------------------------------------
+evaluate a+b recursively
+-------------------------------------------------------------------------- */
+/* --- left-hand part of term is chars preceding "/+-*%" outside ()'s --- */
+term = strpspn(term,"/+-*%",token);	/* chars preceding /+-*% outside ()*/
+/* --- evaluate a+b, a-b, etc --- */
+if ( *term != '\000' ) {		/* found arithmetic operation */
+  int leftval=0, rightval=0;		/* init leftval for unary +a or -a */
+  if ( *token != '\000' )		/* or eval for binary a+b or a-b */
+    if ( (leftval=evalterm(store,token)) /* evaluate left-hand term */
+    == novalue ) goto end_of_job;	/* return error if failed */
+  if ( (rightval=evalterm(store,term+1)) /* evaluate right-hand term */
+  == novalue ) goto end_of_job;		/* return error if failed */
+  switch ( *term ) {			/* perform requested arithmetic */
+    default: break;			/* internal error */
+    case '+': termval = leftval+rightval;  break;  /* addition */
+    case '-': termval = leftval-rightval;  break;  /* subtraction */
+    case '*': termval = leftval*rightval;  break;  /* multiplication */
+    case '/': if ( rightval != 0 )	/* guard against divide by zero */
+                termval = leftval/rightval;  break; /* integer division */
+    case '%': if ( rightval != 0 )	/* guard against divide by zero */
+                termval = leftval%rightval;  break; /*left modulo right */
+    } /* --- end-of-switch(*relation) --- */
+  goto end_of_job;			/* return result to caller */
+  } /* --- end-of-if(*term!='\000')) --- */
+/* -------------------------------------------------------------------------
+check for parenthesized expression or term of the form function(arg1,arg2,...)
+-------------------------------------------------------------------------- */
+if ( (delim = strchr(token,'(')) != NULL ) { /* token contains a ( */
+  /* --- strip trailing paren (if there hopefully is one) --- */
+  int  toklen = strlen(token);		/* total #chars in token */
+  if ( token[toklen-1] == ')' )		/* found matching ) at end of token*/
+    token[--toklen] = '\000';		/* remove trailing ) */
+  /* --- handle parenthesized subexpression --- */
+  if ( *token == '(' ) {		/* have parenthesized expression */
+    strsqueeze(token,1);		/* so squeeze out leading ( */
+    /* --- evaluate edited term --- */
+    trimwhite(token);			/* trim leading/trailing whitespace*/
+    termval = evalterm(store,token); }	/* evaluate token recursively */
+  /* --- handle function(arg1,arg2,...) --- */
+  else {				/* have function(arg1,arg2,...) */
+    *delim = '\000';			/* separate function name and args */
+    /*termval = evalfunc(store,token,delim+1);*/ } /* evaluate function */
+  goto end_of_job; }			/* return result to caller */
+/* -------------------------------------------------------------------------
+evaluate constants directly, or recursively evaluate variables, etc
+-------------------------------------------------------------------------- */
+if ( *token != '\000' ) {		/* empty string */
+  if ( isnumeric(token) )		/* have a constant */
+    termval = atoi(token);		/* convert ascii-to-int */
+  else {				/* variable or "stored proposition"*/
+    termval = getstore(store,token); }	/* look up token */
+  } /* --- end-of-if(*token!=0) --- */
+/* -------------------------------------------------------------------------
+back to caller with truth value of proposition
+-------------------------------------------------------------------------- */
+end_of_job:
+  /* --- back to caller --- */
+  if ( evaltermdepth > 0 ) evaltermdepth--;  /* pop recursion depth */
+  return ( termval );			/* back to caller with value */
+} /* --- end-of-function evalterm() --- */
+
+
+/* ==========================================================================
+ * Function:	getstore ( store, identifier )
+ * Purpose:	finds identifier in store and returns corresponding value
+ * --------------------------------------------------------------------------
+ * Arguments:	store (I)	(STORE *)pointer to store containing
+ *				the desired identifier
+ *		identifier (I)	(char *)pointer to null-terminated string
+ *				containing the identifier whose value
+ *				is to be returned
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		identifier's corresponding value,
+ *				or 0 if identifier not found (or any error)
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+int	getstore ( STORE *store, char *identifier )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+int	value = 0;		/* store[istore].value for identifier */
+int	istore=0;		/* store[] index containing identifier */
+char	seek[512], hide[512];	/* identifier arg, identifier in store */
+/* --- first check args --- */
+if ( store==NULL || isempty(identifier)) goto end_of_job; /* missing arg */
+strninit(seek,identifier,500);	/* local copy of caller's identifier */
+trimwhite(seek);		/* remove leading/trailing whitespace */
+/* --- loop over store --- */
+for ( istore=0; istore<MAXSTORE; istore++ ) { /* until end-of-table */
+  char *idstore = store[istore].identifier; /* ptr to identifier in store */
+  if ( isempty(idstore) )	/* empty id signals eot */
+    break;			/* de-reference any default/error value */
+  strninit(hide,idstore,500);	/* local copy of store[] identifier */
+  trimwhite(hide);		/* remove leading/trailing whitespace */
+  if ( !strcmp(hide,seek) )	/* found match */
+    break;			/* de-reference corresponding value */
+  } /* --- end-of-for(istore) --- */
+if ( store[istore].value != NULL ) /* address of int supplied */
+  value = *(store[istore].value);  /* return de-referenced int */
+end_of_job:
+  return ( value );			/* store->values[istore] or NULL */
+} /* --- end-of-function getstore() --- */
+
+
+/* ==========================================================================
+ * Functions:	int  unescape_url ( char *url, int isescape )
+ *		char x2c ( char *what )
+ * Purpose:	unescape_url replaces 3-character sequences %xx in url
+ *		    with the single character represented by hex xx.
+ *		x2c returns the single character represented by hex xx
+ *		    passed as a 2-character sequence in what.
+ * --------------------------------------------------------------------------
+ * Arguments:	url (I)		char * containing null-terminated
+ *				string with embedded %xx sequences
+ *				to be converted.
+ *		isescape (I)	int containing 1 to _not_ unescape
+ *				\% sequences (0 would be NCSA default)
+ *		what (I)	char * whose first 2 characters are
+ *				interpreted as ascii representations
+ *				of hex digits.
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		unescape_url always returns 0.
+ *		( char )	x2c returns the single char
+ *				corresponding to hex xx passed in what.
+ * --------------------------------------------------------------------------
+ * Notes:     o	These two functions were taken verbatim from util.c in
+ *   ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/cgi/ncsa-default.tar.Z
+ *	      o	Not quite "verbatim" -- I added the "isescape logic" 4-Dec-03
+ *		so unescape_url() can be safely applied to input which may or
+ *		may not have been url-encoded.  (Note: currently, all calls
+ *		to unescape_url() pass iescape=0, so it's not used.)
+ *	      o	Added +++'s to blank xlation on 24-Sep-06
+ *	      o	Added ^M,^F,etc to blank xlation 0n 01-Oct-06
+ * ======================================================================= */
+/* --- entry point --- */
+int unescape_url(char *url, int isescape) {
+    int x=0,y=0,prevescape=0,gotescape=0;
+    int xlateplus = (isplusblank==1?1:0); /* true to xlate plus to blank */
+    int strreplace();			/* replace + with blank, if needed */
+    char x2c();
+    static char *hex="0123456789ABCDEFabcdef";
+    /* ---
+     * xlate ctrl chars to blanks
+     * -------------------------- */
+    if ( 1 ) {				/* xlate ctrl chars to blanks */
+      char *ctrlchars = "\n\t\v\b\r\f\a\015";
+      int  seglen = strspn(url,ctrlchars); /*initial segment with ctrlchars*/
+      int  urllen = strlen(url);	/* total length of url string */
+      /* --- first, entirely remove ctrlchars from beginning and end --- */
+      if ( seglen > 0 ) {		/*have ctrlchars at start of string*/
+	strsqueeze(url,seglen);		/* squeeze out initial ctrlchars */
+	urllen -= seglen; }		/* string is now shorter */
+      while ( --urllen >= 0 )		/* now remove ctrlchars from end */
+	if ( isthischar(url[urllen],ctrlchars) ) /* ctrlchar at end */
+	  url[urllen] = '\000';		/* re-terminate string before it */
+	else break;			/* or we're done */
+      urllen++;				/* length of url string */
+      /* --- now, replace interior ctrlchars with ~ blanks --- */
+      while ( (seglen=strcspn(url,ctrlchars)) < urllen ) /*found a ctrlchar*/
+	url[seglen] = '~';		/* replace ctrlchar with ~ */
+      } /* --- end-of-if(1) --- */
+    /* ---
+     * xlate +'s to blanks if requested or if deemed necessary
+     * ------------------------------------------------------- */
+    if ( isplusblank == (-1) ) {	/*determine whether or not to xlate*/
+      char *searchfor[] = { " ","%20", "%2B","%2b", "+++","++",
+	"+=+","+-+", NULL };
+      int  isearch = 0,			/* searchfor[] index */
+	   nfound[11] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; /*#occurrences*/
+      /* --- locate occurrences of searchfor[] strings in url --- */
+      for ( isearch=0; searchfor[isearch] != NULL; isearch++ ) {
+	char *psearch = url;		/* start search at beginning */
+	nfound[isearch] = 0;		/* init #occurrences count */
+	while ( (psearch=strstr(psearch,searchfor[isearch])) != NULL ) {
+	  nfound[isearch] += 1;		/* count another occurrence */
+	  psearch += strlen(searchfor[isearch]); } /*resume search after it*/
+	} /* --- end-of-for(isearch) --- */
+      /* --- apply some common-sense logic --- */
+      if ( nfound[0] + nfound[1] > 0 )	/* we have actual " "s or "%20"s */
+	isplusblank = xlateplus = 0;	/* so +++'s aren't blanks */
+      if ( nfound[2] + nfound[3] > 0 ) { /* we have "%2B" for +++'s */
+        if ( isplusblank != 0 )		/* and haven't disabled xlation */
+	  isplusblank = xlateplus = 1;	/* so +++'s are blanks */
+	else				/* we have _both_ "%20" and "%2b" */
+	  xlateplus = 0; }		/* tough call */
+      if ( nfound[4] + nfound[5] > 0	/* we have multiple ++'s */
+      ||   nfound[6] + nfound[7] > 0 )	/* or we have a +=+ or +-+ */
+	if ( isplusblank != 0 )		/* and haven't disabled xlation */
+	  xlateplus = 1;		/* so xlate +++'s to blanks */
+      } /* --- end-of-if(isplusblank==-1) --- */
+    if ( xlateplus > 0 ) {		/* want +'s xlated to blanks */
+      char *xlateto[] = { ""," "," "," + "," "," "," "," "," " };
+      while ( xlateplus > 0 ) {		/* still have +++'s to xlate */
+	char plusses[99] = "++++++++++++++++++++"; /* longest +++ string */
+	plusses[xlateplus] = '\000';	/* null-terminate +++'s */
+	strreplace(url,plusses,xlateto[xlateplus],0); /* xlate +++'s */
+	xlateplus--;			/* next shorter +++ string */
+	} /* --- end-of-while(xlateplus>0) --- */
+      } /* --- end-of-if(xlateplus) --- */
+    isplusblank = 0;			/* don't iterate this xlation */
+    /* ---
+     * xlate %nn to corresponding char
+     * ------------------------------- */
+    for(;url[y];++x,++y) {
+	gotescape = prevescape;
+	prevescape = (url[x]=='\\');
+	if((url[x] = url[y]) == '%')
+	 if(!isescape || !gotescape)
+	  if(isthischar(url[y+1],hex)
+	  && isthischar(url[y+2],hex))
+	    { url[x] = x2c(&url[y+1]);
+	      y+=2; }
+    }
+    url[x] = '\0';
+    return 0;
+} /* --- end-of-function unescape_url() --- */
+/* --- entry point --- */
+char x2c(char *what) {
+    char digit;
+    digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
+    digit *= 16;
+    digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
+    return(digit);
+} /* --- end-of-function x2c() --- */
+#endif /* PART2 */
+
+/* ---
+ * PART3
+ * ------ */
+#if !defined(PARTS) || defined(PART3)
+/* ==========================================================================
+ * Function:	rasterize ( expression, size )
+ * Purpose:	returns subraster corresponding to (a valid LaTeX) expression
+ *		at font size
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I)	char * to first char of null-terminated
+ *				string containing valid LaTeX expression
+ *				to be rasterized
+ *		size (I)	int containing 0-4 default font size
+ * --------------------------------------------------------------------------
+ * Returns:	( subraster * )	ptr to subraster corresponding to expression,
+ *				or NULL for any parsing error.
+ * --------------------------------------------------------------------------
+ * Notes:     o	This is mimeTeX's "main" reusable entry point.  Easy to use:
+ *		just call it with a LaTeX expression, and get back a bitmap
+ *		of that expression.  Then do what you want with the bitmap.
+ * ======================================================================= */
+/* --- entry point --- */
+subraster *rasterize ( char *expression, int size )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*preamble(), pretext[512];	/* process preamble, if present */
+char	chartoken[MAXSUBXSZ+1], *texsubexpr(), /*get subexpression from expr*/
+	*subexpr = chartoken;		/* token may be parenthesized expr */
+int	isbrace();			/* check subexpr for braces */
+mathchardef *symdef, *get_symdef();	/*get mathchardef struct for symbol*/
+int	ligdef, get_ligature();		/*get symtable[] index for ligature*/
+int	natoms=0;			/* #atoms/tokens processed so far */
+int	type_raster();			/* display debugging output */
+subraster *rasterize(),			/* recurse */
+	*rastparen(),			/* handle parenthesized subexpr's */
+	*rastlimits();			/* handle sub/superscripted expr's */
+subraster *rastcat(),			/* concatanate atom subrasters */
+	*subrastcpy(),			/* copy final result if a charaster*/
+	*new_subraster();		/* new subraster for isstring mode */
+subraster *get_charsubraster(),		/* character subraster */
+	*sp=NULL, *prevsp=NULL,		/* raster for current, prev char */
+	*expraster = (subraster *)NULL;	/* raster returned to caller */
+int	delete_subraster();		/* free everything before returning*/
+int	family = fontinfo[fontnum].family; /* current font family */
+int	isleftscript = 0,		/* true if left-hand term scripted */
+	wasscripted = 0,		/* true if preceding token scripted*/
+	wasdelimscript = 0;		/* true if preceding delim scripted*/
+/*int	pixsz = 1;*/			/*default #bits per pixel, 1=bitmap*/
+char	*strdetex();			/* detex token for error message */
 /* --- global values saved/restored at each recursive iteration --- */
 int	wasstring = isstring,		/* initial isstring mode flag */
 	wasdisplaystyle = isdisplaystyle, /*initial displaystyle mode flag*/
@@ -6037,6 +7228,7 @@
 if(1)fraccenterline = NOVALUE;		/* reset \frac baseline signal */
 /* shrinkfactor = shrinkfactors[max2(0,min2(size,LARGESTSIZE))];*/ /*set sf*/
 shrinkfactor = shrinkfactors[max2(0,min2(size,16))]; /* have 17 sf's */
+rastlift = 0;				/* reset global rastraise() lift */
 if ( msgfp!=NULL && msglevel >= 9 ) {	/*display expression for debugging*/
  fprintf(msgfp,
  "rasterize> recursion#%d, size=%d,\n\texpression=\"%s\"\n",
@@ -6126,9 +7318,9 @@
         fontnum = 0;			/* reset from \mathbb, etc */
         if ( isthischar(*chartoken,ESCAPE) ) /* we got unrecognized \escape*/
 	 { /* --- so display literal {\rm~[\backslash~chartoken?]} ---  */
-	   strcpy(literal,"{\\rm~[\\backslash~"); /* init token */
-	   strcat(literal,chartoken+1);	/* add chars following leading \ */
-	   strcat(literal,"?]}"); }	/* add closing brace */
+	   strcpy(literal,"{\\rm~[");	/* init error message token */
+	   strcat(literal,strdetex(chartoken,0)); /* detex the token */
+	   strcat(literal,"?]}"); }	/* add closing ? and brace */
         sp = rasterize(literal,size-1);	/* rasterize literal token */
         fontnum = oldfontnum;		/* reset font family */
         if ( sp == (subraster *)NULL ) continue; }/*flush if rasterize fails*/
@@ -6227,6 +7419,7 @@
   leftexpression = oldleftexpression;	/* leftexpression reset */
   leftsymdef = oldleftsymdef;		/* leftsymdef reset */
   unitlength = oldunitlength;		/* unitlength reset */
+  iunitlength = (int)(unitlength+0.5);	/* iunitlength reset */
   recurlevel--;				/* unwind one recursion level */
   /* --- return final subraster to caller --- */
   return ( expraster );
@@ -6241,7 +7434,7 @@
  * Arguments:	subexpr (I)	char **  to first char of null-terminated
  *				string beginning with a LEFTBRACES
  *				to be rasterized
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding leading left{
  *				(unused, but passed for consistency)
@@ -6285,7 +7478,7 @@
 /* --- get expression *without* enclosing parens --- */
 strcpy(noparens,expression);		/* get local copy of expression */
 noparens[explen-(1+isescape)] = '\000';	/* null-terminate before right} */
-strcpy(noparens,noparens+(1+isescape));	/* and then squeeze out left{ */
+strsqueeze(noparens,(1+isescape));	/* and then squeeze out left{ */
 /* --- rasterize it --- */
 if ( (sp = rasterize(noparens,size))	/*rasterize "interior" of expression*/
 ==   NULL ) goto end_of_job;		/* quit if failed */
@@ -6389,8 +7582,7 @@
 if ( isstring ) goto end_of_job;	/* no scripts for ascii string */
 /* --- check for \limits or \nolimits --- */
 skipwhite(exprptr);			/* skip white space before \limits */
-if ( exprptr != NULL )			/* expression ptr supplied */
- if ( *exprptr != '\000' )		/* something in expression */
+if ( !isempty(exprptr) )		/* non-empty expression supplied */
   exprptr = texchar(exprptr,limtoken);	/* retrieve next token */
 if ( *limtoken != '\000' )		/* have token */
  if ( (toklen=strlen(limtoken)) >= 3 )	/* which may be \[no]limits */
@@ -6474,7 +7666,7 @@
  *				string beginning with a super/subscript,
  *				and returning ptr immediately following
  *				last script character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding leading script
  *				(scripts will be placed relative to base)
@@ -6627,7 +7819,7 @@
  *				rasterized along with its super/subscripts,
  *				and returning ptr immediately following last
  *				character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		sp (I)		subraster *  to display math operator
  *				to which super/subscripts will be added
  * --------------------------------------------------------------------------
@@ -6701,7 +7893,7 @@
  * Arguments:	expression (I)	char **  to first char of null-terminated
  *				string beginning with a \left
  *				to be rasterized
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding leading left{
  *				(unused, but passed for consistency)
@@ -6858,7 +8050,7 @@
   if ( strstr(ldelim,opdelims[idelim]) != NULL ) /* found operator */
     { margin += opmargin;		/* extra height for operator */
       if ( *ldelim == '\\' )		/* have leading escape */
-	strcpy(ldelim,ldelim+1);	/* squeeze it out */
+	{strsqueeze(ldelim,1);}		/* squeeze it out */
       break; }				/* no need to check rest of table */
 /* --- xlate delimiters and check for textstyle --- */
 for ( idelim=1; idelim<=2; idelim++ ) {	/* 1=left, 2=right */
@@ -6950,7 +8142,7 @@
  * Arguments:	expression (I)	char **  to first char of null-terminated
  *				string beginning with a \right
  *				to be rasterized
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding leading left{
  *				(unused, but passed for consistency)
@@ -6989,7 +8181,7 @@
  *				string immediately following \middle to be
  *				rasterized, and returning ptr immediately
  *				to terminating null.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \middle
  *				(unused, but passed for consistency)
@@ -7169,8 +8361,10 @@
     fonttable = (issupersampling?ssfonttable:aafonttable); /* set fonts */
     break;
   case ISFONTSIZE:			/* set fontsize */
+  case ISMAGSTEP:			/* set magstep */
   case ISDISPLAYSIZE:			/* set displaysize */
   case ISCONTENTTYPE:			/*enable/disable content-type lines*/
+  case ISCONTENTCACHED:			/* write content-type to cache file*/
   case ISSHRINK:			/* set shrinkfactor */
   case ISAAALGORITHM:			/* set anti-aliasing algorithm */
   case ISWEIGHT:			/* set font weight */
@@ -7190,7 +8384,7 @@
 	  if ( !isthischar(*valuearg,"?") ) /*leading ? is query for value*/
 	   { isdelta = isthischar(*valuearg,"+-"); /* leading + or - */
 	     if ( memcmp(valuearg,"--",2) == 0 ) /* leading -- signals...*/
-	       { isdelta=0; strcpy(valuearg,valuearg+1); } /* ...not delta */
+	       { isdelta=0; strsqueeze(valuearg,1); } /* ...not delta */
 	     switch ( flag ) {		/* convert to double or int */
 	      default: argvalue = atoi(valuearg); break; /* convert to int */
 	      case ISGAMMA:
@@ -7238,6 +8432,12 @@
 	     { *expression = (char *)(*expression-valuelen); /*back up buff*/
 	       memcpy(*expression,valuearg,valuelen); } } /*and put in size*/
 	break;
+      case ISMAGSTEP:			/* set magstep */
+	if ( argvalue != NOVALUE ) {	/* got a value */
+	  int largestmag = 10;
+	  magstep = (isdelta? magstep+argvalue : argvalue);
+	  magstep = max2(1,min2(magstep,largestmag)); }
+	break;
       case ISDISPLAYSIZE:		/* set displaysize */
 	if ( argvalue != NOVALUE )	/* got a value */
 	    displaysize = (isdelta? displaysize+argvalue : argvalue);
@@ -7246,6 +8446,10 @@
 	if ( argvalue != NOVALUE )	/* got a value */
 	    isemitcontenttype = (argvalue>0?1:0);
 	break;
+      case ISCONTENTCACHED:		/* write content-type to cache file*/
+	if ( argvalue != NOVALUE )	/* got a value */
+	    iscachecontenttype = (argvalue>0?1:0);
+	break;
       case ISSMASH:			/* set (minimum) "smash" margin */
 	if ( argvalue != NOVALUE )	/* got a value */
 	  { smashmargin = argvalue;	/* set value */
@@ -7318,6 +8522,7 @@
       {	*expression = texsubexpr(*expression,valuearg,1023,"{","}",0,0);
 	if ( *valuearg != '\000' )	/* guard against empty string */
 	  unitlength = strtod(valuearg,NULL); } /* convert to double */
+    iunitlength = (int)(unitlength+0.5); /* iunitlength reset */
     break;
   } /* --- end-of-switch(flag) --- */
 return ( NULL );			/*just set value, nothing to display*/
@@ -7363,6 +8568,7 @@
 int	pixsz = 1;			/*default #bits per pixel, 1=bitmap*/
 int	isstar=0, minspace=0;		/* defaults for negative hspace */
 char	*texsubexpr(), widtharg[256];	/* parse for optional {width} */
+int	evalterm(), evalue=0;		/* evaluate [args], {args} */
 subraster *rasterize(), *rightsp=NULL;	/*rasterize right half of expression*/
 subraster *rastcat();			/* cat rightsp after \hfill */
 /* -------------------------------------------------------------------------
@@ -7380,14 +8586,15 @@
   int minwidth = (isfill||isheight?1:-600); /* \hspace allows negative */
   /* --- check if optional [minspace] given for negative \hspace --- */
   if ( *(*expression) == '[' ) {	/* [minspace] if leading char is [ */
-    /* ---parse [minspace], bump expression past it, interpret as double--- */
+    /* ---parse [minspace], bump expression past it, evaluate expression--- */
     *expression = texsubexpr(*expression,widtharg,127,"[","]",0,0);
-    if ( *widtharg != '\000' )		/* got [minspace] */
-      minspace = iround(unitlength*strtod(widtharg,NULL)); /* in pixels */
+    if ( !isempty(widtharg) ) {		/* got [minspace] */
+      evalue = evalterm(mimestore,widtharg); /* evaluate widtharg expr */
+      minspace = iround(unitlength*((double)evalue)); } /* in pixels */
     } /* --- end-of-if(*(*expression)=='[') --- */
   width = 1;				/* set default width */
   *expression = texsubexpr(*expression,widtharg,255,"{","}",0,0);
-  dwidth = unitlength*strtod(widtharg,NULL); /* scaled width value */
+  dwidth = unitlength*((double)evalterm(mimestore,widtharg)); /* scaled */
   widthval =				/* convert {width} to integer */
 		(int)( dwidth + (dwidth>=0.0?0.5:(-0.5)) );
   if ( widthval>=minwidth && widthval<=600 ) /* sanity check */
@@ -7466,7 +8673,7 @@
  *				string immediately following \\ to be
  *				rasterized, and returning ptr immediately
  *				to terminating null.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \\
  *				(unused, but passed for consistency)
@@ -7490,7 +8697,7 @@
 subraster *rastack(), *newlsp=NULL;	/* subraster for both lines */
 subraster *rasterize(), *rightsp=NULL;	/*rasterize right half of expression*/
 char	*texsubexpr(), spacexpr[129]/*, *xptr=spacexpr*/; /*for \\[vspace]*/
-double	strtod();			/* convert ascii param to double */
+int	evalterm(), evalue=0;		/* evaluate [arg], {arg} */
 int	vspace = size+2;		/* #pixels between lines */
 /* -------------------------------------------------------------------------
 obtain optional [vspace] argument immediately following \\ command
@@ -7501,7 +8708,8 @@
   /* ---parse [vspace] and bump expression past it, interpret as double--- */
   *expression = texsubexpr(*expression,spacexpr,127,"[","]",0,0);
   if ( *spacexpr == '\000' ) goto end_of_job; /* couldn't get [vspace] */
-  vspace = iround(unitlength*strtod(spacexpr,NULL)); /* vspace in pixels */
+  evalue = evalterm(mimestore,spacexpr); /* evaluate [space] arg */
+  vspace = iround(unitlength*((double)evalue)); /* vspace in pixels */
   } /* --- end-of-if(*(*expression)=='[') --- */
 if ( leftexpression == NULL ) goto end_of_job; /* nothing preceding \\ */
 /* -------------------------------------------------------------------------
@@ -7567,7 +8775,7 @@
 subraster *rasterize(), *subsp=NULL,*supsp=NULL; /*rasterize limits*/
 subraster *new_subraster(), *rastack(), *spacesp=NULL; /*space below arrow*/
 int	delete_subraster();		/*free work areas in case of error*/
-double	strtod();			/* convert ascii [width] to value */
+int	evalterm();			/* evaluate [arg], {arg} */
 int	width = 10 + 8*size,  height;	/* width, height for \longxxxarrow */
 int	islimits = 1;			/*true to handle limits internally*/
 int	limsize = size-1;		/* font size for limits */
@@ -7581,7 +8789,7 @@
   { int widthval;			/* test [width] before using it */
     *expression = texsubexpr(*expression,widtharg,255,"[","]",0,0);
     widthval =				/* convert [width] to integer */
-		(int)((unitlength*strtod(widtharg,NULL))+0.5);
+	(int)((unitlength*((double)evalterm(mimestore,widtharg)))+0.5);
     if ( widthval>=2 && widthval<=600 )	/* sanity check */
       width = widthval; }		/* replace deafault width */
 /* --- now parse for limits, and bump expression past it(them) --- */
@@ -7661,7 +8869,7 @@
 char	*texscripts(), sub[1024],super[1024]; /* and _^limits after [width]*/
 subraster *rasterize(), *subsp=NULL,*supsp=NULL; /*rasterize limits*/
 subraster *rastcat();			/* cat superscript left, sub right */
-double	strtod();			/* convert ascii [height] to value */
+int	evalterm();			/* evaluate [arg], {arg} */
 int	height = 8 + 2*size,  width;	/* height, width for \longxxxarrow */
 int	islimits = 1;			/*true to handle limits internally*/
 int	limsize = size-1;		/* font size for limits */
@@ -7674,7 +8882,7 @@
   { int heightval;			/* test height before using it */
     *expression = texsubexpr(*expression,heightarg,255,"[","]",0,0);
     heightval =				/* convert [height] to integer */
-		(int)((unitlength*strtod(heightarg,NULL))+0.5);
+	(int)((unitlength*((double)evalterm(mimestore,heightarg)))+0.5);
     if ( heightval>=2 && heightval<=600 ) /* sanity check */
       height = heightval; }		/* replace deafault height */
 /* --- now parse for limits, and bump expression past it(them) --- */
@@ -7728,7 +8936,7 @@
  *				string immediately following overlay \cmd to
  *				be rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding overlay \cmd
  *				(unused, but passed for consistency)
@@ -7757,7 +8965,9 @@
 subraster *rasterize(), *sp1=NULL, *sp2=NULL, /*rasterize 1=base, 2=overlay*/
 	*new_subraster();		/*explicitly alloc sp2 if necessary*/
 subraster *rastcompose(), *overlaysp=NULL; /*subraster for composite overlay*/
+int	isalign = 0;			/* true to align baselines */
 int	line_raster();			/* draw diagonal for \Not */
+int	evalterm();			/* evaluate [arg], {arg} */
 /* -------------------------------------------------------------------------
 Obtain base, and maybe overlay, and rasterize them
 -------------------------------------------------------------------------- */
@@ -7766,32 +8976,41 @@
  if ( *(*expression) == '[' )		/*check for []-enclosed optional arg*/
   { int offsetval;			/* test before using it */
     *expression = texsubexpr(*expression,expr2,511,"[","]",0,0);
-    offsetval = (int)(strtod(expr2,NULL)+0.5); /* convert [offset2] to int */
+    offsetval =				/* convert [offset2] to int */
+	(int)(((double)evalterm(mimestore,expr2))+0.5);
     if ( abs(offsetval) <= 25 )		/* sanity check */
       offset2 = offsetval; }		/* replace deafault */
 if ( offset2 == NOVALUE ) offset2 = 0;	/* novalue means no offset */
 /* --- parse for base, bump expression past it, and rasterize it --- */
 *expression = texsubexpr(*expression,expr1,511,"{","}",0,0);
-if ( *expr1 == '\000' ) goto end_of_job; /* nothing to overlay, so quit */
+if ( isempty(expr1) ) goto end_of_job;	/* nothing to overlay, so quit */
+rastlift1 = rastlift = 0;		/* reset all raisebox() lifts */
+if ( strstr(expr1,"\\raise") != NULL )	/* have a \raisebox */
+  isalign = 2;				/* so align baselines */
 if ( (sp1=rasterize(expr1,size))	/* rasterize base expression */
 ==   NULL ) goto end_of_job;		/* quit if failed to rasterize */
 overlaysp = sp1;			/*in case we return with no overlay*/
+rastlift1 = rastlift;			/* save lift for base expression */
 /* --- get overlay expression, and rasterize it --- */
 if ( overlay == NOVALUE )		/* get overlay from input stream */
   { *expression = texsubexpr(*expression,expr2,511,"{","}",0,0);
-    if ( *expr2 != '\000' )		/* have an overlay */
-      sp2 = rasterize(expr2,size); }	/* so rasterize overlay expression */
-else					/* specific overlay */
+    if ( !isempty(expr2) ) {		/* have an overlay */
+      if ( strstr(expr2,"\\raise") != NULL ) /* have a \raisebox */
+	isalign = 2;			/* so align baselines */
+      sp2 = rasterize(expr2,size); } }	/* rasterize overlay expression */
+else					/* use specific built-in overlay */
   switch ( overlay )
     {
     default: break;
     case 1:				/* e.g., \not overlays slash */
       sp2 = rasterize("/",size+1);	/* rasterize overlay expression */
+      isalign = 0;			/* automatically handled correctly */
       offset2 = max2(1,size-3);		/* push / right a bit */
       offset2 = 0;
       break;
     case 2:				/* e.g., \Not draws diagonal */
       sp2 = NULL;			/* no overlay required */
+      isalign = 0;			/* automatically handled correctly */
       if ( overlaysp != NULL )		/* check that we have raster */
 	{ raster *rp = overlaysp->image; /* raster to be \Not-ed */
 	  int width=rp->width, height=rp->height; /* raster dimensions */
@@ -7806,9 +9025,9 @@
     case 3:				/* e.g., \sout for strikeout */
       sp2 = NULL;			/* no overlay required */
       if ( overlaysp != NULL )		/* check that we have raster */
-	{ raster *rp = overlaysp->image; /* raster to be \Not-ed */
+	{ raster *rp = overlaysp->image; /* raster to be \sout-ed */
 	  int width=rp->width, height=rp->height; /* raster dimensions */
-	  int baseline = overlaysp->baseline; /* we'll ignore descenders */
+	  int baseline = (overlaysp->baseline)-rastlift; /*skip descenders*/
 	  int midrow = max2(0,min2(height-1,offset2+((baseline+1)/2)));
 	  if ( 1 )			/* strikeout within bounding box */
 	    line_raster(rp,midrow,0,midrow,width-1,1); } /*draw strikeout*/
@@ -7818,7 +9037,7 @@
 /* -------------------------------------------------------------------------
 construct composite overlay
 -------------------------------------------------------------------------- */
-overlaysp = rastcompose(sp1,sp2,offset2,0,3);
+overlaysp = rastcompose(sp1,sp2,offset2,isalign,3);
 end_of_job:
   return ( overlaysp );
 } /* --- end-of-function rastoverlay() --- */
@@ -7833,7 +9052,7 @@
  *				string immediately following \frac to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \frac
  *				(unused, but passed for consistency)
@@ -7945,7 +9164,7 @@
  *				string immediately following \stackrel to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \stackrel
  *				(unused, but passed for consistency)
@@ -8017,7 +9236,7 @@
  *				string immediately following \mathfunc to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \mathfunc
  *				(unused, but passed for consistency)
@@ -8124,7 +9343,7 @@
  *				string immediately following \sqrt to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \accent
  *				(unused, but passed for consistency)
@@ -8184,13 +9403,14 @@
 pixsz     = (subsp->image)->pixsz;	/* pixsz remains constant */
 /* --- determine height and width of sqrt to contain subexpr --- */
 sqrtheight = subheight + overspace;	/* subexpr + blank line + overbar */
-surdwidth  = SQRTWIDTH(sqrtheight);	/* width of surd */
+surdwidth  = SQRTWIDTH(sqrtheight,(rootheight<1?2:1)); /* width of surd */
 sqrtwidth  = subwidth + surdwidth + 1;	/* total width */
 /* -------------------------------------------------------------------------
 construct sqrt (with room to move in subexpr) and embed subexpr in it
 -------------------------------------------------------------------------- */
 /* --- construct sqrt --- */
-if ( (sqrtsp=accent_subraster(SQRTACCENT,sqrtwidth,sqrtheight,pixsz))
+if ( (sqrtsp=accent_subraster(SQRTACCENT,
+(rootheight<1?sqrtwidth:(-sqrtwidth)),sqrtheight,0,pixsz))
 ==   NULL ) goto end_of_job;		/* quit if failed to build sqrt */
 /* --- embed subexpr in sqrt at lower-right corner--- */
 rastput(sqrtsp->image,subsp->image,overspace,sqrtwidth-subwidth,1);
@@ -8234,7 +9454,7 @@
  *				string immediately following \accent to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \accent
  *				(unused, but passed for consistency)
@@ -8267,7 +9487,7 @@
 subraster *rasterize(), *subsp=NULL, *scrsp=NULL; /*rasterize subexpr,script*/
 subraster *rastack(), *accsubsp=NULL;	/* stack accent, subexpr, script */
 subraster *accent_subraster(), *accsp=NULL; /*raster for the accent itself*/
-int	accheight=0, accwidth=0,	/* height, width of accent */
+int	accheight=0, accwidth=0, accdir=0,/*accent height, width, direction*/
 	subheight=0, subwidth=0, pixsz=0; /* height,width,pixsz of subexpr */
 int	delete_subraster();		/*free work areas in case of error*/
 int	vspace = 0;			/*vertical space between accent,sub*/
@@ -8298,6 +9518,8 @@
     break;
   case VECACCENT:
     vspace = 1;				/* set 1-pixel vertical space */
+    accdir = isscript;			/* +1=right,-1=left,0=lr; +10for==>*/
+    isscript = 0;			/* >>don't<< signal sub/supscript */
   case HATACCENT:
     accheight = 7;			/* default */
     if ( subwidth < 10 ) accheight = 5;	/* unless small width */
@@ -8309,7 +9531,7 @@
 construct accent, and construct subraster with accent over (or under) subexpr
 -------------------------------------------------------------------------- */
 /* --- first construct accent --- */
-if ( (accsp = accent_subraster(accent,accwidth,accheight,pixsz)) /* accent */
+if ( (accsp = accent_subraster(accent,accwidth,accheight,accdir,pixsz))
 ==   NULL ) goto end_of_job;		/* quit if failed to build accent */
 /* --- now stack accent above (or below) subexpr, and free both args --- */
 accsubsp = (isabove? rastack(subsp,accsp,1,vspace,1,3)/*accent above subexpr*/
@@ -8352,7 +9574,7 @@
  *				string immediately following \font to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \accent
  *				(unused, but passed for consistency)
@@ -8384,7 +9606,7 @@
 int	oldsmashmargin = smashmargin;	/* turn off smash in text mode */
 #if 0
 /* --- fonts recognized by rastfont --- */
-static	int  nfonts = 6;		/* legal font #'s are 1...nfonts */
+static	int  nfonts = 11;		/* legal font #'s are 1...nfonts */
 static	struct {char *name; int class;}
   fonts[] =
     { /* --- name  class 1=upper,2=alpha,3=alnum,4=lower,5=digit,9=all --- */
@@ -8397,6 +9619,9 @@
 	{ "\\mathbf",	-1 },		/*(6) \bf,\mathbf{abc}-->{\bf~abc} */
 	{ "\\mathrm",   -1 },		/*(7) \mathrm */
 	{ "\\cyr",      -1 },		/*(8) \cyr */
+	{ "\\textgreek",-1 },		/*(9) \textgreek */
+	{ "\\textbfgreek",CMMI10BGR,1,-1 },/*(10) \textbfgreek{ab} */
+	{ "\\textbbgreek",BBOLD10GR,1,-1 },/*(11) \textbbgreek{ab} */
 	{ NULL,		0 }
     } ; /* --- end-of-fonts[] --- */
 #endif
@@ -8513,7 +9738,7 @@
  *				string immediately following \begin to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \begin
  *				(unused, but passed for consistency)
@@ -8574,7 +9799,7 @@
 exprptr = texsubexpr(*expression,subexpr,0,"{","}",0,0);
 if ( *subexpr == '\000' ) goto end_of_job; /* no environment given */
 while ( (delims=strchr(subexpr,'*')) != NULL ) /* have environment* */
-  strcpy(delims,delims+1);		/* treat it as environment */
+  {strsqueeze(delims,1);}		/* treat it as environment */
 /* --- look up environment in our table --- */
 for ( ienviron=0; ;ienviron++ )		/* search table till NULL */
   if ( environs[ienviron] == NULL )	/* found NULL before match */
@@ -8744,7 +9969,7 @@
  *				string immediately following \array to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \array
  *				(unused, but passed for consistency)
@@ -8783,7 +10008,7 @@
 	 token[MAXTOKNSZ+1],  *tokptr=token, /* subexpr token to rasterize */
 	*preamble(),   *preptr=token;	/*process optional size,lcr preamble*/
 char	*coldelim="&", *rowdelim="\\";	/* need escaped rowdelim */
-int	maxarraysz = 64;		/* max #rows, cols */
+int	maxarraysz = 63;		/* max #rows, cols */
 int	justify[65]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* -1,0,+1 = l,c,r */
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
@@ -8808,6 +10033,9 @@
       rowbaseln[65]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* baseline for row */
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+      vrowspace[65]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*extra //[len]space*/
+	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
       rowcenter[65]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*true = vcenter row*/
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 	               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
@@ -8856,6 +10084,8 @@
 int	ishonly=0, hltoklen, minhltoklen=3; /*flag, token must be \hl or \hd*/
 int	isnewrow=1;			/* true for new row */
 int	pixsz = 1;			/*default #bits per pixel, 1=bitmap*/
+int	evalterm(), evalue=0;		/* evaluate [arg], {arg} */
+static	int mydaemonlevel = 0;		/* check against global daemonlevel*/
 /* -------------------------------------------------------------------------
 Macros to determine extra raster space required for vline/hline
 -------------------------------------------------------------------------- */
@@ -8876,6 +10106,14 @@
 if ( *(subexpr+2)=='\000' )		/* couldn't get subexpression */
   goto end_of_job;			/* nothing to do, so quit */
 /* -------------------------------------------------------------------------
+reset static arrays if main re-entered as daemon (or dll)
+-------------------------------------------------------------------------- */
+if ( mydaemonlevel != daemonlevel ) {	/* main re-entered */
+  for ( icol=0; icol<=maxarraysz; icol++ ) /* for each array[] index */
+    gjustify[icol]    = gcolwidth[icol]   = growheight[icol] =
+    gfixcolsize[icol] = gfixrowsize[icol] = growcenter[icol] = 0;
+  mydaemonlevel = daemonlevel; }	/* update mydaemonlevel */
+/* -------------------------------------------------------------------------
 process optional size,lcr preamble if present
 -------------------------------------------------------------------------- */
 /* --- reset size, get lcr's, and push exprptr past preamble --- */
@@ -8981,6 +10219,7 @@
 tokenize and rasterize components  a & b \\ c & d \\ etc  of subexpr
 -------------------------------------------------------------------------- */
 /* --- rasterize tokens one at a time, and maintain row,col counts --- */
+nrows = 0;				/* start with top row */
 ncols[nrows] = 0;			/* no tokens/cols in top row yet */
 while ( 1 )				/* scan chars till end */
   {
@@ -9026,11 +10265,25 @@
   if ( iseoc )				/* we have a completed token */
     {
     *tokptr = '\000';			/* first, null-terminate token */
-    /* --- check first token in row for \hline or \hdash --- */
+    /* --- check first token in row for [len] and/or \hline or \hdash --- */
     ishonly = 0;			/*init for token not only an \hline*/
     if ( ncols[nrows] == 0 )		/*\hline must be first token in row*/
       {
       tokptr=token; skipwhite(tokptr);	/* skip whitespace after // */
+      /* --- first check for optional [len] --- */
+      if ( *tokptr == '[' ) {		/* have [len] if leading char is [ */
+        /* ---parse [len] and bump tokptr past it, interpret as double--- */
+        char lenexpr[128];  int len;	/* chars between [...] as int */
+        tokptr = texsubexpr(tokptr,lenexpr,127,"[","]",0,0);
+        if ( *lenexpr != '\000' ) {	/* got [len] expression */
+	  evalue = evalterm(mimestore,lenexpr); /* evaluate len expression */
+          len = iround(unitlength*((double)evalue)); /* len in pixels */
+          if ( len>=(-63) && len<=255 ) { /* sanity check */
+            vrowspace[nrows] = len;	/* extra vspace before this row */
+	    strsqueezep(token,tokptr);	/* flush [len] from token */
+            tokptr=token; skipwhite(tokptr); } } /* reset ptr, skip white */
+        } /* --- end-of-if(*tokptr=='[') --- */
+      /* --- now check for \hline or \hdash --- */
       tokptr = texchar(tokptr,hltoken);	/* extract first char from token */
       hltoklen = strlen(hltoken);	/* length of first char */
       if ( hltoklen >= minhltoklen ) {	/*token must be at least \hl or \hd*/
@@ -9045,7 +10298,7 @@
 	    { istokwhite = 1;		/* so token contains \hline only */
 	      if ( iseox ) ishonly = 1; } /* ignore entire row at eox */
 	  else				/* token contains more than \hline */
-	    strcpy(token,tokptr); }	/* so flush \hline from token */
+	    {strsqueezep(token,tokptr);} } /* so flush \hline */
       } /* --- end-of-if(ncols[nrows]==0) --- */
     /* --- rasterize completed token --- */
     toksp[ntokens] = (istokwhite? NULL : /* don't rasterize empty token */
@@ -9073,8 +10326,9 @@
       } /* --- end-of-if(toksp[]!=NULL) --- */
     /* --- bump counters --- */
     if ( !ishonly )			/* don't count only an \hline */
-      {	ntokens++;			/* bump total token count */
-	ncols[nrows] += 1; }		/* and bump #cols in current row */
+      if ( ncols[nrows] < maxarraysz )	/* don't overflow arrays */
+	{ ntokens++;			/* bump total token count */
+	  ncols[nrows] += 1; }		/* and bump #cols in current row */
     /* --- get ready for next token --- */
     tokptr = token;			/* reset ptr for next token */
     istokwhite = 1;			/* next token starts all white */
@@ -9086,7 +10340,8 @@
     {
     maxcols = max2(maxcols,ncols[nrows]); /* max# cols in array */
     if ( ncols[nrows]>0 || hline[nrows]==0 ) /*ignore row with only \hline*/
-      nrows++;				/* bump row count */
+      if ( nrows < maxarraysz )		/* don't overflow arrays */
+        nrows++;			/* bump row count */
     ncols[nrows] = 0;			/* no cols in this row yet */
     if ( !iseox )			/* don't have a null yet */
       {	exprptr++;			/* bump past extra \ in \\ delim */
@@ -9133,6 +10388,7 @@
   fprintf(msgfp,"\nrastarray> %d rows, heights: ",nrows);
 for ( irow=0; irow<=nrows; irow++ )	/* and for each row */
   { height += rowheight[irow];		/*height of this row (0 for nrows)*/
+    height += vrowspace[irow];		/*plus extra //[len], if present*/
     height += hlinespace(irow);		/*plus space for hline, if present*/
     if ( msglevel>=29 && msgfp!=NULL )	/* debugging */
      fprintf(msgfp," %d=%2d+%d",irow+1,rowheight[irow],(hlinespace(irow))); }
@@ -9162,6 +10418,8 @@
       if ( irow >= nrows ) hrow = height-1; /* row for bottom hline */
       rule_raster(arrayrp,hrow,0,width,1,(hline[irow]<0?1:0)); } /* hline */
   if ( irow >= nrows ) break;		/*just needed \hline for irow=nrows*/
+  toprow += vrowspace[irow];		/* extra //[len] space above irow */
+  if ( toprow < 0 ) toprow = 0;		/* check for large negative [-len] */
   toprow += hlinespace(irow);		/* space for hline above irow */
   leftcol = 0;				/* start at leftmost column */
   for ( icol=0; icol<ncols[irow]; icol++ ) /* go through cells in this row */
@@ -9236,7 +10494,7 @@
  *				string immediately following \picture to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \picture
  *				(unused, but passed for consistency)
@@ -9260,7 +10518,7 @@
 -------------------------------------------------------------------------- */
 char	*texsubexpr(), picexpr[2049], *picptr=picexpr, /* picture {expre} */
 	putexpr[256], *putptr,*multptr,	/*[multi]put (x,y[;xinc,yinc;num])*/
-	pream[64], *preptr,		/* optional put preamble */
+	pream[96], *preptr,		/* optional put preamble */
 	picelem[1025];			/* picture element following put */
 subraster   *rasterize(), *picelemsp=NULL, /* rasterize picture elements */
 	*new_subraster(), *picturesp=NULL, /* subraster for entire picture */
@@ -9268,13 +10526,13 @@
 raster	*picturerp=NULL;		/* raster for entire picture */
 int	delete_subraster();		/* free picelemsp[] workspace */
 int	pixsz = 1;			/* pixels are one bit each */
-double	strtod(),			/* convert ascii params to doubles */
-	x=0.0,y=0.0,			/* x,y-coords for put,multiput*/
+double	x=0.0,y=0.0,			/* x,y-coords for put,multiput*/
 	xinc=0.0,yinc=0.0;		/* x,y-incrementss for multiput*/
 int	width=0,  height=0,		/* #pixels width,height of picture */
 	ewidth=0, eheight=0,		/* pic element width,height */
 	ix=0,xpos=0, iy=0,ypos=0,	/* mimeTeX x,y pixel coords */
 	num=1, inum;			/* number reps, index of element */
+int	evalterm();			/* evaluate [arg] and {arg}'s */
 int	iscenter=0;			/* center or lowerleft put position*/
 int	*oldworkingparam = workingparam, /* save working param on entry */
 	origin = 0;			/* x,yinc ++=00 +-=01 -+=10 --=11 */
@@ -9289,9 +10547,9 @@
 /* --- now interpret width,height returned in putexpr --- */
 if ( (putptr=strchr(putexpr,',')) != NULL ) /* look for ',' in width,height*/
   *putptr = '\000';			/* found it, so replace ',' by '\0'*/
-width=height = iround(unitlength*strtod(putexpr,NULL)); /*width pixels*/
+width=height = eround(putexpr);		/*width pixels*/
 if ( putptr != NULL )			/* 2nd arg, if present, is height */
-  height = iround(unitlength*strtod(putptr+1,NULL)); /*in pixels*/
+  height = eround(putptr+1);		/*in pixels*/
 /* -------------------------------------------------------------------------
 Then obtain entire picture {...} subexpression following (width,height)
 -------------------------------------------------------------------------- */
@@ -9337,11 +10595,13 @@
   *pream = '\000';			/* init preamble as empty string */
   if ( (putptr=strchr(putexpr,'$')) != NULL ) /*check for $ pream terminator*/
     { *putptr++ = '\000';		/* replace $ by '\0', bump past $ */
-      strcpy(pream,putexpr); }		/* copy leading preamble from put */
+      strninit(pream,putexpr,92); }	/* copy leading preamble from put */
   else					/* look for any non-digit preamble */
-    { for ( preptr=pream,putptr=putexpr; ; putptr++ )
+    { int npream = 0;			/* #chars in preamble */
+      for ( preptr=pream,putptr=putexpr; ; npream++,putptr++ )
 	if ( *putptr == '\000'		/* end-of-putdata signalled */
-	||   !isalpha((int)(*putptr)) ) break; /* or found non-alpha char */
+	||   !isalpha((int)(*putptr))	/* or found non-alpha char */
+	||   npream > 92 ) break;	/* or preamble too long */
 	else *preptr++ = *putptr;	/* copy alpha char to preamble */
       *preptr = '\000'; }		/* null-terminate preamble */
   /* --- interpret preamble --- */
@@ -9356,16 +10616,17 @@
   if ( *putptr != '\000' )		/*check for put data after preamble*/
    {
    /* --- first squeeze preamble out of put expression --- */
-   if ( *pream != '\000' ) strcpy(putexpr,putptr); /* squeeze out preamble */
+   if ( *pream != '\000' )		/* have preamble */
+     {strsqueezep(putexpr,putptr);}	/* squeeze it out */
    /* --- interpret x,y --- */
    if ( (multptr=strchr(putexpr,';')) != NULL ) /*semicolon signals multiput*/
      *multptr = '\000';			/* replace semicolon by '\0' */
    if ( (putptr=strchr(putexpr,',')) != NULL ) /* comma separates x,y */
      *putptr = '\000';			/* replace comma by '\0'  */
    if ( *putexpr != '\000' )		/* leading , may be placeholder */
-     x = unitlength*strtod(putexpr,NULL); /* x coord in pixels*/
+     x = (double)(eround(putexpr));	/* x coord in pixels*/
    if ( putptr != NULL )		/* 2nd arg, if present, is y coord */
-     y = unitlength*strtod(putptr+1,NULL); /* in pixels */
+     y = (double)(eround(putptr+1));	/* in pixels */
    /* --- interpret xinc,yinc,num if we have a multiput --- */
    if ( multptr != NULL )		/* found ';' signalling multiput */
      {
@@ -9374,9 +10635,9 @@
      if ( (putptr=strchr(multptr+1,',')) != NULL ) /* ',' between xinc,yinc*/
        *putptr = '\000';		/* replace ',' by '\0' */
      if ( *(multptr+1) != '\000' )	/* leading , may be placeholder */
-       xinc = unitlength*strtod(multptr+1,NULL); /* xinc in pixels */
+       xinc = (double)(eround(multptr+1)); /* xinc in pixels */
      if ( putptr != NULL )		/* 2nd arg, if present, is yinc */
-       yinc = unitlength*strtod(putptr+1,NULL); /* in user pixels */
+       yinc = (double)(eround(putptr+1)); /* in user pixels */
      num = (preptr==NULL? 999 : atoi(preptr+1)); /*explicit num val or 999*/
      } /* --- end-of-if(multptr!=NULL) --- */
    } /* --- end-of-if(*preptr!='\000') --- */
@@ -9480,11 +10741,11 @@
 /*char	*origexpression = *expression;*/ /*original expression after \line*/
 int	pixsz = 1;			/* pixels are one bit each */
 int	thickness = 1;			/* line thickness */
-double	strtod(),			/* convert ascii params to doubles */
-	xinc=0.0, yinc=0.0,		/* x,y-increments for line, */
+double	xinc=0.0, yinc=0.0,		/* x,y-increments for line, */
 	xlen=0.0, ylen=0.0;		/* x,y lengths for line */
 int	width=0,  height=0,		/* #pixels width,height of line */
 	rwidth=0, rheight=0;		/*alloc width,height plus thickness*/
+int	evalterm();			/* evaluate [arg] and {arg}'s */
 int	istop=0,  isright=0,		/* origin at bot-left if x,yinc>=0 */
 	origin = 0;			/* x,yinc: ++=00 +-=01 -+=10 --=11 */
 int	line_raster();			/* draw line in linesp->image */
@@ -9497,13 +10758,13 @@
 /* --- now interpret xinc,yinc;thickness returned in linexpr --- */
 if ( (xptr=strchr(linexpr,';')) != NULL ) /* look for ';' after xinc,yinc */
   { *xptr = '\000';			/* terminate linexpr at ; */
-    thickness = (int)strtol(xptr+1,NULL,10); } /* get int thickness */
+    thickness = evalterm(mimestore,xptr+1); } /* get int thickness */
 if ( (xptr=strchr(linexpr,',')) != NULL ) /* look for ',' in xinc,yinc */
   *xptr = '\000';			/* found it, so replace ',' by '\0'*/
 if ( *linexpr != '\000' )		/* check against missing 1st arg */
-  xinc = xlen = strtod(linexpr,NULL);	/* xinc in user units */
+  xinc = xlen = (double)evalterm(mimestore,linexpr); /* xinc in user units */
 if ( xptr != NULL )			/* 2nd arg, if present, is yinc */
-  yinc = ylen = strtod(xptr+1,NULL);	/* in user units */
+  yinc = ylen = (double)evalterm(mimestore,xptr+1); /* in user units */
 /* -------------------------------------------------------------------------
 obtain optional {xlen} following (xinc,yinc), and calculate ylen
 -------------------------------------------------------------------------- */
@@ -9513,7 +10774,7 @@
   /* --- parse {xlen} and bump expression past it, interpret as double --- */
   *expression = texsubexpr(*expression,linexpr,253,"{","}",0,0);
   if ( *linexpr == '\000' ) goto end_of_job; /* couldn't get {xlen} */
-  xlen = strtod(linexpr,NULL);		/* xlen in user units */
+  xlen = (double)evalterm(mimestore,linexpr); /* xlen in user units */
   /* --- set other values accordingly --- */
   if ( xlen  < 0.0 ) xinc = -xinc;	/* if xlen negative, flip xinc sign*/
   if ( xinc != 0.0 ) ylen = xlen*yinc/xinc; /* set ylen from xlen and slope*/
@@ -9608,28 +10869,29 @@
 subraster *new_subraster(), *rulesp=NULL; /* subraster for rule */
 int	pixsz = 1;			/* pixels are one bit each */
 int	lift=0, width=0, height=0;	/* default rule parameters */
-double	strtod(), dval;			/* convert ascii params to doubles */
+double	dval;				/* convert ascii params to doubles */
 int	rwidth=0, rheight=0;		/* alloc width, height plus lift */
 int	rule_raster();			/* draw rule in rulesp->image */
+int	evalterm();			/* evaluate args */
 /* -------------------------------------------------------------------------
 Obtain lift,width,height
 -------------------------------------------------------------------------- */
 /* --- check for optional lift arg  --- */
 if ( *(*expression) == '[' )		/*check for []-enclosed optional arg*/
   { *expression = texsubexpr(*expression,rulexpr,255,"[","]",0,0);
-    dval = (int)(strtod(rulexpr,NULL)+0.5); /* convert [lift] to int */
+    dval = evalterm(mimestore,rulexpr);	/* convert [lift] to int */
     if ( dval <= 99 && dval >= (-99) )	/* sanity check */
       lift = iround(unitlength*dval); }	/* scale by unitlength and round */
 /* --- parse for width --- */
 *expression = texsubexpr(*expression,rulexpr,255,"{","}",0,0);
 if ( *rulexpr == '\000' ) goto end_of_job; /* quit if args missing */
-dval = (int)(strtod(rulexpr,NULL)+0.5);	/* convert {width} to int */
+dval = evalterm(mimestore,rulexpr);	/* convert {width} to int */
 if ( dval <= 500 && dval >= 0 )		/* sanity check */
   width = max2(0,iround(unitlength*dval)); /* scale by unitlength and round*/
 /* --- parse for height --- */
 *expression = texsubexpr(*expression,rulexpr,255,"{","}",0,0);
 if ( *rulexpr == '\000' ) goto end_of_job; /* quit if args missing */
-dval = (int)(strtod(rulexpr,NULL)+0.5);	/* convert {height} to int */
+dval = evalterm(mimestore,rulexpr);	/* convert {height} to int */
 if ( dval <= 500 && dval > 0 )		/* sanity check */
   height= max2(1,iround(unitlength*dval)); /* scale by unitlength and round*/
 /* --- raster width,height in pixels --- */
@@ -9676,7 +10938,7 @@
  *				string immediately following \circle to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-4 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \circle
  *				(unused, but passed for consistency)
@@ -9703,10 +10965,10 @@
 double	theta0=0.0, theta1=0.0;		/* ;theta0,theta1 instead of ;quads*/
 subraster *new_subraster(), *circsp=NULL; /* subraster for ellipse */
 int	pixsz = 1;			/* pixels are one bit each */
-double	strtod(),			/* convert ascii params to doubles */
-	xdiam=0.0, ydiam=0.0;		/* x,y major/minor axes/diameters */
+double	xdiam=0.0, ydiam=0.0;		/* x,y major/minor axes/diameters */
 int	width=0,  height=0;		/* #pixels width,height of ellipse */
 int	thickness = 1;			/* drawn lines are one pixel thick */
+int	evalterm();			/* evaluate [arg],{arg} expressions*/
 int	origin = 55;			/* force origin centered */
 int	circle_raster(),		/* draw ellipse in circsp->image */
 	circle_recurse();		/* for theta0,theta1 args */
@@ -9714,16 +10976,16 @@
 obtain (xdiam[,ydiam]) arguments immediately following \circle command
 -------------------------------------------------------------------------- */
 /* --- parse for (xdiam[,ydiam]) args, and bump expression past it --- */
-*expression = texsubexpr(*expression,circexpr,511,"(",")",0,0);
+*expression = texsubexpr(*expression,circexpr,500,"(",")",0,0);
 if ( *circexpr == '\000' ) goto end_of_job; /* couldn't get (xdiam[,ydiam])*/
 /* --- now interpret xdiam[,ydiam] returned in circexpr --- */
 if ( (qptr=strchr(circexpr,';')) != NULL ) /* semicolon signals quads data */
   { *qptr = '\000';			/* replace semicolon by '\0' */
-    strcpy(quads,qptr+1);		/* save user-requested quads */
+    strninit(quads,qptr+1,128);		/* save user-requested quads */
     if ( (qptr=strchr(quads,',')) != NULL ) /* have theta0,theta1 instead */
       {	*qptr = '\000';			/* replace , with null */
-	theta0 = strtod(quads,NULL);	/* theta0 precedes , */
-	theta1 = strtod(qptr+1,NULL);	/* theta1 follows , */
+	theta0 = (double)evalterm(mimestore,quads);  /* theta0 precedes , */
+	theta1 = (double)evalterm(mimestore,qptr+1); /* theta1 follows , */
 	qptr = NULL; }			/* signal thetas instead of quads */
     else
 	qptr = quads; }			/* set qptr arg for circle_raster()*/
@@ -9731,9 +10993,10 @@
   qptr = quads;				/* default to all 4 quadrants */
 if ( (xptr=strchr(circexpr,',')) != NULL ) /* look for ',' in xdiam[,ydiam]*/
   *xptr = '\000';			/* found it, so replace ',' by '\0'*/
-xdiam = ydiam = strtod(circexpr,NULL);	/* xdiam=ydiam in user units */
+xdiam = ydiam =				/* xdiam=ydiam in user units */
+  (double)evalterm(mimestore,circexpr);	/* evaluate expression */
 if ( xptr != NULL )			/* 2nd arg, if present, is ydiam */
-  ydiam = strtod(xptr+1,NULL);		/* in user units */
+  ydiam = (double)evalterm(mimestore,xptr+1); /* in user units */
 /* -------------------------------------------------------------------------
 calculate width,height, etc
 -------------------------------------------------------------------------- */
@@ -9791,7 +11054,7 @@
  *				string immediately following \bezier to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \bezier
  *				(unused, but passed for consistency)
@@ -9816,13 +11079,13 @@
 -------------------------------------------------------------------------- */
 subraster *new_subraster(), *bezsp=NULL; /* subraster for bezier */
 char	*texsubexpr(), bezexpr[129],*xptr=bezexpr; /*\bezier(r,c)(r,c)(r,c)*/
-double	strtod();			/* convert ascii params to doubles */
 double	r0=0.0,c0=0.0, r1=0.0,c1=0.0, rt=0.0,ct=0.0, /* bezier points */
 	rmid=0.0, cmid=0.0,		/* coords at parameterized midpoint*/
 	rmin=0.0, cmin=0.0,		/* minimum r,c */
 	rmax=0.0, cmax=0.0,		/* maximum r,c */
 	rdelta=0.0, cdelta=0.0,		/* rmax-rmin, cmax-cmin */
 	r=0.0, c=0.0;			/* some point */
+int	evalterm();			/* evaluate [arg],{arg} expressions*/
 int	iarg=0;				/* 0=r0,c0 1=r1,c1 2=rt,ct */
 int	width=0, height=0;		/* dimensions of bezier raster */
 int	pixsz = 1;			/* pixels are one bit each */
@@ -9841,8 +11104,10 @@
   c = r = 0.0;				/* init x-coord=col, y-coord=row */
   if ( (xptr=strchr(bezexpr,',')) != NULL ) /* comma separates row,col */
     { *xptr = '\000';			/* found it, so replace ',' by '\0'*/
-      r = unitlength*strtod(xptr+1,NULL); } /* row=y-coord in pixels */
-  c = unitlength*strtod(bezexpr,NULL);	/* col=x-coord in pixels */
+      /* --- row=y-coord in pixels --- */
+      r = unitlength*((double)evalterm(mimestore,xptr+1)); }
+  /* --- col=x-coord in pixels --- */
+  c = unitlength*((double)evalterm(mimestore,bezexpr));
   /* --- store r,c --- */
   switch ( iarg )
     { case 0: r0=r; c0=c; break;
@@ -9940,13 +11205,15 @@
 char	*texsubexpr(), subexpr[MAXSUBXSZ+1], *liftexpr=subexpr; /* args */
 subraster *rasterize(), *raisesp=NULL;	/* rasterize subexpr to be raised */
 int	lift=0;				/* amount to raise/lower baseline */
+int	evalterm();			/* evaluate [arg],{arg} expressions*/
 /* -------------------------------------------------------------------------
 obtain {lift} argument immediately following \raisebox command
 -------------------------------------------------------------------------- */
+rastlift = 0;				/* reset global lift adjustment */
 /* --- parse for {lift} arg, and bump expression past it --- */
 *expression = texsubexpr(*expression,liftexpr,0,"{","}",0,0);
 if ( *liftexpr == '\000' ) goto end_of_job; /* couldn't get {lift} */
-lift = (int)((unitlength*strtod(liftexpr,NULL))+0.0);	/*{lift} to integer*/
+lift = eround(liftexpr);		/* {lift} to integer */
 if ( abs(lift) > 200 ) lift=0;		/* sanity check */
 /* -------------------------------------------------------------------------
 obtain {subexpr} argument after {lift}, and rasterize it
@@ -9961,6 +11228,7 @@
 -------------------------------------------------------------------------- */
 /* --- raise/lower baseline --- */
 raisesp->baseline += lift;		/* new baseline (no height checks) */
+rastlift = lift;			/* set global to signal adjustment */
 /* --- return raised subexpr to caller --- */
 end_of_job:
   return ( raisesp );			/* return raised subexpr to caller */
@@ -10004,17 +11272,17 @@
 raster	*rastrot(), *rotrp=NULL;	/* rotate subraster->image 90 degs */
 int	delete_raster();		/* delete intermediate rasters */
 int	baseline=0;			/* baseline of rasterized image */
-double	strtod(),			/* convert ascii params to doubles */
-	degrees=0.0, ipart,fpart;	/* degrees to be rotated */
+double	degrees=0.0, ipart,fpart;	/* degrees to be rotated */
 int	idegrees=0, isneg=0;		/* positive ipart, isneg=1 if neg */
 int	n90=0, isn90=1;			/* degrees is n90 multiples of 90 */
+int	evalterm();			/* evaluate [arg],{arg} expressions*/
 /* -------------------------------------------------------------------------
 obtain {degrees} argument immediately following \rotatebox command
 -------------------------------------------------------------------------- */
 /* --- parse for {degrees} arg, and bump expression past it --- */
 *expression = texsubexpr(*expression,degexpr,0,"{","}",0,0);
 if ( *degexpr == '\000' ) goto end_of_job; /* couldn't get {degrees} */
-degrees = strtod(degexpr,NULL);		/* degrees to be rotated */
+degrees = (double)evalterm(mimestore,degexpr); /* degrees to be rotated */
 if ( degrees < 0.0 )			/* clockwise rotation desired */
   { degrees = -degrees;			/* flip sign so degrees positive */
     isneg = 1; }			/* and set flag to indicate flip */
@@ -10081,6 +11349,82 @@
 
 
 /* ==========================================================================
+ * Function:	rastmagnify ( expression, size, basesp, arg1, arg2, arg3 )
+ * Purpose:	\magnify{magstep}{subexpression} handler, returns subraster
+ *		containing magnified subexpression
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I/O) char **  to first char of null-terminated
+ *				string immediately following \reflectbox to
+ *				be rasterized, and returning ptr immediately
+ *				following last character processed.
+ *		size (I)	int containing 0-7 default font size
+ *		basesp (I)	subraster *  to character (or subexpression)
+ *				immediately preceding \reflectbox
+ *				(unused, but passed for consistency)
+ *		arg1 (I)	int unused
+ *		arg2 (I)	int unused
+ *		arg3 (I)	int unused
+ * --------------------------------------------------------------------------
+ * Returns:	( subraster * )	ptr to subraster corresponding to \magnify
+ *				requested, or NULL for any parsing error
+ * --------------------------------------------------------------------------
+ * Notes:     o	Summary of syntax...
+ *		  \magnify{magstep}{subexpression}
+ *	      o
+ * ======================================================================= */
+/* --- entry point --- */
+subraster *rastmagnify ( char **expression, int size, subraster *basesp,
+			int arg1, int arg2, int arg3 )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*texsubexpr(), subexpr[MAXSUBXSZ+1], *magexpr=subexpr; /* args */
+subraster *rasterize(), *magsp=NULL;	/* subraster for magnified subexpr */
+raster	*rastmag(), *magrp=NULL;	/* magnify subraster->image */
+int	magstep = 1;			/* default magnification */
+int	delete_raster();		/* delete intermediate raster */
+int	baseline=0;			/* baseline of rasterized image */
+/* -------------------------------------------------------------------------
+obtain {magstep} argument immediately following \magnify command
+-------------------------------------------------------------------------- */
+/* --- parse for {magstep} arg, and bump expression past it --- */
+*expression = texsubexpr(*expression,magexpr,255,"{","}",0,0);
+magstep = atoi(magexpr);		/* convert {magstep} to int */
+if ( magstep<1 || magstep>10 )		/* check magstep input */
+  magstep = 1;				/* back to default if illegal */
+/* -------------------------------------------------------------------------
+obtain {subexpr} argument after {magstep}, and rasterize it
+-------------------------------------------------------------------------- */
+/* --- parse for {subexpr} arg, and bump expression past it --- */
+*expression = texsubexpr(*expression,subexpr,0,"{","}",0,0);
+/* --- rasterize subexpression to be reflected --- */
+if ( (magsp = rasterize(subexpr,size))	/* rasterize subexpression */
+==   NULL ) goto end_of_job;		/* and quit if failed */
+/* --- return unmodified image if no magnification requested --- */
+if ( magstep<=1 ) goto end_of_job;	/* don't bother magnifying image */
+/* --- extract params for image to be magnified --- */
+magrp = magsp->image;			/* unmagnified rasterized image */
+baseline = magsp->baseline;		/* and baseline of that image */
+/* -------------------------------------------------------------------------
+magnify image and adjust its parameters
+-------------------------------------------------------------------------- */
+/* --- magnify image --- */
+magrp = rastmag(magsp->image,magstep);	/* magnify raster image */
+if ( magrp == NULL ) goto end_of_job;	/* failed to magnify image */
+delete_raster(magsp->image);		/* free original raster image */
+magsp->image = magrp;			/*and replace it with magnified one*/
+/* --- adjust parameters --- */
+baseline *= magstep;			/* scale baseline */
+if ( baseline > 0 ) baseline += 1;	/* adjust for no descenders */
+magsp->baseline = baseline;		/*reset baseline of magnified image*/
+/* --- return magnified subexpr to caller --- */
+end_of_job:
+  return ( magsp );			/*back to caller with magnified expr*/
+} /* --- end-of-function rastmagnify() --- */
+
+
+/* ==========================================================================
  * Function:	rastreflect ( expression, size, basesp, arg1, arg2, arg3 )
  * Purpose:	\reflectbox[axis]{subexpression} handler, returns subraster
  *		containing subexpression reflected horizontally (i.e., around
@@ -10168,7 +11512,7 @@
  *				string immediately following \fbox to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \fbox
  *				(unused, but passed for consistency)
@@ -10193,26 +11537,48 @@
 char	*texsubexpr(), subexpr[MAXSUBXSZ+1], widtharg[512]; /* args */
 subraster *rasterize(), *framesp=NULL;	/* rasterize subexpr to be framed */
 raster	*border_raster(), *bp=NULL;	/* framed image raster */
-double	strtod();			/* interpret [width][height] */
-int	fwidth=6, fthick=1;		/*extra frame width, line thickness*/
+int	evalterm(), evalue=0;		/* interpret [width][height] */
+int	fwidth=6, fthick=1,		/*extra frame width, line thickness*/
+	fsides=0;		/* frame sides: 1=left,2=top,4=right,8=bot */
 int	width=(-1), height=(-1),	/* optional [width][height] args */
 	iscompose = 0;			/* set true if optional args given */
 /* -------------------------------------------------------------------------
 obtain optional [width][height] arguments immediately following \fbox
 -------------------------------------------------------------------------- */
 /* --- first check for optional \fbox[width] --- */
-if ( *(*expression) == '[' )		/* check for []-enclosed width arg */
-  { *expression = texsubexpr(*expression,widtharg,511,"[","]",0,0);
-    if ( *widtharg != '\000' )		/* got widtharg */
-     { width = max2(1,iround(unitlength*strtod(widtharg,NULL)));
-       height = 1;  fwidth = 2; iscompose = 1; }
+if ( *(*expression) == '[' ) {		/* check for []-enclosed width arg */
+  *expression = texsubexpr(*expression,widtharg,511,"[","]",0,0);
+  if ( !isempty(widtharg) ) {		/* got widtharg */
+    char *comma = strchr(widtharg,',');	/* look for [width,sides] */
+    if ( comma == (char *)NULL )	/* no comma */
+      comma = strchr(widtharg,';');	/* permit semicolon [width;sides] */
+    if ( comma != (char *)NULL ) {	/* optional [width,fsides] found */
+      fsides = atoi(comma+1);		/* interpret fsides after comma */
+      if ( size < 5 )			/* for smaller fonts */
+        { fwidth = 2;  fthick = 1; }	/* tighten frame, thinner accent */
+      else { fwidth = 3;  fthick = 2; }	/* loosen frame, thicken accent */
+      *comma = '\000';			/* null-terminate width at comma */
+      trimwhite(widtharg); }		/*remove leading/trailing whitespace*/
+    if ( comma==(char *)NULL || !isempty(widtharg) ) { /* have a width */
+      height = 1;			/* default explicit height, too */
+      if ( fsides == 0 ) {		/* a normal framebox */
+	evalue = eround(widtharg);	/* interpret and scale width */
+        width = max2(1,evalue);		/* must be >0 */
+        fwidth = 2; iscompose = 1; }
+      else				/* absolute pixels for "accents" */
+	width = evalterm(mimestore,widtharg); }
+    } /* --- end-of-if(!isempty(widtharg)) --- */
   } /* --- end-of-if(**expression=='[') --- */
-if ( width > 0 )			/* found leading [width], so... */
+if ( width > 0 || fsides > 0)		/* found leading [width], so... */
  if ( *(*expression) == '[' )		/* check for []-enclosed height arg */
   { *expression = texsubexpr(*expression,widtharg,511,"[","]",0,0);
-    if ( *widtharg != '\000' )		/* got widtharg */
-     { height = max2(1,iround(unitlength*strtod(widtharg,NULL)));
-       fwidth = 0; }			/* no extra border */
+    if ( !isempty(widtharg) ) {		/* got widtharg */
+      if ( fsides == 0 ) {		/* a normal framebox */
+	evalue = eround(widtharg);	/* interpret and scale height */
+        height = max2(1,evalue);	/* must be >0 */
+        fwidth = 0; }			/* no extra border */
+      else				/* absolute pixels for "accents" */
+	height = evalterm(mimestore,widtharg); }
   } /* --- end-of-if(**expression=='[') --- */
 /* -------------------------------------------------------------------------
 obtain {subexpr} argument
@@ -10225,7 +11591,7 @@
     ==   NULL ) goto end_of_job; }	/* and quit if failed */
 else
   { char composexpr[8192];		/* compose subexpr with empty box */
-    sprintf(composexpr,"\\compose{\\hspace{%d}\\vspace{%d}}{%s}",
+    sprintf(composexpr,"\\compose{\\hspace{%d}\\vspace{%d}}{%.8000s}",
     width,height,subexpr);
     if ( (framesp = rasterize(composexpr,size)) /* rasterize subexpression */
     ==   NULL ) goto end_of_job; }	/* and quit if failed */
@@ -10233,6 +11599,7 @@
 draw frame, reset params, and return it to caller
 -------------------------------------------------------------------------- */
 /* --- draw border --- */
+if ( fsides > 0 ) fthick += (100*fsides); /* embed fsides in fthick arg */
 if ( (bp = border_raster(framesp->image,-fwidth,-fwidth,fthick,1))
 ==   NULL ) goto end_of_job;		/* draw border and quit if failed */
 /* --- replace original image and raise baseline to accommodate frame --- */
@@ -10256,7 +11623,7 @@
  *				string immediately following \input to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \input
  *				(unused, but passed for consistency)
@@ -10268,7 +11635,9 @@
  *				in filename, or NULL for any parsing error
  * --------------------------------------------------------------------------
  * Notes:     o	Summary of syntax...
- *		  \input{filename}
+ *		  \input{filename}     reads entire file named filename
+ *		  \input{filename:tag} reads filename, but returns only
+ *		  those characters between <tag>...</tag> in that file.
  *	      o
  * ======================================================================= */
 /* --- entry point --- */
@@ -10282,6 +11651,10 @@
 subraster *rasterize(), *inputsp=NULL; /* rasterized input image */
 int	status, rastreadfile();	/* read input file */
 int	format=0, npts=0;	/* don't reformat (numerical) input */
+int	isinput = (seclevel<=inputseclevel?1:0); /*true if \input permitted*/
+/*int	evalterm();*/		/* evaluate expressions */
+char	*inputpath = INPUTPATH;	/* permitted \input{} paths for any user */
+int	isstrstr();		/* search for valid inputpath in filename */
 char	subexpr[MAXFILESZ+1] = "\000", /*concatanated lines from input file*/
 	*mimeprep(),		/* preprocess inputted data */
 	*dbltoa(), *reformat=NULL; /* reformat numerical input */
@@ -10291,34 +11664,56 @@
 /* --- parse for optional [tag] or [fmt] arg, bump expression past it --- */
 if ( *(*expression) == '[' )		/* check for []-enclosed value */
   { char argfld[MAXTOKNSZ+1];		/* optional argument field */
-    *expression = texsubexpr(*expression,argfld,MAXTOKNSZ,"[","]",0,0);
+    *expression = texsubexpr(*expression,argfld,MAXTOKNSZ-1,"[","]",0,0);
     if ( (reformat=strstr(argfld,"dtoa")) != NULL ) /*dtoa/dbltoa requested*/
       {	format = 1;			/* signal dtoa()/dbltoa() format */
 	if ( (reformat=strchr(reformat,'=')) != NULL ) /* have dtoa= */
 	  npts = (int)strtol(reformat+1,NULL,0); } /* so set npts */
-    if ( format == 0 )			/* reformat not requested */
-      strcpy(tag,argfld); }		/* so interpret arg as tag */
+    if ( format == 0 ) {		/* reformat not requested */
+      strninit(tag,argfld,1020); } }	/* so interpret arg as tag */
 /* --- parse for {filename} arg, and bump expression past it --- */
-*expression = texsubexpr(*expression,filename,1023,"{","}",0,0);
+*expression = texsubexpr(*expression,filename,1020,"{","}",0,0);
 /* --- check for alternate filename:tag --- */
-if ( *filename != '\000'		/* got filename */
-/*&& *tag == '\000'*/ )			/* but no [tag] */
+if ( !isempty(filename)			/* got filename */
+/*&& isempty(tag)*/ )			/* but no [tag] */
  { char	*delim = strchr(filename,':');	/* look for : in filename:tag */
    if ( delim != (char *)NULL )		/* found it */
     { *delim = '\000';			/* null-terminate filename at : */
-      strcpy(tag,delim+1); } }		/* and stuff after : is tag */
+      strninit(tag,delim+1,1020); } }	/* and stuff after : is tag */
+/* --- check filename for an inputpath valid for all users --- */
+if ( !isinput				/* if this user can't \input{} */
+&&   !isempty(filename)			/* and we got a filename */
+&&   !isempty(inputpath) )		/* and an inputpath */
+  if ( isstrstr(filename,inputpath,0) )	/* filename has allowed inputpath */
+    isinput = 1;			/* okay to \input{} this filename */
+/* --- guard against recursive runaway (e.g., file \input's itself) --- */
+if ( ++ninputcmds > 8 )			/* max \input's per expression */
+  isinput = 0;				/* flip flag off after the max */
+/* --------------------------------------------------------------------------
+Read file (and convert to numeric if [dtoa] option was given)
+-------------------------------------------------------------------------- */
+if ( isinput ) {			/* user permitted to use \input{} */
+  status = rastreadfile(filename,0,tag,subexpr); /* read file */
+  if ( *subexpr == '\000' ) goto end_of_job;   /* quit if problem */
+  /* --- rasterize input subexpression  --- */
+  mimeprep(subexpr);			/* preprocess subexpression */
+  if ( format == 1 ) {			/* dtoa()/dbltoa() */
+    double d = strtod(subexpr,NULL);	/* interpret subexpr as double */
+    if ( d != 0.0 )			/* conversion to double successful */
+      if ( (reformat=dbltoa(d,npts)) != NULL ) /* reformat successful */
+        strcpy(subexpr,reformat); }	/*replace subexpr with reformatted*/
+  } /* --- end-of-if(isinput) --- */
 /* --------------------------------------------------------------------------
-Read file and rasterize constructed subexpression
+emit error message for unauthorized users trying to use \input{}
+-------------------------------------------------------------------------- */
+else {					/* inputseclevel > seclevel */
+  sprintf(subexpr,
+  "\\ \\text{[\\backslash input\\lbrace %.128s\\rbrace\\ not permitted]}\\ ",
+  (isempty(filename)?"???":filename));
+  } /* --- end-of-if/else(isinput) --- */
+/* --------------------------------------------------------------------------
+Rasterize constructed subexpression
 -------------------------------------------------------------------------- */
-status = rastreadfile(filename,0,tag,subexpr); /* read file */
-if ( *subexpr == '\000' ) goto end_of_job;   /* quit if problem */
-/* --- rasterize input subexpression  --- */
-mimeprep(subexpr);			/* preprocess subexpression */
-if ( format == 1 )			/* dtoa()/dbltoa() */
- { double d = strtod(subexpr,NULL);	/* interpret subexpr as double */
-   if ( d != 0.0 )			/* conversion to double successful */
-    if ( (reformat=dbltoa(d,npts)) != NULL ) /* reformat successful */
-     strcpy(subexpr,reformat); }	/*replace subexpr with reformatted*/
 inputsp = rasterize(subexpr,size);	/* rasterize subexpression */
 /* --- return input image to caller --- */
 end_of_job:
@@ -10336,7 +11731,7 @@
  *				string immediately following \counter to be
  *				rasterized, and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \counter
  *				(unused, but passed for consistency)
@@ -10363,6 +11758,7 @@
 subraster *rasterize(), *countersp=NULL; /* rasterized counter image */
 FILE	/* *fp=NULL,*/ *logfp=NULL; /* counter and log file pointers */
 int	status=0,rastreadfile(),rastwritefile(), /*read,write counter file*/
+	iscounter = (seclevel<=counterseclevel?1:0), /*is \counter permitted*/
 	isstrict = 1;		/* true to only write to existing files */
 char	text[MAXFILESZ] = "1_",	/* only line in counter file without tags */
 	*delim = NULL,		/* delimiter in text */
@@ -10425,6 +11821,15 @@
   { *delim = '\000';			/* null-terminate filename at : */
     strcpy(tag,delim+1); }		/* and stuff after : is tag */
 /* --------------------------------------------------------------------------
+emit error message for unauthorized users trying to use \counter{}
+-------------------------------------------------------------------------- */
+if ( !iscounter ) {			/* counterseclevel > seclevel */
+ sprintf(text,
+ "\\ \\text{[\\backslash counter\\lbrace %.128s\\rbrace\\ not permitted]}\\ ",
+ (isempty(filename)?"???":filename));
+ goto rasterize_counter;		/* rasterize error message */
+ } /* --- end-of-if(!iscounter) --- */
+/* --------------------------------------------------------------------------
 Read and parse file, increment and rewrite counter (with optional underscore)
 -------------------------------------------------------------------------- */
 if ( strlen(filename) > 1 )		/* make sure we got {filename} arg */
@@ -10502,7 +11907,8 @@
     strcat(text,ordinal[ordindex]);	/* then st,nd,rd, or th */
     strcat(text,"}}"); }		/* finish with }} */
 /* --- rasterize it --- */
-countersp = rasterize(text,size);	/* rasterize counter subexpression */
+rasterize_counter:
+  countersp = rasterize(text,size);	/* rasterize counter subexpression */
 /* --- return counter image to caller --- */
 /*end_of_job:*/
   return ( countersp );			/* return counter image to caller */
@@ -10510,6 +11916,57 @@
 
 
 /* ==========================================================================
+ * Function:	rasteval ( expression, size, basesp, arg1, arg2, arg3 )
+ * Purpose:	handle \eval
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I/O) char **  to first char of null-terminated
+ *				string immediately following \eval,
+ *				and returning ptr immediately
+ *				following last character processed.
+ *		size (I)	int containing 0-7 default font size
+ *		basesp (I)	subraster *  to character (or subexpression)
+ *				immediately preceding \eval
+ *				(unused, but passed for consistency)
+ *		arg1 (I)	int unused
+ *		arg2 (I)	int unused
+ *		arg3 (I)	int unused
+ * --------------------------------------------------------------------------
+ * Returns:	( subraster * )	subraster ptr to date stamp
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+subraster *rasteval ( char **expression, int size, subraster *basesp,
+			int arg1, int arg2, int arg3 )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*texsubexpr(), subexpr[MAXSUBXSZ]; /* arg to be evaluated */
+subraster *rasterize(), *evalsp=NULL;	/* rasterize evaluated expression */
+int	evalterm(), value=0;		/* evaluate expression */
+/* -------------------------------------------------------------------------
+Parse for subexpr to be \eval-uated, and bump expression past it
+-------------------------------------------------------------------------- */
+*expression = texsubexpr(*expression,subexpr,0,"{","}",0,0);
+if ( *subexpr == '\000' )		/* couldn't get subexpression */
+  goto end_of_job;			/* nothing to do, so quit */
+/* -------------------------------------------------------------------------
+Evaluate expression, ascii-ize integer result, rasterize it
+-------------------------------------------------------------------------- */
+/* --- evaluate expression --- */
+value = evalterm(mimestore,subexpr);	/* evaluate expression */
+/* --- ascii-ize it --- */
+sprintf(subexpr,"%d",value);		/* ascii version of value */
+/* --- rasterize ascii-ized expression value --- */
+evalsp = rasterize(subexpr,size);	/* rasterize evaluated expression */
+/* --- return evaluated expression raster to caller --- */
+end_of_job:
+  return ( evalsp );			/* return evaluated expr to caller */
+} /* --- end-of-function rasteval() --- */
+
+
+/* ==========================================================================
  * Function:	rasttoday ( expression, size, basesp, arg1, arg2, arg3 )
  * Purpose:	handle \today
  * --------------------------------------------------------------------------
@@ -10517,7 +11974,7 @@
  *				string immediately following \today,
  *				and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \today
  *				(unused, but passed for consistency)
@@ -10578,7 +12035,7 @@
  *				string immediately following \calendar
  *				and returning ptr immediately
  *				following last character processed.
- *		size (I)	int containing 0-5 default font size
+ *		size (I)	int containing 0-7 default font size
  *		basesp (I)	subraster *  to character (or subexpression)
  *				immediately preceding \calendar
  *				(unused, but passed for consistency)
@@ -10639,6 +12096,169 @@
 
 
 /* ==========================================================================
+ * Function:	rastenviron ( expression, size, basesp, arg1, arg2, arg3 )
+ * Purpose:	handle \environment
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I/O) char **  to first char of null-terminated
+ *				string immediately following \environment
+ *				and returning ptr immediately
+ *				following last character processed (in this
+ *				case, \environment takes no arguments, so
+ *				expression is returned unchanged).
+ *		size (I)	int containing 0-7 default font size
+ *		basesp (I)	subraster *  to character (or subexpression)
+ *				immediately preceding \environment
+ *				(unused, but passed for consistency)
+ *		arg1 (I)	int unused
+ *		arg2 (I)	int unused
+ *		arg3 (I)	int unused
+ * --------------------------------------------------------------------------
+ * Returns:	( subraster * )	subraster ptr to rendered environment image
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+subraster *rastenviron ( char **expression, int size, subraster *basesp,
+			int arg1, int arg2, int arg3 )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*texsubexpr(), optarg[255];	/* optional [...] args (for future)*/
+char	environstr[8192] = "\000",	/* string for all environment vars */
+	environvar[1024] = "\000";	/* one environment variable */
+char	*strwrap(),			/* wrap long lines */
+	*strdetex(),			/* removes/replaces any math chars */
+	*environptr = NULL;		/* ptr to preprocessed environvar */
+char	*mimeprep();			/* preprocess environvar string */
+int	unescape_url();			/* convert all %xx's to chars */
+int	isenviron = (seclevel<=environseclevel?1:0); /*is \environ permitted*/
+int	maxvarlen = 512,		/* max chars in environment var */
+	maxenvlen = 6400,		/* max chars in entire string */
+	wraplen = 48;			/* strwrap() wrap lines at 48 chars*/
+int	ienv = 0;			/* environ[] index */
+subraster *rasterize(), *environsp=NULL; /* rasterize environment string */
+/* -------------------------------------------------------------------------
+Get args 
+-------------------------------------------------------------------------- */
+/* --- check for optional \environment args --- */
+if ( 1 )				/* there aren't any args (yet) */
+ if ( *(*expression) == '[' ) {		/* check for []-enclosed value */
+   *expression = texsubexpr(*expression,optarg,250,"[","]",0,0);
+   if ( *optarg != '\000' ) { ;		/* got optional arg, so process it */
+     wraplen = atoi(optarg);		/* interpret \environment[wraplen] */
+     if ( wraplen < 1 ) wraplen = 8;	/* set minimum */
+     } /* --- end-of-if(*optarg!='\0') --- */
+   } /* --- end-of-if(**expression=='[') --- */
+/* --------------------------------------------------------------------------
+emit error message for unauthorized users trying to use \environ
+-------------------------------------------------------------------------- */
+if ( !isenviron ) {			/* environseclevel > seclevel */
+  sprintf(environstr,
+  "\\ \\text{[\\backslash environment\\ not permitted]}\\ ");
+  goto rasterize_environ;		/* rasterize error message */
+  } /* --- end-of-if(!isenviron) --- */
+/* -------------------------------------------------------------------------
+Accumulate environment variables and rasterize string containing them
+-------------------------------------------------------------------------- */
+*environstr = '\000';			/* reset environment string */
+strcat(environstr,"\\nocaching\\fbox{\\normalsize\\text{"); /*init string*/
+for ( ienv=0; ; ienv++ ) {		/* loop over environ[] strings */
+  if ( environ[ienv] == (char *)NULL ) break; /* null terminates list */
+  if ( *(environ[ienv]) == '\000' ) break; /* double-check empty string */
+  strninit(environvar,environ[ienv],maxvarlen); /* max length displayed */
+  if ( strlen(environ[ienv]) > maxvarlen ) /* we truncated the variable */
+    strcat(environvar,"...");		/* so add an ellipsis */
+  unescape_url(environvar,0);		/* convert all %xx's to chars */
+  environptr = strdetex(environvar,1);	/* remove/replace any math chars */
+  strninit(environvar,environptr,maxvarlen); /*de-tex'ed/nomath environvar*/
+  environptr = strwrap(environvar,wraplen,-6); /* wrap long lines */
+  strninit(environvar,environptr,maxvarlen); /* line-wrapped environvar */
+  mimeprep(environvar);			/* preprocess environvar string */
+  if ( strlen(environstr) + strlen(environvar) > maxenvlen ) break;
+  sprintf(environstr+strlen(environstr), /* display environment string */
+  " %2d. %s\\\\\n", ienv+1,environvar);
+  if ( msgfp!= NULL && msglevel>=9 )
+    fprintf(msgfp,"rastenviron> %2d. %.256s\n",
+    ienv+1,/*environ[ienv]*/environvar);
+  if ( strlen(environstr) >= 7200 ) break; /* don't overflow buffer */
+  } /* --- end-of-for(ienv) --- */
+strcat(environstr,"}}");		/* end {\text{...}} mode */
+rasterize_environ:
+  environsp = rasterize(environstr,size); /* rasterize environment string */
+/* --- return environment raster to caller --- */
+/*end_of_job:*/
+  return ( environsp );			/* return environment to caller */
+} /* --- end-of-function rastenviron() --- */
+
+
+/* ==========================================================================
+ * Function:	rastmessage ( expression, size, basesp, arg1, arg2, arg3 )
+ * Purpose:	handle \message
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I/O) char **  to first char of null-terminated
+ *				string immediately following \message
+ *				and returning ptr immediately
+ *				following last character processed.
+ *		size (I)	int containing 0-7 default font size
+ *		basesp (I)	subraster *  to character (or subexpression)
+ *				immediately preceding \mesasge
+ *				(unused, but passed for consistency)
+ *		arg1 (I)	int unused
+ *		arg2 (I)	int unused
+ *		arg3 (I)	int unused
+ * --------------------------------------------------------------------------
+ * Returns:	( subraster * )	subraster ptr to rendered message image
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+subraster *rastmessage ( char **expression, int size, subraster *basesp,
+			int arg1, int arg2, int arg3 )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*texsubexpr(), amsg[256]="\000"; /* message number text */
+int	imsg = 0;			/* default message number */
+char	msg[4096];
+subraster *rasterize(), *messagesp=NULL; /* rasterize requested message */
+int	strreplace();			/*replace SERVER_NAME in refmsgnum*/
+int	reflevels = REFLEVELS;		/* #topmost levels to match */
+char	*urlprune();			/*prune referer_match in refmsgnum*/
+char	*strdetex();			/* remove math chars from messages */
+char	*http_host    = getenv("HTTP_HOST"), /* http host for mimeTeX */
+	*server_name  = getenv("SERVER_NAME"), /* server hosting mimeTeX */
+	*referer_match = (!isempty(http_host)?http_host: /*match http_host*/
+	  (!isempty(server_name)?server_name:(NULL))); /* or server_name */
+/* -------------------------------------------------------------------------
+obtain message {amsg} argument
+-------------------------------------------------------------------------- */
+/* --- parse for {amsg} arg, and bump expression past it --- */
+*expression = texsubexpr(*expression,amsg,255,"{","}",0,0);
+/* --- interpret argument --- */
+if ( *amsg != '\000' ) {		/* got amsg arg */
+  imsg = atoi(amsg);			/* interpret as an int */
+  if ( imsg < 0				/* if too small */
+  ||   imsg > maxmsgnum )		/* or too big */
+    imsg = 0; }				/* default to first message */
+/* --- retrieve requested message --- */
+strninit(msg,msgtable[imsg],4095);	/* local copy of message */
+/* --- process as necessary --- */
+if ( imsg == refmsgnum) {		/* urlncmp() failed to validate */
+  if ( reflevels > 0 )			/* have #levels to validate */
+   strreplace(msg,"SERVER_NAME",	/* replace SERVER_NAME */
+    strdetex(urlprune(referer_match,reflevels),1),0); /*with referer_match*/
+  } /* --- end-of-switch(imsg) --- */
+/* --- rasterize requested message --- */
+messagesp = rasterize(msg,size);	/* rasterize message string */
+/* --- return message raster to caller --- */
+/*end_of_job:*/
+  return ( messagesp );			/* return message to caller */
+} /* --- end-of-function rastmessage() --- */
+
+
+/* ==========================================================================
  * Function:	rastnoop ( expression, size, basesp, nargs, arg2, arg3 )
  * Purpose:	no op -- flush \escape without error
  * --------------------------------------------------------------------------
@@ -10778,7 +12398,7 @@
 /* --- remove leading / and \ and dots (and blanks) --- */
 if ( *editname != '\000' )		/* still have chars in filename */
  while ( isthischar(*editname," ./\\") ) /* absolute paths invalid */
-   strcpy(editname,editname+1);		/* so flush leading / or \ (or ' ')*/
+   {strsqueeze(editname,1);}		/* so flush leading / or \ (or ' ')*/
 if ( *editname == '\000' ) goto end_of_job; /* no chars left in filename */
 /* --- remove leading or embedded ../'s and ..\'s --- */
 while ( strreplace(editname,"../",NULL,0) > 0 ) ;  /* squeeze out ../'s */
@@ -10862,7 +12482,8 @@
     case 0: status = 1; break;		/* no tag to look for */
     case 1:				/* looking for opening left <tag> */
       if ( (tagp=strstr(text,tag1)) == NULL ) break; /*haven't found it yet*/
-      strcpy(text,tagp+strlen(tag1));	/* shift out preceding text */
+      tagp += strlen(tag1);		/* first char past tag */
+      strsqueezep(text,tagp);		/*shift out preceding text and tag*/
       tagnum = 2;			/*now looking for closing right tag*/
     case 2:				/* looking for closing right </tag> */
       if ( (tagp=strstr(text,tag2)) == NULL ) break; /*haven't found it yet*/
@@ -10971,7 +12592,7 @@
   {
   /* --- preprocess filebuff --- */
   if ( tagp2 != (char *)NULL )		/* apparently have ...</tag> */
-    strcpy(filebuff,tagp2+tlen2);	/* so get rid of leading ...</tag> */
+    {strsqueezep(filebuff,tagp2+tlen2);} /* remove ...</tag> */
   if ( (flen = strlen(filebuff))	/* #chars currently in buffer */
   > 0 )					/* we have non-empty buffer */
    if (!isthischar(*(filebuff+flen-1),"\n\r")) /*no newline at end of file*/
@@ -11157,7 +12778,8 @@
 time_t	time_val = (time_t)(0);		/* binary value returned by time() */
 struct tm *tmstruct=(struct tm *)NULL, *localtime(); /* interpret time_val */
 int	year=0, hour=0,ispm=1,		/* adjust year, and set am/pm hour */
-	month=0, day=0;			/* adjust day and month for delta  */
+	month=0, day=0,			/* adjust day and month for delta  */
+	minute=0,second=0;		/* minute and second not adjusted  */
 int	tzadjust();			/* time zone adjustment function */
 int	daynumber();			/* #days since Jan 1, 1973 */
 static	char *daynames[] = { "Monday", "Tuesday", "Wednesday",
@@ -11178,6 +12800,8 @@
 month = (int)(tmstruct->tm_mon) + 1;	/* local copy of month, 1-12 */
 day   = (int)(tmstruct->tm_mday);	/* local copy of day,   1-31 */
 hour  = (int)(tmstruct->tm_hour);	/* local copy of hour,  0-23 */
+minute= (int)(tmstruct->tm_min);	/* local copy of minute,0-59 */
+second= (int)(tmstruct->tm_sec);	/* local copy of second,0-59 */
 /* --- adjust year --- */
 year += 1900;				/* set century in year */
 /* --- adjust for timezone --- */
@@ -11204,7 +12828,7 @@
   default:
   case 0:  /* --- 2005-03-05:11:49:59am --- */
     sprintf(timebuff,"%04d-%02d-%02d:%02d:%02d:%02d%s", year,month,day,
-    hour,(int)(tmstruct->tm_min),(int)(tmstruct->tm_sec),((ispm)?"pm":"am"));
+    hour,minute,second,((ispm)?"pm":"am"));
     break;
   case 1:  /* --- Saturday, March 5, 2005 --- */
     sprintf(timebuff,"%s, %s %d, %d",
@@ -11213,11 +12837,15 @@
   case 2: /* --- Saturday, March 5, 2005, 11:49:59am --- */
     sprintf(timebuff,"%s, %s %d, %d, %d:%02d:%02d%s",
     daynames[daynumber(year,month,day)%7],monthnames[month],day,year,
-    hour,(int)(tmstruct->tm_min),(int)(tmstruct->tm_sec),((ispm)?"pm":"am"));
+    hour,minute,second,((ispm)?"pm":"am"));
     break;
   case 3: /* --- 11:49:59am --- */
     sprintf(timebuff,"%d:%02d:%02d%s",
-    hour,(int)(tmstruct->tm_min),(int)(tmstruct->tm_sec),((ispm)?"pm":"am"));
+    hour,minute,second,((ispm)?"pm":"am"));
+    break;
+  case 4: /* --- 1231235959 (mmddhhmmss time as integer) --- */
+    sprintf(timebuff,"%d%02d%02d%02d%02d",
+    month,day,hour,minute,second);
     break;
   } /* --- end-of-switch(ifmt) --- */
 end_of_job:
@@ -11328,24 +12956,291 @@
 /* --------------------------------------------------------------------------
 Find #days since jan 1, 1973
 -------------------------------------------------------------------------- */
-/* --- figure #complete 4-year periods and #remaining yrs till current --- */
-nyears = year - year0;			/* #years since year0 */
-if ( nyears < 0 ) return ( -1 );	/* we're not working backwards */
-nfouryrs = nyears/4;			/* #complete four-year periods */
-nyears -= (4*nfouryrs); 		/* remainder excluding current year*/
-/* --- #days from jan 1, year0 till jan 1, this year --- */
-ndays = (days4yrs*nfouryrs)		/* #days in 4-yr periods */
-      +  (days1yr*nyears);		/* +remaining days */
-/*if ( year > 100 ) ndays--;*/		/* subtract leap year for 2000AD */
-/* --- add #days within current year --- */
-ndays += (modays[month-1] + (day-1));
-/* --- may need an extra day if current year is a leap year --- */
-if ( nyears == 3 )			/*three preceding yrs so this is 4th*/
-    { if ( month > 2 )			/* past feb so need an extra day */
-	/*if ( year != 100 )*/		/* unless it's 2000AD */
-	  ndays++; }			/* so add it in */
-return ( (int)(ndays) );		/* #days back to caller */
-} /* --- end-of-function daynumber() --- */
+/* --- figure #complete 4-year periods and #remaining yrs till current --- */
+nyears = year - year0;			/* #years since year0 */
+if ( nyears < 0 ) return ( -1 );	/* we're not working backwards */
+nfouryrs = nyears/4;			/* #complete four-year periods */
+nyears -= (4*nfouryrs); 		/* remainder excluding current year*/
+/* --- #days from jan 1, year0 till jan 1, this year --- */
+ndays = (days4yrs*nfouryrs)		/* #days in 4-yr periods */
+      +  (days1yr*nyears);		/* +remaining days */
+/*if ( year > 100 ) ndays--;*/		/* subtract leap year for 2000AD */
+/* --- add #days within current year --- */
+ndays += (modays[month-1] + (day-1));
+/* --- may need an extra day if current year is a leap year --- */
+if ( nyears == 3 )			/*three preceding yrs so this is 4th*/
+    { if ( month > 2 )			/* past feb so need an extra day */
+	/*if ( year != 100 )*/		/* unless it's 2000AD */
+	  ndays++; }			/* so add it in */
+return ( (int)(ndays) );		/* #days back to caller */
+} /* --- end-of-function daynumber() --- */
+
+
+/* ==========================================================================
+ * Function:	strwrap ( s, linelen, tablen )
+ * Purpose:	Inserts \n's and spaces in (a copy of) s to wrap lines
+ *		at linelen and indent them by tablen.
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I)		char * to null-terminated string
+ *				to be wrapped.
+ *		linelen (I)	int containing maximum linelen
+ *				between \\'s.
+ *		tablen (I)	int containing number of spaces to indent
+ *				lines.  0=no indent.  Positive means
+ *				only indent first line and not others.
+ *				Negative means indent all lines except first.
+ * --------------------------------------------------------------------------
+ * Returns:	( char * )	ptr to "line-wrapped" copy of s
+ *				or "" (empty string) for any error.
+ * --------------------------------------------------------------------------
+ * Notes:     o	The returned copy of s has embedded \\'s as necessary
+ *		to wrap lines at linelen.  Any \\'s in the input copy
+ *		are removed first.  If (and only if) the input s contains
+ *		a terminating \\ then so does the returned copy.
+ *	      o	The returned pointer addresses a static buffer,
+ *		so don't call strwrap() again until you're finished
+ *		with output from the preceding call.
+ *	      o	Modified for mimetex from original version written
+ *		for mathtex (where \n in verbatim mode instead of \\
+ *		produced linebreaks).
+ * ======================================================================= */
+/* --- entry point --- */
+char	*strwrap ( char *s, int linelen, int tablen )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+static	char sbuff[4096];		/* line-wrapped copy of s */
+char	*sol = sbuff;			/* ptr to start of current line*/
+char	tab[32] = "                 ";	/* tab string */
+int	strreplace();			/* remove \n's */
+char	*strchange();			/* add \n's and indent space */
+int	finalnewline = (lastchar(s)=='\n'?1:0); /*newline at end of string?*/
+int	istab = (tablen>0?1:0),		/* init true to indent first line */
+	iswhite = 0;			/* true if line break on whitespace*/
+int	rhslen  = 0,			/* remaining right hand side length*/
+	thislen = 0,			/* length of current line segment */
+	thistab = 0,			/* length of tab on current line */
+	wordlen = 0;			/* length to next whitespace char */
+/* -------------------------------------------------------------------------
+Make a clean copy of s
+-------------------------------------------------------------------------- */
+/* --- check input --- */
+*sbuff = '\000';			/* initialize in case of error */
+if ( isempty(s) ) goto end_of_job;	/* no input */
+if ( tablen < 0 ) tablen = (-tablen);	/* set positive tablen */
+if ( tablen >= linelen ) tablen = linelen-1; /* tab was longer than line */
+tab[min2(tablen,16)] = '\000';		/* null-terminate tab string */
+tablen = strlen(tab);			/* reset to actual tab length */
+finalnewline = 0;			/* turned off for mimetex version */
+/* --- start with copy of s --- */
+strninit(sbuff,s,3000);			/* leave room for \n's and tabs */
+if ( linelen < 1 ) goto end_of_job;	/* can't do anything */
+trimwhite(sbuff);			/*remove leading/trailing whitespace*/
+strreplace(sbuff,"\n"," ",0);		/* remove any original \n's */
+strreplace(sbuff,"\r"," ",0);		/* remove any original \r's */
+strreplace(sbuff,"\t"," ",0);		/* remove any original \t's */
+strreplace(sbuff,"\f"," ",0);		/* remove any original \f's */
+strreplace(sbuff,"\v"," ",0);		/* remove any original \v's */
+strreplace(sbuff,"\\\\"," ",0);		/* remove any original \\'s */
+/* -------------------------------------------------------------------------
+Insert \\'s and spaces as needed
+-------------------------------------------------------------------------- */
+while ( 1 ) {				/* till end-of-line */
+  /* --- init --- */
+  trimwhite(sol);			/*remove leading/trailing whitespace*/
+  thislen = thistab = 0;		/* no chars in current line yet */
+  if ( istab && tablen>0 ) {		/* need to indent this line */
+    strchange(0,sol,tab);		/* insert indent at start of line */
+    thistab = tablen; }			/* line starts with whitespace tab */
+  if ( sol == sbuff ) istab = 1-istab;	/* flip tab flag after first line */
+  sol += thistab;			/* skip tab */
+  rhslen = strlen(sol);			/* remaining right hand side chars */
+  if ( rhslen+thistab <= linelen ) break; /* no more \\'s needed */
+  if ( 0 && msgfp!=NULL && msglevel >= 99 ) {
+    fprintf(msgfp,"strwrap> rhslen=%d, sol=\"\"%s\"\"\n",rhslen,sol);
+    fflush(msgfp); }
+  /* --- look for last whitespace preceding linelen --- */
+  while ( 1 ) {				/* till we exceed linelen */
+    wordlen = strcspn(sol+thislen," \t\n\r\f\v :;.,"); /*ptr to next white/break*/
+    if ( sol[thislen+wordlen] == '\000' ) /* no more whitespace in string */
+      goto end_of_job;			/* so nothing more we can do */
+    if ( thislen+thistab+wordlen >= linelen ) /* next word won't fit */
+      if ( thislen > 0 ) break;		/* but make sure line has one word */
+    thislen += (wordlen+1); }		/* ptr past next whitespace char */
+  if ( thislen < 1 ) break;		/* line will have one too-long word*/
+  /*sol[thislen-1] = '\n';*/		/* replace last space with newline */
+  /*sol += thislen;*/			/* next line starts after newline */
+  iswhite = (isthischar(sol[thislen-1],":;.,")?0:1); /*linebreak on space?*/
+  strchange(iswhite,sol+thislen-iswhite,"\\\\"); /* put \\ at end of line */
+  sol += (thislen+2-iswhite);		/* next line starts after \\ */
+  } /* --- end-of-while(1) --- */
+end_of_job:
+  if ( finalnewline ) strcat(sbuff,"\\\\"); /* replace final newline */
+  return ( sbuff );			/* back with clean copy of s */
+} /* --- end-of-function strwrap() --- */
+
+
+/* ==========================================================================
+ * Function:	strnlower ( s, n )
+ * Purpose:	lowercase the first n chars of string s
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I/O)		(char *)pointer to null-terminated string
+ *				whose chars are to be lowercased
+ *		n (I)		int containing max number of chars to be
+ *				lowercased (less than n will be lowercased
+ *				if terminating '\000' found first)
+ *				If n<=0 (or n>=strlen(s)) then the entire
+ *				string s will be lowercased
+ * --------------------------------------------------------------------------
+ * Returns:	( char * )	s (always same as input)
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+char	*strnlower ( char *s, int n )
+{
+/* -------------------------------------------------------------------------
+lowercase s
+-------------------------------------------------------------------------- */
+char	*p = s;				/* save s for return to caller */
+if ( !isempty(s) )			/* check for valid input */
+  while ( *p != '\000' ) {		/* lowercase each char till end */
+    *p = tolower(*p);			/* lowercase this char */
+    if ( n > 0 )			/* only lowercase first n chars */
+      if ( --n < 1 ) break;		/* quit when we're done */
+    p++; }				/* proceed to next char */
+return ( s );				/* back to caller with s */
+} /* --- end-of-function strnlower() --- */
+
+
+/* ==========================================================================
+ * Function:	urlprune ( url, n )
+ * Purpose:	Prune http://abc.def.ghi.com/etc into abc.def.ghi.com
+ *		(if n=2 only ghi.com is returned, or if n=-1 only "ghi")
+ * --------------------------------------------------------------------------
+ * Arguments:	url (I)		char * to null-terminated string
+ *				containing url to be pruned
+ *		n (i)		int containing number of levels retained
+ *				in pruned url.  If n<0 its abs() is used,
+ *				but the topmost level (usually .com, .org,
+ *				etc) is omitted.  That is, if n=2 would
+ *				return "ghi.com" then n=-1 returns "ghi".
+ *				n=0 retains all levels.
+ * --------------------------------------------------------------------------
+ * Returns:	( char * )	pointer to (static) null-terminated string
+ *				containing pruned url with the first n
+ *				top-level domain, e.g., for n=2,
+ *				http://abc.def.ghi.com/etc returns ghi.com,
+ *				or an empty string "\000" for any error
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+char	*urlprune ( char *url, int n )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+static	char pruned[2048];		/* pruned url returned to caller */
+char	*purl = /*NULL*/pruned;		/* ptr to pruned, init for error */
+char	*delim = NULL;			/* delimiter separating components */
+char	*strnlower();			/* lowercase a string */
+int	istruncate = (n<0?1:0);		/*true to truncate .com from pruned*/
+int	ndots = 0;			/* number of dots found in url */
+/* -------------------------------------------------------------------------
+prune the url
+-------------------------------------------------------------------------- */
+/* --- first check input --- */
+*pruned = '\000';			/* init for error */
+if ( isempty(url) ) goto end_of_job;	/* missing input, so return NULL */
+if ( n < 0 ) n = (-n);			/* flip n positive */
+if ( n == 0 ) n = 999;			/* retain all levels of url */
+/* --- preprocess url --- */
+strninit(pruned,url,2032);		/* copy url to our static buffer */
+strlower(pruned);			/* lowercase it and... */
+trimwhite(pruned);			/*remove leading/trailing whitespace*/
+/* --- first remove leading http:// --- */
+if ( (delim=strstr(pruned,"://")) != NULL ) /* found http:// or ftp:// etc */
+  if ( ((int)(delim-pruned)) <= 8 ) {	/* make sure it's a prefix */
+    strsqueezep(pruned,delim+3);	/* squeeze out leading http:// */
+    trimwhite(pruned); }		/*remove leading/trailing whitespace*/
+/* --- next remove leading www. --- */
+if ( (delim=strstr(pruned,"www.")) != NULL ) /* found www. */
+  if ( ((int)(delim-pruned)) == 0 ) {	/* make sure it's the leading chars*/
+    strsqueezep(pruned,delim+4);	/* squeeze out leading www. */
+    trimwhite(pruned); }		/*remove leading/trailing whitespace*/
+/* --- finally remove leading / and everything following it --- */
+if ( (delim=strchr(pruned,'/')) != NULL ) /* found first / */
+  *delim = '\000';			/* null-terminate url at first / */
+if ( isempty(pruned) ) goto end_of_job;	/* nothing left in url */
+/* --- count dots from back of url --- */
+delim = pruned + strlen(pruned);	/*ptr to '\000' terminating pruned*/
+while ( ((int)(delim-pruned)) > 0 ) {	/* don't back up before first char */
+  delim--;				/* ptr to preceding character */
+  if ( *delim != '.' ) continue;	/* not a dot, so keep looking */
+  ndots++;				/* count another dot found */
+  if ( istruncate ) {			/* remove trailing .com */
+    istruncate = 0;			/* don't truncate any more dots */
+    *delim = '\000';			/* truncate pruned url */
+    ndots = 0; }			/* and reset dot count */
+  if ( ndots >= n ) {			/* have all requested levels */
+    strsqueezep(pruned,delim+1);	/* squeeze out leading levels */
+    break; }				/* and we're done */
+  } /* --- end-of-while() --- */
+purl = pruned;				/*completed okay, return pruned url*/
+end_of_job:
+  return ( purl );			/* back with pruned url */
+} /* --- end-of-function urlprune() --- */
+
+
+/* ==========================================================================
+ * Function:	urlncmp ( url1, url2, n )
+ * Purpose:	Compares the n topmost levels of two urls
+ * --------------------------------------------------------------------------
+ * Arguments:	url1 (I)	char * to null-terminated string
+ *				containing url to be compared with url2
+ *		url2 (I)	char * to null-terminated string
+ *				containing url to be compared with url1
+ *		n (I)		int containing number of top levels
+ *				to compare, or 0 to compare them all.
+ *				n<0 compares that many top levels excluding
+ *				the last, i.e., for n=-1, xxx.com and xxx.org
+ *				would be considered a match
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		1 if url's match, or
+ *				0 if not.
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+int	urlncmp ( char *url1, char *url2, int n )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+char	*urlprune(), *prune=NULL,	/* prune url's */
+	prune1[4096], prune2[4096];	/* pruned copies of url1,url2 */
+int	ismatch = 0;			/* true if url's match */
+/* -------------------------------------------------------------------------
+prune url's and compare the pruned results
+-------------------------------------------------------------------------- */
+/* --- check input --- */
+if ( isempty(url1)			/*make sure both url1,url2 supplied*/
+||   isempty(url2) ) goto end_of_job;	/* missing input, so return 0 */
+/* --- prune url's --- */
+prune = urlprune(url1,n);		/* ptr to pruned version of url1 */
+if ( isempty(prune) ) goto end_of_job;	/* some problem with url1 */
+strninit(prune1,prune,4064);		/* local copy of pruned url1 */
+prune = urlprune(url2,n);		/* ptr to pruned version of url2 */
+if ( isempty(prune) ) goto end_of_job;	/* some problem with url2 */
+strninit(prune2,prune,4064);		/* local copy of pruned url2 */
+/* --- compare pruned url's --- */
+if ( strcmp(prune1,prune2) == 0 )	/* pruned url's are identical */
+  ismatch = 1;				/* signal match to caller */
+end_of_job:
+  return ( ismatch );			/*back with #matching url components*/
+} /* --- end-of-function urlncmp() --- */
 
 
 /* ==========================================================================
@@ -12399,6 +14294,10 @@
 /* --- check input --- */
 if ( irow<0 || irow>=height		/* irow out-of-bounds */
 ||   icol<0 || icol>=width ) goto end_of_job; /* icol out-of-bounds */
+/* --- adjust maxturn for magstep --- */
+if ( 1 )				/* guard */
+  if ( magstep > 1 && magstep <= 10 )	/* sanity check */
+    maxturn *= magstep;			/* factor in magnification */
 /* --- starting bit -- see if we're following a fg (usual), or bg line --- */
 bitval = getlongbit(bitmap,(icol+irow*width)); /* starting pixel (bg or fg)*/
 fgval = bitval;  bgval = (1-bitval);	/* define "fg" as whatever bitval is*/
@@ -13063,7 +14962,7 @@
  * Function:	aacolormap ( bytemap, nbytes, colors, colormap )
  * Purpose:	searches bytemap, returning a list of its discrete values
  *		in ascending order in colors[], and returning an "image"
- *		of bytemap (where vales are replaced by colors[]
+ *		of bytemap (where values are replaced by colors[]
  *		indexes) in colormap[].
  * --------------------------------------------------------------------------
  * Arguments:	bytemap (I)	intbyte *  to bytemap containing
@@ -13442,6 +15341,9 @@
 -------------------------------------------------------------------------- */
 GLOBAL(raster,*bitmap_raster,NULL);	/* use 0/1 bitmap image or */
 GLOBAL(intbyte,*colormap_raster,NULL);	/* anti-aliased color indexes */
+GLOBAL(int,raster_width,0);		/* width of final/displayed image */
+GLOBAL(int,raster_height,0);		/* height of final/displayed image */
+GLOBAL(int,raster_baseline,0);		/* baseline of final/displayed image*/
 /* --- anti-aliasing flags (needed by GetPixel() as well as main()) --- */
 #ifdef AA				/* if anti-aliasing requested */
   #define ISAAVALUE 1			/* turn flag on */
@@ -13481,31 +15383,6 @@
 #endif
   ;
 
-/* -------------------------------------------------------------------------
-messages
--------------------------------------------------------------------------- */
-static	char *copyright =		/* copyright, gnu/gpl notice */
- "+-----------------------------------------------------------------------+\n"
- "|mimeTeX vers 1.70, Copyright(c) 2002-2008, John Forkosh Associates, Inc|\n"
- "+-----------------------------------------------------------------------+\n"
- "| mimeTeX is free software, licensed to you under terms of the GNU/GPL, |\n"
- "|           and comes with absolutely no warranty whatsoever.           |\n"
- "+-----------------------------------------------------------------------+";
-static	int maxmsgnum = 2;		/* maximum msgtable[] index */
-static	char *msgtable[] = {		/* messages referenced by [index] */
- "\\red\\small\\rm\\fbox{\\array{"	/* [0] is invalid_referer_msg */
-   "Please~read~www.forkosh.com/mimetex.html\\\\and~install~mimetex.cgi~"
-   "on~your~own~server.\\\\Thank~you,~John~Forkosh}}",
- "\\red\\small\\rm\\fbox{\\array{"	/* [1] */
-   "Please~provide~your~{\\tiny~HTTP-REFERER}~to~access~the~public\\\\"
-   "mimetex~server.~~Or~please~read~~www.forkosh.com/mimetex.html\\\\"
-   "and~install~mimetex.cgi~on~your~own~server.~~Thank~you,~John~Forkosh}}",
- "\\red\\small\\rm\\fbox{\\array{"	/* [2] */
-   "The~public~mimetex~server~is~for~testing.~~For~production,\\\\"
-   "please~read~~www.forkosh.com/mimetex.html~~and~install\\\\"
-   "mimetex.cgi~on~your~own~server.~~Thank~you,~John~Forkosh}}",
- NULL } ;				/* trailer */
-
 
 /* --- entry point --- */
 int	main ( int argc, char *argv[]
@@ -13541,14 +15418,22 @@
 	xbitmap_raster();		/* mime xbitmap output function */
 /* --- http_referer --- */
 char	*referer = REFERER;		/* http_referer must contain this */
+char	*inputreferer = INPUTREFERER;	/*http_referer's permitted to \input*/
+int	reflevels = REFLEVELS, urlncmp(); /* cmp http_referer,server_name */
+int	strreplace();			/* replace SERVER_NAME in errmsg */
+char	*urlprune();			/* prune referer_match */
 struct	{ char *referer; int msgnum; }	/* http_referer can't contain this */
 	denyreferer[] = {		/* referer table to deny access to */
 	#ifdef DENYREFERER
 	  #include DENYREFERER		/* e.g.,  {"",1},  for no referer */
 	#endif
 	{ NULL, -999 } };		/* trailer */
-char	*http_referer = getenv("HTTP_REFERER"); /* referer using mimeTeX */
-int	ishttpreferer = (http_referer==NULL?0:(*http_referer=='\000'?0:1));
+char	*http_referer = getenv("HTTP_REFERER"), /* referer using mimeTeX */
+	*http_host    = getenv("HTTP_HOST"), /* http host for mimeTeX */
+	*server_name  = getenv("SERVER_NAME"), /* server hosting mimeTeX */
+	*referer_match = (!isempty(http_host)?http_host: /*match http_host*/
+	  (!isempty(server_name)?server_name:(NULL))); /* or server_name */
+int	ishttpreferer = (isempty(http_referer)?0:1);
 int	isstrstr();			/* search http_referer for referer */
 int	isinvalidreferer = 0;		/* true for inavlid referer */
 int	norefmaxlen = NOREFMAXLEN;	/*max query_string len if no referer*/
@@ -13576,16 +15461,22 @@
 int	ncolors=2,			/* #colors (2=b&w) */
 	aacolormap();			/* build colormap from bytemap */
 int	ipattern;			/*patternnumcount[] index diagnostic*/
+/* --- advertisement preprocessing --- */
+int	advertisement(), crc16();	/*wrap expression in advertisement*/
+char	*adtemplate = NULL;		/* usually use default message */
+char	*host_showad = HOST_SHOWAD;	/* show ads only on this host */
 /* --- messages --- */
 char	logfile[256] = LOGFILE,		/*log queries if msglevel>=LOGLEVEL*/
 	cachelog[256] = CACHELOG;	/* cached image log in cachepath/ */
 char	*timestamp();			/* time stamp for logged messages */
+char	*strdetex();			/* remove math chars from messages */
 int	logger();			/* logs environ variables */
 int	ismonth();			/* check argv[0] for current month */
 char	*progname = (argc>0?argv[0]:"noname"); /* name program executed as */
 char	*dashes =			/* separates logfile entries */
  "--------------------------------------------------------------------------";
-char	*invalid_referer_msg = msgtable[0]; /* msg to invalid http_referer */
+char	*invalid_referer_msg = msgtable[invmsgnum]; /*msg to invalid referer*/
+char	*invalid_referer_match = msgtable[refmsgnum]; /*referer isn't host*/
 /* -------------------------------------------------------------------------
 initialization
 -------------------------------------------------------------------------- */
@@ -13594,17 +15485,25 @@
   system(SYSTEM);
 #endif
 /* --- set global variables --- */
+daemonlevel++;				/* signal other funcs to reset */
 msgfp = stdout;				/* for comamnd-line mode output */
 isss = issupersampling;			/* set supersampling flag */
 isemitcontenttype = 1;			/* true to emit mime content-type */
 iscachecontenttype = 0;			/* true to cache mime content-type */
 *contenttype = '\000';			/* reset content-type:, etc. cache */
+isnomath = 0;				/* true to inhibit math mode */
+seclevel = SECURITY;			/* overall security level */
+inputseclevel = INPUTSECURITY;		/* security level for \input{} */
+counterseclevel = COUNTERSECURITY;	/* security level for \counter{} */
+environseclevel = ENVIRONSECURITY;	/* security level for \environ */
+ninputcmds = 0;				/* reset count of \input commands */
+exitstatus=0; errorstatus=ERRORSTATUS;	/* reset exit/error status */
 iscaching = ISCACHING;			/* true if caching images */
 if ( iscaching ) {			/* images are being cached */
   strcpy(cachepath,CACHEPATH);		/* relative path to cached files */
   if ( *cachepath == '%' ) {		/* leading % signals cache headers */
     iscachecontenttype = 1;		/* signal caching mime content-type*/
-    strcpy(cachepath,cachepath+1); } }	/* and squeeze out leading % char */
+    strsqueeze(cachepath,1); } }	/* and squeeze out leading % char */
 gifSize = 0;				/* signal that image not in memory */
 fgred=FGRED; fggreen=FGGREEN; fgblue=FGBLUE; /* default foreground colors */
 bgred=BGRED; bggreen=BGGREEN; bgblue=BGBLUE; /* default background colors */
@@ -13615,20 +15514,23 @@
  * check QUERY_STRING query for expression overriding command-line arg
  * ------------------------------------------------------------------- */
 if ( query != NULL )			/* check query string from environ */
-  if ( strlen(query) >= 1 )		/* caller gave us a query string */
-    { strncpy(expression,query,MAXEXPRSZ); /* so use it as expression */
-      expression[MAXEXPRSZ] = '\000';	/* make sure it's null terminated */
-      if ( 0 )				/*true to remove leading whitespace*/
-        while ( isspace(*expression) && *expression!='\000' )
-          strcpy(expression,expression+1); /* squeeze out white space */
-      isquery = 1; }			/* and set isquery flag */
-if ( !isquery )				/* empty query string */
-  { char *host = getenv("HTTP_HOST"),	/* additional getenv("") results */
-    *name = getenv("SERVER_NAME"), *addr = getenv("SERVER_ADDR");
-    if ( host!=NULL || name!=NULL || addr!=NULL ) /* assume http query */
-      {	isquery = 1;			/* set flag to signal query */
-	strcpy(expression,"\\red\\small\\fbox{\\rm~no~query~string}"); }
-    isqempty = 1;			/* signal empty query string */
+  if ( strlen(query) >= 1 ) {		/* caller gave us a query string */
+    strncpy(expression,query,MAXEXPRSZ); /* so use it as expression */
+    expression[MAXEXPRSZ] = '\000';	/* make sure it's null terminated */
+    if ( 0 )				/*true to remove leading whitespace*/
+      while ( isspace(*expression) && *expression!='\000' )
+        {strsqueeze(expression,1);}	/* squeeze out white space */
+    isquery = 1; }			/* and set isquery flag */
+if ( !isquery ) {			/* empty query string */
+  char *host = getenv("HTTP_HOST"),	/* additional getenv("") results */
+  *name = getenv("SERVER_NAME"), *addr = getenv("SERVER_ADDR");
+  if ( host!=NULL || name!=NULL || addr!=NULL ) { /* assume http query */
+    isquery = 1;			/* set flag to signal query */
+    if ( exitstatus == 0 ) exitstatus = errorstatus; /* signal error */
+    strcpy(expression,			/* and give user an error message */
+    "\\red\\small\\rm\\fbox{\\begin{gather}\\LaTeX~expression~not~supplied"
+    "\\\\i.e.,~no~?query\\_string~given~to~mimetex.cgi\\end{gather}}"); }
+  isqempty = 1;				/* signal empty query string */
   } /* --- end-of-if(!isquery) --- */
 /* ---
  * process command-line input args (if not a query)
@@ -13683,10 +15585,10 @@
 	     if ( arglen > 1 ) ptype = atoi(field+1);	/* -g2 ==> ptype=2 */
 	     if ( 1 || *argv[argnum]=='-' ) argnum--; /*next arg is -switch*/
 	     else pbm_outfile = argv[argnum]; break; /*next arg is filename*/
-	case 'm': msglevel = atoi(argv[argnum]);                      break;
+	case 'm': if ( argnum < argc ) msglevel = atoi(argv[argnum]); break;
 	case 'o': istransparent = (istransparent?0:1);     argnum--;  break;
 	case 'q': isqforce = 1;                            argnum--;  break;
-	case 's': size = atoi(argv[argnum]);                          break;
+	case 's': if ( argnum < argc ) size = atoi(argv[argnum]);     break;
 	} /* --- end-of-switch(flag) --- */
       } /* --- end-of-if(*argv[argnum]=='-') --- */
     else				/* expression if arg not a -flag */
@@ -13760,7 +15662,7 @@
  if ( !memcmp(expression,"formdata",8) ) /*must be <input name="formdata"> */
   { char *delim=strchr(expression,'=');	/* find equal following formdata */
     if ( delim != (char *)NULL )	/* found unescaped equal sign */
-      strcpy(expression,delim+1);	/* so shift name= out of expression*/
+      {strsqueezep(expression,delim+1);} /* so shift name= out */
     while ( (delim=strchr(expression,'+')) != NULL ) /*unescaped plus sign*/
       *delim = ' ';			/* is "shorthand" for blank space */
     /*unescape_url(expression,1);*/	/* convert unescaped %xx's to chars */
@@ -13771,6 +15673,12 @@
  else /* --- query, but not <form> input --- */
     unescape_url(expression,0); }	/* convert _all_ %xx's to chars */
 /* ---
+ * check queries for prefixes/suffixes/embedded that might cause problems
+ * ---------------------------------------------------------------------- */
+/* --- expression whose last char is \ --- */
+if ( lastchar(expression) == '\\' )	/* last char is backslash */
+  strcat(expression," ");		/* assume "\ " lost the final space*/
+/* ---
  * check queries for embedded prefixes signalling special processing
  * ----------------------------------------------------------------- */
 if ( isquery )				/* only check queries */
@@ -13782,7 +15690,7 @@
       {	*delim = '\000';		/* replace delim with null */
 	if ( seclevel <= 9 )		/* permit msglevel specification */
 	  msglevel = atoi(expression+9); /* interpret ### in msglevel###$ */
-	strcpy(expression,delim+1); } }	/* shift out prefix and delim */
+	strsqueezep(expression,delim+1); } } /* squeeze out prefix & delim */
  /* --- next check for logfile=xxx$ prefix (must follow msglevel) --- */
  if ( !memcmp(expression,"logfile=",8) ) /* query has logfile= prefix */
    { char *delim=strchr(expression,'$'); /* find $ delim following logfile=*/
@@ -13790,7 +15698,7 @@
       {	*delim = '\000';		/* replace delim with null */
 	if ( seclevel <= 3 )		/* permit logfile specification */
 	  strcpy(logfile,expression+8);	/* interpret xxx in logfile=xxx$ */
-	strcpy(expression,delim+1); } }	/* shift out prefix and delim */
+	strsqueezep(expression,delim+1); } } /* squeeze out prefix & delim */
  } /* --- end-of-if(isquery) --- */
 /* ---
  * log query (e.g., for debugging)
@@ -13857,20 +15765,42 @@
 if ( 1 || isquery )			/* queries or command-line */
  if ( *exprprefix != '\000' )		/* we have a prefix string */
   { int npref = strlen(exprprefix);	/* #chars in prefix */
-    memmove(expression+npref+1,expression,strlen(expression)+1); /*make room*/
+    memmove(expression+npref+1,expression,strlen(expression)+1);/*make room*/
     memcpy(expression,exprprefix,npref); /* copy prefix into expression */
     expression[npref] = '{';		/* followed by { */
     strcat(expression,"}"); }		/* and terminating } to balance { */
 /* ---
- * check if http_referer is allowed to use this image
- * -------------------------------------------------- */
-if ( isquery )				/* not relevant if "interactive" */
- if ( referer != NULL )			/* nor if compiled w/o -DREFERER= */
-  if ( strcmp(referer,"month") != 0 )	/* nor if it's *only* "month" */
-   if ( http_referer != NULL )		/* nor if called "standalone" */
-    if ( !isstrstr(http_referer,referer,0) ) /* invalid http_referer */
-     { expression = invalid_referer_msg; /* so give user error message */
-       isinvalidreferer = 1; }		/* and signal invalid referer */
+ * check if http_referer is allowed to use this image and to use \input{}
+ * ---------------------------------------------------------------------- */
+if ( isquery ) {			/* not relevant if "interactive" */
+ /* --- check -DREFERER=\"comma,separated,list\" of valid referers --- */
+ if ( referer != NULL ) {		/* compiled with -DREFERER=\"...\" */
+  if ( strcmp(referer,"month") != 0 )	/* but it's *only* "month" signal */
+   if ( ishttpreferer )			/* or called "standalone" */
+    if ( !isstrstr(http_referer,referer,0) ) { /* invalid http_referer */
+      expression = invalid_referer_msg; /* so give user error message */
+      isinvalidreferer = 1; } }		/* and signal invalid referer */
+ else					/* compiled without -DREFERER= */
+  if ( reflevels > 0 ) {		/*match referer unless -DREFLEVELS=0*/
+   /* --- check topmost levels of http_referer against http_host --- */
+   if ( ishttpreferer			/* have http_referer */
+   &&   !isempty(referer_match) )	/* and something to match it with */
+    if ( !urlncmp(http_referer,referer_match,reflevels) ) { /*match failed*/
+     strcpy(exprbuffer,invalid_referer_match); /* init error message */
+     strreplace(exprbuffer,"SERVER_NAME", /* and then replace SERVER_NAME */
+       strdetex(urlprune(referer_match,reflevels),1),0);/*with referer_match*/
+     isinvalidreferer = 1; }		/* and signal invalid referer */
+   } /* --- end-of-if(reflevels>0) --- */
+ /* --- check -DINPUTREFERER=\"comma,separated,list\" of \input users --- */
+ inputseclevel = INPUTSECURITY;		/* set default input security */
+ if ( inputreferer != NULL ) {		/* compiled with -DINPUTREFERER= */
+  if ( http_referer == NULL )		/* but no http_referer given */
+   inputseclevel = (-1);		/* unknown user can't \input{} */
+  else					/*have inputreferer and http_referer*/
+   if ( !isstrstr(http_referer,inputreferer,0) ) /*http_referer can't \input*/
+    inputseclevel = (-1);		/* this known user can't \input{} */
+  } /* --- end-of-if(inputreferer!=NULL) --- */
+ } /* --- end-of-if(isquery) --- */
 /* ---
  * check if referer contains "month" signal
  * ---------------------------------------- */
@@ -13910,12 +15840,35 @@
 if ( isquery )				/* not relevant if "interactive" */
  if ( !isinvalidreferer )		/* nor if already invalid referer */
   if ( !ishttpreferer )			/* no http_referer supplied */
-   if ( strlen(expression) > norefmaxlen ) /* query_string too long */
-    { expression = invalid_referer_msg;	/* set invalid http_referer message*/
-      isinvalidreferer = 1; }		/* and signal invalid referer */
+   if ( strlen(expression) > norefmaxlen ) { /* query_string too long */
+    if ( isempty(referer_match) )	/* no referer_match to display */
+     expression = invalid_referer_msg;	/* set invalid http_referer message*/
+    else {				/* error with referer_match display*/
+     strcpy(exprbuffer,invalid_referer_match); /* init error message */
+     strreplace(exprbuffer,"SERVER_NAME", /* and then replace SERVER_NAME */
+       strdetex(urlprune(referer_match,reflevels),1),0); } /*with host_http*/
+     isinvalidreferer = 1; }		/* and signal invalid referer */
 /* ---
- * check for image caching
- * ----------------------- */
+ * check for "advertisement"
+ * ------------------------- */
+/* --- check if advertisement messages only for one particular host --- */
+if ( !isempty(host_showad) )		/* messages only for this referer */
+ if ( !isempty(referer_match) )		/* have HTTP_HOST or SERVER_NAME */
+   if ( strstr(referer_match,host_showad) /* see if this host sees ad */
+   == NULL )				/* not mimetex host for ad */
+     adfrequency = 0;			/* turn off advertisements */
+/* --- check for advertisement directive (\advertisement) --- */
+if ( strreplace(expression,"\\advertisement","",0) /*remove \advertisement*/
+>=   1 ) adfrequency = 1;		/* force advertisement display */
+if ( adfrequency > 0 ) {		/* advertising enabled */
+  int	npump = crc16(expression)%16;	/* #times, 0-15, to pump rand() */
+  srand(atoi(timestamp(TZDELTA,4)));	/* init rand() with mmddhhmmss */
+  while ( npump-- >= 0 ) rand();	/* pre-pump rand() before use */
+  if ( (1+rand())%adfrequency == 0 ) {	/* once every adfrequency calls */
+    advertisement(expression,adtemplate); } } /*wrap expression in advert*/
+/* ---
+ * check for image caching (and whether or not caching content type)
+ * ----------------------------------------------------------------- */
 if ( strstr(expression,"\\counter")  != NULL /* can't cache \counter{} */
 ||   strstr(expression,"\\input")    != NULL /* can't cache \input{} */
 ||   strstr(expression,"\\today")    != NULL /* can't cache \today */
@@ -13924,6 +15877,10 @@
 ||   isformdata				/* don't cache user form input */
  ) { iscaching = 0;			/* so turn caching off */
      maxage = 5; }			/* and set max-age to 5 seconds */
+if ( strstr(expression,"\\depth")    != NULL ) /* cache content-type lines */
+     iscachecontenttype = 1;		/* set flag to cache content-type */
+if ( strstr(expression,"\\nodepth")  != NULL ) /* don't cache content-type */
+     iscachecontenttype = 0;		/*set flag to not cache content-type*/
 if ( isquery )				/* don't cache command-line images */
  if ( iscaching )			/* image caching enabled */
   {
@@ -13981,8 +15938,10 @@
  * emit copyright, gnu/gpl notice (if "interactive")
  * ------------------------------------------------- */
 if ( !isdumpimage )			/* don't mix ascii with image dump */
- if ( (!isquery||isqlogging) && msgfp!=NULL ) /* called from command line */
-   fprintf(msgfp,"%s\n",copyright);	/* display copyright, gnu/gpl info */
+ if ( (!isquery||isqlogging) && msgfp!=NULL ) { /* called from command line */
+   fprintf(msgfp,"%s\n%s\n",copyright1,copyright2); /* display copyright */
+   fprintf(msgfp,"Most recent revision: %s\n",REVISIONDATE); /*revision date*/
+   } /* --- end-of-if(!isquery...) --- */
 /* -------------------------------------------------------------------------
 rasterize expression and put a border around it
 -------------------------------------------------------------------------- */
@@ -13990,25 +15949,58 @@
 if ( expression != NULL ) {		/* have expression to rasterize */
   expression = mimeprep(expression); }	/* preprocess expression */
 /* --- double-check that we actually have an expression to rasterize --- */
-if ( expression == NULL )		/* nothing to rasterize */
- { if ( (!isquery||isqlogging) && msgfp!=NULL ) /*emit error if not a query*/
-     fprintf(msgfp,"No expression to rasterize\n");
-   goto end_of_job; }			/* and then quit */
+if ( expression == NULL ) {		/* nothing to rasterize */
+  if ( exitstatus == 0 ) exitstatus = errorstatus; /*signal error to parent*/
+  if ( (!isquery||isqlogging) && msgfp!=NULL ) { /*emit error if not query*/
+    if ( exitstatus != 0 ) fprintf(msgfp,"Exit code = %d,\n",exitstatus);
+    fprintf(msgfp,"No LaTeX expression to rasterize\n"); }
+  goto end_of_job; }			/* and then quit */
 /* --- rasterize expression --- */
-if ( (sp = rasterize(expression,size)) == NULL ) /* failed to rasterize */
- { if ( (!isquery||isqlogging) && msgfp!=NULL ) /*emit error if not a query*/
-     fprintf(msgfp,"Failed to rasterize %s\n",expression);
-   if ( isquery ) sp = rasterize(	/* or emit error raster if query */
-     "\\red\\rm~\\fbox{mimeTeX~failed~to~render\\\\your~expression}",1);
-   if ( sp ==  NULL ) goto end_of_job; } /* re-check for failure */
+if ( (sp = rasterize(expression,size)) == NULL ) { /* failed to rasterize */
+  if ( exitstatus == 0 ) exitstatus = errorstatus; /*signal error to parent*/
+  if ( (!isquery||isqlogging) && msgfp!=NULL ) { /*emit error if not query*/
+    if ( exitstatus != 0 ) fprintf(msgfp,"Exit code = %d,\n",exitstatus);
+    fprintf(msgfp,"Failed to rasterize %.2048s\n",expression); }
+  if ( isquery ) {			/* try to display failed expression*/
+    char errormsg[4096];		/* buffer for failed expression */
+    strcpy(errormsg,			/* init error message */
+    "\\red\\fbox{\\begin{gather}"
+    "{\\rm~mi\\underline{meTeX~failed~to~render~your~expressi}on}\\\\[5]");
+    strcat(errormsg,"{\\rm\\hspace{10}{"); /*render expression as \rm*/
+    strcat(errormsg,strdetex(expression,0));/*add detexed expression to msg*/
+    strcat(errormsg,"}\\hspace{10}}\\end{gather}}"); /* finish up */
+    if ( (sp = rasterize(errormsg,1)) == NULL ) /*couldn't rasterize errmsg*/
+      sp = rasterize(			/* so rasterize generic error */
+      "\\red\\rm~\\fbox{mimeTeX~failed~to~render\\\\your~expression}",1); }
+  if ( sp ==  NULL ) goto end_of_job;	/* re-check for err message failure*/
+  magstep = 1;				/* don't magstep error msgs */
+  } /* --- end-of-if((sp=rasterize())==NULL) --- */
+/* --- magnify entire image here if we need >>bit<<map for pbm output --- */
+if ( !isaa || (ispbmpgm && ptype<2) ) {	/*or use bytemapmag() below instead*/
+ if ( magstep > 1 && magstep <= 10 ) {	/* magnify entire bitmap image */
+  raster *rastmag(), *magrp=NULL;	/* bitmap magnify function */
+  int baseline = sp->baseline;		/* original image baseline */
+  magrp = rastmag(sp->image,magstep);	/* magnify raster image */
+  if ( magrp != NULL ) {		/* succeeded to magnify image */
+    delete_raster(sp->image);		/* free original raster image */
+    sp->image = magrp;			/*and replace it with magnified one*/
+    /* --- adjust parameters --- */
+    baseline *= magstep;		/* scale baseline */
+    if ( baseline > 0 ) baseline += 1;	/* adjust for no descenders */
+    sp->baseline = baseline; }		/*reset baseline of magnified image*/
+  magstep = (-1);			/*done, don't also use bytemapmag()*/
+  } /* --- end-of-if(magstep) --- */
+ } /* --- end-of-if(1||(ispbmpgm&&ptype<2)) --- */
 /* ---no border requested, but this adjusts width to multiple of 8 bits--- */
 if ( issupersampling )			/* no border needed for gifs */
   bp = sp->image;			/* so just extract pixel map */
 else					/* for mime xbitmaps must have... */
   bp = border_raster(sp->image,0,0,0,1); /* image width multiple of 8 bits */
 sp->image = bitmap_raster = bp;		/* global copy for gif,png output */
+raster_width = bp->width; raster_height = bp->height; /* global copy */
+raster_baseline = sp->baseline;		/* global copy (not needed) */
 if ( sp!=NULL && bp!=NULL ) {		/* have raster */
-  valign = sp->baseline - (bp->height - 1); /* #pixels for Vertical-Align: */
+  valign= raster_baseline -(raster_height -1);/*#pixels for Vertical-Align:*/
   if ( abs(valign) > 255 ) valign = (-9999); } /* sanity check */
 if ( ispbmpgm && ptype<2 )		/* -g switch or -g1 switch */
   type_pbmpgm(bp,ptype,pbm_outfile);	/* emit b/w pbm file */
@@ -14020,7 +16012,7 @@
   /* ---
    * allocate bytemap and colormap as per width*height of bitmap
    * ----------------------------------------------------------- */
-  int	nbytes = (bp->width)*(bp->height); /*#bytes needed in byte,colormap*/
+  int	nbytes = (raster_width)*(raster_height); /*#bytes for byte,colormap*/
   if ( isss )				/* anti-aliasing by supersampling */
     bytemap_raster = (intbyte *)(bitmap_raster->pixmap); /*bytemap in raster*/
   else					/* need to allocate bytemap */
@@ -14029,9 +16021,6 @@
     else				/* anti-aliasing wanted */
       if ( (bytemap_raster = (intbyte *)malloc(nbytes)) /* malloc bytemap */
       ==   NULL ) isaa = 0;		/* reset flag if malloc failed */
-  if ( isaa )				/* have bytemap, so... */
-    if ( (colormap_raster = (intbyte *)malloc(nbytes)) /* malloc colormap */
-    ==   NULL ) isaa = 0;		/* reset flag if malloc failed */
   /* ---
    * now generate anti-aliased bytemap and colormap from bitmap
    * ---------------------------------------------------------- */
@@ -14088,9 +16077,32 @@
        "all patterns: %7d          +%7d          =%7d  total pixels\n",
        pcount0,pcount1,pcount0+pcount1); }
     /* ---
+     * apply magstep if requested and not already done to bitmap above
+     * --------------------------------------------------------------- */
+      if ( 1 ) {			/* or use rastmag() above instead */
+       if ( magstep > 1 && magstep <= 10 ) { /*magnify entire bytemap image*/
+        intbyte *bytemapmag(), *magmap=NULL; /* bytemap magnify function */
+        magmap=bytemapmag(bytemap_raster,raster_width,raster_height,magstep);
+        if ( magmap != NULL ) {		/* succeeded to magnify image */
+          free(bytemap_raster);		/* free original bytemap image */
+          bytemap_raster = magmap;	/*and replace it with magnified one*/
+          /* --- adjust parameters --- */
+          raster_width *= magstep; raster_height *= magstep; /*scale raster*/
+          nbytes *= (magstep*magstep);	/* scale total image size */
+          if ( abs(valign) < 255 ) {	/* valign okay */
+            valign *= magstep;		/* scale by magstep */
+            if ( abs(valign) > 512 ) valign = (-9999); } /* sanity check */
+          } /* --- end-of-if(magmap!=NULL) --- */
+        magstep = (-1);			/*done, don't also use bytemapmag()*/
+        } /* --- end-of-if(magstep) --- */
+       } /* --- end-of-if(1) --- */
+    /* ---
      * finally, generate colors and colormap
      * ------------------------------------- */
-    if ( isaa ) {			/* we have bytemap_raster */
+    if ( isaa )				/* have bytemap, so... */
+      if ( (colormap_raster = (intbyte *)malloc(nbytes)) /*malloc colormap*/
+      ==   NULL ) isaa = 0;		/* reset flag if malloc failed */
+    if ( isaa ) {			/* we have byte/colormap_raster */
       ncolors = aacolormap(bytemap_raster,nbytes,colors,colormap_raster);
       if ( ncolors < 2 )		/* failed */
 	{ isaa = 0;			/* so turn off anti-aliasing */
@@ -14098,7 +16110,7 @@
       } /* --- end-of-if(isaa) --- */
      if ( isaa && ispbmpgm && ptype>1 ) { /* -g2 switch  */
       raster pbm_raster;		/*construct arg for write_pbmpgm()*/
-      pbm_raster.width  = bp->width;  pbm_raster.height = bp->height;
+      pbm_raster.width  = raster_width;  pbm_raster.height = raster_height;
       pbm_raster.pixsz  = 8;  pbm_raster.pixmap = (pixbyte *)bytemap_raster;
       type_pbmpgm(&pbm_raster,ptype,pbm_outfile); } /*write grayscale file*/
     } /* --- end-of-if(isaa) --- */
@@ -14125,11 +16137,13 @@
     if ( msgfp!=NULL && msglevel>=9 )	/* don't usually emit raw bytemap */
       {	fprintf(msgfp,"\nHex dump of anti-aliased bytemap, " /*emit bytemap*/
 	"asterisks denote \"black\" bytes (value=%d)...\n",grayscale-1);
-	type_bytemap(bytemap_raster,grayscale,bp->width,bp->height,msgfp); }
+	type_bytemap(bytemap_raster,grayscale,
+        raster_width,raster_height,msgfp); }
     /* --- colormap image --- */
     fprintf(msgfp,"\nHex dump of colormap indexes, "  /* emit colormap */
       "asterisks denote \"black\" bytes (index=%d)...\n",ncolors-1);
-    type_bytemap(colormap_raster,ncolors,bp->width,bp->height,msgfp);
+    type_bytemap(colormap_raster,ncolors,
+    raster_width,raster_height,msgfp);
     /* --- rgb values corresponding to colormap indexes */
     fprintf(msgfp,"\nThe %d colormap indexes denote rgb values...",ncolors);
     for ( igray=0; igray<ncolors; igray++ ) /* show colors[] values */
@@ -14182,9 +16196,10 @@
   /* --- initialize gifsave library and colors --- */
   if ( msgfp!=NULL && msglevel>=999 )
     { fprintf(msgfp,"main> calling GIF_Create(*,%d,%d,%d,8)\n",
-      bp->width,bp->height,ncolors); fflush(msgfp); }
+      raster_width,raster_height,ncolors); fflush(msgfp); }
   while ( 1 )		/* init gifsave lib, and retry if caching fails */
-    { int status = GIF_Create(gif_outfile, bp->width,bp->height, ncolors, 8);
+    { int status = GIF_Create(gif_outfile,
+        raster_width,raster_height, ncolors, 8);
       if ( status == 0 ) break;		/* continue if succeeded */
       if ( iscaching == 0 ) goto end_of_job; /* quit if failed */
       iscaching = 0;			/* retry without cache file */
@@ -14269,7 +16284,9 @@
   #endif
   /* --- exit() if not running as Windows DLL (see CreateGifFromEq()) --- */
   #if !defined(_USRDLL)
-    exit ( 0 );
+    if ( errorstatus == 0 )		/*user doesn't want errors signalled*/
+      exitstatus = 0;			/* so reset error status */
+    exit ( exitstatus );
   #endif
 } /* --- end-of-function main() --- */
 
@@ -14324,73 +16341,6 @@
 	) ;
 } /* --- end-of-function CreateGifFromEq() --- */
 
-/* ==========================================================================
- * Function:	isstrstr ( char *string, char *snippets, int iscase )
- * Purpose:	determine whether any substring of 'string'
- *		matches any of the comma-separated list of 'snippets',
- *		ignoring case if iscase=0.
- * --------------------------------------------------------------------------
- * Arguments:	string (I)	char * containing null-terminated
- *				string that will be searched for
- *				any one of the specified snippets
- *		snippets (I)	char * containing null-terminated,
- *				comma-separated list of snippets
- *				to be searched for in string
- *		iscase (I)	int containing 0 for case-insensitive
- *				comparisons, or 1 for case-sensitive
- * --------------------------------------------------------------------------
- * Returns:	( int )		1 if any snippet is a substring of
- *				string, 0 if not
- * --------------------------------------------------------------------------
- * Notes:     o
- * ======================================================================= */
-/* --- entry point --- */
-int	isstrstr ( char *string, char *snippets, int iscase )
-{
-/* -------------------------------------------------------------------------
-Allocations and Declarations
--------------------------------------------------------------------------- */
-int	status = 0;			/*1 if any snippet found in string*/
-char	snip[99], *snipptr = snippets,	/* munge through each snippet */
-	delim = ',', *delimptr = NULL;	/* separated by delim's */
-char	stringcp[999], *cp = stringcp;	/*maybe lowercased copy of string*/
-/* -------------------------------------------------------------------------
-initialization
--------------------------------------------------------------------------- */
-/* --- arg check --- */
-if ( string==NULL || snippets==NULL ) goto end_of_job; /* missing arg */
-if ( *string=='\000' || *snippets=='\000' ) goto end_of_job; /* empty arg */
-/* --- copy string and lowercase it if case-insensitive --- */
-strcpy(stringcp,string);		/* local copy of string */
-if ( !iscase )				/* want case-insensitive compares */
-  for ( cp=stringcp; *cp != '\000'; cp++ ) /* so for each string char */
-    if ( isupper(*cp) ) *cp = tolower(*cp); /*lowercase any uppercase chars*/
-/* -------------------------------------------------------------------------
-extract each snippet and see if it's a substring of string
--------------------------------------------------------------------------- */
-while ( snipptr != NULL )		/* while we still have snippets */
-  {
-  /* --- extract next snippet --- */
-  if ( (delimptr = strchr(snipptr,delim)) /* locate next comma delim */
-  ==   NULL )				/*not found following last snippet*/
-    { strcpy(snip,snipptr);		/* local copy of last snippet */
-      snipptr = NULL; }			/* signal end-of-string */
-  else					/* snippet ends just before delim */
-    { int sniplen = (int)(delimptr-snipptr) - 1;  /* #chars in snippet */
-      memcpy(snip,snipptr,sniplen);	/* local copy of snippet chars */
-      snip[sniplen] = '\000';		/* null-terminated snippet */
-      snipptr = delimptr + 1; }		/* next snippet starts after delim */
-  /* --- lowercase snippet if case-insensitive --- */
-  if ( !iscase )			/* want case-insensitive compares */
-    for ( cp=snip; *cp != '\000'; cp++ ) /* so for each snippet char */
-      if ( isupper(*cp) ) *cp=tolower(*cp); /*lowercase any uppercase chars*/
-  /* --- check if snippet in string --- */
-  if ( strstr(stringcp,snip) != NULL )	/* found snippet in string */
-    { status = 1;			/* so reset return status */
-      break; }				/* no need to check any further */
-  } /* --- end-of-while(*snipptr!=0) --- */
-end_of_job: return ( status );		/*1 if snippet found in list, else 0*/
-} /* --- end-of-function isstrstr() --- */
 
 /* ==========================================================================
  * Function:	ismonth ( char *month )
@@ -14448,126 +16398,6 @@
   return ( isokay );			/*1 if month contains current month*/
 } /* --- end-of-function ismonth() --- */
 
-/* ==========================================================================
- * Functions:	int  unescape_url ( char *url, int isescape )
- *		char x2c ( char *what )
- * Purpose:	unescape_url replaces 3-character sequences %xx in url
- *		    with the single character represented by hex xx.
- *		x2c returns the single character represented by hex xx
- *		    passed as a 2-character sequence in what.
- * --------------------------------------------------------------------------
- * Arguments:	url (I)		char * containing null-terminated
- *				string with embedded %xx sequences
- *				to be converted.
- *		isescape (I)	int containing 1 to _not_ unescape
- *				\% sequences (0 would be NCSA default)
- *		what (I)	char * whose first 2 characters are
- *				interpreted as ascii representations
- *				of hex digits.
- * --------------------------------------------------------------------------
- * Returns:	( int )		unescape_url always returns 0.
- *		( char )	x2c returns the single char
- *				corresponding to hex xx passed in what.
- * --------------------------------------------------------------------------
- * Notes:     o	These two functions were taken verbatim from util.c in
- *   ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/cgi/ncsa-default.tar.Z
- *	      o	Not quite "verbatim" -- I added the "isescape logic" 4-Dec-03
- *		so unescape_url() can be safely applied to input which may or
- *		may not have been url-encoded.  (Note: currently, all calls
- *		to unescape_url() pass iescape=0, so it's not used.)
- *	      o	Added +++'s to blank xlation on 24-Sep-06
- *	      o	Added ^M,^F,etc to blank xlation 0n 01-Oct-06
- * ======================================================================= */
-/* --- entry point --- */
-int unescape_url(char *url, int isescape) {
-    int x=0,y=0,prevescape=0,gotescape=0;
-    int xlateplus = (isplusblank==1?1:0); /* true to xlate plus to blank */
-    int strreplace();			/* replace + with blank, if needed */
-    char x2c();
-    static char *hex="0123456789ABCDEFabcdef";
-    /* ---
-     * xlate ctrl chars to blanks
-     * -------------------------- */
-    if ( 1 ) {				/* xlate ctrl chars to blanks */
-      char *ctrlchars = "\n\t\v\b\r\f\a\015";
-      int  seglen = strspn(url,ctrlchars); /*initial segment with ctrlchars*/
-      int  urllen = strlen(url);	/* total length of url string */
-      /* --- first, entirely remove ctrlchars from beginning and end --- */
-      if ( seglen > 0 ) {		/*have ctrlchars at start of string*/
-	strcpy(url,url+seglen);		/* squeeze out initial ctrlchars */
-	urllen -= seglen; }		/* string is now shorter */
-      while ( --urllen >= 0 )		/* now remove ctrlchars from end */
-	if ( isthischar(url[urllen],ctrlchars) ) /* ctrlchar at end */
-	  url[urllen] = '\000';		/* re-terminate string before it */
-	else break;			/* or we're done */
-      urllen++;				/* length of url string */
-      /* --- now, replace interior ctrlchars with ~ blanks --- */
-      while ( (seglen=strcspn(url,ctrlchars)) < urllen ) /*found a ctrlchar*/
-	url[seglen] = '~';		/* replace ctrlchar with ~ */
-      } /* --- end-of-if(1) --- */
-    /* ---
-     * xlate +'s to blanks if requested or if deemed necessary
-     * ------------------------------------------------------- */
-    if ( isplusblank == (-1) ) {	/*determine whether or not to xlate*/
-      char *searchfor[] = { " ","%20", "%2B","%2b", "+++","++",
-	"+=+","+-+", NULL };
-      int  isearch = 0,			/* searchfor[] index */
-	   nfound[11] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; /*#occurrences*/
-      /* --- locate occurrences of searchfor[] strings in url --- */
-      for ( isearch=0; searchfor[isearch] != NULL; isearch++ ) {
-	char *psearch = url;		/* start search at beginning */
-	nfound[isearch] = 0;		/* init #occurrences count */
-	while ( (psearch=strstr(psearch,searchfor[isearch])) != NULL ) {
-	  nfound[isearch] += 1;		/* count another occurrence */
-	  psearch += strlen(searchfor[isearch]); } /*resume search after it*/
-	} /* --- end-of-for(isearch) --- */
-      /* --- apply some common-sense logic --- */
-      if ( nfound[0] + nfound[1] > 0 )	/* we have actual " "s or "%20"s */
-	isplusblank = xlateplus = 0;	/* so +++'s aren't blanks */
-      if ( nfound[2] + nfound[3] > 0 ) { /* we have "%2B" for +++'s */
-        if ( isplusblank != 0 )		/* and haven't disabled xlation */
-	  isplusblank = xlateplus = 1;	/* so +++'s are blanks */
-	else				/* we have _both_ "%20" and "%2b" */
-	  xlateplus = 0; }		/* tough call */
-      if ( nfound[4] + nfound[5] > 0	/* we have multiple ++'s */
-      ||   nfound[6] + nfound[7] > 0 )	/* or we have a +=+ or +-+ */
-	if ( isplusblank != 0 )		/* and haven't disabled xlation */
-	  xlateplus = 1;		/* so xlate +++'s to blanks */
-      } /* --- end-of-if(isplusblank==-1) --- */
-    if ( xlateplus > 0 ) {		/* want +'s xlated to blanks */
-      char *xlateto[] = { ""," "," "," + "," "," "," "," "," " };
-      while ( xlateplus > 0 ) {		/* still have +++'s to xlate */
-	char plusses[99] = "++++++++++++++++++++"; /* longest +++ string */
-	plusses[xlateplus] = '\000';	/* null-terminate +++'s */
-	strreplace(url,plusses,xlateto[xlateplus],0); /* xlate +++'s */
-	xlateplus--;			/* next shorter +++ string */
-	} /* --- end-of-while(xlateplus>0) --- */
-      } /* --- end-of-if(xlateplus) --- */
-    isplusblank = 0;			/* don't iterate this xlation */
-    /* ---
-     * xlate %nn to corresponding char
-     * ------------------------------- */
-    for(;url[y];++x,++y) {
-	gotescape = prevescape;
-	prevescape = (url[x]=='\\');
-	if((url[x] = url[y]) == '%')
-	 if(!isescape || !gotescape)
-	  if(isthischar(url[y+1],hex)
-	  && isthischar(url[y+2],hex))
-	    { url[x] = x2c(&url[y+1]);
-	      y+=2; }
-    }
-    url[x] = '\0';
-    return 0;
-} /* --- end-of-function unescape_url() --- */
-/* --- entry point --- */
-char x2c(char *what) {
-    char digit;
-    digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
-    digit *= 16;
-    digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
-    return(digit);
-} /* --- end-of-function x2c() --- */
 
 /* ==========================================================================
  * Function:	logger ( fp, msglevel, message, logvars )
@@ -14613,6 +16443,7 @@
 return ( nlogged );			/* back to caller */
 } /* --- end-of-function logger() --- */
 
+
 /* ==========================================================================
  * Function:	emitcache ( cachefile, maxage, valign, isbuffer )
  * Purpose:	dumps bytes from cachefile to stdout
@@ -14693,6 +16524,7 @@
   return ( nbytes );			/* back with #bytes emitted */
 } /* --- end-of-function emitcache() --- */
 
+
 /* ==========================================================================
  * Function:	readcachefile ( cachefile, buffer )
  * Purpose:	read cachefile into buffer
@@ -14748,6 +16580,92 @@
   return ( nbytes );			/* back with #bytes emitted */
 } /* --- end-of-function readcachefile() --- */
 
+
+/* ==========================================================================
+ * Function:	advertisement ( expression, message )
+ * Purpose:	wrap expression in advertisement message
+ * --------------------------------------------------------------------------
+ * Arguments:	expression (I/O) pointer to null-terminated char string
+ *				containing expression to be "wrapped",
+ *				and returning wrapped expression
+ *		message (I)	pointer to null-terminated char string
+ *				containing template for advertisement
+ *				message, or NULL to use default message
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		1 if successful, 0=error
+ * --------------------------------------------------------------------------
+ * Notes:     o
+ * ======================================================================= */
+/* --- entry point --- */
+int	advertisement ( char *expression, char *message )
+{
+/* -------------------------------------------------------------------------
+Allocations and Declarations
+-------------------------------------------------------------------------- */
+/* --- advertisement template --- */
+char  *adtemplate =
+	#if defined(ADVERTISEMENT)	/* cc -DADVERTISEMENT=\"filename\" */
+	  #include ADVERTISEMENT	/* filename with advertisement */
+	#else				/* formatted as illustrated below */
+	"\\begin{gather} {\\small\\text \\fbox{\\begin{gather}"
+	"mime\\TeX rendering courtesy of\\\\"
+	"\\homepagetext \\end{gather}}}\\\\"
+	" %%beginmath%% %%expression%% %%endmath%% \\end{gather}"
+	#endif
+	;				/* terminating semicolon */
+/* --- other variables --- */
+char	adbuffer[MAXEXPRSZ+2048];	/*construct wrapped expression here*/
+char	*beginmath = " ",		/* start math mode */
+	*endmath =   " ";		/* end math mode */
+int	strreplace();			/* replace %%keywords%% with values*/
+/* -------------------------------------------------------------------------
+wrap expression in advertisement
+-------------------------------------------------------------------------- */
+/* --- start with template --- */
+if ( isempty(message) )			/* caller didn't supply message */
+  message = adtemplate;			/* so use default message */
+strcpy(adbuffer,message);		/* copy message template to buffer */
+/* --- replace %%beginmath%%...%%endmath%% --- */
+  strreplace(adbuffer,"%%beginmath%%",beginmath,0);
+  strreplace(adbuffer,"%%endmath%%",endmath,0);
+/* --- replace %%expression%% in template with expression --- */
+  strreplace(adbuffer,"%%expression%%",expression,0);
+/* --- replace original expression --- */
+strcpy(expression,adbuffer);		/* expression now wrapped in ad */
+return ( 1 );				/* always just return 1 */
+} /* --- end-of-function advertisement() --- */
+
+
+/* ==========================================================================
+ * Function:	crc16 ( s )
+ * Purpose:	16-bit crc of string s
+ * --------------------------------------------------------------------------
+ * Arguments:	s (I)		pointer to null-terminated char string
+ *				whose crc is desired
+ * --------------------------------------------------------------------------
+ * Returns:	( int )		16-bit crc of s
+ * --------------------------------------------------------------------------
+ * Notes:     o	From Numerical Recipes in C, 2nd ed, page 900.
+ * ======================================================================= */
+/* --- entry point --- */
+int	crc16 ( char *s )
+{
+/* -------------------------------------------------------------------------
+Compute the crc
+-------------------------------------------------------------------------- */
+unsigned short crc = 0;			/* returned crc */
+int	ibit;				/* for(ibit) eight one-bit shifts */
+while ( !isempty(s) ) {			/* while there are still more chars*/
+  crc = (crc ^ (*s)<<8);		/* add next char */
+  for ( ibit=0; ibit<8; ibit++ )	/* generator polynomial */
+    if ( crc & 0x8000 ) { crc<<=1; crc=crc^4129; }
+    else crc <<= 1;
+  s++;					/* next xhar */
+  } /* --- end-of-while(!isempty(s)) --- */
+return ( (int)crc );			/* back to caller with crc */
+} /* --- end-of-function crc16() --- */
+
+
 /* ==========================================================================
  * Function:	md5str ( instr )
  * Purpose:	returns null-terminated character string containing
@@ -14974,6 +16892,7 @@
     PUT_UINT32( ctx->state[3], digest, 12 ); }
 /* --- end-of-function md5str() and "friends" --- */
 
+
 #if defined(GIF)
 /* ==========================================================================
  * Function:	GetPixel ( int x, int y )
@@ -14992,7 +16911,7 @@
 /* --- entry point --- */
 int	GetPixel ( int x, int y )
 {
-int	ipixel = y*bitmap_raster->width + x; /* pixel index for x,y-coords*/
+int	ipixel = y*raster_width + x;	/* pixel index for x,y-coords*/
 int	pixval =0;			/* value of pixel */
 if ( !isaa )				/* use bitmap if not anti-aliased */
   pixval = (int)getlongbit(bitmap_raster->pixmap,ipixel); /*pixel = 0 or 1*/
Index: loncom/cgi/mimeTeX/mimetex.h
diff -u loncom/cgi/mimeTeX/mimetex.h:1.4 loncom/cgi/mimeTeX/mimetex.h:1.5
--- loncom/cgi/mimeTeX/mimetex.h:1.4	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/mimetex.h	Sat Jun  9 00:58:11 2012
@@ -2,7 +2,7 @@
 #define	_MIMETEX
 /****************************************************************************
  *
- * Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
+ * Copyright(c) 2002-2011, John Forkosh Associates, Inc. All rights reserved.
  *           http://www.forkosh.com   mailto: john at forkosh.com
  * --------------------------------------------------------------------------
  * This file is part of mimeTeX, which is free software. You may redistribute
@@ -79,6 +79,17 @@
 #endif
 
 
+/* -------------------------------------------------------------------------
+miscellaneous macros
+-------------------------------------------------------------------------- */
+#define	max2(x,y)  ((x)>(y)? (x):(y))	/* larger of 2 arguments */
+#define	min2(x,y)  ((x)<(y)? (x):(y))	/* smaller of 2 arguments */
+#define	max3(x,y,z) max2(max2(x,y),(z))	/* largest of 3 arguments */
+#define	min3(x,y,z) min2(min2(x,y),(z))	/* smallest of 3 arguments */
+#define absval(x)  ((x)>=0?(x):(-(x)))	/* absolute value */
+#define	iround(x)  ((int)((x)>=0?(x)+0.5:(x)-0.5)) /* round double to int */
+#define	dmod(x,y)  ((x)-((y)*((double)((int)((x)/(y)))))) /*x%y for doubles*/
+
 /* --------------------------------------------------------------------------
 macros to get/set/unset a single bit (in rasters), and some bitfield macros
 -------------------------------------------------------------------------- */
@@ -281,6 +292,9 @@
 #define	BBOLD10		(7)		/* blackboard bold \mathbb A ... */
 #define	STMARY10	(8)		/* stmaryrd math symbols */
 #define	CYR10		(9)		/* cyrillic (wncyr10.mf) */
+#define	CMMI10GR	(10)		/* CMMI10 with a for \alpha, etc */
+#define	CMMI10BGR	(11)		/* CMMIB10 with a for \alpha, etc */
+#define	BBOLD10GR	(12)		/* BBOLD10 with a for \alpha, etc */
 #define	NOTACHAR	(99)		/* e.g., \frac */
 /* --- dummy argument value for handlers --- */
 #define	NOVALUE		(-989898)	/*charnum,family,class used as args*/
@@ -290,7 +304,7 @@
  * ----------------------- */
 STATIC	int  nfontinfo			/* legal font#'s are 1...nfontinfo */
 #ifdef INITVALS
-  = 8
+  = 11
 #endif
   ;
 STATIC	struct {char *name; int family; int istext; int class;}
@@ -307,6 +321,9 @@
     { "\\mathbf",  CMMIB10, 0, -1 }, /*(6) \bf,\mathbf{abc}-->{\mathbf~abc}*/
     { "\\mathrm",  CMR10,   0, -1 }, /*(7) \mathrm */
     { "\\cyr",     CYR10,   1, -1 }, /*(8) \cyr (defaults as text mode) */
+    { "\\textgreek",CMMI10GR,1,-1 }, /*(9) \textgreek{ab}-->\alpha\beta */
+    { "\\textbfgreek",CMMI10BGR,1,-1 },/*(10)\textbfgreek{ab}-->\alpha\beta*/
+    { "\\textbbgreek",BBOLD10GR,1,-1 },/*(11)\textbbgreek{ab}-->\alpha\beta*/
     {  NULL,	   0,       0,  0 } }
 #endif
   ; /* --- end-of-fonts[] --- */
@@ -314,8 +331,10 @@
 /* ---
  * additional font attributes (only size is implemented)
  * ----------------------------------------------------- */
-/* --- font sizes 0-7 = tiny,small,normal,large,Large,LARGE,huge,Huge --- */
-#define	LARGESTSIZE	(7)
+/* --- font sizes 0-10 = tiny=0,scriptsize=1,footnotesize=2,small=3,
+       normalsize=4,large=5,Large=6,LARGE=7,huge=8,Huge=9,HUGE=10 --- */
+/* --- (mimeTeX adds HUGE) --- */
+#define	LARGESTSIZE	(10)
 #ifdef DEFAULTSIZE
   #ifndef NORMALSIZE
     #define NORMALSIZE (DEFAULTSIZE)
@@ -323,19 +342,25 @@
 #endif
 #ifndef	NORMALSIZE
   /*#define NORMALSIZE	(2)*/
-  #define NORMALSIZE	(3)
+  /*#define NORMALSIZE	(3)*/
+  #define NORMALSIZE	(4)
 #endif
 #ifndef	DISPLAYSIZE
   /* --- automatically sets scripts in \displaystyle when fontsize>= --- */
   /*#define DISPLAYSIZE	(NORMALSIZE+1)*/
-  #define DISPLAYSIZE	(3)
+  /*#define DISPLAYSIZE	(3)*/
+  #define DISPLAYSIZE	(4)
 #endif
 
 /* ---
 aspect ratio is width/height of the displayed image of a pixel
 -------------------------------------------------------------- */
 #define	ASPECTRATIO	1.0 /*(16.0/9.0)*/
-#define	SQRTWIDTH(sqrtht) ((int)(.5*((double)(sqrtht+1))*ASPECTRATIO + 0.5))
+#define SURDSERIFWIDTH(sqrtht) max2(1, ( 1 + (((sqrtht)+8)/20) ) )
+#define	SURDWIDTH(sqrtht,x) ( SURDSERIFWIDTH((sqrtht)) + \
+		(((sqrtht)+1)*ASPECTRATIO + 1) / ((((sqrtht))/20)+(x))  )
+		/* ((int)(.5*((double)((sqrtht)+1))*ASPECTRATIO + 0.5)) ) */
+#define	SQRTWIDTH(sqrtht,x) min2(32,max2(10,SURDWIDTH((sqrtht),(x))))
 
 /* ---
  * space between adjacent symbols, e.g., symspace[RELATION][VARIABLE]
@@ -432,18 +457,35 @@
 #ifdef INITVALS
  =
  {/* -----------------------------------------------------------------------------------------
-    family     size=0,        1,        2,        3,        4,        5,        6,        7
+    family     size=0,        1,        2,        3,        4,        5,
+                    6,        7,        8,        9,	   10
   ----------------------------------------------------------------------------------------- */
-  {   CMR10,{   cmr83,   cmr100,   cmr118,   cmr131,   cmr160,   cmr180,   cmr210,   cmr250}},
-  {  CMMI10,{  cmmi83,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,  cmmi210,  cmmi250}},
-  { CMMIB10,{ cmmib83, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180, cmmib210, cmmib250}},
-  {  CMSY10,{  cmsy83,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,  cmsy210,  cmsy250}},
-  {  CMEX10,{  cmex83,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,  cmex210,  cmex250}},
-  {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
-  { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
-  {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
-  {   CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}},
-  {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
+  {   CMR10,{   cmr83,   cmr100,   cmr118,   cmr131,   cmr160,   cmr180,
+               cmr210,   cmr250,   cmr325,   cmr450,   cmr600}},
+  {  CMMI10,{  cmmi83,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,
+              cmmi210,  cmmi250,  cmmi325,  cmmi450,  cmmi600}},
+  { CMMIB10,{ cmmib83, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180,
+             cmmib210, cmmib250, cmmib325, cmmib450, cmmib600}},
+  {  CMSY10,{  cmsy83,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,
+              cmsy210,  cmsy250,  cmsy325,  cmsy450,  cmsy600}},
+  {  CMEX10,{  cmex83,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,
+              cmex210,  cmex250,  cmex325,  cmex450,  cmex600}},
+  {  RSFS10,{  rsfs83,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,
+              rsfs210,  rsfs250,  rsfs325,  rsfs450,  rsfs600}},
+  { BBOLD10,{ bbold83, bbold100, bbold118, bbold131, bbold160, bbold180,
+             bbold210, bbold250, bbold325, bbold450, bbold600}},
+  {STMARY10,{stmary83,stmary100,stmary118,stmary131,stmary160,stmary180,
+            stmary210,stmary250,stmary325,stmary450,stmary600}},
+  {   CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180,
+             wncyr210, wncyr250, wncyr325, wncyr450, wncyr600}},
+  {CMMI10GR,{  cmmi83,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,
+              cmmi210,  cmmi250,  cmmi325,  cmmi450,  cmmi600}},
+  {CMMI10BGR,{cmmib83, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180,
+             cmmib210, cmmib250, cmmib325, cmmib450, cmmib600}},
+  {BBOLD10GR,{bbold83, bbold100, bbold118, bbold131, bbold160, bbold180,
+             bbold210, bbold250, bbold325, bbold450, bbold600}},
+  {    -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,
+                 NULL,     NULL,     NULL,     NULL,     NULL}}
  }
 #endif
  ; /* --- end-of-aafonttable[] --- */
@@ -454,18 +496,35 @@
  #ifdef INITVALS
   =
   {/* -----------------------------------------------------------------------------------------
-    family     size=0,        1,        2,        3,        4,        5,        6,        7
+    family     size=0,        1,        2,        3,        4,        5,
+                    6,        7,        8,        9,       10
    ----------------------------------------------------------------------------------------- */
-   {  CMR10,{  cmr250,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200}},
-   { CMMI10,{ cmmi250,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,  cmmi210,  cmmi250}},
-   {CMMIB10,{cmmib250, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180, cmmib210, cmmib250}},
-   { CMSY10,{ cmsy250,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,  cmsy210,  cmsy250}},
-   { CMEX10,{ cmex250,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,  cmex210,  cmex250}},
-   { RSFS10,{ rsfs250,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,  rsfs210,  rsfs250}},
-  { BBOLD10,{bbold250, bbold100, bbold118, bbold131, bbold160, bbold180, bbold210, bbold250}},
- {STMARY10,{stmary250,stmary100,stmary118,stmary131,stmary160,stmary180,stmary210,stmary250}},
-  {   CYR10,{ wncyr83, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180, wncyr210, wncyr250}},
-   {   -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     NULL}}
+   {  CMR10,{  cmr250,  cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200,
+              cmr1200,  cmr1200,  cmr1200,  cmr1200,  cmr1200}},
+   { CMMI10,{ cmmi250,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,
+              cmmi210,  cmmi250,  cmmi325,  cmmi450,  cmmi600}},
+   {CMMIB10,{cmmib250, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180,
+             cmmib210, cmmib250, cmmib325, cmmib450, cmmib600}},
+   { CMSY10,{ cmsy250,  cmsy100,  cmsy118,  cmsy131,  cmsy160,  cmsy180,
+              cmsy210,  cmsy250,  cmsy325,  cmsy450,  cmsy600}},
+   { CMEX10,{ cmex250,  cmex100,  cmex118,  cmex131,  cmex160,  cmex180,
+              cmex210,  cmex250,  cmex325,  cmex450,  cmex600}},
+   { RSFS10,{ rsfs250,  rsfs100,  rsfs118,  rsfs131,  rsfs160,  rsfs180,
+              rsfs210,  rsfs250,  rsfs325,  rsfs450,  rsfs600}},
+  { BBOLD10,{bbold250, bbold100, bbold118, bbold131, bbold160, bbold180,
+             bbold210, bbold250, bbold325, bbold450, bbold600}},
+ {STMARY10,{stmary250,stmary100,stmary118,stmary131,stmary160,stmary180,
+            stmary210,stmary250,stmary325,stmary450,stmary600}},
+  {   CYR10,{wncyr250, wncyr100, wncyr118, wncyr131, wncyr160, wncyr180,
+             wncyr210, wncyr250, wncyr325, wncyr450, wncyr600}},
+  {CMMI10GR,{ cmmi250,  cmmi100,  cmmi118,  cmmi131,  cmmi160,  cmmi180,
+              cmmi210,  cmmi250,  cmmi325,  cmmi450,  cmmi600}},
+ {CMMI10BGR,{cmmib250, cmmib100, cmmib118, cmmib131, cmmib160, cmmib180,
+             cmmib210, cmmib250, cmmib325, cmmib450, cmmib600}},
+ {BBOLD10GR,{bbold250, bbold100, bbold118, bbold131, bbold160, bbold180,
+             bbold210, bbold250, bbold325, bbold450, bbold600}},
+   {   -999,{    NULL,     NULL,     NULL,     NULL,     NULL,     NULL,
+                 NULL,     NULL,     NULL,     NULL,     NULL}}
   }
  #endif
   ; /* --- end-of-ssfonttable[] --- */
@@ -534,12 +593,16 @@
 subraster *rastbezier();		/*handle\bezier(c0,r0)(c1,r1)(ct,rt)*/
 subraster *rastraise();			/* handle \raisebox{lift}{expr} */
 subraster *rastrotate();		/* handle \rotatebox{degs}{expr} */
+subraster *rastmagnify();		/* handle \magnify{magstep}{expr} */
 subraster *rastreflect();		/* handle \reflectbox[axis]{expr} */
 subraster *rastfbox();			/* handle \fbox{expr} */
 subraster *rastinput();			/* handle \input{filename} */
 subraster *rastcounter();		/* handle \counter{filename} */
+subraster *rasteval();			/* handle \eval{expression} */
 subraster *rasttoday();			/* handle \today[+/-tzdelta,ifmt] */
 subraster *rastcalendar();		/* handle \calendar[yaer,month] */
+subraster *rastenviron();		/* handle \environment */
+subraster *rastmessage();		/* handle \message */
 subraster *rastnoop();			/* handle \escape's to be flushed */
 
 /* --- sqrt --- */
@@ -559,6 +622,7 @@
 #define	ISDISPLAYSTYLE	(2)		/* set isdisplaystyle */
 #define	ISDISPLAYSIZE	(21)		/* set displaysize */
 #define	ISFONTSIZE	(3)		/* set fontsize */
+#define	ISMAGSTEP	(31)		/* set magstep */
 #define	ISWEIGHT	(4)		/* set aa params */
 #define	ISOPAQUE	(5)		/* set background opaque */
 #define	ISSUPER		(6)		/* set supersampling/lowpass */
@@ -575,6 +639,7 @@
 #define	ISSTRING	(11)		/* set ascii string mode */
 #define	ISSMASH		(12)		/* set (minimum) "smash" margin */
 #define	ISCONTENTTYPE	(13)		/*enable/disable Content-type lines*/
+#define	ISCONTENTCACHED	(14)		/* write Content-type to cache file*/
 
 /* ---
  * mathchardefs for symbols recognized by mimetex
@@ -618,11 +683,17 @@
     { "\\qbezier",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastbezier) },
     { "\\raisebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastraise) },
     { "\\rotatebox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastrotate) },
+    { "\\magnify",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastmagnify) },
+    { "\\magbox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastmagnify) },
     { "\\reflectbox",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastreflect) },
     { "\\fbox", NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastfbox) },
+    { "\\boxed",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastfbox) },
     { "\\input",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rastinput) },
+    { "\\evaluate",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rasteval) },
     { "\\today",NOVALUE,NOVALUE,NOVALUE,  (HANDLER)(rasttoday) },
     { "\\calendar",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcalendar) },
+    { "\\environment",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastenviron) },
+    { "\\message",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastmessage) },
     { "\\counter",NOVALUE,NOVALUE,NOVALUE,(HANDLER)(rastcounter) },
     /* --- spaces --- */
     { "\\/",	1,	NOVALUE,NOVALUE,  (HANDLER)(rastspace) },
@@ -668,9 +739,13 @@
     { "\\mathbb",	  5,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\rm",		  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\text",		  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
+    { "\\textbf",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\textrm",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\mathrm",	  7,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\cyr",		  8,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
+    { "\\textgreek",	  9,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
+    { "\\textbfgreek",	 10,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
+    { "\\textbbgreek",	 11,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\mathbf",	  6,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\bf",		  6,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
     { "\\mathtt",	  3,	 NOVALUE,NOVALUE, (HANDLER)(rastfont) },
@@ -695,18 +770,19 @@
     { "\\textstyle", ISDISPLAYSTYLE,   0,NOVALUE, (HANDLER)(rastflags) },
     { "\\displaysize",ISDISPLAYSIZE,NOVALUE,NOVALUE,(HANDLER)(rastflags)},
     { "\\tiny",      ISFONTSIZE,       0,NOVALUE, (HANDLER)(rastflags) },
-    { "\\scriptsize",ISFONTSIZE,       0,NOVALUE, (HANDLER)(rastflags) },
-    { "\\footnotesize",ISFONTSIZE,     1,NOVALUE, (HANDLER)(rastflags) },
-    { "\\small",     ISFONTSIZE,       1,NOVALUE, (HANDLER)(rastflags) },
-    { "\\normalsize",ISFONTSIZE,       2,NOVALUE, (HANDLER)(rastflags) },
-    { "\\large",     ISFONTSIZE,       3,NOVALUE, (HANDLER)(rastflags) },
-    { "\\Large",     ISFONTSIZE,       4,NOVALUE, (HANDLER)(rastflags) },
-    { "\\LARGE",     ISFONTSIZE,       5,NOVALUE, (HANDLER)(rastflags) },
-    { "\\huge",      ISFONTSIZE,       6,NOVALUE, (HANDLER)(rastflags) },
-    { "\\Huge",      ISFONTSIZE,       7,NOVALUE, (HANDLER)(rastflags) },
-    { "\\HUGE",      ISFONTSIZE,       7,NOVALUE, (HANDLER)(rastflags) },
+    { "\\scriptsize",ISFONTSIZE,       1,NOVALUE, (HANDLER)(rastflags) },
+    { "\\footnotesize",ISFONTSIZE,     2,NOVALUE, (HANDLER)(rastflags) },
+    { "\\small",     ISFONTSIZE,       3,NOVALUE, (HANDLER)(rastflags) },
+    { "\\normalsize",ISFONTSIZE,       4,NOVALUE, (HANDLER)(rastflags) },
+    { "\\large",     ISFONTSIZE,       5,NOVALUE, (HANDLER)(rastflags) },
+    { "\\Large",     ISFONTSIZE,       6,NOVALUE, (HANDLER)(rastflags) },
+    { "\\LARGE",     ISFONTSIZE,       7,NOVALUE, (HANDLER)(rastflags) },
+    { "\\huge",      ISFONTSIZE,       8,NOVALUE, (HANDLER)(rastflags) },
+    { "\\Huge",      ISFONTSIZE,       9,NOVALUE, (HANDLER)(rastflags) },
+    { "\\HUGE",      ISFONTSIZE,      10,NOVALUE, (HANDLER)(rastflags) },
     { "\\fontsize",  ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
     { "\\fs",        ISFONTSIZE, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
+    { "\\magstep",   ISMAGSTEP,  NOVALUE,NOVALUE, (HANDLER)(rastflags) },
     { "\\shrinkfactor",ISSHRINK, NOVALUE,NOVALUE, (HANDLER)(rastflags) },
     { "\\sf",        ISSHRINK,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
     { "\\light",     ISWEIGHT,         0,NOVALUE, (HANDLER)(rastflags) },
@@ -724,6 +800,8 @@
     { "\\pnmparams",PNMPARAMS,   NOVALUE,NOVALUE, (HANDLER)(rastflags) },
     { "\\gammacorrection",ISGAMMA,NOVALUE,NOVALUE,(HANDLER)(rastflags) },
     { "\\nocontenttype",ISCONTENTTYPE, 0,NOVALUE, (HANDLER)(rastflags) },
+    { "\\nodepth",   ISCONTENTCACHED,  0,NOVALUE, (HANDLER)(rastflags) },
+    { "\\depth",     ISCONTENTCACHED,  1,NOVALUE, (HANDLER)(rastflags) },
     { "\\opaque",    ISOPAQUE,         0,NOVALUE, (HANDLER)(rastflags) },
     { "\\transparent",ISOPAQUE,        1,NOVALUE, (HANDLER)(rastflags) },
     { "\\squash",    ISSMASH,          3,1,       (HANDLER)(rastflags) },
@@ -743,8 +821,22 @@
     { "\\black",     ISCOLOR,          0,NOVALUE, (HANDLER)(rastflags) },
     { "\\white",     ISCOLOR,          7,NOVALUE, (HANDLER)(rastflags) },
     /* --- accents --- */
-    { "\\vec",	VECACCENT,    1,      0,  (HANDLER)(rastaccent) },
-    { "\\widevec", VECACCENT, 1,      0,  (HANDLER)(rastaccent) },
+    { "\\vec",	VECACCENT,    1,      1,  (HANDLER)(rastaccent) },
+    { "\\widevec", VECACCENT, 1,      1,  (HANDLER)(rastaccent) },
+    { "\\overarrow",      VECACCENT,1,1,  (HANDLER)(rastaccent) },
+    { "\\overrightarrow", VECACCENT,1,1,  (HANDLER)(rastaccent) },
+    { "\\Overrightarrow", VECACCENT,1,11, (HANDLER)(rastaccent) },
+    { "\\underarrow",     VECACCENT,0,1,  (HANDLER)(rastaccent) },
+    { "\\underrightarrow",VECACCENT,0,1,  (HANDLER)(rastaccent) },
+    { "\\Underrightarrow",VECACCENT,0,11, (HANDLER)(rastaccent) },
+    { "\\overleftarrow",  VECACCENT,1,-1, (HANDLER)(rastaccent) },
+    { "\\Overleftarrow",  VECACCENT,1, 9, (HANDLER)(rastaccent) },
+    { "\\underleftarrow", VECACCENT,0,-1, (HANDLER)(rastaccent) },
+    { "\\Underleftarrow", VECACCENT,0, 9, (HANDLER)(rastaccent) },
+    { "\\overleftrightarrow", VECACCENT,1, 0,(HANDLER)(rastaccent) },
+    { "\\Overleftrightarrow", VECACCENT,1,10,(HANDLER)(rastaccent) },
+    { "\\underleftrightarrow",VECACCENT,0, 0,(HANDLER)(rastaccent) },
+    { "\\Underleftrightarrow",VECACCENT,0,10,(HANDLER)(rastaccent) },
     { "\\bar",	BARACCENT,    1,      0,  (HANDLER)(rastaccent) },
     { "\\widebar", BARACCENT, 1,      0,  (HANDLER)(rastaccent) },
     { "\\hat",	HATACCENT,    1,      0,  (HANDLER)(rastaccent) },
@@ -1342,7 +1434,9 @@
     { "+",		43,	CMR10,   BINARYOP,	NULL },
     { "/",		47,	CMR10,   BINARYOP,	NULL },
     { ":",		58,	CMR10,   ORDINARY,	NULL },
+    { "\\colon",	58,	CMR10,   OPERATOR,	NULL },
     { ";",		59,	CMR10,   ORDINARY,	NULL },
+    { "\\semicolon",	59,	CMR10,   ORDINARY,	NULL },
     { "=",		61,	CMR10,   RELATION,	NULL },
     { "?",		63,	CMR10,   BINARYOP,	NULL },
     { "@",		64,	CMR10,   BINARYOP,	NULL },
@@ -2010,6 +2104,149 @@
     { "N0",		125,	CYR10,   VARIABLE,	NULL },
     { "<",		60,	CYR10,   VARIABLE,	NULL },
     { ">",		62,	CYR10,   VARIABLE,	NULL },
+
+    /* ------------------- C M M I G R ------------------------
+    Using "Beta code" <http://en.wikipedia.org/wiki/Beta_code>
+    to represent Greek characters in latin, e.g., type a to get
+    \alpha, etc.
+          symbol     charnum    family    class	    function
+    -------------------------------------------------------- */
+    /* --- uppercase greek letters --- */
+    { "G"/*\Gamma*/,	0,	CMMI10GR, VARIABLE,	NULL },
+    { "D"/*\Delta*/,	1,	CMMI10GR, VARIABLE,	NULL },
+    { "Q"/*\Theta*/,	2,	CMMI10GR, VARIABLE,	NULL },
+    { "L"/*\Lambda*/,	3,	CMMI10GR, VARIABLE,	NULL },
+    { "C"/*\Xi*/,	4,	CMMI10GR, VARIABLE,	NULL },
+    { "P"/*\Pi*/,	5,	CMMI10GR, VARIABLE,	NULL },
+    { "S"/*\Sigma*/,	6,	CMMI10GR, VARIABLE,	NULL },
+    { "U"/*\Upsilon*/,	7,	CMMI10GR, VARIABLE,	NULL },
+    { "F"/*\Phi*/,	8,	CMMI10GR, VARIABLE,	NULL },
+    { "Y"/*\Psi*/,	9,	CMMI10GR, VARIABLE,	NULL },
+    { "W"/*\Omega*/,	10,	CMMI10GR, VARIABLE,	NULL },
+    /* --- lowercase greek letters --- */
+    { "a"/*\alpha*/,	11,	CMMI10GR, VARIABLE,	NULL },
+    { "b"/*\beta*/,	12,	CMMI10GR, VARIABLE,	NULL },
+    { "g"/*\gamma*/,	13,	CMMI10GR, VARIABLE,	NULL },
+    { "d"/*\delta*/,	14,	CMMI10GR, VARIABLE,	NULL },
+    { "e"/*\epsilon*/,	15,	CMMI10GR, VARIABLE,	NULL },
+    { "z"/*\zeta*/,	16,	CMMI10GR, VARIABLE,	NULL },
+    { "h"/*\eta*/,	17,	CMMI10GR, VARIABLE,	NULL },
+    { "q"/*\theta*/,	18,	CMMI10GR, VARIABLE,	NULL },
+    { "i"/*\iota*/,	19,	CMMI10GR, VARIABLE,	NULL },
+    { "k"/*\kappa*/,	20,	CMMI10GR, VARIABLE,	NULL },
+    { "l"/*\lambda*/,	21,	CMMI10GR, VARIABLE,	NULL },
+    { "m"/*\mu*/,	22,	CMMI10GR, VARIABLE,	NULL },
+    { "n"/*\nu*/,	23,	CMMI10GR, VARIABLE,	NULL },
+    { "c"/*\xi*/,	24,	CMMI10GR, VARIABLE,	NULL },
+    { "p"/*\pi*/,	25,	CMMI10GR, VARIABLE,	NULL },
+    { "r"/*\rho*/,	26,	CMMI10GR, VARIABLE,	NULL },
+    { "s"/*\sigma*/,	27,	CMMI10GR, VARIABLE,	NULL },
+    { "t"/*\tau*/,	28,	CMMI10GR, VARIABLE,	NULL },
+    { "u"/*\upsilon*/,	29,	CMMI10GR, VARIABLE,	NULL },
+    { "f"/*\phi*/,	30,	CMMI10GR, VARIABLE,	NULL },
+    { "x"/*\chi*/,	31,	CMMI10GR, VARIABLE,	NULL },
+    { "y"/*\psi*/,	32,	CMMI10GR, VARIABLE,	NULL },
+    { "w"/*\omega*/,	33,	CMMI10GR, VARIABLE,	NULL },
+   #if 0
+    { "?"/*\varepsilon*/,34,	CMMI10GR, VARIABLE,	NULL },
+    { "?"/*\vartheta*/,	35,	CMMI10GR, VARIABLE,	NULL },
+    { "?"/*\varpi*/,	36,	CMMI10GR, VARIABLE,	NULL },
+    { "?"/*\varrho*/,	37,	CMMI10GR, VARIABLE,	NULL },
+    { "?"/*\varsigma*/,	38,	CMMI10GR, VARIABLE,	NULL },
+    { "?"/*\varphi*/,	39,	CMMI10GR, VARIABLE,	NULL },
+   #endif
+    /* ------------------- C M M I B G R ----------------------
+    Using "Beta code" <http://en.wikipedia.org/wiki/Beta_code>
+    to represent Greek characters in latin, e.g., type a to get
+    \alpha, etc.
+          symbol     charnum    family    class	    function
+    -------------------------------------------------------- */
+    /* --- uppercase greek letters --- */
+    { "G"/*\Gamma*/,	0,	CMMI10BGR, VARIABLE,	NULL },
+    { "D"/*\Delta*/,	1,	CMMI10BGR, VARIABLE,	NULL },
+    { "Q"/*\Theta*/,	2,	CMMI10BGR, VARIABLE,	NULL },
+    { "L"/*\Lambda*/,	3,	CMMI10BGR, VARIABLE,	NULL },
+    { "C"/*\Xi*/,	4,	CMMI10BGR, VARIABLE,	NULL },
+    { "P"/*\Pi*/,	5,	CMMI10BGR, VARIABLE,	NULL },
+    { "S"/*\Sigma*/,	6,	CMMI10BGR, VARIABLE,	NULL },
+    { "U"/*\Upsilon*/,	7,	CMMI10BGR, VARIABLE,	NULL },
+    { "F"/*\Phi*/,	8,	CMMI10BGR, VARIABLE,	NULL },
+    { "Y"/*\Psi*/,	9,	CMMI10BGR, VARIABLE,	NULL },
+    { "W"/*\Omega*/,	10,	CMMI10BGR, VARIABLE,	NULL },
+    /* --- lowercase greek letters --- */
+    { "a"/*\alpha*/,	11,	CMMI10BGR, VARIABLE,	NULL },
+    { "b"/*\beta*/,	12,	CMMI10BGR, VARIABLE,	NULL },
+    { "g"/*\gamma*/,	13,	CMMI10BGR, VARIABLE,	NULL },
+    { "d"/*\delta*/,	14,	CMMI10BGR, VARIABLE,	NULL },
+    { "e"/*\epsilon*/,	15,	CMMI10BGR, VARIABLE,	NULL },
+    { "z"/*\zeta*/,	16,	CMMI10BGR, VARIABLE,	NULL },
+    { "h"/*\eta*/,	17,	CMMI10BGR, VARIABLE,	NULL },
+    { "q"/*\theta*/,	18,	CMMI10BGR, VARIABLE,	NULL },
+    { "i"/*\iota*/,	19,	CMMI10BGR, VARIABLE,	NULL },
+    { "k"/*\kappa*/,	20,	CMMI10BGR, VARIABLE,	NULL },
+    { "l"/*\lambda*/,	21,	CMMI10BGR, VARIABLE,	NULL },
+    { "m"/*\mu*/,	22,	CMMI10BGR, VARIABLE,	NULL },
+    { "n"/*\nu*/,	23,	CMMI10BGR, VARIABLE,	NULL },
+    { "c"/*\xi*/,	24,	CMMI10BGR, VARIABLE,	NULL },
+    { "p"/*\pi*/,	25,	CMMI10BGR, VARIABLE,	NULL },
+    { "r"/*\rho*/,	26,	CMMI10BGR, VARIABLE,	NULL },
+    { "s"/*\sigma*/,	27,	CMMI10BGR, VARIABLE,	NULL },
+    { "t"/*\tau*/,	28,	CMMI10BGR, VARIABLE,	NULL },
+    { "u"/*\upsilon*/,	29,	CMMI10BGR, VARIABLE,	NULL },
+    { "f"/*\phi*/,	30,	CMMI10BGR, VARIABLE,	NULL },
+    { "x"/*\chi*/,	31,	CMMI10BGR, VARIABLE,	NULL },
+    { "y"/*\psi*/,	32,	CMMI10BGR, VARIABLE,	NULL },
+    { "w"/*\omega*/,	33,	CMMI10BGR, VARIABLE,	NULL },
+   #if 0
+    { "?"/*\varepsilon*/,34,	CMMI10BGR, VARIABLE,	NULL },
+    { "?"/*\vartheta*/,	35,	CMMI10BGR, VARIABLE,	NULL },
+    { "?"/*\varpi*/,	36,	CMMI10BGR, VARIABLE,	NULL },
+    { "?"/*\varrho*/,	37,	CMMI10BGR, VARIABLE,	NULL },
+    { "?"/*\varsigma*/,	38,	CMMI10BGR, VARIABLE,	NULL },
+    { "?"/*\varphi*/,	39,	CMMI10BGR, VARIABLE,	NULL },
+   #endif
+    /* ------------------ B B O L D G R -----------------------
+    Using "Beta code" <http://en.wikipedia.org/wiki/Beta_code>
+    to represent Greek characters in latin, e.g., type a to get
+    \alpha, etc.
+          symbol     charnum    family    class	    function
+    -------------------------------------------------------- */
+    /* --- uppercase greek letters --- */
+    { "G"/*\Gamma*/,	0,	BBOLD10GR, VARIABLE,	NULL },
+    { "D"/*\Delta*/,	1,	BBOLD10GR, VARIABLE,	NULL },
+    { "Q"/*\Theta*/,	2,	BBOLD10GR, VARIABLE,	NULL },
+    { "L"/*\Lambda*/,	3,	BBOLD10GR, VARIABLE,	NULL },
+    { "C"/*\Xi*/,	4,	BBOLD10GR, VARIABLE,	NULL },
+    { "P"/*\Pi*/,	5,	BBOLD10GR, VARIABLE,	NULL },
+    { "S"/*\Sigma*/,	6,	BBOLD10GR, VARIABLE,	NULL },
+    { "U"/*\Upsilon*/,	7,	BBOLD10GR, VARIABLE,	NULL },
+    { "F"/*\Phi*/,	8,	BBOLD10GR, VARIABLE,	NULL },
+    { "Y"/*\Psi*/,	9,	BBOLD10GR, VARIABLE,	NULL },
+    { "W"/*\Omega*/,	10,	BBOLD10GR, VARIABLE,	NULL },
+    /* --- lowercase greek letters --- */
+    { "a"/*\alpha*/,	11,	BBOLD10GR, VARIABLE,	NULL },
+    { "b"/*\beta*/,	12,	BBOLD10GR, VARIABLE,	NULL },
+    { "g"/*\gamma*/,	13,	BBOLD10GR, VARIABLE,	NULL },
+    { "d"/*\delta*/,	14,	BBOLD10GR, VARIABLE,	NULL },
+    { "e"/*\epsilon*/,	15,	BBOLD10GR, VARIABLE,	NULL },
+    { "z"/*\zeta*/,	16,	BBOLD10GR, VARIABLE,	NULL },
+    { "h"/*\eta*/,	17,	BBOLD10GR, VARIABLE,	NULL },
+    { "q"/*\theta*/,	18,	BBOLD10GR, VARIABLE,	NULL },
+    { "i"/*\iota*/,	19,	BBOLD10GR, VARIABLE,	NULL },
+    { "k"/*\kappa*/,	20,	BBOLD10GR, VARIABLE,	NULL },
+    { "l"/*\lambda*/,	21,	BBOLD10GR, VARIABLE,	NULL },
+    { "m"/*\mu*/,	22,	BBOLD10GR, VARIABLE,	NULL },
+    { "n"/*\nu*/,	23,	BBOLD10GR, VARIABLE,	NULL },
+    { "c"/*\xi*/,	24,	BBOLD10GR, VARIABLE,	NULL },
+    { "p"/*\pi*/,	25,	BBOLD10GR, VARIABLE,	NULL },
+    { "r"/*\rho*/,	26,	BBOLD10GR, VARIABLE,	NULL },
+    { "s"/*\sigma*/,	27,	BBOLD10GR, VARIABLE,	NULL },
+    { "t"/*\tau*/,	28,	BBOLD10GR, VARIABLE,	NULL },
+    { "u"/*\upsilon*/,	29,	BBOLD10GR, VARIABLE,	NULL },
+    { "f"/*\phi*/,	30,	BBOLD10GR, VARIABLE,	NULL },
+    { "x"/*\chi*/,	31,	BBOLD10GR, VARIABLE,	NULL },
+    { "y"/*\psi*/,	32,	BBOLD10GR, VARIABLE,	NULL },
+    { "w"/*\omega*/,	127,	BBOLD10GR, VARIABLE,	NULL },
     /* --- trailer record --- */
     { NULL,		-999,	-999,	-999,		NULL }
  }
Index: loncom/cgi/mimeTeX/mimetex.html
diff -u loncom/cgi/mimeTeX/mimetex.html:1.4 loncom/cgi/mimeTeX/mimetex.html:1.5
--- loncom/cgi/mimeTeX/mimetex.html:1.4	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/mimetex.html	Sat Jun  9 00:58:11 2012
@@ -1,6 +1,6 @@
 <!--
  ****************************************************************************
- * Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
+ * Copyright(c) 2002-2012, John Forkosh Associates, Inc. All rights reserved.
  *           http://www.forkosh.com   mailto: john at forkosh.com
  * ==========================================================================
  * This file is part of mimeTeX, which is free software. You may redistribute
@@ -22,7 +22,7 @@
  -->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
- <!-- "http://www.forkosh.dreamhost.com/loose.dtd" -->
+ <!-- "http://www.forkosh.com/loose.dtd" -->
 
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Preamble
@@ -84,29 +84,116 @@
                   color: black }
       p.warning  { color: red } /* defines  p class=warning */
     </style>
-  <script type="text/javascript">
-    <!--
-    // add/clear text to expression
-    function eqntext(eqn)
-      { var eqnSrc = document.getElementById(eqn).src;
-        var texSrc = eqnSrc.substring(eqnSrc.indexOf('?')+1,eqnSrc.length);
-        addtext(texSrc); }
-    function addtext(text)
-      { cleartext();
-        document.expression.formdata.value += unescape(text);
-        document.expression.formdata.focus(); }
-    function cleartext()
-      { document.expression.formdata.value = "";
-        //document.inlineframe.value = "";
-        document.expression.formdata.focus(); }
-    -->
-  </script>
-
-<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-+ javascript from mathtran.org to render <img alt="tex:math expression">
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-<script type="text/javascript"
-    src="http://www.mathtran.org/js/mathtran_img.js"></script>
+    <style type="text/css">
+      a.info{
+        position:relative;
+        z-index:24;
+        /*background-color:#8692A5;*/
+        visibility: inherit;
+        text-decoration: none; }
+      a.info:hover{
+        z-index:25;
+        /*background-color:#999999;
+        color: #FFFF00;*/
+        text-decoration: none; }
+      a.info span{
+        display: none;
+        /*color: #FFFF00;*/ }
+      a.info:hover span{
+        display:block;
+        position:absolute;
+        top:2em;
+        left:2em;
+        /*width:15em;*/
+        border:1px solid #330066;
+        background-color:#FFFF99;
+        color:#660000;
+        text-align: left;
+        font-size: 13px;
+        font-weight: normal;
+        margin: 3px;
+        padding: 6px; }
+      a.info:link {
+        text-decoration: none;
+        /*color: #FFFF00;*/ /*themecolour1%0;*/ }
+      a.info:visited {
+        text-decoration: none;
+        /*color: #FFFF00;*/ /*themecolour1%0;*/ }
+    </style>
+    <script type="text/javascript">
+      <!--
+      // add/clear text to expression
+      function eqntext(eqn)
+        { var eqnSrc = document.getElementById(eqn).src;
+          var texSrc = eqnSrc.substring(eqnSrc.indexOf('?')+1,eqnSrc.length);
+          addtext(texSrc); }
+      function addtext(text)
+        { cleartext();
+          document.expression.formdata.value += unescape(text);
+          document.expression.formdata.focus(); }
+      function cleartext()
+        { document.expression.formdata.value = "";
+          //document.inlineframe.value = "";
+          document.expression.formdata.focus(); }
+      -->
+    </script>
+
+  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  + php functions to use Vertical-Align: info from mimetex
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+  <?php
+  //$mimetexurl = "../cgi-bin/mimetex.cgi?";
+  $mimetexurl = "http://www.forkosh.com/mimetex.cgi?";
+  //$mimetexurl = "http://psi2star/cgi-bin/mimetex.cgi?";
+  function verticalalign( $expression ) {
+    global $mimetexurl;
+    // note: curl_init() stops at the first whitespace char in $url argument
+    $expression = ereg_replace(" ","~",$expression); // remove whitespace
+    $url     = $mimetexurl . "\depth~" . $expression;
+    $valign  = "0";
+    $options = array(
+        CURLOPT_RETURNTRANSFER => true,     // return web page
+        CURLOPT_HEADER         => true);    // return headers
+    $ch      = curl_init( $url );
+    //curl_setopt_array( $ch, $options );
+    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
+    curl_setopt( $ch, CURLOPT_HEADER, true );
+    $gif     = curl_exec( $ch );
+    $errno   = curl_errno( $ch );
+    $error   = curl_error( $ch );
+    //$info  = curl_getinfo( $ch );
+    curl_close( $ch );
+    //echo '<br> url= ',$url,'<br>',"\n";
+    //echo '<br> gif=<br>',$gif,'<br>',"\n";
+    if ( $errno == 0 ) {
+      $fields = explode("Vertical-Align:",$gif);
+      $vfield = trim($fields[1]);
+      $fldlen = strspn($vfield,"+-0123456789");
+      $valign = substr($vfield,0,$fldlen); }
+    else {
+      echo 'verticalalign> errno ',$errno,' = ',$error,'<br><br>',"\n"; }
+    return $valign;
+    }
+  function mimetextag( $label, $expression ) {
+    global $mimetexurl;
+    $valign = verticalalign($expression);
+    $url    = $mimetexurl . $expression;
+    //echo ' valign=',$valign,' ',"\n";
+    echo  '<a href="#preview" class="info"><img id="',$label,'" ';
+    echo  ' onclick="eqntext(',"'",$label,"'",')"  ';
+    echo  ' src="',$url,'" ';
+    echo  ' style="Vertical-Align:',$valign,'px"   ';
+    echo  ' alt="" border=0>';
+    echo   '<span>',$expression,'</span>';
+    echo  '</a>', "\n";
+    }
+  ?>
+
+  <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  + javascript from mathtran.org to render <img alt="tex:math expression">
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+  <!-- script type="text/javascript"
+    src="http://www.mathtran.org/js/mathtran_img.js"></script -->
   </head>
 <body>
 
@@ -125,7 +212,10 @@
    <td align="center" valign="middle">
     <center> <font color="maroon" size=4>
     <b><nobr>m i m e T e X   m a n u a l</nobr></b> <br>
-    <font size=3>( for mimeTeX version 1.70 )</font> <br>
+    <font size=3>( for mimeTeX version
+      <a href="#preview"><img id="imageVer1" onclick="eqntext('imageVer1')"
+      src="../cgi-bin/mimetex.cgi?\small\versionnumber"
+      alt="" border=0 align=bottom></a> )</font> <br>
     <font size=3> <b>Click for:</b> 
      <!-- <a href="http://www.forkosh.com" target="_top">homepage</a>,  
      <a href="http://www.forkosh.com/resume.html" target="_top">resume</a> -->
@@ -133,6 +223,12 @@
      LaTeX tutorial</a><br>
      <a href="http://www.forkosh.com/mimetex.html" target="_top">
      mimeTeX QuickStart</a><br>
+
+     <a href="http://www.forkosh.com/cgi-bin/weblist.cgi?-t=weblist
+     &-f=sources/weblistemplate.html&files=@sources/sourcecode/mimetex.lis
+     &copyright=2002-2011&counter=mimetex
+     &title=mimetex&description=m i m e T e X  S o u r c e   L i s t i n g"
+     target="_top">mimeTeX Source Listing</a><br>
      <a href="http://www.forkosh.com/mimetex.zip">
      <!-- jfa <a href="ftp://ftp.tex.ac.uk/tex-archive/support/mimetex/mimetex.zip"></a> -->
      <font size=4>download mimeTeX</font></a></font>
@@ -144,11 +240,18 @@
     alt="" border=0 align=middle></a> <br>
     <a href="#examples">more_examples...</a> </td>
   </tr>
+  <tr> <td align="center" colspan="3">
+    This page discusses mimeTeX, a program that displays math on the web.<br>
+    (<font size=3>See
+    <a href="http://www.americanscientist.org/issues/pub/2009/3/writing-math-on-the-web/1"
+    target="_top">Writing Math on the Web</a>
+    for a more general discussion.</font>)
+    </td> </tr>
  </table>
 </center>
 <hr size=4>
 <center><b><font color="maroon" size=3>
-Copyright <font size=5>©</font> 2002-2008,
+Copyright <font size=5>©</font> 2002-2012,
 <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a> <br>
 email: <a href="mailto:john@forkosh.com">john@forkosh.com</a>
 </font></b> <br><br>
@@ -177,7 +280,8 @@
    <a href="#introduction">  (I) Introduction  </a><br>
     <a href="#quickstart"> a. Quick Start </a><br>
     <a href="#examples">   b. Examples </a><br>
-    <a href="#gpl">        c. GPL License </a> </font> </td>
+    <a href="#scripts">    c. Scripts&Plugins </a><br>
+    <a href="#gpl">        d. GPL License </a> </font> </td>
   <td valign="top" align="center" width=150> <font size=3>
    <a href="#build">  (II) Building mimeTeX  </a><br>
     <a href="#compile">    a. Compile </a><br>
@@ -193,7 +297,8 @@
     <a href="#array">      e. \begin{array} </a><br>
     <a href="#picture">    f. \picture( ){ } </a><br>
     <a href="#commands">   g. Other Commands </a><br>
-    <a href="#exceptions"> h. Other Exceptions </a> </font> </td>
+    <a href="#exceptions"> h. Other Exceptions </a><br>
+    <a href="#messages">   i. Errors and Messages </a> </font> </td>
   <td valign="top" align="center" width=150> <font size=3>
    <a href="#appendices">    (IV) Appendices    </a><br>
     <a href="#fonts">      a. Fonts </a><br>
@@ -202,11 +307,31 @@
     <br><a href="#remarks">   Remarks   </a> </font> </td>
  </tr>
 </table>
+</center>
+
+<!-- br -->
+<p style="margin-left:3em;margin-right:3em;">
+   <font color="blue" size=3> This page contains more information
+   than you'll probably need to read.  If you follow the
+   <font color="maroon">Installation and Usage Summary</font>
+   below, try installing mimeTeX immediately.  <!-- If you need
+   more information, --> Or continue reading until you feel comfortable
+   trying to install mimeTeX.  <!-- Return to this page as needed. -->
+   Prerequisites are: some knowledge of your OS's shell,
+   of installing cgi's, of LaTeX. </font>
+   <font color="maroon" size=3> <br>
+          
+        <b>&quot</b><i>Computers are like Old Testament gods<b>:</b>
+        lots of rules and no mercy.</i><b>&quot</b><br>
+          
+        <b>––</b> Joseph Campbell, The Power of Myth  
+        (Doubleday 1988, page 18) </font> </p>
 
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 + Installation and Usage Summary
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-<br>
+<!-- br -->
+<center>
 <table border="0">
 <tr> <!-- banner -->
  <td align="left">
@@ -260,277 +385,47 @@
     And mimeTeX is an entirely separate little program that doesn't use
     TeX or its fonts in any way.  It's just one cgi that you put in your
     site's cgi-bin/ directory, with no other dependencies.  So mimeTeX
-    is very easy to <a href="#quickbuild">install</a>.  And it's equally
-    easy to use.  Just place an html <img> tag in your document
-    wherever you want to see the corresponding LaTeX expression.
-    For example, </p>
-<pre>  <img src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt"
-   alt="" border=0 align=middle></pre> <p class="continue">immediately
-    generates the corresponding gif image on-the-fly, displaying
-    <a href="#preview"><img id="imageI1" onclick="eqntext('imageI1')"
-    src="../cgi-bin/mimetex.cgi?\normalsize
-    f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
-    alt="" border=0 style="Vertical-Align:-11px"></a>
-    wherever you put that <img&gt tag.
+    is very easy to <a href="#build">install</a>. <br>
+    <nobr>        
+       Just download <a href="http://www.forkosh.com/mimetex.zip">
+       mimetex.zip</a> and then type </nobr> <br>
+       <nobr><b>            
+          unzip mimetex.zip</b></nobr> <br>
+       <nobr><b>            
+          cc –DAA mimetex.c gifsave.c
+          –lm –o mimetex.cgi</b></nobr> <br>
+    <nobr>        
+       Now just <b>mv</b> mimetex.cgi to your <b>cgi-bin/</b>
+       directory, </nobr> <br>
+    <nobr>        
+       set permissions as necessary, and you're all done. </nobr> <br>
+    <br>
+    And mimeTeX is equally easy to <a href="#quickstart">use</a><b>:</b>
+      just place an html <img> tag in your document
+    wherever you want to see the corresponding LaTeX expression. <br>
+    <nobr>        
+       For example, the <img&gt tag </nobr> <br>
+       <nobr><b>            
+          <img 
+          src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" ></b></nobr><br>
+    <nobr>        
+       immediately generates the corresponding gif image on-the-fly,</nobr><br>
+       <nobr>            
+          displaying  
+          <?php mimetextag('imageI1',
+          '\normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt'); ?>
+            wherever you put that tag.</nobr><br>
+    <br>
     MimeTeX doesn't need intermediate dvi-to-gif conversion, and it doesn't
     create separate gif files for each converted expression.
     (But you can enable image caching with mimeTeX's
       <b>-DCACHEPATH=\"<i>path/</i>\"</b>  
-    <a href="#options">compile option</a>.) </p>
-
-<h3> <a name="plugins">
-mimeTeX plugins<font size=5>...</font></a> </h3>
-<p> There's no inherent need to repeatedly write the cumbersome
-    <img> tag illustrated above.  You can write your own <a href=
-    "http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro9.html#wp73314"
-    target="_top">custom tags</a>,
-    or write a wrapper script around mimeTeX to simplify the
-    notation. </p>
-
-<p style="margin-bottom:0">  For example,
-    the following javascript snippet (based on
-    <a href="http://www.mathtran.org" target="_top">mathtran</a>'s
-    <a href="http://www.mathtran.org/js/mathtran_img.js"
-    target="_top">mathtran_img.js</a>) lets you just write  
-    <b><img alt="mimetex:c=\sqrt{a^2+b^2}"></b>  
-    wherever you want to see <a href="#preview"><img id="imageJS1"
-    onclick="eqntext('imageJS1')" src="../cgi-bin/mimetex.cgi?
-    \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
-    style="Vertical-Align:-1px"></a>  </p>
-    <pre class="medium" style="margin-top:0;margin-bottom:0"
->   <script type="text/javascript">
-   <!--
-   // Create a namespace to hold variables and functions
-   mimetex = new Object();
-   // Change this to use your server
-   mimetex.imgSrc = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
-   // Transform the whole document: add src to each img with
-   // alt text starting with "mimetex:", unless img already has a src.
-   mimetex.init = function () {
-       if (! document.getElementsByTagName) return;
-       var objs = document.getElementsByTagName("img");
-       var len  = objs.length;
-       for (i=0; i<len; i++) {
-          var img = objs[i];
-          if (img.alt.substring(0,8) == 'mimetex:')
-             if (!img.src) {
-                var tex_src = img.alt.substring(8);
-                img.src = mimetex.imgSrc + encodeURIComponent(tex_src);
-                // Append TEX to the class of the IMG.
-                img.className +=' tex'; }
-          }
-       mimetex.hideElementById("mimetex.error"); }
-   // Utility function
-   mimetex.hideElementById = function (id) {
-       var obj = document.getElementById(id);
-       if (obj) obj.style.display = 'none'; }
-   // resolve a cross-browser issue (see <a href="http://scottandrew.com/weblog/articles/cbs-events" target="_top">CBS events</a>)
-   mimetex.addEvent = function (obj, evType, fn, useCapture) {
-       if (obj.addEventListener) { //For Mozilla.
-           obj.addEventListener(evType, fn, useCapture);
-           return true; }
-       else if (obj.attachEvent) { //For Internet Explorer.
-           var r = obj.attachEvent("on"+evType, fn);
-           return r; }
-       }
-   // Initialize after entire document is loaded
-   mimetex.addEvent(window, 'load', mimetex.init, false);
-   -->
-   </script></pre>
-
-<p style="margin-bottom:0">
-    Bulletin boards, wikis, etc, can also incorporate mimeTeX images
-    with short scripts.  For example, if you're using
-    <a href="http://www.phpbb.com" target="_top">phpBB2</a>, then
-    <a href="http://www.themathforum.com/" target="_top">Jameson</a>
-    contributed the following typical one-line mod that lets you write
-    <b>[tex] c=\sqrt{a^2+b^2} [/tex]</b> to obtain the
-    same <a href="#preview"><img id="imageJS2"
-    onclick="eqntext('imageJS2')" src="../cgi-bin/mimetex.cgi?
-    \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
-    style="Vertical-Align:-1px"></a> image illustrated above  </p>
-    <pre class="medium" style="margin-top:0;margin-bottom:0"
->   #--------[open]-----------------------------------------------------
-     /includes/bbcode.php
-   #--------[find]-----------------------------------------------------
-     // Remove our padding from the string..
-   #--------[before, add]----------------------------------------------
-     $text = preg_replace('/\[tex\](.*?)\[\/tex\]/ie',
-     "'<img src=\"/cgi-bin/mimetex.cgi?'.rawurlencode('$1').'\" align=\"middle\" />'",
-     $text);</pre>
-<p class="continue" style="margin-top:0"> If you're using
-     <a href="http://www.phpbb.com" target="_top">phpBB3</a>,
-     then no mod is even needed.
-     Just click Postings from the Administrator Control Panel,
-     and add the custom BBCode <b>[tex]{TEXT}[/tex]</b>  
-     with the HTML replacement
-     <b><img src="/cgi-bin/mimetex.cgi?{TEXT}" align=middle></b></p>
-
-<p> Similarly, <a href="http://www.pmichaud.com/wiki/PmWiki/PmWiki"
-    target="_top">PmWiki</a> also has a
-    <a href="http://www.pmichaud.com/wiki/Cookbook/MimeTeX" target="_top">
-    mimeTeX plugin</a> that lets you just write
-    <b>{$ f(x)=\int_{-\infty}^xe^{-t^2}dt $}</b>
-    to obtain that same image.   Several other packages
-    also have similar mimeTeX plugins: </p>
-    <center><table>
-     <tr> <td align=center> <u> <b>Package</b> </u> </td>
-      <td>   </td>
-      <td align=center> <u>  <b>Plugin</b>  </u> </td>
-      </tr>
-     <tr> <td align=center>
-	  <a href="http://www.pmichaud.com/wiki/PmWiki/PmWiki" target="_top">
-	  PmWiki</a> </td> <td>   </td>
-	  <td align=center>
-	  <a href="http://www.pmichaud.com/wiki/Cookbook/MimeTeX"
-	  target="_top">mimeTeX plugin</a> </td> </tr>
-     <tr> <td align=center>
-	  <!-- a href="http://www.wikimedia.org/wiki/Main_Page" -->
-	  <a href="http://www.wikimediafoundation.org/wiki/Main_Page"
-          target="_top">Wikimedia</a> </td>
-	  <td align=center>   </td>
-	  <td align=center>
-	  <!-- a href="http://meta.wikimedia.org/wiki/Mimetex_alternative" -->
-	  <a href="http://www.mediawiki.org/wiki/Mimetex_alternative"
-	  target="_top">"mimeTeX alternative"</a> </td> </tr>
-<!-- ***redirect loop***
-     <tr> <td align=center>
-	  <a href="http://www.unitorganizer.com/mathwiki/index.php/Main_Page"
-	  target="_top">MathWiki</a> </td> <td>   </td>
-	  <td align=center> <a href=
-	  "http://www.unitorganizer.com/mathwiki/index.php/MimetexParser"
-	  target="_top">"mimeTeX Parser"</a> </td> </tr>
--->
-     <tr> <td align=center>
-	  <a href="http://forums.punbb.org/" target="_top">PunBB</a> </td>
-	  <td>   </td> <td align=center>
-	  <a href="http://www.math-linux.com/spip.php?article44"
-	  target="_top">mimeTeX plugin</a> </td> </tr>
-     <tr> <td align=center>
-	  <!-- a href="http://www.sixapart.com/movabletype/" -->
-	  <a href="http://www.movabletype.com/"
-	  target="_top">Movable Type</a> </td> <td>   </td>
-	  <td align=center> <a href=
-	  "http://www.unitorganizer.com/myblog/2006/08/creating_equations_in_movable.html"
-          target="_top">mimeTeX plugin</a> </td> </tr>
-     <tr> <td align=center>
-	  <a href="http://wordpress.org/" target="_top">WordPress</a> </td>
-	  <td>   </td> <td align=center> <a href=
-	  "http://www.anlak.com/?page_id=66" target="_top">
-     <!-- "http://sixthform.info/steve/wordpress/index.php?p=13&page=2" -->
-	  mimeTeX plugin</a> <!--   (see item 9) --> </td> </tr>
-     <!--- dead links --->
-     <!-- tr> <td align=center>
-	  <a href="http://www.phpbb.com" target="_top">phpBB</a> </td>
-	  <td>   </td> <td align=center>
-	  <a href=
-	  "http://www.themathforum.com/math/showthread.php?p=621#post621"
-	  target="_top">mimeTeX plugin</a> </td> </tr -->
-     <!-- tr> <td align=center>
-	  <a href="http://www.mamboserver.com/" target="_top">Mambo</a> </td>
-	  <td>   </td> <td align=center>
-	  <a href="http://mamboxchange.com/projects/mimetexbot/"
-	  target="_top">"mimeTeX bot"</a> </td> </tr -->
-    </table></center>
-
-<p> <b>Please note:</b> If you're writing your own plugin for mimeTeX,
-    please don't write php code using <b>system( )</b>, or any other
-    shell escape mechanism, just to cache images.  Use mimeTeX's
-      <b>-DCACHEPATH=\"<i>path/</i>\"</b>  
-    <a href="#options">compile option</a> instead.
-    <b>system( )</b> raises security
-    issues, either real ones if used carelessly, or just in the minds of
-    system administrators.  Either way, I've received many emails from
-    people unable to use mimeTeX because of unnecessary <b>system( )</b>
-    calls prohibited by security-conscious sysadmins.  MimeTeX itself poses
-    minimal risk when used as illustrated above, but you're responsible
-    for any plugin/wrapper script you write around it. </p>
-
-<h3> <a name="valignment">
-Vertical alignment<font size=5>...</font></a> </h3>
-<p> An image like
-    <a href="#preview"><img id="imageAV1" onclick="eqntext('imageAV1')"
-    src="../cgi-bin/mimetex.cgi?
-    \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
-    alt="" border=0 align=middle></a>
-    doesn't look as good as the same image
-    <a href="#preview"><img id="imageAV2" onclick="eqntext('imageAV2')"
-    src="../cgi-bin/mimetex.cgi?
-    \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
-    alt="" border=0 style="Vertical-Align:-11px"></a>
-    that's vertically aligned with your surrounding text.
-    Along with several standard 
-    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">
-    HTTP header fields</a>, mimeTeX also emits a special
-      <b>Vertical-Align: –<i>nn</i></b>  
-    header, where <b>–<i>nn</i></b> is the number of pixels
-    (usually negative as illustrated) needed for a
-      <b>style="Vertical-Align: –<i>nn</i> px"</b>
-      attribute in the <b><img></b> tag used to
-    render your expression. </p>
-
-<p> But mimeTeX's special Vertical-Align: header
-    is unrecognized and ignored by your browser.  You have to get the
-    header, interpret it, and write the corresponding <img> tag.
-    The only feasible way to do all this is using a scripting language,
-    as illustrated by the following, rather naive, php code </p>
-    <pre class="medium" style="margin-top:.5em;margin-bottom:.5em"
->   <?php
-   $mimetexurl = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
-   function verticalalign( $expression ) {
-      global $mimetexurl;
-      // note: curl_init() stops at the first whitespace char in $url argument
-      $expression = ereg_replace(" ","~",$expression); // so remove whitespace
-      $url     = $mimetexurl . $expression;
-      $valign  = "0";
-      $ch      = curl_init( $url );
-      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
-      curl_setopt( $ch, CURLOPT_HEADER, true );
-      $gif     = curl_exec( $ch );
-      $errno   = curl_errno( $ch );
-      curl_close( $ch );
-      if ( $errno == 0 ) {
-        $fields = explode("Vertical-Align:",$gif);
-        $vfield = trim($fields[1]);
-        $fldlen = strspn($vfield,"+-0123456789");
-        $valign = substr($vfield,0,$fldlen); }
-      return $valign;
-      }
-   function mimetextag( $expression ) {
-      global $mimetexurl;
-      $valign = verticalalign($expression);
-      $url    = $mimetexurl . $expression;
-      echo ' <img src="',$url,'" ';
-      echo ' style="Vertical-Align:',$valign,'px" ';
-      echo ' alt="" border=0>', "\n";
-      }
-   ?></pre>
-
-<p> Now you can write  
-    <?php mimetextag('\frac12\left(a^2+b^2\right)'); ?>
-    wherever you want to see
-    <a href="#preview"><img id="imageAV5" onclick="eqntext('imageAV5')"
-    src="../cgi-bin/mimetex.cgi?
-    \normalsize\frac12\left(a^2+b^2\right)"
-    alt="" border=0 style="Vertical-Align:-5px"></a>
-    correctly aligned.  <!-- Besides making you escape backslashes
-    (each \ must be written \\), -->
-    This code calls mimeTeX twice to render each expression,
-    once to get the Vertical-Align: header and build an
-    <img> tag, and then again to render that tag.
-    If you're a good php programmer and write better code,
-    please email me a copy. </p>
-
-<p> If you're using mimeTeX's
-      <b>-DCACHEPATH=\"<i>path</i>/\"</b>  
-    <a href="#options">compile option</a>, prefix your
-    <b><i>path</i>/</b> with a leading <b>%</b> and write  
-    <b>-DCACHEPATH=\"%<i>path</i>/\"</b>   instead.
-    That leading <b>%</b> won't become part of your cache
-    directory's <b><i>path</i>/</b>, but it will signal mimeTeX
-    to cache headers along with each image.
-    Otherwise, the Vertical-Align: information is lost,
-    and attempts to align cached images will fail. </p>
+    <a href="#options">compile option</a>.)
+      And there's no inherent need to repeatedly write the
+    cumbersome <img> tag illustrated above.
+    You can write your own
+    <a href="#scripts">wrapper scripts</a>,
+    discussed below, around mimeTeX to simplify the notation. </p>
 
 <h3> <a name="alternatives">
 Alternative solutions<font size=5>...</font></a> </h3>
@@ -544,17 +439,11 @@
     target="_top">latexrender</a>
     which uses LaTeX to create higher quality images than mimeTeX
     produces.  For comparison,
-    <a href="#preview"><img id="imageI2" onclick="eqntext('imageI2')"
-    src="../cgi-bin/mimetex.cgi?\normalsize
-    f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
-    alt="" border=0 style="Vertical-Align:-11px"></a>,
+    <?php mimetextag('imageI2',
+    '\small f(x)=\int\limits_{-\infty}^xe^{-t^2}dt'); ?>,
     with arbitrary mean
-    <a href="#preview"><img id="imageI3" onclick="eqntext('imageI3')"
-    src="../cgi-bin/mimetex.cgi?\large\mu" alt="" border=0
-    style="Vertical-Align:-5px"></a> and standard deviation
-    <a href="#preview"><img id="imageI4" onclick="eqntext('imageI4')"
-    src="../cgi-bin/mimetex.cgi?\large\sigma" alt="" border=0
-    style="Vertical-Align:0px"></a>,
+    <?php mimetextag('imageI3','\normalsize\mu'); ?> and standard deviation
+    <?php mimetextag('imageI4','\normalsize\sigma'); ?>,
     and at mimeTeX's next larger font size, looks like </p>
      <center>
       <table>
@@ -569,11 +458,10 @@
 	 alt="" border=0 align=middle> </td>
         <td>   </td>
  	<td>
-	 <a href="#preview"><img id="imageI5" onclick="eqntext('imageI5')"
-	 src="../cgi-bin/mimetex.cgi?\large
-         f(x)={\Large\frac1{\sigma\sqrt{2\pi}}}
-	 \int_{\small-\infty}^xe^{-\small\frac{(t-\mu)^2}{2\sigma^2}}dt"
-	 alt="" border=0 align=middle></a> </td>
+	 <?php mimetextag('imageI5',
+	 '\normalsize f(x)={\Large\frac1{\sigma\sqrt{2\pi}}}
+	 \int_{\small-\infty}^xe^{-\small\frac{(t-\mu)^2}{2\sigma^2}}dt'); ?>
+	 </td>
        </tr>
       </table>
      </center>
@@ -617,8 +505,9 @@
 	<td> <font size="4">mimeTeX</font> </td>
        </tr>
        <tr align="center">
-	<td> <img alt="tex:\displaystyle f(x) = \frac1{\sigma\sqrt{2\pi}}
-         \int_{-\infty}^x e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt"> <br> </td>
+	<td> unavailable
+         <!-- img alt="tex:\displaystyle f(x) = \frac1{\sigma\sqrt{2\pi}}
+         \int_{-\infty}^x e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt" --> <br> </td>
         <td>   </td>
  	<td>
 	 <a href="#preview"><img id="imageP3" onclick="eqntext('imageP3')"
@@ -739,6 +628,51 @@
            in the usual way.  Or see the <b>-DDISPLAYSIZE=<i>n</i></b>
            <a href="#options">compile option</a> below to change
            the default. </li>
+     <!-- <li> As discussed in the <a href="#introduction">Introduction</a>,
+            you can replace cumbersome <img> tags with your own custom
+            tags or wrapper scripts. </li> -->
+       <li> <!-- And --> There are occasional exceptions where I couldn't
+            program mimeTeX to recognize valid LaTeX syntax.
+            One particular "gotcha" is that mimeTeX bindings
+            are pretty much left-to-right.  Thus, for example, although
+            mimeTeX correctly interprets <b>\frac12</b> as well as
+            <b>\frac1{x^2}</b>, etc, the legal LaTeX expression
+            <b>x^\frac12</b> must be written <b>x^{\frac12}</b>.
+            Otherwise, mimeTeX interprets it as <b>{x^\frac}12</b>, i.e.,
+            the same way <b>x^\alpha12</b> would be interpreted, which is
+            nonsense for <b>\frac</b>.  The same "gotcha" also applies to
+            other combinations of commands, e.g., you must write
+            <b>\sqrt{\frac\alpha\beta}</b>, or
+            <b>\frac\alpha{\sqrt\beta}</b>, etc.
+            The <a href="#reference">Syntax Reference</a> section
+            contains much additional information.  <!-- Or you can just begin
+            playing with mimeTeX for yourself to see if it might have
+            any potential usefulness for you. --> </li>
+       <li> And there are various additional syntactic and cosmetic
+            differences between LaTeX and mimeTeX.  For example,
+            bounding boxes for mimeTeX's character bitmaps don't
+            accommodate italic corrections.  Therefore, an expression
+            like <b>\int\nolimits_a^b</b> renders
+            <a href="#preview"><img id="gotcha1" onclick="eqntext('gotcha1')"
+            src="../cgi-bin/mimetex.cgi?
+            \normalsize\displaystyle\int\nolimits_a^b"
+            alt="" border=0 align=middle></a> rather than
+            <a href="#preview"><img id="gotcha2" onclick="eqntext('gotcha2')"
+            src="../cgi-bin/mimetex.cgi?
+            \normalsize\displaystyle\smashmargin{2}{\int\nolimits_a}^b"
+            alt="" border=0 align=middle></a><b>.</b>
+            To render the latter image you have to write the somewhat
+            cumbersome expression <b>{\smashmargin2{\int\nolimits_a}^b}</b>
+            instead (see <a href="#smash">smash</a> below). </li>
+       <li> Besides such exceptions, mimeTeX
+            also provides various LaTeX extensions <!-- , i.e., LaTeX errors
+            permitted by mimetex. -->  (such as font size
+            directives like <b>\Large</b> permitted within mimeTeX
+            math mode expressions, as discussed above).
+            <!-- , but flagged as errors by LaTeX. -->
+            <!-- But note well: if you take advantage of mimeTeX extensions,
+            your math mode expressions will no longer be accepted by
+            standard TeX engines. --> </li>
      </ul>
  <p> <a name="forminput"> </a> <a name="preview"> </a>
      Now enter your own LaTeX expression, use the sample provided,
@@ -776,50 +710,110 @@
      src="../cgi-bin/mimetex.cgi?\normalsize
      f(x)=\int\limits_{-\infty}^x e^{-t^2}dt"
      alt="" border=0 style="Vertical-Align:-11px"></a>  
-     if you submit the sample expression already in the box. </p>
-
- <p> And the <img> tag to embed this same integral anywhere
-     in your own document is </p>
-<pre> <img src="../cgi-bin/mimetex.cgi?\large f(x)=\int_{-\infty}^xe^{-t^2}dt"
-  alt="" border=0 align=middle></pre>
-
- <p> <!-- You can see numerous additional examples illustrating html
-     <img> tags using mimeTeX by viewing this page's source. -->
-     The typical mimeTeX <img> tag has the form </p>
+     if you submit the sample expression already in the box.
+     Or see <a href="#messages">error messages</a> whenever an
+     unexpected image is displayed instead.   And (as discussed
+     above) the <img> tag to embed this same integral anywhere
+     in your own document is <br>
+       <nobr><b>            
+          <img 
+          src="../cgi-bin/mimetex.cgi?f(x)=\int_{-\infty}^xe^{-t^2}dt" ></b></nobr><br>
+     </p>
+ <!-- p class="continue">
+     And recall that the typical mimeTeX <img> tag has the form </p>
 <pre> <img src="../cgi-bin/mimetex.cgi?any valid LaTeX/mimeTeX expression"
   alt="" border=0 align=middle></pre> <p class="continue">
      where <b>../cgi-bin/mimetex.cgi</b> is the relative path from your html
      page containing these tags to your compiled mimetex.cgi program, and
      where <b>any valid LaTeX/mimeTeX expression</b>
-     is pretty much any valid LaTeX math expression: </p> <ul>
-     <!-- <li> As discussed in the <a href="#introduction">Introduction</a>,
-            you can replace cumbersome <img> tags with your own custom
-            tags or wrapper scripts. </li> -->
-       <li> <!-- And --> There are occasional exceptions where I couldn't
-            program mimeTeX to recognize valid LaTeX syntax.
-            One particular "gotcha" is that mimeTeX bindings
-            are pretty much left-to-right.  Thus, for example, although
-            mimeTeX correctly interprets <b>\frac12</b> as well as
-            <b>\frac1{x^2}</b>, etc, the legal LaTeX expression
-            <b>x^\frac12</b> must be written <b>x^{\frac12}</b>.
-            Otherwise, mimeTeX interprets it as <b>{x^\frac}12</b>, i.e.,
-            the same way <b>x^\alpha12</b> would be interpreted, which is
-            nonsense for <b>\frac</b>.  The same "gotcha" also applies to
-            other combinations of commands, e.g., you must write
-            <b>\sqrt{\frac\alpha\beta}</b>, or
-            <b>\frac\alpha{\sqrt\beta}</b>, etc.
-            The <a href="#reference">Syntax Reference</a> section
-            contains much additional information.  <!-- Or you can just begin
-            playing with mimeTeX for yourself to see if it might have
-            any potential usefulness for you. --> </li>
-       <li> Besides such exceptions, mimeTeX
-            also provides various LaTeX extensions. <!-- , i.e., LaTeX errors
-            permitted by mimetex. -->  For example, font size
-            directives like <b>\Large</b> are permitted within mimeTeX
-            math mode expressions, but flagged as errors by LaTeX.
-            <!-- But note well: if you take advantage of mimeTeX extensions,
-            your math mode expressions will no longer be accepted by
-            standard TeX engines. --> </li> </ul>
+     is pretty much any valid LaTeX math expression: </p -->
+
+<!-- ++++++++
+ <h3> <a name="errormessages">
+ Error messages<font size=5>...</font></a> </h3>
+ <p> Any (La)TeX error is typically also a mimeTeX error.
+     However, mimeTeX has no command line interface or
+     <b>.</b>log file for reporting errors.  Its only
+     communication with you is through the mimeTeX image
+     rendered by your browser.  So error messages are embedded
+     in that image whenever feasible.  For example,
+     suppose you want to see
+      <a href="#preview"><img id="messages1" onclick="eqntext('messages1')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\alpha\beta\gamma\delta"
+      alt="" border=0 align="bottom"></a>
+     but you mistakenly type   <b>\alpha\bethe\gamma\delta</b>  
+     instead.  Then the image rendered is
+      <a href="#preview"><img id="messages2" onclick="eqntext('messages2')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\alpha\bethe\gamma\delta"
+      alt="" border=0 align="bottom"></a>
+     indicating the unrecognized <b>[\bethe?]</b> where you wanted to type
+       <b>\beta</b>   and had hoped to see  
+      <a href="#preview"><img id="messages3" onclick="eqntext('messages3')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\bf\beta"
+      alt="" border=0 align="bottom"></a><b>.</b>  
+     If your expression contains some unprintable character
+     (meaning any character mimeTeX has no bitmap for),
+     then just  
+      <a href="#preview"><img id="messages4" onclick="eqntext('messages4')"
+      src="../cgi-bin/mimetex.cgi?\small\bf[?]"
+      alt="" border=0 align="bottom"></a>  
+     is displayed in the corresponding position. </p>
+
+ <p> The preceding example illustrates a pretty trivial error.
+     Any non-trivial errors in your expression are likely to
+     go unrecognized and unreported by mimeTeX, and to render
+     unexpected images.  While checking your input expression
+     for syntax errors, keep in mind the following points
+     about mimeTeX's behavior: </p>
+     <ul>
+       <li> An unmatched left brace   <b>{</b>   is matched
+            by mimeTeX with a "phantom" right brace   <b>}</b>  
+            that's imagined to be at the end of your expression. </li>
+       <li> Likewise, an unmatched   <b>\left(</b>,  
+            or <b>\left\{</b>   or <b>\left\</b><i>anything</i>,  
+            is matched by mimeTeX with a "phantom"   <b>\right.</b>
+              at the end of your expression. </li>
+       <li> On the other hand, an unmatched right brace   <b>}</b>
+              is displayed in place, as if you had typed \rbrace. </li>
+       <li> But an unmatched   <b>\right\</b><i>anything</i>  
+            is interpreted as an
+            <a href="http://www.forkosh.com/mimetexmanual.html?abbreviations"
+            target="_top">abbreviation</a> for <b>\</b>rightarrow
+            followed by <b>\</b><i>anything</i>.  For example,  
+            <b>\leff( abc \right) def</b>   renders  
+              <a href="#preview"><img id="messages5"
+              onclick="eqntext('messages5')"
+              src="../cgi-bin/mimetex.cgi?\small\leff(abc\right)def"
+              alt="" border=0 align="bottom"></a>.
+            </li>
+     </ul>
+++++++++ -->
+
+<!-- ++++++++
+ <h3> <a name="infomessages">
+ Informational messages<font size=5>...</font></a> </h3>
+ <p> The latest release of mimeTeX is version
+       <a href="#preview"><img id="messages11" onclick="eqntext('messages11')"
+       src="../cgi-bin/mimetex.cgi?\small\versionnumber"
+       alt="" border=0 align="bottom"></a>
+     which was last revised
+       <a href="#preview"><img id="messages12" onclick="eqntext('messages12')"
+       src="../cgi-bin/mimetex.cgi?\small\revisiondate"
+       alt="" border=0 align="bottom"></a>.
+     The special mimeTeX directive   <b>\version</b>  
+     displays that same information, </p>
+      <center>
+       <a href="#preview"><img id="messages13" onclick="eqntext('messages13')"
+       src="../cgi-bin/mimetex.cgi?\version"
+       alt="" border=0 align=middle></a>
+      </center>
+ <p> To check that your own release of mimeTeX is current,
+     type a url into your browser's locator window something like <br>
+               
+     <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?\version</b> <br>
+     which will display the version and revision date of
+     mimeTeX installed on your server. </p>
+++++++++ -->
 
 
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -827,7 +821,7 @@
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 <h2> <a name="examples"> (Ib) Examples   </a> </h2>
 
- <p> Here are various additional random examples further demonstrating
+ <p> Here are various additional random examples further illustrating
      mimeTeX's features and usage.  To see how they're done, Click any
      one of them to place its corresponding expression in the
      <a href="#preview">Query Box</a> above.  Then press Submit
@@ -966,9 +960,9 @@
   <td align="center">
     <a href="#preview">
     <img id="example7" onclick="eqntext('example7')"
-    src="../cgi-bin/mimetex.cgi?\Large\overbrace{a,...,a}^{\text{k a^,s}},
+    src="../cgi-bin/mimetex.cgi?\large\overbrace{a,...,a}^{\text{k a^,s}},
     \underbrace{b,...,b}_{\text{l b^,s}}\hspace{10}
-    \large\underbrace{\overbrace{a...a}^{\text{k a^,s}},
+    \normalsize\underbrace{\overbrace{a...a}^{\text{k a^,s}},
     \overbrace{b...b}^{\text{l b^,s}}}_{\text{k+l elements}}"
     alt="" border=0 align=middle></a> </td>
   <td>
@@ -987,7 +981,7 @@
         <td align="left" colspan=2>
          <a href="#preview">
          <img id="example8a" onclick="eqntext('example8a')"
-         src="../cgi-bin/mimetex.cgi?\Large\scr{J}^{i0}=+\frac i2
+         src="../cgi-bin/mimetex.cgi?\large\scr{J}^{i0}=+\frac i2
          \left[\begin{array}{cc}\sigma_i&0\\0&-\sigma_i\end{array}\right]
          \hspace{10}\scr{J}^{ij}=\frac12\varepsilon_{ijk}
          \left[\begin{array}{cc}\sigma_k&0\\0&\sigma_k\end{array}\right]"
@@ -998,7 +992,7 @@
         <td align="left">
          <a href="#preview">
          <img id="example8b" onclick="eqntext('example8b')"
-         src="../cgi-bin/mimetex.cgi?\Large A\ =\ \large\left(
+         src="../cgi-bin/mimetex.cgi?\large A\ =\ \normalsize\left(
          \begin{array}{c.cccc}&1&2&\cdots&n\\
          \hdash1&a_{11}&a_{12}&\cdots&a_{1n}\\
          2&a_{21}&a_{22}&\cdots&a_{2n}\\
@@ -1019,10 +1013,10 @@
         <td align="left" colspan="2">
          <a href="#preview">
          <img id="example9c" onclick="eqntext('example9c')"
-         src="../cgi-bin/mimetex.cgi?\normalsize
-         \left(\large\begin{array}{GC+23}
+         src="../cgi-bin/mimetex.cgi?\large
+         \left(\large\begin{array}{GC+45}
          \varepsilon_x\\\varepsilon_y\\\varepsilon_z\\\gamma_{xy}\\
-         \gamma_{xz}\\\gamma_{yz}\end{array}\right)\ {\Large=}
+         \gamma_{xz}\\\gamma_{yz}\end{array}\right)\ {\large=}
          \ \left[\begin{array}{CC}
          \begin{array}\frac1{E_{\fs{+1}x}}
          &-\frac{\nu_{xy}}{E_{\fs{+1}x}}
@@ -1052,7 +1046,7 @@
   <td align="center">
     <a href="#preview">
     <img id="example10" onclick="eqntext('example10')"
-    src="../cgi-bin/mimetex.cgi?\Large\left.\begin{eqnarray}
+    src="../cgi-bin/mimetex.cgi?\large\left.\begin{eqnarray}
     x+y+z&=&3\\2y&=&x+z\\2x+y&=&z\end{eqnarray}\right\}"
     alt="" border=0 align=middle></a> </td>
   <td>
@@ -1085,13 +1079,13 @@
   <td align="left">
     <a href="#preview">
     <img id="example12" onclick="eqntext('example12')"
-    src="../cgi-bin/mimetex.cgi?\Large\hspace{5}\unitlength{1}
+    src="../cgi-bin/mimetex.cgi?\large\hspace{5}\unitlength{1}
     \picture(175,100){ (50,50){\circle(100)}
-    (1,50){\overbrace{\line(46)}^{4$\;\;a}}
+    (1,50){\overbrace{\line(46)}^{3$\;\;a}}
     (52,50){\line(125)} (50,52;115;2){\mid} (52,55){\longleftar[60]}
-    (130,56){\longrightar[35]} (116,58){r} (c85,50;80;2){\bullet}
-    (c85,36){\large-q} (c165,36){\large q}
-    (42,29){\underbrace{\line(32)}_{\small a^2/r\;\;\;}} }"
+    (130,56){\longrightar[35]} (116,58){\small r}
+    (c85,50;80;2){\small\bullet} (c85,36){\small -q} (c165,36){\small q}
+    (42,29){\underbrace{\line(32)}_{\scriptsize a^2/r\;\;\;}} }"
     alt="" border=0 align=middle></a> </td>
   <td valign="middle">
     mimeTeX <a href="#picture">\picture(size){pic_elems}</a>
@@ -1126,10 +1120,11 @@
     The image at left is picture-in-picture-in-picture. </td>
   </tr>
 </table>
-<br><br>
 
 <!-- font examples
 ++++++++++++++++++ -->
+<!-- font-size-examples-commented-out ---
+<br><br>
 <h3> Some font examples <font size=5>...</font></a> </h3>
  <p> Finally, illustrated below are some examples of fonts and symbols
      available with mimeTeX.  All symbols and sizes from cmr, cmmi,
@@ -1163,69 +1158,356 @@
 2$\scrX&2$\scrY&2$\scrZ}"
 alt="" border=0 align=middle> </p>
 
-<h3>cmmi greek uppercase, and \var lowercase</h3>
-<p> <img src="../cgi-bin/mimetex.cgi?\array{r$
-2$\rm~size~4:~&4$\Gamma&4$\Delta&4$\Theta&4$\Lambda&4$\Xi&4$\Pi&4$\Sigma&
-4$\Upsilon&4$\Phi&4$\Psi&4$\Omega,&4$\rm~~&4$\varepsilon&4$\vartheta&4$\varpi&
-4$\varrho&4$\varsigma&4$\varphi\\
-2$\rm~3:~&3$\Gamma&3$\Delta&3$\Theta&3$\Lambda&3$\Xi&3$\Pi&3$\Sigma&
-3$\Upsilon&3$\Phi&3$\Psi&3$\Omega,&~&3$\varepsilon&3$\vartheta&3$\varpi&
-3$\varrho&3$\varsigma&3$\varphi\\
-2$\rm~2:~&2$\Gamma&2$\Delta&2$\Theta&2$\Lambda&2$\Xi&2$\Pi&2$\Sigma&
-2$\Upsilon&2$\Phi&2$\Psi&2$\Omega,&~&2$\varepsilon&2$\vartheta&2$\varpi&
-2$\varrho&2$\varsigma&2$\varphi}"
-alt="" border=0 align=middle> </p>
+<h3>cmmi greek uppercase, and \var lowercase</h3>
+<p> <img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$\Gamma&4$\Delta&4$\Theta&4$\Lambda&4$\Xi&4$\Pi&4$\Sigma&
+4$\Upsilon&4$\Phi&4$\Psi&4$\Omega,&4$\rm~~&4$\varepsilon&4$\vartheta&4$\varpi&
+4$\varrho&4$\varsigma&4$\varphi\\
+2$\rm~3:~&3$\Gamma&3$\Delta&3$\Theta&3$\Lambda&3$\Xi&3$\Pi&3$\Sigma&
+3$\Upsilon&3$\Phi&3$\Psi&3$\Omega,&~&3$\varepsilon&3$\vartheta&3$\varpi&
+3$\varrho&3$\varsigma&3$\varphi\\
+2$\rm~2:~&2$\Gamma&2$\Delta&2$\Theta&2$\Lambda&2$\Xi&2$\Pi&2$\Sigma&
+2$\Upsilon&2$\Phi&2$\Psi&2$\Omega,&~&2$\varepsilon&2$\vartheta&2$\varpi&
+2$\varrho&2$\varsigma&2$\varphi}"
+alt="" border=0 align=middle> </p>
+
+<h3>cmmi greek lowercase</h3>
+<p> <img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$\alpha&4$\beta&4$\gamma&4$\delta&4$\epsilon&4$\zeta&
+4$\eta&4$\theta&4$\iota&4$\kappa&4$\lambda&4$\mu&4$\nu&4$\xi&4$%%\omicron%%&
+4$\pi&4$\rho&4$\sigma&4$\tau&4$\upsilon&4$\phi&4$\chi&4$\psi&4$\omega\\
+2$\rm~3:~&3$\alpha&3$\beta&3$\gamma&3$\delta&3$\epsilon&3$\zeta&
+3$\eta&3$\theta&3$\iota&3$\kappa&3$\lambda&3$\mu&3$\nu&3$\xi&3$%%\omicron%%&
+3$\pi&3$\rho&3$\sigma&3$\tau&3$\upsilon&3$\phi&3$\chi&3$\psi&3$\omega\\
+2$\rm~2:~&2$\alpha&2$\beta&2$\gamma&2$\delta&2$\epsilon&2$\zeta&
+2$\eta&2$\theta&2$\iota&2$\kappa&2$\lambda&2$\mu&2$\nu&2$\xi&2$%%\omicron%%&
+2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"
+alt="" border=0 align=middle> </p>
+
+<h3>cmsy symbols at mimeTeX font size 3<br>
+<font size="3">(operators shown large are automatically "promoted"<br>
+to the larger size in \displaystyle mode)</font> </h3>
+<p> <img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\
+1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&
+\oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\
+1$\rm~16-31:~&\asymp&\equiv&\subseteq&\supseteq&\leq&\geq&\preceq&\succeq&
+\sim&\approx&\subset&\supset&\ll&\gg&\prec&\succ\\
+1$\rm~32-47:~&\leftar&\rightar&\uparr&\downar&\leftrightar&\near&\sear&
+\simeq&\Leftar&\Rightar&\Upar&\Downar&\Leftrightar&\nwar&\swar&\propto\\
+1$\rm~48-63:~&\prime&\infty&\in&\ni&\triangle&\bigtriangledo&/&\'&
+\forall&\exists&\neg&\emptyset&\Re&\Im&\top&\bot\\
+1$\rm~64-100:~&\aleph&&\calA&4$.\,.\,.&\calZ&&\cup&\cap&
+\uplus&\wedge&\vee&\vdash&\dashv&\lfloor&\rfloor&\lceil\\
+1$\rm~101-116:~&\rceil&\lbrace&\rbrace&\langle&\rangle&\mid&\parallel&
+\updownar&\Updownar&\setminus&\wr&\surd&\amalg&\nabla&\int&\sqcup\\
+1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&
+\Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle> </p>
+
+<h3>a few other cmmi, cmr, stmary and wncyr symbols
+at mimeTeX font size 4</h3>
+<p> <img src="../cgi-bin/mimetex.cgi?\array{4,r$
+1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&
+\triangleright&\triangleleft&\star&\partial&
+\flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\
+1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
+1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
+\subsetpluseq&\supsetpluseq&\Yup&\Ydown\\
+1$\rm~wncyr:~&\cyr A&\cyr a&\cyr B&\cyr b&\cyr V&\cyr v&\cyr G&\cyr g&
+\cyr D&\cyr d&\cyr Dj&\cyr dj&\cyr\=E&\cyr\=e&\cyr Zh&\cyr zh}"
+alt="" border=0 align=middle> </p>
+--- end-of-font-size-examples-commented-out -->
+
+<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+SCRIPTS & PLUGINS
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+<h2> <a name="scripts"> (Ic) Scripts & Plugins   </a> </h2>
+
+<p> Some useful scripts that automatically construct
+    mimeTeX <img> tags for you are illustrated below.
+    And you can also write your own scripts to simplify
+    the HTML notation required to incorporate mimeTeX
+    math images in your pages. </p>
+
+<h3> <a name="plugins">
+mimeTeX plugins<font size=5>...</font></a> </h3>
+<!-- p> There's no inherent need to repeatedly write the cumbersome
+    <img> tag illustrated above.  You can write your own <a href=
+    "http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro9.html#wp73314"
+    target="_top">custom tags</a>,
+    or write a wrapper script around mimeTeX to simplify the
+    notation. </p -->
+
+<p style="margin-bottom:0">  <!-- For example, -->
+    The following javascript snippet (based on
+    <a href="http://www.mathtran.org" target="_top">mathtran</a>'s
+    <a href="http://www.mathtran.org/js/mathtran_img.js"
+    target="_top">mathtran_img.js</a>) lets you just write  
+    <b><img alt="mimetex:c=\sqrt{a^2+b^2}"></b>  
+    wherever you want to see <a href="#preview"><img id="imageJS1"
+    onclick="eqntext('imageJS1')" src="../cgi-bin/mimetex.cgi?
+    \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
+    style="Vertical-Align:-1px"></a>  </p>
+    <pre class="medium" style="margin-top:0;margin-bottom:0"
+>   <script type="text/javascript">
+   <!--
+   // Create a namespace to hold variables and functions
+   mimetex = new Object();
+   // Change this to use your server
+   mimetex.imgSrc = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
+   // Transform the whole document: add src to each img with
+   // alt text starting with "mimetex:", unless img already has a src.
+   mimetex.init = function () {
+       if (! document.getElementsByTagName) return;
+       var objs = document.getElementsByTagName("img");
+       var len  = objs.length;
+       for (i=0; i<len; i++) {
+          var img = objs[i];
+          if (img.alt.substring(0,8) == 'mimetex:')
+             if (!img.src) {
+                var tex_src = img.alt.substring(8);
+                img.src = mimetex.imgSrc + encodeURIComponent(tex_src);
+                // Append TEX to the class of the IMG.
+                img.className +=' tex'; }
+          }
+       mimetex.hideElementById("mimetex.error"); }
+   // Utility function
+   mimetex.hideElementById = function (id) {
+       var obj = document.getElementById(id);
+       if (obj) obj.style.display = 'none'; }
+   // resolve a cross-browser issue (see <a href="http://scottandrew.com/weblog/articles/cbs-events" target="_top">CBS events</a>)
+   mimetex.addEvent = function (obj, evType, fn, useCapture) {
+       if (obj.addEventListener) { //For Mozilla.
+           obj.addEventListener(evType, fn, useCapture);
+           return true; }
+       else if (obj.attachEvent) { //For Internet Explorer.
+           var r = obj.attachEvent("on"+evType, fn);
+           return r; }
+       }
+   // Initialize after entire document is loaded
+   mimetex.addEvent(window, 'load', mimetex.init, false);
+   -->
+   </script></pre>
+
+<p style="margin-bottom:0">
+    Bulletin boards, wikis, etc, can also incorporate mimeTeX images
+    with short scripts.  For example, if you're using
+    <a href="http://www.phpbb.com" target="_top">phpBB2</a>, then
+    <a href="http://www.themathforum.com/" target="_top">Jameson</a>
+    contributed the following typical one-line mod that lets you write
+    <b>[tex] c=\sqrt{a^2+b^2} [/tex]</b> to obtain the
+    same <a href="#preview"><img id="imageJS2"
+    onclick="eqntext('imageJS2')" src="../cgi-bin/mimetex.cgi?
+    \normalsize c=\sqrt{a^2+b^2}" alt="" border=0
+    style="Vertical-Align:-1px"></a> image illustrated above  </p>
+    <pre class="medium" style="margin-top:0;margin-bottom:0"
+>   #--------[open]-----------------------------------------------------
+     /includes/bbcode.php
+   #--------[find]-----------------------------------------------------
+     // Remove our padding from the string..
+   #--------[before, add]----------------------------------------------
+     $text = preg_replace('/\[tex\](.*?)\[\/tex\]/ie',
+     "'<img src=\"/cgi-bin/mimetex.cgi?'.rawurlencode('$1').'\" align=\"middle\" />'",
+     $text);</pre>
+<p class="continue" style="margin-top:0"> If you're using
+     <a href="http://www.phpbb.com" target="_top">phpBB3</a>,
+     then no mod is even needed.
+     Just click Postings from the Administrator Control Panel,
+     and add the custom BBCode <b>[tex]{TEXT}[/tex]</b>  
+     with the HTML replacement
+     <b><img src="/cgi-bin/mimetex.cgi?{TEXT}" align=middle></b></p>
+
+<p> Similarly, <a href="http://www.pmwiki.org/" target="_top">PmWiki</a>
+    also has a
+    <a href="http://www.pmwiki.org/wiki/Cookbook/MimeTeX" target="_top">
+    mimeTeX plugin</a> that lets you just write
+    <b>{$ f(x)=\int_{-\infty}^xe^{-t^2}dt $}</b>
+    to obtain that same image.   Several other packages
+    also have similar mimeTeX plugins: </p>
+    <center><table>
+     <tr> <td align=center> <u> <b>Package</b> </u> </td>
+      <td>   </td>
+      <td align=center> <u>  <b>Plugin</b>  </u> </td>
+      </tr>
+     <tr> <td align=center>
+	  <a href="http://www.pmwiki.org" target="_top">
+	  PmWiki</a> </td> <td>   </td>
+	  <td align=center>
+	  <a href="http://www.pmwiki.org/wiki/Cookbook/MimeTeX"
+	  target="_top">mimeTeX plugin</a> </td> </tr>
+     <tr> <td align=center>
+	  <!-- a href="http://www.wikimedia.org/wiki/Main_Page" -->
+	  <!-- a href="http://www.wikimediafoundation.org/wiki/Main_Page" -->
+	  <a href="http://www.mediawiki.org/wiki/MediaWiki"
+          target="_top">MediaWiki</a> </td>
+	  <td align=center>   </td>
+	  <td align=center>
+	  <!-- a href="http://meta.wikimedia.org/wiki/Mimetex_alternative" -->
+	  <a href="http://www.mediawiki.org/wiki/Mimetex_alternative"
+	  target="_top">"mimeTeX alternative"</a> </td> </tr>
+<!-- ***redirect loop***
+     <tr> <td align=center>
+	  <a href="http://www.unitorganizer.com/mathwiki/index.php/Main_Page"
+	  target="_top">MathWiki</a> </td> <td>   </td>
+	  <td align=center> <a href=
+	  "http://www.unitorganizer.com/mathwiki/index.php/MimetexParser"
+	  target="_top">"mimeTeX Parser"</a> </td> </tr>
+-->
+     <tr> <td align=center>
+	  <a href="http://forums.punbb.org/" target="_top">PunBB</a> </td>
+	  <td>   </td> <td align=center>
+	  <a href="http://www.math-linux.com/spip.php?article44"
+	  target="_top">mimeTeX plugin</a> </td> </tr>
+     <tr> <td align=center>
+	  <!-- a href="http://www.sixapart.com/movabletype/" -->
+	  <a href="http://www.movabletype.com/"
+	  target="_top">Movable Type</a> </td> <td>   </td>
+	  <td align=center> <a href=
+	  "http://www.unitorganizer.com/myblog/2006/08/creating_equations_in_movable.html"
+          target="_top">mimeTeX plugin</a> </td> </tr>
+     <tr> <td align=center>
+	  <a href="http://wordpress.org/" target="_top">WordPress</a> </td>
+	  <td>   </td> <td align=center> <a href=
+	  "http://www.anlak.com/?page_id=66" target="_top">
+     <!-- "http://sixthform.info/steve/wordpress/index.php?p=13&page=2" -->
+	  mimeTeX plugin</a> <!--   (see item 9) --> </td> </tr>
+     <tr> <td align=center>
+	  <a href="http://www.joomla.org/"
+	  target="_top">Joomla</a> </td> <td>   </td>
+	  <td align=center> <a href=
+	  "http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,5932/Itemid,35/"
+          target="_top">mimeTeX plugin</a> </td> </tr>
+     <tr> <td align=center>
+	  <a href="http://mambo-foundation.org/"
+	  target="_top">Mambo</a> </td> <td>   </td>
+	  <td align=center> <a href=
+	  "http://webscripts.softpedia.com/script/Modules/Joomla-Mambo-Modules/MimeTeX-Bot-9250.html"
+          target="_top">"mimeTeX bot"</a> </td> </tr>
+     <!--- dead links --->
+     <!-- tr> <td align=center>
+	  <a href="http://www.phpbb.com" target="_top">phpBB</a> </td>
+	  <td>   </td> <td align=center>
+	  <a href=
+	  "http://www.themathforum.com/math/showthread.php?p=621#post621"
+	  target="_top">mimeTeX plugin</a> </td> </tr -->
+     <!-- tr> <td align=center>
+	  <a href="http://www.mamboserver.com/" target="_top">Mambo</a> </td>
+	  <td>   </td> <td align=center>
+	  <a href="http://mamboxchange.com/projects/mimetexbot/"
+	  target="_top">"mimeTeX bot"</a> </td> </tr -->
+    </table></center>
+
+<p> <b>Please note:</b> If you're writing your own plugin for mimeTeX,
+    please don't write php code using <b>system( )</b>, or any other
+    shell escape mechanism, just to cache images.  Use mimeTeX's
+      <b>-DCACHEPATH=\"<i>path/</i>\"</b>  
+    <a href="#options">compile option</a> instead.
+    <b>system( )</b> raises security
+    issues, either real ones if used carelessly, or just in the minds of
+    system administrators.  Either way, I've received many emails from
+    people unable to use mimeTeX because of unnecessary <b>system( )</b>
+    calls prohibited by security-conscious sysadmins.  MimeTeX itself poses
+    minimal risk when used as illustrated above, but you're responsible
+    for any plugin/wrapper script you write around it. </p>
 
-<h3>cmmi greek lowercase</h3>
-<p> <img src="../cgi-bin/mimetex.cgi?\array{r$
-2$\rm~size~4:~&4$\alpha&4$\beta&4$\gamma&4$\delta&4$\epsilon&4$\zeta&
-4$\eta&4$\theta&4$\iota&4$\kappa&4$\lambda&4$\mu&4$\nu&4$\xi&4$%%\omicron%%&
-4$\pi&4$\rho&4$\sigma&4$\tau&4$\upsilon&4$\phi&4$\chi&4$\psi&4$\omega\\
-2$\rm~3:~&3$\alpha&3$\beta&3$\gamma&3$\delta&3$\epsilon&3$\zeta&
-3$\eta&3$\theta&3$\iota&3$\kappa&3$\lambda&3$\mu&3$\nu&3$\xi&3$%%\omicron%%&
-3$\pi&3$\rho&3$\sigma&3$\tau&3$\upsilon&3$\phi&3$\chi&3$\psi&3$\omega\\
-2$\rm~2:~&2$\alpha&2$\beta&2$\gamma&2$\delta&2$\epsilon&2$\zeta&
-2$\eta&2$\theta&2$\iota&2$\kappa&2$\lambda&2$\mu&2$\nu&2$\xi&2$%%\omicron%%&
-2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"
-alt="" border=0 align=middle> </p>
+<h3> <a name="valignment">
+Vertical alignment<font size=5>...</font></a> </h3>
+<p> An image like
+    <a href="#preview"><img id="imageAV1" onclick="eqntext('imageAV1')"
+    src="../cgi-bin/mimetex.cgi?
+    \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
+    alt="" border=0 align=middle></a>
+    doesn't look as good as the same image
+    <a href="#preview"><img id="imageAV2" onclick="eqntext('imageAV2')"
+    src="../cgi-bin/mimetex.cgi?
+    \normalsize f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"
+    alt="" border=0 style="Vertical-Align:-26px"></a>
+    that's vertically aligned with your surrounding text.
+    Along with several standard 
+    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">
+    HTTP header fields</a>, mimeTeX also emits a special
+      <b>Vertical-Align: –<i>nn</i></b>  
+    header, where <b>–<i>nn</i></b> is the number of pixels
+    (usually negative as illustrated) needed for a
+      <b>style="Vertical-Align: –<i>nn</i> px"</b>
+      attribute in the <b><img></b> tag used to
+    render your expression. This Vertical-Align: header
+    is obtained by placing the directive  <b>\depth</b> 
+    anywhere in your expression. </p>
 
-<h3>cmsy symbols at mimeTeX font size 3<br>
-<font size="3">(operators shown large are automatically "promoted"<br>
-to the larger size in \displaystyle mode)</font> </h3>
-<p> <img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\
-1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&
-\oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\
-1$\rm~16-31:~&\asymp&\equiv&\subseteq&\supseteq&\leq&\geq&\preceq&\succeq&
-\sim&\approx&\subset&\supset&\ll&\gg&\prec&\succ\\
-1$\rm~32-47:~&\leftar&\rightar&\uparr&\downar&\leftrightar&\near&\sear&
-\simeq&\Leftar&\Rightar&\Upar&\Downar&\Leftrightar&\nwar&\swar&\propto\\
-1$\rm~48-63:~&\prime&\infty&\in&\ni&\triangle&\bigtriangledo&/&\'&
-\forall&\exists&\neg&\emptyset&\Re&\Im&\top&\bot\\
-1$\rm~64-100:~&\aleph&&\calA&4$.\,.\,.&\calZ&&\cup&\cap&
-\uplus&\wedge&\vee&\vdash&\dashv&\lfloor&\rfloor&\lceil\\
-1$\rm~101-116:~&\rceil&\lbrace&\rbrace&\langle&\rangle&\mid&\parallel&
-\updownar&\Updownar&\setminus&\wr&\surd&\amalg&\nabla&\int&\sqcup\\
-1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&
-\Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle> </p>
+<p> But mimeTeX's special Vertical-Align: header
+    is unrecognized and ignored by your browser.  You have to get the
+    header, interpret it, and write the corresponding <img> tag.
+    The only feasible way to do all this is using a scripting language,
+    as illustrated by the following, rather naive, php code </p>
+    <pre class="medium" style="margin-top:.5em;margin-bottom:.5em"
+>   <?php
+   $mimetexurl = "http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?";
+   function verticalalign( $expression ) {
+      global $mimetexurl;
+      // note: curl_init() stops at the first whitespace char in $url argument
+      $expression = ereg_replace(" ","~",$expression); // so remove whitespace
+      $url     = $mimetexurl . "\depth~" . $expression;
+      $valign  = "0";
+      $ch      = curl_init( $url );
+      curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
+      curl_setopt( $ch, CURLOPT_HEADER, true );
+      $gif     = curl_exec( $ch );
+      $errno   = curl_errno( $ch );
+      curl_close( $ch );
+      if ( $errno == 0 ) {
+        $fields = explode("Vertical-Align:",$gif);
+        $vfield = trim($fields[1]);
+        $fldlen = strspn($vfield,"+-0123456789");
+        $valign = substr($vfield,0,$fldlen); }
+      return $valign;
+      }
+   function mimetextag( $expression ) {
+      global $mimetexurl;
+      $valign = verticalalign($expression);
+      $url    = $mimetexurl . "\depth~" . $expression;
+      echo ' <img src="',$url,'" ';
+      echo ' style="Vertical-Align:',$valign,'px" ';
+      echo ' alt="" border=0>', "\n";
+      }
+   ?></pre>
 
-<h3>a few other cmmi, cmr, stmary and wncyr symbols
-at mimeTeX font size 4</h3>
-<p> <img src="../cgi-bin/mimetex.cgi?\array{4,r$
-1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&
-\triangleright&\triangleleft&\star&\partial&
-\flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\
-1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
-1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
-\subsetpluseq&\supsetpluseq&\Yup&\Ydown\\
-1$\rm~wncyr:~&\cyr A&\cyr a&\cyr B&\cyr b&\cyr V&\cyr v&\cyr G&\cyr g&
-\cyr D&\cyr d&\cyr Dj&\cyr dj&\cyr\=E&\cyr\=e&\cyr Zh&\cyr zh}"
-alt="" border=0 align=middle> </p>
+<p> Now you can write  
+    <?php mimetextag('\frac12\left(a^2+b^2\right)'); ?>
+    wherever you want to see
+    <a href="#preview"><img id="imageAV5" onclick="eqntext('imageAV5')"
+    src="../cgi-bin/mimetex.cgi?
+    \normalsize\frac12\left(a^2+b^2\right)"
+    alt="" border=0 style="Vertical-Align:-7px"></a>
+    correctly aligned. Note that the php code automatically
+    prepends  <b>\depth</b>  to your expression for you.
+    <!-- Besides making you escape backslashes
+    (each \ must be written \\), -->
+    (Also note that this code calls mimeTeX twice to render each
+    expression, once to get the Vertical-Align: header and build
+    an <img> tag, and then again to render that tag.
+    If you're a good php programmer and write better code,
+    please email me a copy.) </p>
+
+<p> If you're using mimeTeX's
+      <b>-DCACHEPATH=\"<i>path</i>/\"</b>  
+    <a href="#options">compile option</a>, you can request
+    that all images be cached with Vertical-Align: headers,
+    whether or not they contain the \depth directive. Prefix your
+    <b><i>path</i>/</b> with a leading <b>%</b> and write  
+    <b>-DCACHEPATH=\"%<i>path</i>/\"</b>   instead.
+    That leading <b>%</b> won't become part of your cache
+    directory's <b><i>path</i>/</b>, but it will signal mimeTeX
+    to cache headers along with each image. (In this case,
+    the directive  <b>\nodepth</b>  suppresses
+    mimeTeX's header caching for that image.)
+    <!-- Otherwise, the Vertical-Align: information is lost,
+    and attempts to align cached images will fail. --> </p>
 
 
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 GPL
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-<h2> <a name="gpl"> (Ic) GPL License   </a> </h2>
+<h2> <a name="gpl"> (Id) GPL License   </a> </h2>
 
 <font color="black">
 <b>&quot</b><i>My grandfather once told me there are two kinds of people:<br>
@@ -1250,10 +1532,10 @@
      evolve to make this kind of obnoxious banter unnecessary.
      In the meantime, please forgive me my paranoia. </p>
 
- <p> To protect your own intellectual property, I recommend
-     <a href="http://lcweb.loc.gov/copyright/circs/circ1.html"
+ <p> To protect your own intellectual property, I recommend (both are pdf)
+     <a href="http://www.copyright.gov/circs/circ01.pdf"
      target="_top">Copyright Basics</a> from The Library of Congress,
-     in particular <a href="http://www.copyright.gov/circs/circ61.html"
+     in particular <a href="http://www.copyright.gov/circs/circ61.pdf"
      target="_top">Circular 61</a>, Copyright Registration for
      Computer Programs.
      <!-- and similarly,
@@ -1266,9 +1548,9 @@
      to anything you write the moment it's on paper.  In practice,
      if the matter comes under dispute, the courts look _very_ favorably
      on you for demonstrating your intent by registering the copyright.
-     For example, courts will stop unauthorized use of unregistered
+     <!-- For example, courts will stop unauthorized use of unregistered
      material, but monetary damages are awarded _only_ if you
-     register the copyright before infringement occurs. </p>
+     register the copyright before infringement occurs. --> </p>
 
 
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -1373,6 +1655,16 @@
         <a href="http://www.shitalshah.com">Shital Shah</a>, and
         download <a href="http://www.shitalshah.com/dev/eq2img_all.zip">
         eq2img_all.zip</a> containing Shital's latest code. </li>
+        <li> If you install mimeTeX on one server and try to use it
+        from another, you may instead see messages like <br>
+        <img src="../cgi-bin/mimetex.cgi?\message{3}"
+        alt="" align="middle" border=0> <br>
+        In this case, compile mimetex.cgi with the -DNOREFCHECK switch,
+        <i>e.g.</i>,<br>
+             <nobr>         <b>cc -DAA -DNOREFCHECK
+             mimetex.c gifsave.c -lm -o mimetex.cgi</b> </nobr> <br>
+        and read the -DREFLEVELS=<i>n</i> discussion under
+        <a href="#options">compile options</a> below. </li>
         <!-- <li> If you're compiling on Sun or VMS, and see about a zillion
         irritating warnings, try adding <b>-DSIGNEDCHAR</b>
         (for VMS, that's cc/define=(AA,SIGNEDCHAR) mimetex.c) </li> -->
@@ -1564,7 +1856,7 @@
            <b>\textstyle</b> <a href="#preview">
            <img id="displaysize1" onclick="eqntext('displaysize1')"
            src="../cgi-bin/mimetex.cgi?
-           \normalsize\displaystyle\int\nolimits_a^b"
+           \normalsize\displaystyle\smashmargin{2}{\int\nolimits_a}^b"
            alt="" border=0 align=middle></a> at font sizes <b>\normalsize</b>
            and smaller, and rendered <b>\displaystyle</b> <a href="#preview">
            <img id="displaysize2" onclick="eqntext('displaysize2')"
@@ -1582,7 +1874,57 @@
            gif images.  Default is 1.25 (rather than the standard 2.2).
            Specify 0.0 to turn off gamma correction (1.0 makes no
            gamma correction but doesn't actually turn it off). </dd>
-      <dt><b>-DNEWCOMMANDS=\"<i>newcommands.h</i>\"</b> </dt>
+      <dt><b>-DINPUTOK</b> </dt>
+       <dd> To enhance mimeTeX's security, the
+           <a href="#input">\input{ }</a> command is disabled
+           by default when you compile mimeTeX.  Note that the
+           <a href="#counter">\counter</a> and
+           <a href="#environment">\environment</a> commands are
+           also disabled by default, and <b>-DINPUTOK</b> enables
+           all three commands simultaneously.  (Compile mimeTeX with
+           <b>-DCOUNTEROK</b> to enable only \counter, or with
+           <b>-DENVIRONOK</b> to enable only \environment.) <br>
+                 Compiling mimeTeX with the
+           <b>-DINPUTOK</b> switch enables \input{ } for all users,
+           subject only to your <b>-DPATHPREFIX</b> restrictions,
+           discussed below.  And the following two switches give you
+           additional control over \input{ }'s usage... </dd>
+      <dt> <b>-DINPUTPATH=\"<i>path</i>\"       <i>-or-</i><br>
+           -DINPUTPATH=\"<i>path1,path2,etc</i>\"</b> </dt>
+       <dd> Permits <b>\input{<i>filename</i>}</b> for specific
+           <i>filename</i>'s, even when the \input{ } command
+           is otherwise disabled (for security). <br>
+                 If INPUTPATH is defined, mimeTeX
+           performs a case-insensitive test of \input{ }'s
+           <i>filename</i> argument, to verify that it contains
+           the authorized 'path' as a substring. <br>
+                 If given several 'path's (second form)
+           then <i>filename</i> must contain either 'path1' or
+           'path2', or etc, as a (case-insensitive) substring. <br>
+                 If <i>filename</i> doesn't contain
+           a substring matching any of these path(s), then mimeTeX emits
+           an error message image instead of reading <i>filename</i>. </dd>
+      <dt> <b>-DINPUTREFERER=\"<i>domain</i>\"       <i>-or-</i><br>
+           -DINPUTREFERER=\"<i>domain1,domain2,etc</i>\"</b> </dt>
+       <dd> Permits <b>\input{ }</b> for users from specific
+           <i>domain</i>'s, even when the \input{ } command
+           is otherwise disabled (for security). <br>
+                 If INPUTREFERER is defined
+           but INPUTOK is not defined, then mimeTeX
+           performs a case-insensitive test of the user's
+           HTTP_REFERER environment variable, to verify that it contains
+           the authorized 'domain' as a substring. <br>
+                 If given several 'domain's (second form)
+           then HTTP_REFERER must contain either 'domain1' or
+           'domain2', or etc, as a (case-insensitive) substring. <br>
+                 If HTTP_REFERER doesn't contain
+           a substring matching any of these domain(s), then mimeTeX renders
+           an error message image instead of reading <i>filename</i>.  <br>
+                 Finally, if HTTP_REFERER is not found as
+           an environment variable, then mimeTeX renders the
+           same error message image. </dd>
+      <dt><b><a id="newcommands">-DNEWCOMMANDS=\"<i>newcommands.h</i>\"</a>
+      </b> </dt>
        <dd> LaTeX-like <b>\newcommand</b>'s are available in mimeTeX,
            via the following facility to help you define your
            own "new commands" during compilation.  Edit a file named
@@ -1633,6 +1975,21 @@
            <br>     To see many additional examples, search for the
            uppercase string NEWCOMMANDS in mimetex.c, and look below that.
            All the above examples are already there. </dd>
+      <dt> <b>-DNOREFMAXLEN=<i>n</i></b> </dt>
+       <dd> The environment variable HTTP_REFERER identifies the
+           domain a request originates from.  If HTTP_REFERER is not
+           defined, then NOREFMAXLEN is the maximum length query string
+           permitted from unidentified domains.  It defaults to 9999,
+           i.e., any query string is permitted, since
+           mail and various other legitimate programs often don't
+           supply an HTTP_REFERER.  See -DREFERER and -DREFLEVELS
+           below for further discussion, and also see -DNOREFSAFELEN
+           immediately below. </dd>
+      <dt> <b>-DNOREFSAFELEN=<i>n</i></b> </dt>
+       <dd> If you compile mimeTeX with either the -DREFERER or
+           -DREFLEVELS switch (discussed below), then the default
+           NOREFMAXLEN value 9999 is replaced by the (usually much
+           shorter) NOREFSAFELEN value whose default is 24. </dd>
       <dt> <b>-DOPAQUE</b> </dt>
        <dd> By default, mimeTeX renders gif images with black symbols
            on a transparent white background.  Defining OPAQUE renders
@@ -1679,21 +2036,52 @@
        <dd> Blocks mimeTeX requests from unauthorized domains that
            are using your mimetex.cgi (hence your server's resources)
            without permission. <br>
-                 If REFERER is defined, mimeTeX
+                 If compiled with -DREFERER, then mimeTeX
            performs a case-insensitive test of the environment variable
            HTTP_REFERER to verify that it contains the authorized 'domain'
-           as a substring. <br>
+           as a substring.  For example, if -DREFERER=\"\",<br>
                  If given several 'domain's (second form)
            then HTTP_REFERER must contain either 'domain1' or
            'domain2', or etc, as a (case-insensitive) substring. <br>
                  If HTTP_REFERER doesn't contain a substring
-           matching any of these domain(s), then mimeTeX emits an error
-           message image instead of the requested image.  You can manually
-           modify invalid_referer_msg, defined in function main(),
-           to personalize the error message for your own site. <br>
-                 Finally, if HTTP_REFERER is not found as
-           an environment variable, then mimeTeX correctly generates the
-           requested image instead of generating an error. </dd>
+           matching any of these domain(s), then mimeTeX emits the error
+           message image<br>
+           <img src="../cgi-bin/mimetex.cgi?\message{0}"
+           alt="" align="middle" border=0> <br>
+           instead of the requested image.  You can manually
+           modify this invalid_referer_msg, which is msgtable[0]
+           defined immediately above function main(),
+           to personalize the error message displayed for your own site. <br>
+                 Finally, if you specify <b>-DREFERER</b>
+           (or -DREFLEVELS discussed immediately below) but HTTP_REFERER
+           is not found as an environment variable, then
+           mimeTeX correctly generates images whose QUERY_STRING's
+           contain 24 or fewer characters.  For 25 or more
+           characters, mimeTeX generates an error.
+           See -DNOREFMAXLEN and -DNOREFSAFELEN above to change
+           the 24 limit. </dd>
+      <dt><b>-DREFLEVELS=<i>n</i></b>        <i>-or-</i><br>
+          <b>-DNOREFCHECK</b> </dt>
+       <dd> Besides <b>-DREFERER</b> discussed immediately above,
+           mimeTeX can block requests from HTTP_REFERER's that
+           don't match your HTTP_HOST, <i>i.e.</i>, from pages on
+           different servers than your mimetex.cgi image. <br>
+                 The default value of REFLEVELS is 3,
+           meaning the topmost three levels of HTTP_REFERER and
+           HTTP_HOST must match.  For example, phy.cam.ac.uk matches
+           math.cam.ac.uk because they share the same topmost three
+           levels cam.ac.uk.  So a page installed at the physics
+           department can use a mimetex.cgi installed at the math
+           department.  If you always want a complete match, compile
+           mimeTeX with <b>-DREFLEVELS=99</b> or any large number.
+           If HTTP_REFERER is not found, then the same 24
+           character limit discussed immediately above remains in effect. <br>
+                 To completely disable the REFLEVELS check,
+           compile mimeTeX with <b>-DNOREFCHECK</b> (or with
+           <b>-DREFLEVELS=0</b>).  Or, if you supply a specific
+           <b>-DREFERER</b> list of authorized domains, as discussed
+           immediately above, then the REFLEVELS check is automatically
+           disabled. </dd>
       <dt><b>-DSECURITY=<i>n</i></b> </dt>
        <dd> This is essentially a "paranoid" setting that defaults
            to a high value 999, which inhibits some optional logging
@@ -1739,6 +2127,84 @@
            background.  This option renders white symbols on
            a transparent black background instead (or on an opaque
            black background when combined with <b>-DOPAQUE</b> ). </dd>
+
+      <dt> <a name="adswitches"> </a> <font color="black" size="5">
+      <br> <b>Advertising switches</b><font size=5>...</font></font>
+      <br> </dt>
+       <dd style="margin-left:0em;"> The next three switches
+       set up a mimeTeX web service that embeds advertising messages
+       along with rendered images.
+       <!-- See <a href="#webservice">mimeTeX web service</a>
+       above for further discussion. --> <br> <br> </dd>
+
+      <dt> <a name="adfrequencyswitch"> </a>
+      <b>–DADFREQUENCY=0</b> </dt>
+       <dd> If ADFREQUENCY is defined as a positive number <b><i>n</i></b>,
+       then one request out of every <b><i>n</i></b> submitted to mimeTeX
+       is randomly selected to be displayed along with a pre-defined
+       "advertisement".  For example, if your expression is
+         <b>\large\int_0^xe^{-x^2}dx</b>,   then the default
+       advertisement displays <br>
+            
+       <a href="#preview"><img id="adswitch1" onclick="eqntext('adswitch1')"
+        src="../cgi-bin/mimetex.cgi?\large\advertisement
+        \int_0^xe^{-x^2}dx" alt="" align="middle" border=0></a>
+           instead of just    
+       <a href="#preview"><img id="adswitch2" onclick="eqntext('adswitch2')"
+        src="../cgi-bin/mimetex.cgi?\large
+        \int_0^xe^{-x^2}dx" alt="" align="middle" border=0></a> <br>
+       See the <b>–DADVERTISEMENT</b> switch <!-- immediately -->
+       below for instructions to define your own advertisement replacing
+       my default. </dd>
+
+      <dt> <a name="adhostswitch"> </a>
+      <b>–DHOST_SHOWAD=\"\\000\"</b> </dt>
+       <dd> Advertisement messages are usually displayed randomly,
+       in one request to mimeTeX out of every <b><i>n</i></b>,
+       as defined by the <b>–DADFREQUENCY</b> switch above.
+       But if a HOST_SHOWAD string is also defined,
+       then advertisements are only displayed when mimeTeX is running
+       on a host whose HTTP_HOST (or SERVER_NAME) environment variable
+       contains that string. For example,
+       <b>–DHOST_SHOWAD=\"mathsite\"</b> displays advertisements
+       on www.mathsite.com but never on www.mathhouse.com .
+       The default HOST_SHOWAD value is an empty string,
+       which displays advertisements on any host. </dd>
+
+      <dt> <a name="advertisementswitch"> </a>
+      <b>–DADVERTISEMENT=\"</b><i>filename</i><b>\"</b> </dt>
+       <dd> To define your own advertisement, replacing my default
+       illustrated immediately above, edit a file containing lines
+       of the form <br>
+	<nobr>      <b>"\\</b>begin{gather}{\\small\\text<b>"</b></nobr><br>
+        <nobr>        <b>"</b>{\\fbox{\\begin{gather}<b>"</b></nobr><br>
+	<nobr>        <b>"</b>mime\\TeX rendering courtesy of\\\\<b>"</b></nobr><br>
+	<nobr>        <b>"</b>http://www.forkosh.com/mimetex.html \\end{gather}}}\\\\<b>"</b></nobr><br>
+	<nobr>        <b>"</b> %%expression%%<b>"</b></nobr><br>
+        <nobr>      <b>"\\</b>end{gather}<b>"</b></nobr><br>
+       Every line in your file must be enclosed in <b>"</b>quotes<b>"</b>,
+       and all backslashes written as double-backslashes <b>\\</b>.
+       Note <b>\\\\</b> at the end of the third and fourth lines,
+       which LaTeX sees as <b>\\</b>.  The entire example shows how my
+       default advertisement is defined. <br>
+             Your advertisement may consist of any valid
+       mimeTeX commands you like. But it must somewhere contain the line <br>
+	<nobr>      <b>"</b> %%expression%% <b>"</b></nobr><br>
+       which is replaced by the user's expression. <br>
+             Once mimeTeX is compiled with your advertisement,
+       test it by submitting an expression like  
+       <b>\advertisement x^2+y^2</b>   containing the special
+       mimeTeX   \advertisement directive,   which forces that
+       expression to be rendered with your advertisement.  In this case
+       (and with my default advertisement message) we see <br>
+            
+       <a href="#preview"><img id="adswitch3" onclick="eqntext('adswitch3')"
+       src="../cgi-bin/mimetex.cgi?\advertisement x^2+y^2"
+       alt="" align="middle" border=0></a>     instead of
+       just    
+       <a href="#preview"><img id="adswitch4" onclick="eqntext('adswitch4')"
+       src="../cgi-bin/mimetex.cgi?x^2+y^2" alt="" border=0></a> <br>
+       regardless of your ADFREQUENCY value. </dd>
      </dl>
 
 
@@ -2052,12 +2518,23 @@
 
 <h3> <a name="characters">Character Sets<font size=5>...</font></a> </h3>
 
- <p> For complete information about the characters and math symbols
+ <p> The <a href="http://www.ctan.org/tex-archive/info/symbols/comprehensive/"
+     target="_top"> Comprehensive LaTeX Symbol List </a>
+     illustrates some 6,000 symbols supported by LaTeX. For complete
+     information about the subset of these characters and math symbols
      available in mimeTeX, you'll need to browse through the bottom
-     500-or-so lines of <b>mimetex.h</b>.  And several additional
+     1500-or-so lines of <b>mimetex.h</b>.  And several additional
      symbols like <b>\ldots</b> and <b>\AA</b> and <b>\hbar</b> are
      defined by the mimeTeX preprocessor, function <b>mimeprep( )</b>
-     in <b>mimetex.c</b>     Generally speaking, I've tried to
+     in <b>mimetex.c</b> <br>
+            
+     I haven't exhaustively checked all the name-number matchings for
+     the thousand-or-so symbols in mimetex.h.  You can eaily correct
+     any minor mistake you find in what I hope is an obvious manner.
+     The fonts <a href="#fonts">Appendix IVa</a> below provides
+     additional information. </p>
+
+ <p> Generally speaking, I've tried to
      encode the cmr10, cmmi10, cmmib10, cmsy10, cmex10, bbold10, rsfs10,
      stmary10 and wncyr10 families with "names", e.g., <b>\alpha \beta
      \forall \sqcup</b>, etc, identical to your LaTeX expectations.
@@ -2068,11 +2545,12 @@
      <b>{\cyr Khrushchev}</b> or <b>\cyr{Khrushchev}</b> to see
      <a href="#preview"><img id="cyrillic1" onclick="eqntext('cyrillic1')"
      src="../cgi-bin/mimetex.cgi?\large\cyr Khrushchev"
-     alt="" border=0 align=middle></a>.
+     alt="" border=0 align="middle"></a>.
      Most LaTeX distributions supply stmaryrd.dvi and stmaryrd.sty
      that both document the names of the stmary10 symbols.
      Similarly, amsfndoc.dvi documents the names of the wncyr10
      cyrillic symbols and ligatures. </p>
+
      <!-- But there are various additions and omissions and exceptions
      vis-a-vis LaTeX.  For example, </p>
       <ul>
@@ -2083,11 +2561,7 @@
              than their \xxx counterparts, and they automatically render
              super/subscripts in <a href="#modes">displaystyle</a>. </li>
       </ul> -->
- <p> I haven't exhaustively checked all the name-number matchings for
-     the hundreds of symbols in mimetex.h.  You can eaily correct
-     any minor mistake you find in what I hope is an obvious manner.
-     The fonts <a href="#fonts">Appendix IVa</a> below provides
-     additional information. </p>
+
 
  <p> In addition to extra LaTeX symbols like <b>\ldots</b>, <b>\AA</b>
      and <b>\hbar</b>, mentioned above, the mimeTeX preprocessor
@@ -2103,6 +2577,287 @@
      even more cumbersome form <b>\&quot;E</b> inside a query
      string. </p>
 
+ <p> Illustrated below are some of the character sets and math symbols
+     supported by mimeTeX, starting with several roman character fonts.
+     The blackboard bold font contains many characters besides
+       <b>a-z,A-Z</b>.   Calligraphic and script fonts contain
+     uppercase   <b>A-Z</b>   only. </p>
+
+    <center><a href="#preview"><img id="roman8" onclick="eqntext('roman8')"
+    src="../cgi-bin/mimetex.cgi?\large
+    \begin{array}{|c+57|c|c|c0|c|c|c|c|c| C25 C+15} \hline
+    \large \textrm{a-z} & \small \backslash\textrm{text} &
+    \small \backslash\textrm{mathbb} & &
+    \large \textrm{A-Z} & \small \backslash\textrm{text} &
+    \small \backslash\textrm{mathbb} & \small \backslash\textrm{mathcal} &
+    \small \backslash\textrm{mathscr} \\ \hline
+    a&\text{a}&\mathbb{a}& &A&\text{A}&\mathbb{A}&\mathcal{A}&\mathscr{A}\\
+    b&\text{b}&\mathbb{b}& &B&\text{B}&\mathbb{B}&\mathcal{B}&\mathscr{B}\\
+    c&\text{c}&\mathbb{c}& &C&\text{C}&\mathbb{C}&\mathcal{C}&\mathscr{C}\\
+    d&\text{d}&\mathbb{d}& &D&\text{D}&\mathbb{D}&\mathcal{D}&\mathscr{D}\\
+    e&\text{e}&\mathbb{e}& &E&\text{E}&\mathbb{E}&\mathcal{E}&\mathscr{E}\\
+    f&\text{f}&\mathbb{f}& &F&\text{F}&\mathbb{F}&\mathcal{F}&\mathscr{F}\\
+    g&\text{g}&\mathbb{g}& &G&\text{G}&\mathbb{G}&\mathcal{G}&\mathscr{G}\\
+    h&\text{h}&\mathbb{h}& &H&\text{H}&\mathbb{H}&\mathcal{H}&\mathscr{H}\\
+    i&\text{i}&\mathbb{i}& &I&\text{I}&\mathbb{I}&\mathcal{I}&\mathscr{I}\\
+    j&\text{j}&\mathbb{j}& &J&\text{J}&\mathbb{J}&\mathcal{J}&\mathscr{J}\\
+    k&\text{k}&\mathbb{k}& &K&\text{K}&\mathbb{K}&\mathcal{K}&\mathscr{K}\\
+    l&\text{l}&\mathbb{l}& &L&\text{L}&\mathbb{L}&\mathcal{L}&\mathscr{L}\\
+    m&\text{m}&\mathbb{m}& &M&\text{M}&\mathbb{M}&\mathcal{M}&\mathscr{M}\\
+    n&\text{n}&\mathbb{n}& &N&\text{N}&\mathbb{N}&\mathcal{N}&\mathscr{N}\\
+    o&\text{o}&\mathbb{o}& &O&\text{O}&\mathbb{O}&\mathcal{O}&\mathscr{O}\\
+    p&\text{p}&\mathbb{p}& &P&\text{P}&\mathbb{P}&\mathcal{P}&\mathscr{P}\\
+    q&\text{q}&\mathbb{q}& &Q&\text{Q}&\mathbb{Q}&\mathcal{Q}&\mathscr{Q}\\
+    r&\text{r}&\mathbb{r}& &R&\text{R}&\mathbb{R}&\mathcal{R}&\mathscr{R}\\
+    s&\text{s}&\mathbb{s}& &S&\text{S}&\mathbb{S}&\mathcal{S}&\mathscr{S}\\
+    t&\text{t}&\mathbb{t}& &T&\text{T}&\mathbb{T}&\mathcal{T}&\mathscr{T}\\
+    u&\text{u}&\mathbb{u}& &U&\text{U}&\mathbb{U}&\mathcal{U}&\mathscr{U}\\
+    v&\text{v}&\mathbb{v}& &V&\text{V}&\mathbb{V}&\mathcal{V}&\mathscr{V}\\
+    w&\text{w}&\mathbb{w}& &W&\text{W}&\mathbb{W}&\mathcal{W}&\mathscr{W}\\
+    x&\text{x}&\mathbb{x}& &X&\text{X}&\mathbb{X}&\mathcal{X}&\mathscr{X}\\
+    y&\text{y}&\mathbb{y}& &Y&\text{Y}&\mathbb{Y}&\mathcal{Y}&\mathscr{Y}\\
+    z&\text{z}&\mathbb{z}& &Z&\text{Z}&\mathbb{Z}&\mathcal{Z}&\mathscr{Z}\\
+    \hline \end{array}"
+    alt="" border=0 align="middle"></a></center>
+
+ <p> Characters from the Greek alphabet supported by mimeTeX,
+     along with   <b>\mathbb{ }</b>   versions, are
+     illustrated next.  For example,   <b>\mathbb{\lambda}</b>
+       renders  
+     <a href="#preview"><img id="bblambda" onclick="eqntext('bblambda')"
+     src="../cgi-bin/mimetex.cgi?\large\mathbb{\lambda}"
+     alt="" border=0 align="bottom"></a>. </p>
+
+    <center><a href="#preview"><img id="greek2" onclick="eqntext('greek2')"
+    src="../cgi-bin/mimetex.cgi?\large
+    \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
+    \hline \; \\
+    \hspace{10}\backslash\textrm{Gamma}      & \Gamma   & \mathbb{\Gamma}  &
+    \hspace{10}\backslash\textrm{Delta}      & \Delta   & \mathbb{\Delta}  &
+    \hspace{10}\backslash\textrm{Theta}      & \Theta   & \mathbb{\Theta}  \\
+    \hspace{10}\backslash\textrm{Lambda}     & \Lambda  & \mathbb{\Lambda} &
+    \hspace{10}\backslash\textrm{Xi}         & \Xi      & \mathbb{\Xi}     &
+    \hspace{10}\backslash\textrm{Pi}         & \Pi      & \mathbb{\Pi}     \\
+    \hspace{10}\backslash\textrm{Sigma}      & \Sigma   & \mathbb{\Sigma}  &
+    \hspace{10}\backslash\textrm{Upsilon}    & \Upsilon & \mathbb{\Upsilon}&
+    \hspace{10}\backslash\textrm{Phi}        & \Phi     & \mathbb{\Phi}    \\
+    \hspace{10}\backslash\textrm{Psi}        & \Psi     & \mathbb{\Psi}    &
+    \hspace{10}\backslash\textrm{Omega}      & \Omega   & \mathbb{\Omega}  \\
+    \; \\ \hline \; \\
+    \hspace{10}\backslash\textrm{alpha}      & \alpha   & \mathbb{\alpha}  &
+    \hspace{10}\backslash\textrm{beta}       & \beta    & \mathbb{\beta}   &
+    \hspace{10}\backslash\textrm{gamma}      & \gamma   & \mathbb{\gamma}  \\
+    \hspace{10}\backslash\textrm{delta}      & \delta   & \mathbb{\delta}  &
+    \hspace{10}\backslash\textrm{epsilon}    & \epsilon & \mathbb{\epsilon}&
+    \hspace{10}\backslash\textrm{zeta}       & \zeta    & \mathbb{\zeta}   \\
+    \hspace{10}\backslash\textrm{eta}        & \eta     & \mathbb{\eta}    &
+    \hspace{10}\backslash\textrm{theta}      & \theta   & \mathbb{\theta}  &
+    \hspace{10}\backslash\textrm{iota}       & \iota    & \mathbb{\iota}   \\
+    \hspace{10}\backslash\textrm{kappa}      & \kappa   & \mathbb{\kappa}  &
+    \hspace{10}\backslash\textrm{lambda}     & \lambda  & \mathbb{\lambda} &
+    \hspace{10}\backslash\textrm{mu}         & \mu      & \mathbb{\mu}     \\
+    \hspace{10}\backslash\textrm{nu}         & \nu      & \mathbb{\nu}     &
+    \hspace{10}\backslash\textrm{xi}         & \xi      & \mathbb{\xi}     &
+    \hspace{10}\backslash\textrm{pi}         & \pi      & \mathbb{\pi}     \\
+    \hspace{10}\backslash\textrm{rho}        & \rho     & \mathbb{\rho}    &
+    \hspace{10}\backslash\textrm{sigma}      & \sigma   & \mathbb{\sigma}  &
+    \hspace{10}\backslash\textrm{tau}        & \tau     & \mathbb{\tau}    \\
+    \hspace{10}\backslash\textrm{upsilon}    & \upsilon & \mathbb{\upsilon}&
+    \hspace{10}\backslash\textrm{phi}        & \phi     & \mathbb{\phi}    &
+    \hspace{10}\backslash\textrm{chi}        & \chi     & \mathbb{\chi}    \\
+    \hspace{10}\backslash\textrm{psi}        & \psi     & \mathbb{\psi}    &
+    \hspace{10}\backslash\textrm{omega}      & \omega   & \mathbb{\omega}  \\
+    \; \\ \hline \; \\
+    \hspace{10}\backslash\textrm{varepsilon} & \varepsilon & &
+    \hspace{10}\backslash\textrm{vartheta}   & \vartheta   & &
+    \hspace{10}\backslash\textrm{varpi}      & \varpi      & \\
+    \hspace{10}\backslash\textrm{varrho}     & \varrho     & &
+    \hspace{10}\backslash\textrm{varsigma}   & \varsigma   & &
+    \hspace{10}\backslash\textrm{varphi}     & \varphi     & \\
+    \; \\ \hline
+    \end{array}"
+    alt="" border=0 align="middle"></a></center>
+
+ <p> Finally, some of the math symbols supported by mimeTeX are illustrated
+     below. Operators shown in two sizes are automatically
+     "promoted" to the larger size in &nbsp <b>\displaystyle</b>
+       mode.  For example,  
+     <b>f(x)=\int_{-\infty}^x e^{-t^2}dt</b>   renders  
+     <a href="#preview"><img id="mathsy1" onclick="eqntext('mathsy1')"
+     src="../cgi-bin/mimetex.cgi?\textstyle f(x)=\int_{-\infty}^x e^{-t^2}dt"
+     alt="" border=0 align="middle"></a>
+       whereas  
+     <b>\displaystyle f(x)=\int_{-\infty}^x e^{-t^2}dt</b>
+       renders  
+     <a href="#preview"><img id="mathsy2" onclick="eqntext('mathsy2')"
+     src="../cgi-bin/mimetex.cgi?\displaystyle
+     f(x)=\int_{-\infty}^x e^{-t^2}dt" alt="" border=0 align="middle"></a>
+     </p>
+
+    <center><a href="#preview"><img id="mthtbl1" onclick="eqntext('mthtbl1')"
+    src="../cgi-bin/mimetex.cgi?\large\textstyle
+    \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
+    \hline \; \\
+    \hspace{10}\backslash\textrm{cdot}       & \cdot       &  &
+    \hspace{10}\backslash\textrm{times}      & \times      &  &
+    \hspace{10}\backslash\textrm{ast}        & \ast        &  \\
+    \hspace{10}\backslash\textrm{div}        & \div        &  &
+    \hspace{10}\backslash\textrm{diamond}    & \diamond    &  &
+    \hspace{10}\backslash\textrm{pm}         & \pm         &  \\
+    \hspace{10}\backslash\textrm{mp}         & \mp         &  &
+    \hspace{10}\backslash\textrm{oplus}      & \oplus      & \Bigoplus &
+    \hspace{10}\backslash\textrm{ominus}     & \ominus     &  \\
+    \hspace{10}\backslash\textrm{otimes}     & \otimes     & \Bigotimes &
+    \hspace{10}\backslash\textrm{oslash}     & \oslash     &  &
+    \hspace{10}\backslash\textrm{odot}       & \odot       & \Bigodot \\
+    \hspace{10}\backslash\textrm{bigcirc}    & \bigcirc    &  &
+    \hspace{10}\backslash\textrm{circ}       & \circ       &  &
+    \hspace{10}\backslash\textrm{bullet}     & \bullet     &  \\
+    \hspace{10}\backslash\textrm{asymp}      & \asymp      &  &
+    \hspace{10}\backslash\textrm{equiv}      & \equiv      &  &
+    \hspace{10}\backslash\textrm{subseteq}   & \subseteq   &  \\
+    \hspace{10}\backslash\textrm{supseteq}   & \supseteq   &  &
+    \hspace{10}\backslash\textrm{leq}        & \leq        &  &
+    \hspace{10}\backslash\textrm{geq}        & \geq        &  \\
+    \hspace{10}\backslash\textrm{preceq}     & \preceq     &  &
+    \hspace{10}\backslash\textrm{succeq}     & \succeq     &  &
+    \hspace{10}\backslash\textrm{sim}        & \sim        &  \\
+    \hspace{10}\backslash\textrm{approx}     & \approx     &  &
+    \hspace{10}\backslash\textrm{subset}     & \subset     &  &
+    \hspace{10}\backslash\textrm{supset}     & \supset     &  \\
+    \hspace{10}\backslash\textrm{ll}         & \ll         &  &
+    \hspace{10}\backslash\textrm{gg}         & \gg         &  &
+    \hspace{10}\backslash\textrm{prec}       & \prec       &  \\
+    \hspace{10}\backslash\textrm{succ}       & \succ       &  &
+    \hspace{10}\normalsize\backslash\textrm{leftarrow}  & \leftarrow  &  &
+    \hspace{10}\normalsize\backslash\textrm{rightarrow} & \rightarrow &  \\
+    \hspace{10}\normalsize\backslash\textrm{uparrow}    & \uparrow    &  &
+    \hspace{10}\normalsize\backslash\textrm{downarrow}  & \downarrow  &  &
+    \hspace{10}\normalsize\backslash\textrm{leftrightarrow}&&\leftrightarrow\\
+    \hspace{10}\backslash\textrm{nearrow}    & \nearrow    &  &
+    \hspace{10}\backslash\textrm{searrow}    & \searrow    &  &
+    \hspace{10}\backslash\textrm{simeq}      & \simeq      &  \\
+    \hspace{10}\normalsize\backslash\textrm{Leftarrow}  & \Leftarrow  &  &
+    \hspace{10}\normalsize\backslash\textrm{Rightarrow} & \Rightarrow &  &
+    \hspace{10}\normalsize\backslash\textrm{Uparrow}    & \Uparrow    &  \\
+    \hspace{10}\normalsize\backslash\textrm{Downarrow}  & \Downarrow  &  &
+    \hspace{10}\normalsize\backslash\textrm{Leftrightarrow}&&\Leftrightarrow&
+    \hspace{10}\backslash\textrm{nwarrow}    & \nwarrow    &  \\
+    \hspace{10}\backslash\textrm{swarrow}    & \swarrow    &  &
+    \hspace{10}\backslash\textrm{propto}     & \propto     &  &
+    \hspace{10}\backslash\textrm{prime}      & \prime      &  \\
+    \hspace{10}\backslash\textrm{infty}      & \infty      &  &
+    \hspace{10}\backslash\textrm{in}         & \in         &  &
+    \hspace{10}\backslash\textrm{ni}         & \ni         &  \\
+    \hspace{10}\backslash\textrm{triangle}   & \triangle   &  &
+    \hspace{10}\normalsize\backslash\textrm{bigtriangledown}&&\bigtriangledown&
+    \hspace{10}\backslash^\prime             & \'          &  \\
+    \hspace{10}\textrm{/}                    & /           &  &
+    \hspace{10}\backslash\textrm{forall}     & \forall     &  &
+    \hspace{10}\backslash\textrm{exists}     & \exists     &  \\
+    \hspace{10}\backslash\textrm{neg}        & \neg        &  &
+    \hspace{10}\backslash\textrm{emptyset}   & \emptyset   &  &
+    \hspace{10}\backslash\textrm{Re}         & \Re         &  \\
+    \hspace{10}\backslash\textrm{Im}         & \Im         &  &
+    \hspace{10}\backslash\textrm{top}        & \top        &  &
+    \hspace{10}\backslash\textrm{bot}        & \bot        &  \\
+    \hspace{10}\backslash\textrm{aleph}      & \aleph      &  &
+    \hspace{10}\normalsize\backslash\textrm{mathcal\lbrace A\rbrace}&\;\mathcal{A}&....&
+    ....       \normalsize\backslash\textrm{mathcal\lbrace Z\rbrace}&\;\mathcal{Z}&\\
+    \; \\ \hline
+    \end{array}"
+    alt="" border=0 align="middle"></a><br>
+    <a href="#preview"><img id="mthtbl2" onclick="eqntext('mthtbl2')"
+    src="../cgi-bin/mimetex.cgi?\large\textstyle
+    \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
+    \hline \; \\
+    \hspace{10}\backslash\textrm{cup}        & \cup        & \Bigcup &
+    \hspace{10}\backslash\textrm{cap}        & \cap        & \Bigcap &
+    \hspace{10}\backslash\textrm{uplus}      & \uplus      & \Biguplus \\
+    \hspace{10}\backslash\textrm{wedge}      & \wedge      & \Bigwedge &
+    \hspace{10}\backslash\textrm{vee}        & \vee        & \Bigvee &
+    \hspace{10}\backslash\textrm{vdash}      & \vdash      &  \\
+    \hspace{10}\backslash\textrm{dashv}      & \dashv      &  &
+    \hspace{10}\backslash\textrm{lfloor}     & \lfloor     &  &
+    \hspace{10}\backslash\textrm{rfloor}     & \rfloor     &  \\
+    \hspace{10}\backslash\textrm{lceil}      & \lceil      &  &
+    \hspace{10}\backslash\textrm{rceil}      & \rceil      &  &
+    \hspace{10}\backslash\textrm{lbrace}     & \lbrace     &  \\
+    \hspace{10}\backslash\textrm{rbrace}     & \rbrace     &  &
+    \hspace{10}\backslash\textrm{langle}     & \langle     &  &
+    \hspace{10}\backslash\textrm{rangle}     & \rangle     &  \\
+    \hspace{10}\backslash\textrm{mid}        & \mid        &  &
+    \hspace{10}\backslash\textrm{parallel}   & \parallel   &  &
+    \hspace{10}\normalsize\backslash\textrm{updownarrow}& & \updownarrow \\
+    \hspace{10}\normalsize\backslash\textrm{Updownarrow}& & \Updownarrow &
+    \hspace{10}\backslash\textrm{setminus}   & \setminus   &  &
+    \hspace{10}\backslash\textrm{wr}         & \wr         &  \\
+    \hspace{10}\backslash\textrm{surd}       & \raisebox{15}\surd &  &
+    \hspace{10}\backslash\textrm{amalg}      & \amalg      &  &
+    \hspace{10}\backslash\textrm{nabla}      & \nabla      &  \\
+    \hspace{10}\backslash\textrm{int}        & \int        & \Bigint &
+    \hspace{10}\backslash\textrm{sqcup}      & \sqcup      & \Bigsqcup &
+    \hspace{10}\backslash\textrm{sqcap}      & \sqcap      &  \\
+    \hspace{10}\normalsize\backslash\textrm{sqsubseteq} & \sqsubseteq &  &
+    \hspace{10}\normalsize\backslash\textrm{sqsupseteq} & \sqsupseteq &  &
+    \hspace{10}\backslash\textrm{S}          & \S          &  \\
+    \hspace{10}\backslash\textrm{dag}        & \dag        &  &
+    \hspace{10}\backslash\textrm{ddag}       & \ddag       &  &
+    \hspace{10}\backslash\textrm{P}          & \P          &  \\
+    \hspace{10}\backslash\textrm{clubsuit}   & \clubsuit   &  &
+    \hspace{10}\backslash\textrm{Diamond}    & \Diamond    &  &
+    \hspace{10}\backslash\textrm{Heart}      & \Heart      &  \\
+    \hspace{10}\backslash\textrm{spadesuit}  & \spadesuit  &  \\
+    \; \\ \hline
+    \end{array}"
+    alt="" border=0 align="middle"></a><br>
+    <a href="#preview"><img id="mthtbl3" onclick="eqntext('mthtbl3')"
+    src="../cgi-bin/mimetex.cgi?\large\textstyle
+    \begin{array}{|l98c28c28|l98c28c28|l98c28c28|}
+    \hline \; \\
+    \hspace{10}\backslash\textrm{oint}       & \oint       & \Bigoint &
+    \hspace{10}\backslash\textrm{sum}        & \sum        & \Bigsum &
+    \hspace{10}\backslash\textrm{prod}       & \prod       & \Bigprod \\
+    \hspace{10}\backslash\textrm{coprod}     & \coprod     & \Bigcoprod \\
+    \; \\ \hline \; \\
+    \hspace{10}\normalsize\backslash\textrm{leftharpoonup} &&\leftharpoonup&
+       \normalsize\backslash\textrm{leftharpoondown} &&\;\leftharpoondown&
+    \hspace{10}\normalsize\backslash\textrm{rightharpoonup}&&\rightharpoonup\\
+       \normalsize\backslash\textrm{rightharpoondown}&&\;\rightharpoondown&
+    \hspace{10}\normalsize\backslash\textrm{triangleright} &&\triangleright&
+    \hspace{10}\normalsize\backslash\textrm{triangleleft}  &&\triangleleft\\
+       \normalsize\backslash\textrm{rightleftharpoons}&&\;\rightleftharpoons&
+    \hspace{10}\backslash\textrm{star}       & \LARGE{\star} &  &
+    \hspace{10}\backslash\textrm{partial}    & \partial    &  \\
+    \hspace{10}\backslash\textrm{flat}       & \flat       &  &
+    \hspace{10}\backslash\textrm{natural}    & \natural    &  &
+    \hspace{10}\backslash\textrm{sharp}      & \sharp      &  \\
+    \hspace{10}\backslash\textrm{smile}      & \smile      &  &
+    \hspace{10}\backslash\textrm{frown}      & \frown      &  &
+    \hspace{10}\backslash\textrm{ell}        & \ell        &  \\
+    \hspace{10}\backslash\textrm{imath}      & \imath      &  &
+    \hspace{10}\backslash\textrm{jmath}      & \jmath      &  &
+    \hspace{10}\backslash\textrm{wp}         & \wp         &  \\
+    \; \\ \hline \; \\
+    \hspace{10}\backslash\textrm{ss}         & \ss         &  &
+    \hspace{10}\backslash\textrm{ae}         & \ae         &  &
+    \hspace{10}\backslash\textrm{oe}         & \oe         &  \\
+    \hspace{10}\backslash\textrm{AE}         & \AE         &  &
+    \hspace{10}\backslash\textrm{OE}         & \OE         &  \\
+    \; \\ \hline \; \\
+    \hspace{10}\backslash\textrm{AA}         & \AA         &  &
+    \hspace{10}\backslash\textrm{aa}         & \aa         &  &
+    \hspace{10}\backslash\textrm{hbar}       & \hbar       &  \\
+    \hspace{10}\backslash\textrm{ldots}      & \ldots      &  &
+    \hspace{10}\backslash\textrm{cdots}      & \cdots      &  &
+    \hspace{10}\backslash\textrm{vdots}      & \vdots      &  \\
+    \hspace{10}\backslash\textrm{ddots}      & \ddots      &  &
+    \hspace{10}\backslash\textrm{angle}      & \angle      &  &
+    \hspace{10}\backslash\textrm{iint}       & \iint       & \Bigiint \\
+    \; \\ \hline
+    \end{array}"
+    alt="" border=0 align="middle"></a></center>
+
 <h3> <a name="sizes">Font Sizes<font size=5>...</font></a> </h3>
 
  <p> MimeTeX currently has eight font sizes, numbered 0-7, with default 3.
@@ -2219,6 +2974,105 @@
      by the usual rules, one size smaller than the <b>"x"</b>,
      in font size 1. </p>
 
+ <p> Finally, illustrated below are some examples of fonts and symbols
+     at several mimeTeX sizes.  All symbols and sizes from cmr, cmmi,
+     cmmib (use <b>\mathbf{ }</b>), cmsy, cmex, bbold (use
+     <b>\mathbb{ }</b>), rsfs (use <b>\mathscr{ }</b>),
+     stmary and cyrillic wncyr (use <b>{\cyr  }</b> or
+     <b>\cyr{ }</b>) should be available, but they're not all shown.
+     <!-- And also not shown are various "constructed symbols" like \sqrt,
+     accents, etc. --> The illustrated font sizes are numbered 4=\Large,
+     3=\large and 2=\normalsize (not shown are 7=\Huge, 6=\huge,
+     5=\LARGE, 1=\small and 0=\tiny). </p>
+
+ <center> <table cellspacing="7">
+  <tr> <td align="left">
+<font size="4">cmmi latin uppercase, and lowercase</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$A&4$B&4$C&4$D,&4$a&4$b&4$c&4$d\\
+2$\rm~3:~&3$E&3$F&3$G&3$H&3$I&3$J&3$K&3$L,&3$e&3$f&3$g&3$h&3$i&3$j&3$k&3$l\\
+2$\rm~2:~&2$M&2$N&2$O&2$P&2$Q&2$R&2$S&2$T&2$U&2$V&2$W&2$X&2$Y&2$Z,&
+2$m&2$n&2$o&2$p&2$q&2$r&2$s&2$t&2$u&2$v&2$w&2$x&2$y&2$z}"
+alt="" border=0 align=middle>
+  </td> <tr>
+  <tr> <td align="left">
+<font size="4">calligraphic, and rsfs (<b>\cal{A}, \scr{B}, etc</b>)</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$\calA&4$\calB&4$\calC&4$\calD&4$\calE&4$\calF&4$\calG,&
+4$\scrA&4$\scrB&4$\scrC&4$\scrD&4$\scrE&4$\scrF&4$\scrG\\
+2$\rm~3:~&3$\calH&3$\calI&3$\calJ&3$\calK&3$\calL&3$\calM&3$\calN&3$\calO&
+3$\calP,&
+3$\scrH&3$\scrI&3$\scrJ&3$\scrK&3$\scrL&3$\scrM&3$\scrN&3$\scrO&3$\scrP\\
+2$\rm~2:~&2$\calQ&2$\calR&2$\calS&2$\calT&2$\calU&
+2$\calV&2$\calW&2$\calX&2$\calY&2$\calZ,&
+2$\scrQ&2$\scrR&2$\scrS&2$\scrT&2$\scrU&2$\scrV&2$\scrW&
+2$\scrX&2$\scrY&2$\scrZ}"
+alt="" border=0 align=middle>
+  </td> <tr>
+  <tr> <td align="left">
+<font size="4">cmmi greek uppercase, and \var lowercase</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$\Gamma&4$\Delta&4$\Theta&4$\Lambda&4$\Xi&4$\Pi&4$\Sigma&
+4$\Upsilon&4$\Phi&4$\Psi&4$\Omega,&4$\rm~~&4$\varepsilon&4$\vartheta&4$\varpi&
+4$\varrho&4$\varsigma&4$\varphi\\
+2$\rm~3:~&3$\Gamma&3$\Delta&3$\Theta&3$\Lambda&3$\Xi&3$\Pi&3$\Sigma&
+3$\Upsilon&3$\Phi&3$\Psi&3$\Omega,&~&3$\varepsilon&3$\vartheta&3$\varpi&
+3$\varrho&3$\varsigma&3$\varphi\\
+2$\rm~2:~&2$\Gamma&2$\Delta&2$\Theta&2$\Lambda&2$\Xi&2$\Pi&2$\Sigma&
+2$\Upsilon&2$\Phi&2$\Psi&2$\Omega,&~&2$\varepsilon&2$\vartheta&2$\varpi&
+2$\varrho&2$\varsigma&2$\varphi}"
+alt="" border=0 align=middle>
+  </td> <tr>
+  <tr> <td align="left">
+<font size="4">cmmi greek lowercase</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{r$
+2$\rm~size~4:~&4$\alpha&4$\beta&4$\gamma&4$\delta&4$\epsilon&4$\zeta&
+4$\eta&4$\theta&4$\iota&4$\kappa&4$\lambda&4$\mu&4$\nu&4$\xi&4$%%\omicron%%&
+4$\pi&4$\rho&4$\sigma&4$\tau&4$\upsilon&4$\phi&4$\chi&4$\psi&4$\omega\\
+2$\rm~3:~&3$\alpha&3$\beta&3$\gamma&3$\delta&3$\epsilon&3$\zeta&
+3$\eta&3$\theta&3$\iota&3$\kappa&3$\lambda&3$\mu&3$\nu&3$\xi&3$%%\omicron%%&
+3$\pi&3$\rho&3$\sigma&3$\tau&3$\upsilon&3$\phi&3$\chi&3$\psi&3$\omega\\
+2$\rm~2:~&2$\alpha&2$\beta&2$\gamma&2$\delta&2$\epsilon&2$\zeta&
+2$\eta&2$\theta&2$\iota&2$\kappa&2$\lambda&2$\mu&2$\nu&2$\xi&2$%%\omicron%%&
+2$\pi&2$\rho&2$\sigma&2$\tau&2$\upsilon&2$\phi&2$\chi&2$\psi&2$\omega}"
+alt="" border=0 align=middle>
+  </td> <tr>
+  <tr> <td align="left">
+<font size="4">cmsy symbols at mimeTeX font size 3</font><br>
+<font size="3">(operators shown large are automatically "promoted"<br>
+to the larger size in \displaystyle mode)</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{3,r$1$\rm~chars~\\
+1$\rm~0-15:~&-&\cdot&\times&\ast&\div&\diamond&\pm&\mp&
+\oplus&\ominus&\otimes&\oslash&\odot&\bigcirc&\circ&\bullet\\
+1$\rm~16-31:~&\asymp&\equiv&\subseteq&\supseteq&\leq&\geq&\preceq&\succeq&
+\sim&\approx&\subset&\supset&\ll&\gg&\prec&\succ\\
+1$\rm~32-47:~&\leftar&\rightar&\uparr&\downar&\leftrightar&\near&\sear&
+\simeq&\Leftar&\Rightar&\Upar&\Downar&\Leftrightar&\nwar&\swar&\propto\\
+1$\rm~48-63:~&\prime&\infty&\in&\ni&\triangle&\bigtriangledo&/&\'&
+\forall&\exists&\neg&\emptyset&\Re&\Im&\top&\bot\\
+1$\rm~64-100:~&\aleph&&\calA&4$.\,.\,.&\calZ&&\cup&\cap&
+\uplus&\wedge&\vee&\vdash&\dashv&\lfloor&\rfloor&\lceil\\
+1$\rm~101-116:~&\rceil&\lbrace&\rbrace&\langle&\rangle&\mid&\parallel&
+\updownar&\Updownar&\setminus&\wr&\surd&\amalg&\nabla&\int&\sqcup\\
+1$\rm~117-127:~&\sqcap&\sqsubseteq&\sqsupseteq&\S&\dag&\ddag&\P&\clubsuit&
+\Diamond&\Heart&\spadesuit}" alt="" border=0 align=middle>
+  </td> <tr>
+  <tr> <td align="left">
+<font size="4">a few other cmmi, cmr, stmary and wncyr symbols
+at mimeTeX font size 4</font>
+<br><img src="../cgi-bin/mimetex.cgi?\array{4,r$
+1$\rm~cmmi:~&\leftharpoonup&\leftharpoondo&\rightharpoonup&\rightharpoondo&
+\triangleright&\triangleleft&\star&\partial&
+\flat&\natural&\sharp&\smile&\frown&\ell&\imath&\jmath&\wp&\vec\\
+1$\rm~cmr:~&\ss&\ae&\oe&\AE&\OE \\
+1$\rm~stmary:~&\moo&\Lbag&\Rbag&\lightning&\llbracket&\rrbracket&
+\subsetpluseq&\supsetpluseq&\Yup&\Ydown\\
+1$\rm~wncyr:~&\cyr A&\cyr a&\cyr B&\cyr b&\cyr V&\cyr v&\cyr G&\cyr g&
+\cyr D&\cyr d&\cyr Dj&\cyr dj&\cyr\=E&\cyr\=e&\cyr Zh&\cyr zh}"
+alt="" border=0 align=middle>
+  </td> <tr>
+ </table> </center>
+
 <h3> <a name="modes">Modes<font size=5>...</font></a> </h3>
 
  <p> MimeTeX is always in a math-like mode, so you needn't surround
@@ -2736,7 +3590,7 @@
         <a href="#preview"><img id="raiserot2" onclick="eqntext('raiserot2')"
         src="../cgi-bin/mimetex.cgi?
         \large\rm abc\raiseb{-2}{\reflectb[2]{\LARGE?}}def"
-        alt="" border=0 align=middle></a> </center>
+        alt="" border=0 align="bottom"></a> </center>
 
 <h3> <a name="compose">\compose{ }{ }<font size=5>...</font></a></h3>
 
@@ -2744,20 +3598,63 @@
      <b>\compose[<i>offset</i>]{<i>base</i>}{<i>overlay</i>}</b>
      superimposes the <b><i>overlay</i></b> expression on top of the
      <b><i>base</i></b> expression, displaying the result.
-     Optionally, the overlay is horizontally <b><i>offset</i></b>
-     by the specified number of pixels (positive offsets to the right,
-     negative to the left). For example, </p> <center>
-        <b>\compose{\LARGE O}{\normalsize c}</b>   produces  
+     The superimposed <b><i>overlay</i></b> is centered, both
+     horizontally and vertically, on the <b><i>base</i></b> image,
+     with the composite image baseline
+     <!-- the same as the <b><i>base</i></b>. -->
+     completely ignored.
+     That means the <b><i>base</i></b> remains positioned in your expression
+     just as if it had been rendered alone, while the <b><i>overlay</i></b>
+     is moved around, vertically as well as horizontally, to accommodate it.
+     For example, </p> <center>
+        <b>\compose{\LARGE O}{\normalsize c}</b>   renders  
         <a href="#preview"><img id="compose1" onclick="eqntext('compose1')"
         src="../cgi-bin/mimetex.cgi?\compose{\LARGE O}{\normalsize c}"
-        alt="" border=0 align=middle></a> </center>
+        alt="" border=0 align="bottom"></a> </center>
+
+ <p> Optionally, the <b><i>overlay</i></b> is horizontally
+     <b><i>offset</i></b> by the specified number of pixels
+     (positive offsets to the right, negative to the left).
+     For example, </p> <center>
+        <b>\compose[-4]{\LARGE O}{\normalsize c}</b>   renders  
+        <a href="#preview"><img id="compose2" onclick="eqntext('compose2')"
+        src="../cgi-bin/mimetex.cgi?\compose[-4]{\LARGE O}{\normalsize c}"
+        alt="" border=0 align="bottom"></a> </center>
+
+ <p> Vertical offset can be obtained using a <b>\raisebox</b>
+     in either the <b><i>base</i></b> or <b><i>overlay</i></b>
+     expression, or in both. (Although, note that 
+     <b>\compose{\raisebox{10}{<i>base</i>}}{<i>overlay</i>}</b>
+     renders identically to
+     <b>\raisebox{10}{\compose{<i>base</i>}{<i>overlay</i>}}</b>,
+     so applying <b>\raisebox</b> to the <b><i>base</i></b>
+     expression is typically unnecessary.)
+     Vertical <b><i>overlay</i></b> offset is relative to the
+     centered image, as discussed immediately above,
+     i.e., <b>\compose{<i>base</i>}{\raisebox{0}{<i>overlay</i>}}</b>
+     has no effect at all, and the <b><i>overlay</i></b> image
+     remains centered on the <b><i>base</i></b>.
+     For example, </p> <center>
+        <b>abc\compose{\LARGE O}{\raisebox{5}{\normalsize c}}def</b>
+          renders  
+        <a href="#preview"><img id="compose3" onclick="eqntext('compose3')"
+        src="../cgi-bin/mimetex.cgi?
+        abc\compose{\LARGE O}{\raisebox{5}{\normalsize c}}def"
+        alt="" border=0 align="bottom"></a>, and <br>
+        <b>abc\compose{\raisebox{10}{\LARGE O}}{\raisebox{-20}{\normalsize c}}def</b>
+          renders  
+        <a href="#preview"><img id="compose3" onclick="eqntext('compose3')"
+        src="../cgi-bin/mimetex.cgi?abc
+        \compose{\raisebox{10}{\LARGE O}}{\raisebox{-20}{\normalsize c}}def"
+        alt="" border=0 align="bottom"></a></center>
 
  <p> Separately or in some judicious combination, <b>\compose</b> and
-     <b>\raisebox</b> and <b>\rotatebox</b> and <b>\reflectbox</b>
-     should help you construct special symbols not "natively" available
-     with mimeTeX's limited set of built-in font families.
-     This can be especially useful in conjunction with the
-     <b>-DNEWCOMMANDS</b> compile-time
+     <b>\raisebox</b> and <b>\rotatebox</b> and <b>\reflectbox</b>,
+     discussed above, perhaps along with <b>\rule</b> and <b>\eval</b>
+     discussed immediately below, may help you construct special symbols
+     not "natively" available with mimeTeX's limited set of built-in font
+     families. This can be especially useful in conjunction with the
+     <a href="#newcommands">–DNEWCOMMANDS</a> compile-time
      <a href="#options">option</a> discussed above. </p>
 
 <h3> <a name="rule">\rule{ }{ }<font size=5>...</font></a></h3>
@@ -2787,6 +3684,166 @@
         src="../cgi-bin/mimetex.cgi?\frac12xyz\rule[-15]{10}{20}ghi"
         alt="" border=0 align=middle></a> </center>
 
+<h3> <a name="evaluate">\eval{ }<font size=5>...</font></a> </h3>
+
+ <p class="continue"> mimeTeX can evaluate arithmetic expressions,
+     which is a feature intended primarily for use in
+     <a href="#newcommands">\newcommand's</a> discussed above.
+     Expressions can be built up from the following elements </p>
+     <ul>
+       <li> digits   <b>0</b>-<b>9</b>
+           and numbers composed of uninterrupted (no whitespace)
+         sequences of digits, </li>
+       <li> binary operators  
+         <b>+</b>, <b>-</b>, <b>*</b>, <b>/</b>, <b>%</b>
+           (<b>+</b> and <b>-</b> can be unary, preceding
+         the first number in an expression, and <b>%</b> is
+         the modulo operator), </li>
+       <li> balanced   <b>(</b> ... <b>)</b>
+           parentheses nested to any level (see below), </li>
+       <li> whitespace anywhere
+         (except between digits comprising a number), </li>
+       <li> One additional construction interpreted by <b>\eval{ }</b>
+         is similar to (but not identical to) the
+         <a href="http://wikipedia.org/wiki/Conditional_(programming)#As_a_ternary_operator"
+         target="_top">?: conditional</a>, as follows.
+         The expression <b>(i?v0:v1:v2:<i>etc</i>)</b>, usually
+         parenthesized as illustrated, evaluates to <b>v0</b>
+         if <b>i</b> evaluates to <b>0</b>, or evaluates to <b>v1</b>
+         if <b>i</b> evaluates to <b>1</b>, etc. If <b>i < 0</b>
+         then <b>v0</b> is used, and if <b>i</b> is too large, the last
+         <b>v</b> is used. All components, <b>i</b> and all <b>v</b>'s,
+         can themselves be expressions, even another
+         <b>(i?v0:v1:v2:<i>etc</i>)</b>, which in this case must be
+         parenthesized. The only situation where parentheses aren't
+         required is when <b>i?v0:v1:v2:<i>etc</i></b> comprises
+         your entire expression.
+         For example, <br> <nobr>     
+           <b>\eval{1+2?10:11:12:13:14:15}</b> renders
+          <a href="#preview"><img id="eval1" onclick="eqntext('eval1')"
+          src="../cgi-bin/mimetex.cgi?\large\eval{1+2?10:11:12:13:14:15}"
+          alt="" border=0 align=bottom></a></nobr></li>
+       <li> and <u> most importantly, </u>
+           the built-in variables<br>
+                 <b>fs</b> for current fontsize and<br>
+                 <b>unitlength</b> for unitlength<br>
+         which provide the capability for useful constructions,
+         as follows... </li>
+     </ul>
+
+ <p> All optional <b>[</b> <b>]</b> and mandatory
+     <b>{</b> <b>}</b> numeric arguments for  
+     <a href="#rule">\rule[lift]{width}{height}</a>,  
+     <a href="#compose">\compose[offset]{ }{ }</a>,  
+     <a href="#raiserotate">\raisebox{height}{ }</a>,  
+     <a href="#raiserotate">\rotatebox{angle}{ }</a>,   and  
+     <a href="#arrows">\longarrow[width]</a>  
+     can be expressions as described above, rather than just
+     numeric constants. By using the <b>fs</b> variable, you can
+     construct <a href="#newcommands">\newcommand</a>
+     expressions that properly scale with font size.
+     For example, the <b>\mapsto</b> symbol is not explicitly provided
+     in any mimeTeX font, but is instead constructed by the
+     embedded <a href="#newcommands">\newcommand</a><br>
+       <nobr>     <b>
+       { "\\mapsto", NULL, "{\\rule[fs/2]{1}{5+fs}\\hspace{-99}\\to}" },</b>
+       </nobr><br>
+     where \rule's [lift]=fs/2 and {height}=5+fs are scaled by
+     font size to render symbols<br>
+      
+      <a href="#preview"><img id="eval2" onclick="eqntext('eval2')"
+      src="../cgi-bin/mimetex.cgi?\small\text\begin{array}{rrl}
+      \backslash tiny & fs=\tiny\eval{fs} & \tiny\mapsto \\
+      \backslash small & fs=\small\eval{fs} & \small\mapsto \\
+      \backslash normalsize & fs=\normal\eval{fs} & \normal\mapsto\\
+      \backslash large & fs=\large\eval{fs} & \large\mapsto \\
+      etc. & &
+      \end{array}" alt="" border=0 align=middle></a><br>
+     whose rendering automatically varies appropriately with font size.
+     This kind of <a href="#newcommands">\newcommand</a> construction
+     is the primary use intended for mimeTeX's expression evaluation feature.
+     </p>
+
+ <p> But mimeTeX also provides the <b>\eval{<i>expression</i>}</b>
+     command to make the expression evaluation feature render
+     "visible" results. It's not particularly useful,
+     but an expression like   <b>1+2+3+4+5=\eval{1+2+3+4+5}</b>  
+     renders  
+      <a href="#preview"><img id="eval2" onclick="eqntext('eval2')"
+      src="../cgi-bin/mimetex.cgi?\small 1+2+3+4+5=\eval{1+2+3+4+5}"
+      alt="" border=0 align="bottom"></a>. </p>
+
+ <p> Finally, one little "gotcha" is mimeTeX's
+     order of evaluation when interpreting expressions.
+     Parentheses are respected as you'd expect. But within
+       <b>(</b>...<b>)</b>   parentheses, or in an
+     unparenthesized expression, mimeTeX finds the first (reading
+     from the left) operator, then iteratively evaluates the
+     separate subexpressions to that operator's left and to its right,
+     and then finally combines those two separate results.
+     So an expression like <b>2*3+4</b> renders <b>14</b>,
+     and you need to write <b>(2*3)+4</b> to get <b>10</b>.
+     </p>
+
+
+<h3> <a name="magstep"> \magstep{ }   and  
+     \magbox{ }{ }<font size=5>...</font></a> </h3>
+
+ <p class="continue">
+      <b>\magstep{<i>magnification</i>}</b>, placed anywhere
+     within an expression, magnifies the entire expression
+     by an integer factor <b>1<=<i>magnification</i><=10</b>
+     in both width and height.
+     Each single pixel thus becomes a square box, <i>e.g.</i>,
+     for <b><i>magnification</i>=2</b> each single pixel becomes
+     a four-pixel square box with dimensions <b>2</b>-by-<b>2</b>.
+     This compromises mimeTeX's anti-aliasing algorithm,
+     and the resulting image is both hazy/blurry and jagged/staircased
+     compared to an unmagnified image of the same expression.
+     For example, at <b>\LARGE</b> size,<br>
+      <nobr>     &nbsp       
+        <b>f(x)=x^2</b>  
+        renders  
+        <a href="#preview"><img id="magbox1" onclick="eqntext('magbox1')"
+        src="../cgi-bin/mimetex.cgi?\LARGE f(x)=x^2"
+        alt="" border=0 align="absmiddle"></a>   and </nobr><br>
+      <nobr>     &nbsp       
+        <b>\magstep{2} f(x)=x^2</b>  
+        renders  
+        <a href="#preview"><img id="magbox2" onclick="eqntext('magbox2')"
+        src="../cgi-bin/mimetex.cgi?\LARGE\magstep{2} f(x)=x^2"
+        alt="" border=0 align="absmiddle"></a> ,   whereas </nobr><br>
+      at mimeTeX's largest "native" font size, <br>
+      <nobr>     &nbsp       
+        <b>\Huge f(x)=x^2</b>  
+        renders  
+        <a href="#preview"><img id="magbox3" onclick="eqntext('magbox3')"
+        src="../cgi-bin/mimetex.cgi?\HUGE f(x)=x^2"
+        alt="" border=0 align="absmiddle"></a> . </nobr><br>
+     Nevertheless, if you still want to render images larger than
+     mimeTeX's <b>\Huge</b> size, then <b>\magstep{<i>magnification</i>}</b>
+     may render almost-acceptable results. </p>
+
+ <p> To magnify just part of an expression,
+     you can use <b>\magbox{<i>magnification</i>}{<i>expression</i>}</b>,
+     which only magnifies each pixel within the enclosed
+     <b>{<i>expression</i>}</b>, again
+     by an integer factor <b>1<=<i>magnification</i><=10</b>
+     in both width and height, and also adjusts the baseline accordingly.
+     But <b>\magbox</b> is applied directly to mimeTeX's black-and-white
+     bitmap <u><b><i> before anti-aliasing </i></b></u>.
+     At the present time, this virtually completely defeats
+     mimeTeX's anti-aliasing algorithm, and the resulting image
+     exhibits even more pronounced jagged-line/staircase effects.
+     For example, <br>
+      <nobr>     &nbsp       
+        <b>\LARGE f(x)={\magbox{2}{x}}^2</b>  
+        renders  
+        <a href="#preview"><img id="magbox5" onclick="eqntext('magbox5')"
+        src="../cgi-bin/mimetex.cgi?\LARGE f(x)={\magbox{2}{x}}^2"
+        alt="" border=0 align="absmiddle"></a>.<br>
+     </p>
+
 <h3> <a name="abbreviations">Abbreviations<font size=5>...</font></a> </h3>
 
  <p class="continue"> 
@@ -2933,6 +3990,9 @@
        <tr> <td align="left">   <b>\begin{matrix}</b>        </td>
             <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
             <td align="left">   <b>\end{matrix}</b>          </td> </tr>
+       <tr> <td align="left">   <b>\begin{tabular}</b>       </td>
+            <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
+            <td align="left">   <b>\end{tabular}</b>         </td> </tr>
        <tr> <td align="left">   <b>\begin{pmatrix}</b>       </td>
             <td align="center"> <b>a&b&c \\ d&e&f \\ etc</b> </td>
             <td align="left">   <b>\end{pmatrix}</b>         </td> </tr>
@@ -3340,6 +4400,14 @@
      In any case, if <b><i>filename</i></b> isn't found, then
      <b>\input</b> tries to read <b><i>filename</i>.tex</b> instead.</p>
 
+ <p> And for further security, <b>\input{ }</b> is disabled by default
+     unless mimeTeX is compiled with either the <b>-DINPUTOK</b> or
+     <b>-DINPUTPATH</b> or <b>-DINPUTREFERER</b>
+     <a href="#options">compile option</a> discussed above.
+     When it's disabled, the command  <b>\input{<i>filename</i>}</b>
+     renders the error message
+     <b>[\input{<i>filename</i>} not permitted]</b> . </p>
+
  <p> MimeTeX also supports the optional form
      <b>\input{<i>filename:tag</i>}</b>.  In this case,
      <b><i>filename</i></b> is read as before, but only those characters
@@ -3364,6 +4432,14 @@
      the <b>\counter</b> command, Unix "touch" and "chmod" those files
      so they're mimeTeX readable and writable. </p>
 
+ <p> Also as with <b>\input</b>, for security <b>\counter</b> is
+     disabled by default unless mimeTeX is compiled with either
+     the <b>-DINPUTOK</b> or the <b>-DCOUNTEROK</b>
+     <a href="#options">compile option</a>
+     (notice that <b>-DINPUTOK</b> also enables <b>\counter</b>).
+     If you've compiled mimeTeX with <b>\counter</b> enabled,
+     then it behaves as <nobr>follows...</nobr> </p>
+
  <p> If <b><i>counterfile</i></b> isn't readable and writable,
      then the <b>\counter</b> command always displays
      <b>1<sup><u>st</u></sup></b>.  Otherwise, it maintains a
@@ -3405,6 +4481,25 @@
      unless/until you "touch" and "chmod" counters.txt (and, optionally,
      counters.log) in your mimetex.cgi directory. </p>
 
+<h3> <a name="environment">\environment
+<font size=5>...</font></a> </h3>
+ <p> Submitting the expression   <b>\environment</b>  
+     to mimeTeX renders </p> <center>
+       <img id="environ1"
+       src="../cgi-bin/mimetex.cgi?\nocaching\environment"
+       align="middle" border=0> </center>
+ <p class="continue"> displaying the http environment variables
+     known to mimeTeX.  This is primarily a programming aid,
+     showing information available to mimeTeX that might facilitate
+     future enhancements. </p>
+
+ <p> As with <b>\input</b> and <b>\counter</b> above,
+     for security <b>\environment</b> is
+     disabled by default unless mimeTeX is compiled with either
+     the <b>-DINPUTOK</b> or the <b>-DENVIRONOK</b>
+     <a href="#options">compile option</a>
+     (notice that <b>-DINPUTOK</b> also enables <b>\environment</b>). </p>
+
 
 <h2> <a name="exceptions"> (IIIh) Other Exceptions
 to LaTeX Syntax   </a> </h2>
@@ -3421,6 +4516,98 @@
      e.g., you must write <b>\sqrt{\frac\alpha\beta}</b>, etc. </p>
 
 
+<h2> <a name="messages"> (IIIi) mimeTeX Errors
+and Messages   </a> </h2>
+
+<h3> mimeTeX Errors<font size=5>...</font> </h3>
+
+ <p> Any (La)TeX error is typically also a mimeTeX error.
+     However, mimeTeX has no command line interface or
+     <b>.</b>log file for reporting errors.  Its only
+     communication with you is through the mimeTeX image
+     rendered by your browser.  So error messages are embedded
+     in that image whenever feasible.  For example,
+     suppose you want to see
+      <a href="#preview"><img id="messages1" onclick="eqntext('messages1')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\alpha\beta\gamma\delta"
+      border=0 align=bottom></a>, but you mistakenly type
+        <b>\alpha\bethe\gamma\delta</b>   instead.
+     Then the image rendered is
+      <a href="#preview"><img id="messages2" onclick="eqntext('messages2')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\alpha\bethe\gamma\delta"
+      border=0 align=bottom></a>, indicating the unrecognized
+     <b>[\bethe?]</b> where you wanted to type   <b>\beta</b>  
+     and hoped to see
+      <a href="#preview"><img id="messages3" onclick="eqntext('messages3')"
+      src="../cgi-bin/mimetex.cgi?\normalsize\bf\beta"
+      border=0 align=bottom></a>.
+     If your expression contains some unprintable character
+     (meaning any character mimeTeX has no bitmap for),
+     then just  
+      <a href="#preview"><img id="messages4" onclick="eqntext('messages4')"
+      src="../cgi-bin/mimetex.cgi?\small\bf[?]"
+      border=0 align=bottom></a>   is displayed in the
+     corresponding position. </p>
+
+ <p> The preceding example illustrates a pretty trivial error.
+     Any non-trivial errors in your expression are likely to
+     go unrecognized and unreported by mimeTeX, and to render
+     unexpected images.  While checking your input expression
+     for syntax errors, keep in mind the following points
+     about mimeTeX's behavior: </p>
+     <ul>
+       <li> An unmatched left brace   <b>{</b>   is matched
+            by mimeTeX with a "phantom" right brace   <b>}</b>  
+            that's imagined to be at the end of your expression. </li>
+       <li> Likewise, an unmatched   <b>\left(</b>,  
+            or <b>\left\{</b>   or <b>\left\</b><i>anything</i>,  
+            is matched by mimeTeX with a "phantom"   <b>\right.</b>
+              at the end of your expression. </li>
+       <li> On the other hand, an unmatched right brace   <b>}</b>
+              is displayed in place, as if you had typed \rbrace. </li>
+       <li> But an unmatched   <b>\right\</b><i>anything</i>  
+            is interpreted as an abbreviation for <b>\</b>rightarrow
+            followed by <b>\</b><i>anything</i>.  For example,  
+            <b>\leff( abc \right) def</b>   renders  
+              <a href="#preview"><img id="messages5"
+              onclick="eqntext('messages5')"
+              src="../cgi-bin/mimetex.cgi?\small\leff(abc\right)def"
+              border=0 align=bottom></a>. </li>
+     </ul> <!-- p class="continue">
+     </p -->
+
+<h3> mimeTeX Messages<font size=5>...</font> </h3>
+
+<!--
+ <p> The special mimeTeX directive   <b>\version</b>  
+     displays the following information </p>
+     <center>
+       <a href="#preview"><img id="messages6" onclick="eqntext('messages6')"
+       src="../cgi-bin/mimetex.cgi?\version"
+       border=0 align=middle> </a> </center>
+-->
+ <p> The latest release of mimeTeX is version
+       <a href="#preview"><img id="messages11" onclick="eqntext('messages11')"
+       src="../cgi-bin/mimetex.cgi?\small\versionnumber"
+       alt="" border=0 align="bottom"></a>
+     which was last revised
+       <a href="#preview"><img id="messages12" onclick="eqntext('messages12')"
+       src="../cgi-bin/mimetex.cgi?\small\revisiondate"
+       alt="" border=0 align="bottom"></a>.
+     The special mimeTeX directive   <b>\version</b>  
+     displays that same information, </p>
+      <center>
+       <a href="#preview"><img id="messages13" onclick="eqntext('messages13')"
+       src="../cgi-bin/mimetex.cgi?\version"
+       alt="" border=0 align=middle></a> </center>
+ <p> To check that your own release of mimeTeX is current,
+     type a url into your browser's locator window something like <br>
+               
+     <b>http://www.<i>yourdomain</i>.com/cgi-bin/mimetex.cgi?\version</b> <br>
+     which will display the version and revision date of
+     mimeTeX installed on your server. </p>
+
+
 <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SECTION IV.  APPENDICES
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
@@ -3555,24 +4742,36 @@
 
 <p> One small problem with the above procedure is that the default
     gftype   program supplied with most TeX distributions
-  can't emit the long lines needed to display mimeTeX's larger font
-  sizes.  You'll need to compile your own version from source.
+  can't emit the long lines needed to display mimeTeX's larger font sizes.
+  <a href="http://www.forkosh.com/gftype.zip"
+  target="_top">gftype.zip</a> contains a statically linked linux
+  executable modified to emit the necessary long lines.
+  It may or may not run on your intel linux machine.
+  If not, you'll need to compile your own version from source.
   The following instructions are for Unix/Linux: <br>    
       First, download both 
-  <a href="http://www.ctan.org/tex-archive/systems/web2c/web-7.5.3.tar.gz"
+  <!-- http://www.ctan.org/tex-archive/systems/web2c/web-7.5.3.tar.gz -->
+  <a href="http://www.forkosh.com/web-7.5.3.tar.gz"
   target="_top">web-7.5.3.tar.gz</a> and
-  <a href="http://www.ctan.org/tex-archive/systems/web2c/web2c-7.5.3.tar.gz"
-  target="_top">web2c-7.5.3.tar.gz</a>,
-  or more recent versions.  Then   untar   them both,
+  <!-- http://www.ctan.org/tex-archive/systems/web2c/web2c-7.5.3.tar.gz -->
+  <a href="http://www.forkosh.com/web2c-7.5.3.tar.gz"
+  target="_top">web2c-7.5.3.tar.gz</a>
+  <!-- or more recent versions. --> (note: these files are no longer
+  explicitly archived by <a href="http://www.ctan.org/"
+  target="_top">ctan</a>, having been superceded
+  by <a href="http://www.ctan.org/tex-archive/systems/texlive"
+  target="_top">texlive</a> sources, so the preceding two links
+  point to copies kept on my site, www.forkosh.com).
+  Then   untar   both gzipped tar files,
     cd web2c-7.5.3/   and run   ./configure  
   and   make   in the usual way (make may fail before
   completion if you don't have all needed fonts installed,
   but it will create and compile gftype.c before failing).  Now edit
-    texk/web2c/gftype.c  and notice two lines very near the top
-  that   #define maxrow (79) &nbsp and similarly for maxcol.
-  Change both 79's to 1024, and then re-run make.  The new  
-  texk/web2c/gftype   executable image can emit the long
-  lines needed for mimeTeX's larger font sizes. </p>
+    texk/web2c/gftype.c  and notice three lines very near the top
+  that   #define maxrow (79) &nbsp and similarly for
+  maxcol and linelength. Change all three 79's to 1024, and
+  then re-run make. The new   texk/web2c/gftype   executable
+  image can emit the long lines needed for mimeTeX's larger font sizes. </p>
 
 <p> Finally, the Unix/Linux bash shell script
   <a href="http://www.forkosh.com/texfonts.sh"
@@ -3950,7 +5149,7 @@
 <hr size=4>
 <table> <tr>
  <td> <font size=3 color="maroon"> <b>
-  <nobr>Copyright <font size=5>©</font> 2002-2008,
+  <nobr>Copyright <font size=5>©</font> 2002-2012,
   <a href="http://www.forkosh.com">John Forkosh Associates, Inc.</a>
   </nobr><br>
   email: <a href="mailto:john@forkosh.com">john@forkosh.com</a>
Index: loncom/cgi/mimeTeX/texfonts.h
diff -u loncom/cgi/mimeTeX/texfonts.h:1.4 loncom/cgi/mimeTeX/texfonts.h:1.5
--- loncom/cgi/mimeTeX/texfonts.h:1.4	Thu Dec  4 12:17:13 2008
+++ loncom/cgi/mimeTeX/texfonts.h	Sat Jun  9 00:58:11 2012
@@ -2,7 +2,7 @@
 #define _TEXFONTS
 /****************************************************************************
  *
- * Copyright(c) 2002-2008, John Forkosh Associates, Inc. All rights reserved.
+ * Copyright(c) 2002-2012, John Forkosh Associates, Inc. All rights reserved.
  *           http://www.forkosh.com   mailto: john at forkosh.com
  * --------------------------------------------------------------------------
  * This file is part of mimeTeX, which is free software. You may redistribute
@@ -63,12 +63,13 @@
  * 07/12/03	J.Forkosh	Entirely new set of fonts generated.
  * 10/21/05	J.Forkosh	Compressed fonts generated
  * 09/06/08	J.Forkosh	mimeTeX version 1.70 released.
+ * 03/08/12	J.Forkosh	mimeTeX version 1.74, sizes 8-10 added.
  *
  ***************************************************************************/
 
 
 /* ------------------------------------------------------------------------
-font sizes 0-7 for cmr10
+font sizes 0-10 for cmr10
 ------------------------------------------------------------------------ */
 
 /* --- size=0 for .83gf ---
@@ -5982,8 +5983,3780 @@
    } ;
 
 
+/* --- size=8 for .325gf ---
+ * mf '\mode=preview; mag=magstep(-11.40956951729850636869); input cmr10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmr325 --- */
+static	chardef  cmr325[] =
+   {
+      /* --- pixel bitmap for cmr325 char#0 \Gamma --- */
+      {   0,57877,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 25,   31, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x0a\x64\xb4\x10\xf1\x54\xd2\x10\x54\xe1\x64\xe2"
+            "\xf3\x54\xe0\x11\xfe\x54\xe0\x20\xf3\x54\xe0\x20\x55"
+            "\xe0\x1e\x01\xa2" }  },
+      /* --- pixel bitmap for cmr325 char#1 \Delta --- */
+      {   1,58824,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   32, 3,180, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x21\xe0\x20\xf1\xe0\x13\xe0\x10\xf1\xe5\xe0\xd1"
+            "\x15\xe0\xc1\x24\xe0\xb1\x35\xe0\xa1\x44\xe0\x91\x55"
+            "\xe0\x81\x64\xe0\x71\x75\xe0\x61\x84\xe0\x51\x95\xe0"
+            "\x41\xa4\xe0\x31\xb5\xe0\x21\xc4\xe0\x11\xd5\xe1\xe4"
+            "\xd1\xe0\x15\xc1\xe0\x24\xb1\xe0\x35\xa1\xe0\x44\x91"
+            "\xe0\x55\x81\xe0\x64\x71\xe0\x75\x61\xe0\x84\x51\xe0"
+            "\x95\x41\xe0\xa4\x20\xf1\x1e\x0e\x03\x1e\x0e\x05" }  },
+      /* --- pixel bitmap for cmr325 char#2 \Theta --- */
+      {   2,60017,                      /* character number, location */
+         32, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   33, 3,165, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\x54\x54\xe0\x13\x93\xd3\xb3\xb3\xd3\x93\xe0"
+            "\x13\x74\xe0\x14\x30\xf1\x24\xe0\x34\x20\xf1\x15\xe0"
+            "\x35\x10\x14\xe0\x54\x15\xe0\x55\x0f\x15\x41\x91\x45"
+            "\x0f\x25\x4b\x45\x0f\x15\x41\x91\x45\x05\xe0\x55\x14"
+            "\xe0\x54\x10\xf1\x15\xe0\x35\x10\xf1\x24\xe0\x34\x20"
+            "\x34\xe0\x14\x73\xe0\x13\x93\xd3\xb3\xb3\xd3\x93\xe0"
+            "\x14\x54\xe0\x57\xb0" }  },
+      /* --- pixel bitmap for cmr325 char#3 \Lambda --- */
+      {   3,61121,                      /* character number, location */
+         32, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   32, 3,130, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe1\xe0\xf2\xd3\xd0\xf2\xc5\xc0\xb7\xb0\xf1\xb1\x24"
+            "\xb0\xa2\x25\xa0\xf1\xa1\x44\xa0\x92\x45\x90\xf1\x91"
+            "\x64\x90\x82\x65\x80\xf1\x81\x84\x80\x72\x85\x70\xf1"
+            "\x71\xa4\x70\x62\xa5\x60\xf1\x61\xc4\x60\x52\xc5\x50"
+            "\xf1\x51\xe4\x50\x42\xe4\x92\xe0\x14\x74\xd5\x49\x8c" }  },
+      /* --- pixel bitmap for cmr325 char#4 \Xi --- */
+      {   4,62554,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 26,   31, 3,66, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0c\x0f\x31\xe0\xa1\xf3\xe0\xc0\xf1\x41\xe0"
+            "\x21\x40\xf2\x4e\x04\x40\xf1\x41\xe0\x21\x40\xf5\xe0"
+            "\xcf\x31\xe0\xa1\x0f\x2e\x0c" }  },
+      /* --- pixel bitmap for cmr325 char#5 \Pi --- */
+      {   5,63781,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,24, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\x04\xfe\x54\xe4\x50\xfd\x54\xe4\x5e\x4e" }  },
+      /* --- pixel bitmap for cmr325 char#6 \Sigma --- */
+      {   6,64972,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   31, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0d\x24\xe0\x26\x25\xe0\x43\x35\xe0\x42\x44\xe0"
+            "\x51\x45\xe0\x42\x45\xe0\x32\x54\xe0\x41\x55\xe0\x31"
+            "\x64\xe0\x31\x74\xe0\xa5\xe0\xa4\xe0\xb4\xe0\xa5\xe0"
+            "\xa4\xe0\xb3\xe0\xb2\xe0\xc1\xe0\xc1\xe0\xc1\xe0\x31"
+            "\x81\xe0\x41\x71\xe0\x51\x61\xe0\x52\x51\xe0\x62\x41"
+            "\xe0\x71\x51\xe0\x62\x41\xe0\x63\x31\xe0\x46\x2e\x0c"
+            "\x1e\x0d\x10" }  },
+      /* --- pixel bitmap for cmr325 char#7 \Upsilon --- */
+      {   7,66120,                      /* character number, location */
+         32, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   32, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x35\xd5\x58\x98\x3a\x7a\x2b\x5b\x13\x55\x44\x55\x83"
+            "\x34\x73\xa3\x23\x92\xa3\x22\xa1\xc2\x13\xe0\x96\xe0"
+            "\x95\xc0\xfe\xd4\xc0\xf3\xd4\xc0\xc6\xe0\x4e\x02\x60" }  },
+      /* --- pixel bitmap for cmr325 char#8 \Phi --- */
+      {   8,67208,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   31, 3,121, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x6e\x02\xe0\x36\xb0\xf3\xc4\xc0\x9a\xe0\x14\x24\x24"
+            "\xb3\x44\x43\x84\x54\x54\x54\x64\x64\x35\x64\x65\x24"
+            "\x74\x74\x1f\x45\x74\x75\x14\x74\x74\x25\x64\x65\x34"
+            "\x64\x64\x54\x54\x54\x83\x44\x43\xb4\x24\x24\xe0\x1a"
+            "\x90\xf3\xc4\xc0\xb6\xe0\x3e\x02\x62" }  },
+      /* --- pixel bitmap for cmr325 char#9 \Psi --- */
+      {   9,68401,                      /* character number, location */
+         31, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   31, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x02\xe0\x46\xb0\xf2\xd4\xc5\x84\x75\xf1\x24\x74"
+            "\x64\x20\xf8\x34\x64\x54\x30\x44\x54\x53\x84\x54\x44"
+            "\x93\x54\x43\xa4\x44\x34\xb3\x44\x33\xd3\x34\x23\xe0"
+            "\x23\x18\xe0\x58\xa0\xf3\xd4\xc0\xc6\xe0\x4e\x02\x6a" }  },
+      /* --- pixel bitmap for cmr325 char#10 \Omega --- */
+      {  10,69638,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   32, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa8\xe0\x34\x64\xc4\xa4\x94\xc4\x74\xe4\x54\xe0\x24"
+            "\x20\xf1\x15\xe0\x25\x1f\x55\xe0\x45\x14\xe0\x44\x10"
+            "\xf1\x15\xe0\x25\x10\xf1\x24\xe0\x24\x20\x34\xe4\x73"
+            "\xe3\x40\xf1\x53\xc3\x50\x62\xc2\xd2\xa2\x71\x62\xa2"
+            "\x62\x71\xa1\x72\x72\x82\x71\x11\x71\x81\x71\x10\xf2"
+            "\x19\x89\x11" }  },
+      /* --- pixel bitmap for cmr325 char#11 \ff --- */
+      {  11,118093,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 29,   31, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb6\x55\xa4\x52\x13\x32\x83\x74\x44\x63\x75\x44\x62"
+            "\x84\x62\x10\xf6\x53\x93\x9e\x0b\x40\xfe\x53\x93\x90"
+            "\xf1\x53\x93\x90\x29\x3a\x52" }  },
+      /* --- pixel bitmap for cmr325 char#12 \fi --- */
+      {  12,119337,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 24,   31, 3,58, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb6\xe0\x14\x51\xd3\x72\xb3\x74\xa2\x84\x93\x84\x40"
+            "\xf5\x53\xe0\x2e\x06\x40\xfe\x53\x93\x40\xf1\x53\x93"
+            "\x40\x29\x3a" }  },
+      /* --- pixel bitmap for cmr325 char#13 \fl --- */
+      {  13,120557,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 24,   31, 3,52, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb9\xc4\x53\xb3\x64\xa3\x74\xa2\x93\x40\xf6\x53\x93"
+            "\x4e\x06\x40\xfe\x53\x93\x40\xf1\x53\x93\x40\x29\x3a" }  },
+      /* --- pixel bitmap for cmr325 char#14 \ffi --- */
+      {  14,122234,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 35,   31, 3,80, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb6\x66\xe4\x51\x24\x51\xc3\x75\x72\xa3\x75\x74\x92"
+            "\x84\x84\x83\x84\x84\x30\xf5\x53\x93\xe0\x1e\x0e\x04"
+            "\x30\xfe\x53\x93\x93\x30\xf1\x53\x93\x93\x30\x29\x39"
+            "\x39" }  },
+      /* --- pixel bitmap for cmr325 char#15 \ffl --- */
+      {  15,123961,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 35,   31, 3,74, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb6\x69\xb4\x52\x14\x53\xa3\x75\x64\x93\x75\x74\x92"
+            "\x84\x93\x30\xf6\x53\x93\x93\x3e\x0e\x04\x30\xfe\x53"
+            "\x93\x93\x30\xf1\x53\x93\x93\x30\x29\x39\x39" }  },
+      /* --- pixel bitmap for cmr325 char#16 \imath --- */
+      {  16,84431,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          {  9,   19, 3,16, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x30\xfe\x33\x30\xf1\x33\x39" }  },
+      /* --- pixel bitmap for cmr325 char#17 \jmath --- */
+      {  17,85147,                      /* character number, location */
+         19,-3,   -9,-3,      /* topleft row,col, and botleft row,col */
+          { 12,   28, 3,29, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x57\x84\xfe\x93\xf5\x93\x12\x67\x52\x14\x42\x32\x42"
+            "\x56\x40" }  },
+      /* --- pixel bitmap for cmr325 char#18 \gravesym --- */
+      {  18,109160,                     /* character number, location */
+         31, 5,   23, 5,      /* topleft row,col, and botleft row,col */
+          {  8,    8, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x07\x07\x0f\x1c\x38\x30\x60\xc0" }  },
+      /* --- pixel bitmap for cmr325 char#19 \acutesym --- */
+      {  19,109739,                     /* character number, location */
+         31, 9,   23, 9,      /* topleft row,col, and botleft row,col */
+          {  8,    8, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\xf0\x38\x1c\x0c\x06\x03" }  },
+      /* --- pixel bitmap for cmr325 char#20 \checksym --- */
+      {  20,110374,                     /* character number, location */
+         28, 5,   23, 5,      /* topleft row,col, and botleft row,col */
+          { 12,    5, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x03\xec\x70\xf8\x01\x0f\x60\x00" }  },
+      /* --- pixel bitmap for cmr325 char#21 \brevesym --- */
+      {  21,110998,                     /* character number, location */
+         31, 4,   23, 4,      /* topleft row,col, and botleft row,col */
+          { 14,    8, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\x60\x00\x38\x00\x0b\x40\x06\x18\x87\x83\x7f\x80"
+            "\x07" }  },
+      /* --- pixel bitmap for cmr325 char#22 (noname) --- */
+      {  22,111596,                     /* character number, location */
+         27, 3,   26, 3,      /* topleft row,col, and botleft row,col */
+          { 16,    1, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\xff" }  },
+      /* --- pixel bitmap for cmr325 char#23 (noname) --- */
+      {  23,112413,                     /* character number, location */
+         32,13,   24,13,      /* topleft row,col, and botleft row,col */
+          {  8,    8, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x3c\x42\x81\x81\x81\x81\x42\x3c" }  },
+      /* --- pixel bitmap for cmr325 char#24 (noname) --- */
+      {  24,113121,                     /* character number, location */
+         -1, 6,  -10, 6,      /* topleft row,col, and botleft row,col */
+          { 10,    9, 3,17, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x43\x74\x83\x10\xf3\x73\x18\x11\x94" }  },
+      /* --- pixel bitmap for cmr325 char#25 \ss --- */
+      {  25,86264,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   31, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x76\xc2\x43\x92\x63\x72\x83\x20\xf3\x33\x84\x10\x33"
+            "\x83\x53\x74\x53\x73\x63\x53\x56\x24\xa3\x53\x83\x63"
+            "\x73\x73\x30\xf1\x33\x83\x20\x33\x84\x43\x93\x10\xf5"
+            "\x33\x94\x33\x93\x43\x23\x34\x43\x23\x33\x53\x23\x23"
+            "\x36\x35\x53" }  },
+      /* --- pixel bitmap for cmr325 char#26 \ae --- */
+      {  26,87675,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 29,   19, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x38\x85\x72\x63\x42\x52\x44\x73\x12\x72\x34\x84\x83"
+            "\x32\x94\x92\x10\xf2\xd3\xa3\x8e\x07\x45\x43\xe0\x24"
+            "\x63\xe0\x13\x83\xe4\x83\xd4\x94\xc4\x94\xb5\x95\xa1"
+            "\x13\x82\x22\x91\x33\x53\x43\x52\x67\x86\x43" }  },
+      /* --- pixel bitmap for cmr325 char#27 \oe --- */
+      {  27,88847,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 33,   19, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x76\x96\xa2\x53\x53\x43\x63\x82\x32\x82\x43\xa2\x12"
+            "\x93\x33\xa5\x93\x23\xc4\xa3\x13\xc3\xb7\xc3\xb7\xce"
+            "\x03\x0f\x24\xc3\xe0\x13\xc3\xe0\x13\xb5\xe0\x13\xa5"
+            "\xc1\x23\x93\x13\xb1\x33\x82\x33\x91\x63\x43\x62\x62"
+            "\x96\xa6\x43" }  },
+      /* --- pixel bitmap for cmr325 char#28 (noname) --- */
+      {  28,89723,                      /* character number, location */
+         24, 2,   -4, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   28, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x00\x01\x00\x02\x00\x08\x00\x10\x00\x40\x00\xbf"
+            "\x00\x87\x03\x06\x1c\x0c\xd8\x38\x20\x67\x40\xd8\x01"
+            "\xe1\x07\x82\x1f\x08\x7e\x10\xf8\x41\xe0\x87\x80\x1f"
+            "\x02\x6e\x04\x98\x1b\x70\x2c\xc0\xe0\x80\x01\x87\x03"
+            "\xf2\x03\x08\x00\x10\x00\x40\x00\x80\x00\x00" }  },
+      /* --- pixel bitmap for cmr325 char#29 \AE --- */
+      {  29,91607,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 39,   31, 3,219, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xbe\x0c\xe0\x31\x15\xb4\xe0\x31\x24\xd2\xe0\x21\x34"
+            "\xd2\xe0\x21\x34\xe1\xe0\x11\x44\xe2\x10\xf1\xd1\x44"
+            "\xe0\x11\x10\xf1\xc1\x54\xe0\x11\x10\xc1\x54\xe0\x30"
+            "\xf1\xb1\x64\x81\x80\xa2\x64\x81\xe0\x41\x74\x81\xe0"
+            "\x41\x74\x72\xe0\x3e\x08\xe0\x31\x84\x72\xe0\x31\x84"
+            "\x81\xe0\x21\x94\x81\xe0\x21\x94\x81\x71\x72\x94\x81"
+            "\x71\x71\xa4\xe0\x21\x71\xa4\xe0\x11\x10\xf1\x61\xb4"
+            "\xe0\x11\x10\x61\xb4\xe2\x61\xc4\xe2\x62\xb4\xd2\x55"
+            "\xa4\xb4\x2a\x5e\x08\x21" }  },
+      /* --- pixel bitmap for cmr325 char#30 \OE --- */
+      {  30,93439,                      /* character number, location */
+         32, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 41,   33, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\xe0\x34\x5e\x08\x93\x85\xc4\x83\xa4\xe2\x73"
+            "\xb4\xe2\x64\xb4\xe0\x11\x54\xc4\xe0\x12\x35\xc4\xe0"
+            "\x21\x34\xd4\xe0\x21\x25\xd4\xe0\x21\x25\xd4\xa1\x51"
+            "\x24\xe0\x13\xa1\x75\xe0\x13\xa1\x75\xe0\x13\x92\x75"
+            "\xe0\x13\x83\x75\xe0\x1e\x75\xe0\x13\x83\x75\xe0\x13"
+            "\x92\x7f\x25\xe0\x13\xa1\x70\x15\xe3\xe0\x31\xf1\x15"
+            "\xd4\xe0\x31\x24\xd4\xe0\x21\x35\xc4\xe0\x21\x44\xc4"
+            "\xe0\x21\x54\xb4\xe0\x12\x64\xa4\xe0\x12\x73\xa4\xe2"
+            "\x93\x85\xc4\xa4\x5e\x08\xd7\xe0\x90" }  },
+      /* --- pixel bitmap for cmr325 char#31 (noname) --- */
+      {  31,94521,                      /* character number, location */
+         33, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   35, 3,187, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xb1\xe7\x62\xb4\x54\x31\xb3\x93\x11\xb2\xd3\xa2"
+            "\xe0\x12\x93\xe4\x73\xe2\x13\x53\xe0\x11\x33\x43\xe1"
+            "\x43\x34\xe1\x44\x24\xd1\x54\x23\xd1\x73\x14\xd1\x78"
+            "\xc1\x84\x0f\x14\xb1\x94\x04\xa1\xa4\x0f\x14\x91\xb4"
+            "\x04\x81\xc8\x71\xd4\x13\x71\xd3\x24\x51\xd4\x24\x41"
+            "\xe4\x33\x41\xe3\x43\x31\xe0\x13\x53\x12\xe3\x74\xe3"
+            "\x92\xe0\x12\xa3\xd2\xb1\x13\x93\xb1\x34\x54\xb2\x67"
+            "\xe1\xe0\xb4" }  },
+      /* --- pixel bitmap for cmr325 char#32 (noname) --- */
+      {  32,113629,                     /* character number, location */
+         17, 1,   13, 1,      /* topleft row,col, and botleft row,col */
+          { 10,    4, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x83\x83\xc1\x01" }  },
+      /* --- pixel bitmap for cmr325 char#33 ! --- */
+      {  33,95280,                      /* character number, location */
+         32, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   32, 3,31, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x13\x1f\x55\xf9\x13\x10\xf4\x21\x20\xf4\x50\x13\x1f"
+            "\x25\x13\x13" }  },
+      /* --- pixel bitmap for cmr325 char#34 " --- */
+      {  34,125008,                     /* character number, location */
+         31, 1,   17, 1,      /* topleft row,col, and botleft row,col */
+          { 15,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x9c\x0f\xdf\x8f\xff\xc7\xef\xc2\x05\x01\x82\x00"
+            "\x41\x80\x10\x20\x08\x10\x02\x04\x01\x42\x80\x10\x20"
+            "\x00" }  },
+      /* --- pixel bitmap for cmr325 char#35 # --- */
+      {  35,96798,                      /* character number, location */
+         31, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   40, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x12\x92\x50\xe3\x83\x50\xf2\xe2\x92\x60\xd3"
+            "\x83\x60\xf3\xd2\x92\x70\xc3\x83\xe0\x52\x92\x8f\x1e"
+            "\x0e\x05\xb2\x92\xe0\x53\x83\x90\xf3\xa2\x92\xa0\x93"
+            "\x83\xe0\x52\x92\xbf\x1e\x0e\x05\x82\x92\xe0\x53\x83"
+            "\xc0\xf3\x72\x92\xd0\x63\x83\xd0\xf2\x62\x92\xe0\x53"
+            "\x83\xe0\xf2\x52\x92\xe0\x10" }  },
+      /* --- pixel bitmap for cmr325 char#36 $ --- */
+      {  36,80373,                      /* character number, location */
+         34, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   36, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x91\x80\x67\x92\x31\x32\x61\x51\x51\x41\x61\x61"
+            "\x22\x61\x61\x21\x71\x73\x71\x53\x0f\x12\x71\x44\x03"
+            "\x61\x52\x13\x61\x94\x41\x97\x11\xaa\x9b\x9a\xa9\xb1"
+            "\x16\xa1\x34\x10\xf1\x91\x53\x12\x61\x62\x0f\x14\x51"
+            "\x62\x03\x61\x63\x81\x61\x21\x71\x52\x21\x71\x51\x42"
+            "\x51\x41\x72\x31\x22\xa6\x60\xf1\x91\x80" }  },
+      /* --- pixel bitmap for cmr325 char#37 % --- */
+      {  37,98115,                      /* character number, location */
+         34, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   36, 3,243, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x54\xe0\x42\x72\x41\xe0\x23\x62\x61\xe0\x12\x72\x72"
+            "\xb4\x63\x71\x12\x75\x72\x81\x37\x22\x73\x91\xa3\x73"
+            "\x91\x93\x83\x91\x92\x93\x91\x83\x93\x91\x73\xa3\x91"
+            "\x72\xb3\x91\x63\xc2\x81\x63\xd3\x71\x62\xe0\x12\x71"
+            "\x53\xe0\x12\x61\x53\xe0\x32\x41\x53\xe0\x64\x62\x84"
+            "\xe0\x43\x62\x41\xe0\x23\x62\x61\xe0\x12\x72\x71\xd3"
+            "\x62\x81\xc3\x72\x91\xb2\x73\x91\xa3\x73\x91\x93\x83"
+            "\x91\x92\x93\x91\x83\x93\x91\x73\xa3\x91\x72\xc2\x91"
+            "\x63\xc2\x81\x63\xe2\x71\x62\xe0\x12\x61\x63\xe0\x22"
+            "\x41\x72\xe0\x54\x40" }  },
+      /* --- pixel bitmap for cmr325 char#38 & --- */
+      {  38,81731,                      /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   33, 3,177, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x94\xe0\xc1\x41\xe0\xa2\x41\xe0\x92\x61\xe0\x20\xf3"
+            "\x53\x61\xe0\x20\xf1\x53\x51\xe0\x30\x53\x41\xe0\x93"
+            "\x31\xe0\xb3\x21\xe0\xb3\x11\xaa\x64\xe4\xa3\xe3\xb3"
+            "\xe2\xb5\xd1\xb1\x23\xc1\xb1\x34\xb1\xa2\x43\xa1\xa2"
+            "\x63\x91\x93\x64\x71\xa3\x73\x61\xa4\x83\x51\xa4\x93"
+            "\x31\xb4\x94\x11\xc4\xa4\xc1\x13\xb3\xc1\x14\xa4\xa1"
+            "\x33\x91\x24\x72\x43\x53\x53\x52\x76\xa6\x4e" }  },
+      /* --- pixel bitmap for cmr325 char#39 ' --- */
+      {  39,98891,                      /* character number, location */
+         31, 4,   17, 4,      /* topleft row,col, and botleft row,col */
+          {  6,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xce\xf7\xff\x2e\x08\x82\x10\x84\x20\x84\x00" }  },
+      /* --- pixel bitmap for cmr325 char#40 ( --- */
+      {  40,99483,                      /* character number, location */
+         34, 5,  -12, 5,      /* topleft row,col, and botleft row,col */
+          { 10,   46, 3,86, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x91\x81\x81\x82\x72\x81\x82\x40\xf1\x32\x50\x23\x50"
+            "\xf1\x22\x60\x13\x60\xf3\x12\x7f\xb3\x70\xf3\x12\x70"
+            "\x13\x60\xf1\x22\x60\x23\x50\xf1\x32\x50\x42\x91\x92"
+            "\x92\x91\xa1\xa1" }  },
+      /* --- pixel bitmap for cmr325 char#41 ) --- */
+      {  41,100138,                     /* character number, location */
+         34, 2,  -12, 2,      /* topleft row,col, and botleft row,col */
+          { 10,   46, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\xa1\xa1\x92\x92\x91\x92\x40\xf1\x52\x30\x53\x20"
+            "\xf1\x62\x20\x63\x10\xf3\x72\x10\xfb\x73\xf3\x72\x10"
+            "\x63\x10\xf1\x62\x20\x53\x20\xf1\x52\x30\x42\x81\x82"
+            "\x72\x81\x81\x81\x92" }  },
+      /* --- pixel bitmap for cmr325 char#42 * --- */
+      {  42,100817,                     /* character number, location */
+         34, 3,   15, 3,      /* topleft row,col, and botleft row,col */
+          { 16,   19, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf3\x72\x72\x52\x55\x42\x43\x13\x32\x33\x43\x12\x13"
+            "\x86\xc2\xc6\x83\x12\x13\x43\x32\x33\x13\x42\x45\x52"
+            "\x52\xf3\x72\x72" }  },
+      /* --- pixel bitmap for cmr325 char#43 + --- */
+      {  43,101543,                     /* character number, location */
+         26, 3,   -4, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   30, 3,17, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xfd\xe2\xdf\x1e\x0e\x01\xfd\xe2\xd2" }  },
+      /* --- pixel bitmap for cmr325 char#44 (noname) --- */
+      {  44,102158,                     /* character number, location */
+          5, 4,   -9, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xfd\xef\x21\x84\x08\x21\x42\x04" }  },
+      /* --- pixel bitmap for cmr325 char#45 (noname) --- */
+      {  45,125547,                     /* character number, location */
+         11, 1,    9, 1,      /* topleft row,col, and botleft row,col */
+          { 12,    2, 3, 4, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0c" }  },
+      /* --- pixel bitmap for cmr325 char#46 (noname) --- */
+      {  46,102639,                     /* character number, location */
+          5, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          {  5,    5, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xff\xef\x00" }  },
+      /* --- pixel bitmap for cmr325 char#47 / --- */
+      {  47,103151,                     /* character number, location */
+         34, 2,  -11, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   45, 3,159, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x22\xe0\x13\xf1\xe0\x12\x10\xe3\xe0\x12\xe0"
+            "\x13\x20\xf1\xd2\x30\xc3\x30\xf1\xc2\x40\xb3\xe0\x12"
+            "\xe0\x13\x50\xf1\xa2\x60\x93\x60\xf1\x92\x70\x83\xe0"
+            "\x12\xe0\x13\x80\xf1\x72\x90\x63\x90\xf1\x62\xa0\x53"
+            "\xe0\x12\xe0\x13\xb0\xf1\x42\xc0\x33\xc0\xf1\x32\xd0"
+            "\x23\xe0\x12\xe0\x13\xe0\xf1\x12\xe0\x13\xe0\x1f\x12"
+            "\xe0\x21" }  },
+      /* --- pixel bitmap for cmr325 char#48 0 --- */
+      {  48,70438,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xa3\x43\x73\x63\x62\x82\x53\x83\x20\xf3\x13\xa3"
+            "\x1f\xc4\xa4\xf2\x13\xa3\x10\x14\x84\x33\x83\x52\x82"
+            "\x63\x63\x73\x43\xa6\x61" }  },
+      /* --- pixel bitmap for cmr325 char#49 1 --- */
+      {  49,71280,                      /* character number, location */
+         30, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 15,   30, 3,28, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x81\xc3\xa5\x64\x23\x60\xfe\x63\x60\xf8\x63\x60\x55"
+            "\x6e" }  },
+      /* --- pixel bitmap for cmr325 char#50 2 --- */
+      {  50,72283,                      /* character number, location */
+         30, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   30, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xa2\x53\x71\x83\x51\xa3\x31\xb4\x11\xc4\x14\x95"
+            "\x0f\x25\x94\x21\xa5\xd5\xf1\xd4\x10\xc4\xe3\xe3\xe3"
+            "\xe3\xe0\x12\xe0\x12\xe0\x12\xe0\x12\xe0\x12\xa1\x42"
+            "\xb1\x32\xc1\x31\xc1\x3e\x01\x2e\x02\x1e\x03\x12" }  },
+      /* --- pixel bitmap for cmr325 char#51 3 --- */
+      {  51,73361,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xa2\x53\x71\x83\x51\x94\x34\x75\x10\xf1\x14\x84"
+            "\x10\x23\x75\xd5\x10\xf1\xc4\x20\xb4\xe3\xd3\xb7\xe0"
+            "\x24\xe0\x23\xe0\x14\x20\xf1\xd4\x10\xd5\x21\xa5\x0f"
+            "\x25\x85\x04\x94\x21\xb4\x21\xa4\x41\x93\x62\x54\x97"
+            "\x62" }  },
+      /* --- pixel bitmap for cmr325 char#52 4 --- */
+      {  52,74333,                      /* character number, location */
+         30, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   30, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xd2\x50\xf1\xc3\x50\xb4\x50\xf1\xa1\x13\x50\x91"
+            "\x23\x50\xf1\x81\x33\x50\x71\x43\x50\xf1\x61\x53\x50"
+            "\x51\x63\x50\xf1\x41\x73\x50\x31\x83\x50\xf1\x21\x93"
+            "\x50\x11\xa3\x52\xa3\x5e\x06\xf6\xc3\x50\x8b\x14" }  },
+      /* --- pixel bitmap for cmr325 char#53 5 --- */
+      {  53,75415,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,91, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x32\x92\x5c\x6b\x7a\x88\x70\xf5\x31\xe0\x31\x35\x91"
+            "\x12\x43\x72\x73\x61\x93\x51\x94\x10\xf1\xe3\x10\xf2"
+            "\xe4\x13\xa4\x0f\x14\xa4\x03\xb3\x21\xc3\x21\xb3\x41"
+            "\xa2\x61\x82\x81\x53\xa6\x76" }  },
+      /* --- pixel bitmap for cmr325 char#54 6 --- */
+      {  54,76355,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x95\xb2\x51\x83\x71\x63\x73\x52\x74\x42\x84\x33\x92"
+            "\x43\xe4\xd0\xf1\x13\xe4\x35\x64\x21\x43\x44\x11\x72"
+            "\x35\x83\x2f\x15\x93\x1f\x44\xa4\xf1\x13\xa4\x13\xa3"
+            "\x33\x93\x33\x83\x52\x83\x62\x63\x82\x43\xb5\x64" }  },
+      /* --- pixel bitmap for cmr325 char#55 7 --- */
+      {  55,77319,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   31, 3,83, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x11\xe0\x4e\x04\xf1\x1e\x03\x10\x11\xe1\x2f\x11\xe1"
+            "\x31\xd1\x40\xf1\xd1\x50\xc1\x60\xf1\xb1\x70\xf1\xa1"
+            "\x80\xf1\x92\x80\x83\xe0\x22\x90\xf3\x73\x90\xf6\x64"
+            "\x90\x72\xa3" }  },
+      /* --- pixel bitmap for cmr325 char#56 8 --- */
+      {  56,78269,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xa2\x62\x71\x92\x52\xa2\x41\xc2\x10\xf2\x12\xc2"
+            "\x10\x13\xb2\x24\x92\x45\x72\x46\x52\x67\x21\x98\xc7"
+            "\xa9\x82\x36\x61\x66\x42\x85\x22\xa4\x22\xc5\xd3\x0f"
+            "\x22\xe2\x02\xe1\x22\xc2\x31\xc1\x51\xa1\x72\x62\xa6"
+            "\x62" }  },
+      /* --- pixel bitmap for cmr325 char#57 9 --- */
+      {  57,79229,                      /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xa3\x42\x83\x62\x63\x82\x53\x83\x33\x93\x33\xa3"
+            "\x1f\x14\xa3\x1f\x44\xa4\xf1\x13\x95\x23\x85\x32\x71"
+            "\x14\x43\x41\x24\x65\x34\xf2\xe3\x10\xd3\x42\x93\x34"
+            "\x82\x44\x73\x43\x82\x61\x82\x81\x53\xa6\x82" }  },
+      /* --- pixel bitmap for cmr325 char#58 : --- */
+      {  58,103787,                     /* character number, location */
+         19, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xff\xef\x00\x00\x00\x00\x00\x80\xfb\xff\x3b" }  },
+      /* --- pixel bitmap for cmr325 char#59 ; --- */
+      {  59,104462,                     /* character number, location */
+         19, 4,   -9, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   28, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xff\xef\x00\x00\x00\x00\x00\x80\x7b\xff\x7b\x08"
+            "\x21\x42\x88\x10\x01" }  },
+      /* --- pixel bitmap for cmr325 char#60 (noname) --- */
+      {  60,95922,                      /* character number, location */
+         22, 4,  -10, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   32, 3,31, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x13\x1f\x25\x13\x10\xf4\x50\xf4\x21\x20\xf9\x13\x1f"
+            "\x55\x13\x13" }  },
+      /* --- pixel bitmap for cmr325 char#61 = --- */
+      {  61,105160,                     /* character number, location */
+         17, 3,    5, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   12, 2,10, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x01\x00\x1d\xff\x07\x1d\xff\x01\x1d" }  },
+      /* --- pixel bitmap for cmr325 char#62 (noname) --- */
+      {  62,83762,                      /* character number, location */
+         22, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   31, 3,71, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x63\x80\xf2\x55\x70\x63\x80\xf4\xe0\x30\xf4\x71\x90"
+            "\x62\x90\xf1\x61\xa0\x52\xe2\xe3\xd3\xd4\xc4\xa2\x1f"
+            "\x24\x94\x04\xb1\x23\xa2\x33\x72\x78\x54" }  },
+      /* --- pixel bitmap for cmr325 char#63 ? --- */
+      {  63,82788,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   31, 3,71, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x48\x72\x73\x41\xa4\x21\xb3\x1f\x24\x94\x12\xa4\xc4"
+            "\xc4\xc3\xd3\xe2\xe2\xe0\x11\xe0\x12\x80\xf4\x71\x90"
+            "\xf4\xe0\x30\x63\x80\xf2\x55\x70\x63\x84" }  },
+      /* --- pixel bitmap for cmr325 char#64 @ --- */
+      {  64,106334,                     /* character number, location */
+         31, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   31, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\x53\x73\xe0\x11\xd1\xd1\xe0\x11\xa2\xe0\x32"
+            "\x81\xe0\x51\x71\x85\x81\x51\x72\x52\x71\x41\x53\x81"
+            "\x61\x31\x53\xa1\x61\x21\x52\xc3\x31\x21\x43\xc3\x31"
+            "\x11\x52\xd3\x41\x0f\x41\x43\xd3\x41\x01\x52\xd3\x41"
+            "\x11\x43\xc3\x41\x11\x52\xc3\x41\x11\x53\xa4\x41\x21"
+            "\x53\x81\x13\x31\x31\x72\x52\x32\x31\x41\x85\x64\x61"
+            "\xe0\xe2\xe0\xe0\x11\xe0\xe0\x11\xe0\x34\x83\xa6\xdb"
+            "\x71" }  },
+      /* --- pixel bitmap for cmr325 char#65 A --- */
+      {  65, 1066,                      /* character number, location */
+         32, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,128, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x12\xe0\x10\xf1\xe4\xe0\xd6\xd0\xf1\xd1\x14"
+            "\xd0\xc1\x25\xc0\xf1\xc1\x34\xc0\xf2\xb1\x54\xb0\xf1"
+            "\xa1\x74\xa0\x92\x75\x90\xf1\x91\x94\x90\x81\xa5\xe0"
+            "\x21\xb4\xe0\x2e\x02\x80\xf2\x71\xd4\x70\xf2\x61\xe0"
+            "\x14\x60\x51\xe0\x34\x93\xe0\x24\x85\xe6\x4a\x9d" }  },
+      /* --- pixel bitmap for cmr325 char#66 B --- */
+      {  66, 2494,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   31, 3,107, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x07\xd4\xa4\xb4\xb4\xa4\xc4\x94\xd4\x30\xf4\x54"
+            "\xd5\x20\x54\xd4\x84\xc5\x84\xb5\x94\xa5\xae\x03\xc4"
+            "\xa5\xa4\xc5\x84\xd5\x20\xf1\x54\xe5\x10\xf4\x54\xe0"
+            "\x15\x54\xe0\x14\x64\xe5\x64\xd5\x74\xc5\x84\xb4\x5e"
+            "\x08\x70" }  },
+      /* --- pixel bitmap for cmr325 char#67 C --- */
+      {  67, 3483,                      /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   33, 3,139, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc7\x81\xa3\x62\x52\x83\xa2\x23\x64\xd1\x13\x54\xe0"
+            "\x14\x44\xe0\x33\x34\xe0\x43\x34\xe0\x52\xf1\x24\xe0"
+            "\x62\x15\xe0\x71\x14\xe0\x86\xe0\x81\x0f\x75\xe0\x90"
+            "\x14\xe0\x81\x15\xe0\x71\xf1\x24\xe0\x71\xf1\x34\xe0"
+            "\x51\x10\x44\xe0\x31\x74\xe0\x11\x94\xd1\xc3\xb1\xe0"
+            "\x13\x72\xe0\x48\x80" }  },
+      /* --- pixel bitmap for cmr325 char#68 D --- */
+      {  68, 4699,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 31,   31, 3,119, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x07\xe0\x14\xa4\xd4\xc4\xb4\xd4\xa4\xe4\x94\xe0"
+            "\x14\x84\xe0\x23\x30\xf1\x54\xe0\x24\x20\xf2\x54\xe0"
+            "\x34\x10\xf7\x54\xe0\x35\xf1\x54\xe0\x34\x10\x54\xe0"
+            "\x25\x10\xf1\x54\xe0\x24\x20\x54\xe0\x14\x84\xe4\x94"
+            "\xd4\xa4\xc4\xb4\xa4\x8e\x07\xa1" }  },
+      /* --- pixel bitmap for cmr325 char#69 E --- */
+      {  69, 6196,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   31, 3,129, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0c\x65\xc5\x74\xe3\x74\xe0\x12\x74\xe0\x21\x74"
+            "\xe0\x22\x10\xf2\x54\xe0\x31\x10\x54\x91\x71\x10\xf1"
+            "\x54\x91\x90\x54\x82\xe4\x73\xee\xe4\x73\xe4\x82\x90"
+            "\xf2\x54\x91\x90\xf2\x54\xe0\x41\xf2\x54\xe0\x31\x10"
+            "\x54\xe0\x22\x64\xe0\x13\x64\xe3\x65\xc5\x2e\x0c\x20" }  },
+      /* --- pixel bitmap for cmr325 char#70 F --- */
+      {  70, 7551,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 26,   31, 3,91, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x0b\x64\xc4\x10\xf1\x54\xe2\x10\x54\xe0\x11\x64"
+            "\xe0\x12\xf3\x54\xe0\x21\xf2\x54\x91\x70\x54\x82\xc4"
+            "\x73\xce\xc4\x73\xc4\x82\x70\xf2\x54\x91\x70\xf7\x54"
+            "\xe0\x30\x55\xe0\x2e\x01\xb0" }  },
+      /* --- pixel bitmap for cmr325 char#71 G --- */
+      {  71, 8768,                      /* character number, location */
+         32, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 30,   33, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc7\x71\xc4\x62\x42\xb3\xa1\x23\x93\xd1\x13\x83\xe0"
+            "\x14\x74\xe0\x23\x64\xe0\x33\x64\xe0\x42\x30\xf1\x24"
+            "\xe0\x52\x30\x15\xe0\x61\x44\xe0\x71\x35\xe0\x71\x3f"
+            "\x55\xe0\xb5\xce\x04\xe0\x35\x44\xe0\x44\x45\xe0\x34"
+            "\x30\xf1\x24\xe0\x34\x30\xf1\x34\xe0\x24\x30\x44\xe0"
+            "\x14\x83\xe0\x14\x93\xd1\x13\xb3\xa1\x32\xc4\x62\x51"
+            "\xe0\x17\xb0" }  },
+      /* --- pixel bitmap for cmr325 char#72 H --- */
+      {  72,10049,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,28, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x4e\xfc\x54\xe4\x50\x5e\x08\x50\xfe\x54\xe4\x5e"
+            "\x4e" }  },
+      /* --- pixel bitmap for cmr325 char#73 I --- */
+      {  73,10824,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 14,   31, 3,14, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\xfe\x54\x50\xfd\x54\x5e" }  },
+      /* --- pixel bitmap for cmr325 char#74 J --- */
+      {  74,11680,                      /* character number, location */
+         31, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   32, 3,47, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x5d\xa5\x30\xfe\xb4\x30\xf5\xb4\x30\x21\x84\x3f\x25"
+            "\x64\x34\x73\x51\x84\x52\x73\x81\x53\xa6\x80" }  },
+      /* --- pixel bitmap for cmr325 char#75 K --- */
+      {  75,12937,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,166, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x99\x54\xe0\x15\x84\xe0\x22\xa4\xe0\x21\xb4\xe0"
+            "\x11\xc4\xe1\xd4\xd1\xe4\xc1\xe0\x14\xa2\xe0\x24\x91"
+            "\xe0\x44\x81\xe0\x54\x71\xe0\x64\x62\xe0\x64\x54\xe0"
+            "\x54\x45\xe0\x54\x31\x24\xe0\x44\x21\x44\xe0\x34\x11"
+            "\x54\xe0\x35\x74\xb0\xf1\x54\x94\xa0\x54\xa4\x90\xf1"
+            "\x54\xb4\x80\x54\xc4\x70\xf1\x54\xd4\x60\x54\xe4\xa4"
+            "\xe5\x94\xe6\x3e\x6c" }  },
+      /* --- pixel bitmap for cmr325 char#76 L --- */
+      {  76,13992,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 25,   31, 3,67, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x01\xe0\x15\xe0\x10\xfe\x54\xe0\x20\xf2\x54\xe0"
+            "\x20\xf3\x54\xe0\x11\x54\xe2\x54\xe1\x10\xf1\x54\xd2"
+            "\x10\x54\xc3\x64\xa5\x1e\x0a\x14" }  },
+      /* --- pixel bitmap for cmr325 char#77 M --- */
+      {  77,15374,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 39,   31, 3,156, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0a\xe0\x5a\xf1\x55\xe0\x55\x50\xf1\x51\x14\xe0\x31"
+            "\x14\x50\xf2\x51\x24\xe0\x11\x24\x50\xf1\x51\x34\xd1"
+            "\x34\x50\xf2\x51\x44\xb1\x44\x50\xf1\x51\x54\x91\x54"
+            "\x50\xf2\x51\x64\x71\x64\x50\xf2\x51\x74\x51\x74\x50"
+            "\xf1\x51\x84\x31\x84\x50\xf2\x51\x94\x11\x94\x50\xf1"
+            "\x51\xa4\xa4\x50\x51\xb2\xb4\x85\x92\xb4\x5b\x62\x6e" }  },
+      /* --- pixel bitmap for cmr325 char#78 N --- */
+      {  78,16670,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,187, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x09\xcb\x55\xe5\x86\xe0\x11\xa1\x14\xe0\x11\xa1\x24"
+            "\xe1\xa1\x25\xd1\xa1\x34\xd1\xa1\x44\xc1\xa1\x54\xb1"
+            "\xa1\x55\xa1\xa1\x64\xa1\xa1\x74\x91\xa1\x75\x81\xa1"
+            "\x84\x81\xa1\x94\x71\xa1\x95\x61\xa1\xa4\x61\xa1\xb4"
+            "\x51\xa1\xc4\x41\xa1\xc5\x31\xa1\xd4\x31\xa1\xe4\x21"
+            "\xa1\xe5\x11\xa1\xe0\x14\x11\x50\xf1\x51\xe0\x25\x50"
+            "\x51\xe0\x34\xa1\xe0\x43\xa1\xe0\x52\x85\xe0\x32\x5b"
+            "\xe0\x11\x50" }  },
+      /* --- pixel bitmap for cmr325 char#79 O --- */
+      {  79,17623,                      /* character number, location */
+         32, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   33, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\x54\x54\xe0\x13\x93\xd3\xb3\xb3\xd3\x93\xe0"
+            "\x13\x74\xe0\x14\x30\xf1\x24\xe0\x34\x20\x15\xe0\x35"
+            "\x10\xf1\x14\xe0\x54\x1f\x85\xe0\x55\x14\xe0\x54\x10"
+            "\xf1\x15\xe0\x35\x10\x24\xe0\x34\x45\xe0\x15\x54\xe0"
+            "\x14\x74\xd4\x93\xd3\xb3\xb3\xd3\x93\xe0\x14\x54\xe0"
+            "\x57\xb5" }  },
+      /* --- pixel bitmap for cmr325 char#80 P --- */
+      {  80,18842,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   31, 3,73, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x06\xb5\x94\xa4\xb4\x84\xc4\x20\xf1\x54\xd4\x10"
+            "\xf3\x54\xd5\xf1\x54\xd4\x10\x54\xc4\x74\xb4\x84\x94"
+            "\xae\x01\x70\xfc\x54\xe0\x40\x46\xe0\x3e\xd0" }  },
+      /* --- pixel bitmap for cmr325 char#81 Q --- */
+      {  81,19907,                      /* character number, location */
+         32, 3,   -9, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   41, 3,191, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\x54\x54\xe0\x13\x93\xd3\xb3\xb3\xd3\x93\xe0"
+            "\x13\x74\xe0\x14\x30\xf1\x24\xe0\x34\x20\xf1\x15\xe0"
+            "\x35\x10\x14\xe0\x54\x1f\x85\xe0\x55\x14\xe0\x54\x10"
+            "\xf1\x15\xe0\x35\x10\x24\xe0\x34\x44\x73\x74\x54\x51"
+            "\x41\x44\x73\x41\x51\x43\x93\x31\x61\x23\xb3\x21\x61"
+            "\x13\xd3\x11\x64\xe0\x15\x44\x71\xb7\x11\x81\xe0\x52"
+            "\x71\xe0\x52\x62\xe0\x53\x43\xf1\xe0\x59\x10\xe0\x68"
+            "\xe0\x86\xe0\xa4\x30" }  },
+      /* --- pixel bitmap for cmr325 char#82 R --- */
+      {  82,21344,                      /* character number, location */
+         31, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,139, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x05\xe0\x44\x84\xe0\x24\xa4\xe4\xb4\x80\xf1\x54"
+            "\xc4\x70\xf3\x54\xc5\x60\xf1\x54\xc4\x70\x54\xb4\xd4"
+            "\xa4\xe4\x84\xe0\x2e\xe0\x44\x82\xe0\x44\x93\xe0\x24"
+            "\x94\xe0\x14\xa3\xa0\xf2\x54\xa4\x90\xf2\x54\xa5\x80"
+            "\x54\xa5\x71\x54\xa6\x61\x54\xb5\x61\x54\xc4\x51\x1e"
+            "\x84\x31\xe0\xc5\x30" }  },
+      /* --- pixel bitmap for cmr325 char#83 S --- */
+      {  83,22463,                      /* character number, location */
+         32, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 20,   33, 3,113, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\x51\x62\x62\x22\x52\x94\x42\xb3\x32\xc3\x32\xd2"
+            "\x23\xd2\x2f\x23\xe1\x2f\x14\xe0\x20\x15\xe0\x18\xdb"
+            "\xac\x9d\xab\xd7\xe0\x25\xe0\x24\x10\xf1\xe0\x24\x0f"
+            "\x31\xe0\x23\x02\xe0\x12\x12\xe3\x13\xd2\x25\xa2\x32"
+            "\x32\x63\x41\x67\x66" }  },
+      /* --- pixel bitmap for cmr325 char#84 T --- */
+      {  84,23605,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   31, 3,61, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1e\x0c\x24\x74\x74\x22\x94\x92\x10\xf1\x11\xa4\xa1"
+            "\x12\xa4\xa2\x0f\x31\xb4\xb1\xfe\xc4\xc0\xf3\xc4\xc0"
+            "\xb6\xe0\x3e\x02\x60" }  },
+      /* --- pixel bitmap for cmr325 char#85 U --- */
+      {  85,24679,                      /* character number, location */
+         31, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x7b\x54\xe0\x15\x30\xfe\x54\xe0\x31\x50\xf6\x54"
+            "\xe0\x31\x50\x63\xe0\x21\xc4\xe0\x11\xd3\xe1\xe0\x13"
+            "\xd1\xe0\x13\xc1\xe0\x42\xa1\xe0\x63\x62\xe0\x97\xcf" }  },
+      /* --- pixel bitmap for cmr325 char#86 V --- */
+      {  86,25775,                      /* character number, location */
+         31, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\xb9\x36\xe0\x25\x64\xe0\x42\x85\xe0\x32\x40\xf1"
+            "\x54\xe0\x31\x50\xf2\x64\xe0\x11\x60\xf1\x74\xd1\x70"
+            "\x75\xb2\x70\xf1\x84\xb1\x80\xf1\x94\x91\x90\x95\x72"
+            "\x90\xf1\xa4\x71\xa0\xf1\xb4\x51\xb0\xb5\x41\xb0\xf1"
+            "\xc4\x31\xc0\xf2\xd4\x11\xd0\xf2\xe4\xe0\xf1\xe0\x12"
+            "\xe0\x11" }  },
+      /* --- pixel bitmap for cmr325 char#87 W --- */
+      {  87,27304,                      /* character number, location */
+         31, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 44,   32, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\x5c\x69\x35\xc6\xb5\x64\xd4\xe2\x74\xd4\xe1\x84"
+            "\xd5\xd1\x85\xc5\xc2\x94\xc5\xc1\xa4\xb1\x24\xb1\xa5"
+            "\xa1\x24\xb1\xb4\xa1\x24\xa1\xc4\x92\x25\x91\xc4\x91"
+            "\x44\x91\x60\xf1\x74\x81\x44\x81\x70\x74\x71\x64\x71"
+            "\x70\xf1\x84\x61\x64\x61\x80\x84\x51\x84\x51\x80\xf1"
+            "\x94\x41\x84\x41\x90\x94\x31\xa4\x31\xe0\x45\x21\xa4"
+            "\x22\xe0\x54\x21\xa4\x21\xe0\x64\x11\xc4\x11\xe0\x66"
+            "\xc4\x11\xa0\xf1\xb5\xc5\xb0\xb4\xe4\xb0\xf1\xc3\xe3"
+            "\xc0\xc2\xe0\x22\xe0\xb1\xe0\x21\xd0" }  },
+      /* --- pixel bitmap for cmr325 char#88 X --- */
+      {  88,28573,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,160, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1c\x7a\x67\xb5\xa5\xd2\xd5\xc1\xe0\x14\xb1\xe0\x25"
+            "\x92\xe0\x35\x81\xe0\x54\x71\xe0\x65\x52\xe0\x75\x41"
+            "\xe0\x94\x31\xe0\xa5\x11\xe0\xc6\xe0\xd4\xe0\xe5\xe0"
+            "\xf1\xe5\xd0\xd1\x15\xe0\xa2\x25\xe0\x91\x44\xe0\x81"
+            "\x55\xe0\x62\x65\xe0\x51\x84\xe0\x41\x95\xe0\x21\xb5"
+            "\xe0\x11\xc4\xe1\xd5\xc1\xe0\x15\xa3\xe0\x14\x86\xd6"
+            "\x4a\xac" }  },
+      /* --- pixel bitmap for cmr325 char#89 Y --- */
+      {  89,29815,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\xc8\x36\xe0\x25\x65\xe0\x32\x94\xe0\x31\xa5\xe0"
+            "\x12\xb4\xe0\x11\xd4\xd1\xe5\xc1\xe0\x14\xb1\xe0\x25"
+            "\x92\xe0\x35\x81\xe0\x54\x71\xe0\x65\x61\xe0\x74\x51"
+            "\xe0\x85\x31\xe0\xa5\x21\xe0\xb4\x11\xe0\xc6\xd0\xfb"
+            "\xe4\xe0\x9d\xa5" }  },
+      /* --- pixel bitmap for cmr325 char#90 Z --- */
+      {  90,30904,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 23,   31, 3,123, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1e\x08\x16\xb4\x24\xd4\x23\xd4\x32\xd5\x32\xd4\x41"
+            "\xd4\x51\xc5\x51\xc4\x61\xb4\xe0\x54\xe0\x44\x70\xf1"
+            "\xb4\x80\xa4\xe0\x45\xe0\x44\xe0\x44\xe0\x45\xe0\x44"
+            "\xc0\xf1\x64\xc1\x54\xd1\x45\xd1\x44\xd2\x34\xe1\x35"
+            "\xe1\x34\xe2\x24\xe3\x24\xc5\x1e\x08\x15" }  },
+      /* --- pixel bitmap for cmr325 char#91 [ --- */
+      {  91,107171,                     /* character number, location */
+         34, 4,  -11, 4,      /* topleft row,col, and botleft row,col */
+          {  8,   45, 3,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x08\x0f\xe2\x6f\xe2\x6f\xa2\x6f\x18" }  },
+      /* --- pixel bitmap for cmr325 char#92 (noname) --- */
+      {  92,126416,                     /* character number, location */
+         31, 6,   17, 6,      /* topleft row,col, and botleft row,col */
+          { 15,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x10\x20\x04\x08\x01\x82\x00\x21\x40\x10\x20\x04\x08"
+            "\x02\x04\x01\x82\x0e\xdd\x8f\xff\xc7\xef\xc3\xe7\xc0"
+            "\x01" }  },
+      /* --- pixel bitmap for cmr325 char#93 ] --- */
+      {  93,107909,                     /* character number, location */
+         34, 0,  -11, 0,      /* topleft row,col, and botleft row,col */
+          {  8,   45, 3,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x08\xfe\x62\xfe\x62\xfa\x62\x0f\x18" }  },
+      /* --- pixel bitmap for cmr325 char#94 \^ --- */
+      {  94,114258,                     /* character number, location */
+         31, 5,   24, 5,      /* topleft row,col, and botleft row,col */
+          { 12,    7, 3,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x52\x94\x76\x53\x23\x32\x62\x12\x83\xa1" }  },
+      /* --- pixel bitmap for cmr325 char#95 (noname) --- */
+      {  95,114737,                     /* character number, location */
+         31, 3,   26, 3,      /* topleft row,col, and botleft row,col */
+          {  6,    5, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x8c\xf7\x7b\x0c" }  },
+      /* --- pixel bitmap for cmr325 char#96 (noname) --- */
+      {  96,108567,                     /* character number, location */
+         31, 3,   17, 3,      /* topleft row,col, and botleft row,col */
+          {  6,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x10\x42\x10\x82\x10\x04\x41\xf7\xff\x3e\x07" }  },
+      /* --- pixel bitmap for cmr325 char#97 a --- */
+      {  97,32096,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   19, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x38\xb2\x63\x84\x63\x74\x72\x82\x83\x50\xf1\xc3\x50"
+            "\x87\xa5\x23\x84\x53\x73\x73\x64\x73\x5f\x24\x83\x41"
+            "\x04\x74\x41\x14\x64\x41\x23\x42\x23\x21\x55\x54\x24" }  },
+      /* --- pixel bitmap for cmr325 char#98 b --- */
+      {  98,33144,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   31, 3,81, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\xe0\x10\xfa\x33\xe0\x10\x33\x36\x93\x12\x53\x74"
+            "\x83\x63\xa3\x53\xa4\x43\xb3\x10\xf5\x33\xb4\xf1\x33"
+            "\xb3\x10\x33\xa3\x54\x93\x52\x11\x83\x62\x22\x52\x81"
+            "\x55\x71" }  },
+      /* --- pixel bitmap for cmr325 char#99 c --- */
+      {  99,33975,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   19, 3,47, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x68\x73\x62\x53\x64\x33\x74\x24\x82\x33\xdf\x64\xd0"
+            "\x13\xe4\xb1\x23\xb1\x33\x91\x53\x62\x87\x44" }  },
+      /* --- pixel bitmap for cmr325 char#100 d --- */
+      { 100,34996,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   31, 3,76, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb7\x40\xfa\xe0\x13\x40\x75\x33\x92\x52\x13\x73\x84"
+            "\x40\xf1\x23\xa3\x40\xf1\x13\xb3\x4f\x54\xb3\x40\x13"
+            "\xb3\x54\xa3\x63\x94\x73\x75\x83\x51\x23\xa6\x37" }  },
+      /* --- pixel bitmap for cmr325 char#101 e --- */
+      { 101,35810,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 18,   19, 3,61, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x76\xa2\x53\x63\x73\x20\xf1\x23\x93\x10\x13\xa4\x13"
+            "\xb7\xbe\x07\x0f\x24\xe0\xf1\x13\xe0\xf1\x23\xc1\x42"
+            "\xa1\x63\x62\x97\x44" }  },
+      /* --- pixel bitmap for cmr325 char#102 f --- */
+      { 102,36689,                      /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 17,   31, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xa5\xa3\x32\x82\x44\x63\x44\x53\x62\x10\xf6\x53\x9d"
+            "\x40\xfe\x53\x90\xf1\x53\x90\x1b\x50" }  },
+      /* --- pixel bitmap for cmr325 char#103 g --- */
+      { 103,37960,                      /* character number, location */
+         20, 1,  -10, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   30, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x23\x75\x32\x22\x43\x34\x42\x33\x53\x41\x33\x73"
+            "\x50\xf3\x14\x74\x40\x23\x73\x83\x53\x94\x33\x92\x25"
+            "\x90\xf1\x21\xe0\x30\xf1\x22\xe0\x20\x2d\x8e\x6e\x01"
+            "\x42\xb4\x22\xe3\x0f\x32\xe0\x22\x12\xe2\x32\xc2\x53"
+            "\x83\x98\x62" }  },
+      /* --- pixel bitmap for cmr325 char#104 h --- */
+      { 104,38993,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   31, 3,50, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\xe0\x20\xfa\x33\xe0\x20\x33\x45\xa3\x22\x42\x93"
+            "\x11\x72\x50\xf1\x34\x83\x40\xfc\x33\x93\x4a\x2a" }  },
+      /* --- pixel bitmap for cmr325 char#105 i --- */
+      { 105,39788,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          {  9,   31, 3,32, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x40\xf2\x15\x30\x23\x40\xf6\x96\x30\xfe\x33\x30"
+            "\xf1\x33\x39" }  },
+      /* --- pixel bitmap for cmr325 char#106 j --- */
+      { 106,40606,                      /* character number, location */
+         31,-3,   -9,-3,      /* topleft row,col, and botleft row,col */
+          { 12,   40, 3,45, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x83\x10\xf2\x75\x83\x10\xf6\xc0\x57\x84\xfe\x93\xf5"
+            "\x93\x12\x67\x52\x14\x42\x32\x42\x56\x43" }  },
+      /* --- pixel bitmap for cmr325 char#107 k --- */
+      { 107,41762,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   31, 3,90, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x07\xe0\x10\xfa\x43\xe0\x10\x43\x68\x53\x75\x73\x82"
+            "\x93\x72\xa3\x61\xc3\x51\xd3\x41\xe3\x32\xe3\x15\xd4"
+            "\x24\xc3\x43\xc3\x53\xb3\x54\xa3\x63\xa3\x73\x93\x74"
+            "\x83\x84\x73\x85\x2b\x29" }  },
+      /* --- pixel bitmap for cmr325 char#108 l --- */
+      { 108,42459,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          {  9,   31, 3,16, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x30\xfe\x33\x30\xfd\x33\x39" }  },
+      /* --- pixel bitmap for cmr325 char#109 m --- */
+      { 109,43800,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   19, 3,52, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x45\x75\x93\x22\x42\x42\x42\x83\x11\x72\x21\x72"
+            "\x40\xf1\x34\x84\x83\x30\xfc\x33\x93\x93\x39\x39\x39" }  },
+      /* --- pixel bitmap for cmr325 char#110 n --- */
+      { 110,44847,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,36, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x45\xa3\x22\x42\x93\x11\x72\x50\xf1\x34\x83\x40"
+            "\xfc\x33\x93\x4a\x2a" }  },
+      /* --- pixel bitmap for cmr325 char#111 o --- */
+      { 111,45584,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   19, 3,55, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x76\xc3\x43\x83\x83\x30\xf1\x23\xa3\x20\xf1\x13\xc3"
+            "\x1f\x54\xc4\x13\xc3\x24\xa4\x33\xa3\x53\x83\x83\x43"
+            "\xc6\x73" }  },
+      /* --- pixel bitmap for cmr325 char#112 p --- */
+      { 112,46686,                      /* character number, location */
+         19, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   28, 3,75, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x36\x93\x12\x53\x74\x83\x63\xa3\x20\xf1\x33\xa4"
+            "\x10\xf5\x33\xb4\x33\xb3\x43\xa4\x43\xa3\x54\x84\x54"
+            "\x83\x63\x12\x43\x83\x35\x70\xf7\x33\xe0\x1a\xb3" }  },
+      /* --- pixel bitmap for cmr325 char#113 q --- */
+      { 113,47766,                      /* character number, location */
+         19, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   28, 3,80, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x75\x51\x93\x41\x32\x73\x71\x22\x64\x84\x63\xa3\x54"
+            "\xa3\x53\xb3\x4f\x54\xb3\x40\xf1\x14\xa3\x40\x23\x94"
+            "\x73\x71\x13\x83\x51\x23\xa6\x33\x40\xf7\xe0\x13\x40"
+            "\xbb" }  },
+      /* --- pixel bitmap for cmr325 char#114 r --- */
+      { 114,48679,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 16,   19, 3,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x07\x34\x63\x21\x32\x53\x11\x34\x44\x44\x44\x52\x10"
+            "\xfc\x43\x9b\x5f" }  },
+      /* --- pixel bitmap for cmr325 char#115 s --- */
+      { 115,49640,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 14,   19, 3,55, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x46\x21\x32\x63\x21\x92\x1f\x22\xa1\x14\xb7\x89\x69"
+            "\x96\xb5\xa4\xb2\x0f\x12\xa2\x03\x82\x12\x11\x62\x21"
+            "\x36\x41" }  },
+      /* --- pixel bitmap for cmr325 char#116 t --- */
+      { 116,50499,                      /* character number, location */
+         28, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 14,   28, 3,47, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf3\x61\x70\xf1\x52\x70\xf1\x43\x70\x25\x7d\x10\xf9"
+            "\x43\x70\xf4\x43\x61\x53\x41\x72\x41\x85\x21" }  },
+      /* --- pixel bitmap for cmr325 char#117 u --- */
+      { 117,51458,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,34, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x06\x57\x40\xfd\x33\x93\x40\x33\x84\x82\x71\x13\x92"
+            "\x51\x23\xa6\x37" }  },
+      /* --- pixel bitmap for cmr325 char#118 v --- */
+      { 118,52390,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x09\x67\x34\x94\x54\xa2\x30\xf1\x43\xa1\x40\xf1\x53"
+            "\x81\x50\xf2\x63\x61\x60\xf1\x73\x41\x70\xf1\x83\x21"
+            "\x80\xf2\x94\x90\xf1\xa2\xa6" }  },
+      /* --- pixel bitmap for cmr325 char#119 w --- */
+      { 119,53686,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 30,   19, 3,117, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x09\x28\x47\x24\x74\x83\x53\x83\x82\x63\x83\x91\x73"
+            "\x73\x81\x40\xf1\x43\x74\x71\x40\x53\x51\x22\x61\xa3"
+            "\x51\x23\x51\xb3\x41\x23\x41\xc3\x31\x42\x41\xc3\x31"
+            "\x43\x31\xd3\x11\x62\x21\x70\xf1\x73\x11\x63\x11\x70"
+            "\xf2\x83\x83\x80\x91\xa1\x95" }  },
+      /* --- pixel bitmap for cmr325 char#120 x --- */
+      { 120,54747,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,82, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x09\x58\x34\x84\x73\x82\xa3\x71\xc3\x51\xd4\x32\xe3"
+            "\x22\xe0\x23\x11\xe0\x43\xe0\x63\xe0\x45\xe0\x22\x13"
+            "\xe0\x12\x33\xe1\x53\xc1\x73\xa1\x84\x82\x93\x64\x94"
+            "\x38\x59" }  },
+      /* --- pixel bitmap for cmr325 char#121 y --- */
+      { 121,55872,                      /* character number, location */
+         19, 1,   -9, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   28, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x09\x67\x34\x94\x54\xa2\x30\xf1\x43\xa1\x40\xf1\x53"
+            "\x81\x50\xf2\x63\x61\x60\xf1\x73\x41\x70\xf1\x83\x21"
+            "\x80\xf2\x94\x90\xf1\xa2\xa0\xf1\xa1\xb0\xf1\x91\xc4"
+            "\x51\xc4\x41\xd4\x31\xe0\x12\x32\xe0\x24\xe0\x21" }  },
+      /* --- pixel bitmap for cmr325 char#122 z --- */
+      { 122,56879,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 17,   19, 3,69, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x2e\x01\x23\x83\x31\x94\x31\x93\x31\x93\x41\x83\x51"
+            "\x73\xd4\xd3\xd3\xd3\xd4\x71\x53\x81\x43\x91\x33\x92"
+            "\x23\xa1\x24\x92\x23\x93\x1e\x02\x11" }  },
+      /* --- pixel bitmap for cmr325 char#123 (noname) --- */
+      { 123,127060,                     /* character number, location */
+         12, 0,   11, 0,      /* topleft row,col, and botleft row,col */
+          { 22,    1, 3, 4, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0e\x08" }  },
+      /* --- pixel bitmap for cmr325 char#124 (noname) --- */
+      { 124,127880,                     /* character number, location */
+         12, 0,   11, 0,      /* topleft row,col, and botleft row,col */
+          { 45,    1, 2, 2, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x2d" }  },
+      /* --- pixel bitmap for cmr325 char#125 (noname) --- */
+      { 125,115420,                     /* character number, location */
+         31, 6,   23, 6,      /* topleft row,col, and botleft row,col */
+          { 12,    8, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\xce\xe1\x1c\xee\x70\x06\x33\x18\x83\x11\x08" }  },
+      /* --- pixel bitmap for cmr325 char#126 \~ --- */
+      { 126,116120,                     /* character number, location */
+         30, 4,   26, 4,      /* topleft row,col, and botleft row,col */
+          { 14,    4, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x38\x20\x3f\x24\xfc\x04\x1c" }  },
+      /* --- pixel bitmap for cmr325 char#127 (noname) --- */
+      { 127,116807,                     /* character number, location */
+         31, 4,   26, 4,      /* topleft row,col, and botleft row,col */
+          { 14,    5, 3,15, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x13\x63\x1f\x25\x45\x13\x63\x13" }  },
+      /* --- trailer  --- */
+      { -99, -999,  0,0,0,0, { 0,0,0,0, (pixbyte *)"\0" }  }
+   } ;
+
+
+/* --- size=9 for .450gf ---
+ * mf '\mode=preview; mag=magstep(-9.62468787106292402266); input cmr10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmr450 --- */
+static	chardef  cmr450[] =
+   {
+      /* --- pixel bitmap for cmr450 char#0 \Gamma --- */
+      {   0,60318,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   43, 3,83, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x0e\x04\x20\x57\xd7\x86\xe0\x24\x86\xe0\x34"
+            "\x10\xf1\x66\xe0\x43\x10\xf3\x66\xe0\x52\x10\xf2\x66"
+            "\xe0\x62\xfe\x66\xe0\x80\xfa\x66\xe0\x80\x58\xe0\x7f"
+            "\x1e\x06\xe5" }  },
+      /* --- pixel bitmap for cmr450 char#1 \Delta --- */
+      {   1,61295,                      /* character number, location */
+         45, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   45, 3,306, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x82\xe0\x80\xf1\xe0\x74\xe0\x70\xf1\xe0\x66\xe0"
+            "\x60\xf1\xe0\x58\xe0\x50\xe0\x42\x17\xe0\xe0\x82\x26"
+            "\xe0\xe0\x72\x37\xe0\xe0\x62\x46\xe0\xe0\x52\x57\xe0"
+            "\xe0\x42\x66\xe0\xe0\x32\x77\xe0\xe0\x22\x86\xe0\xe0"
+            "\x12\x97\xe0\xe2\xa6\xe0\xd2\xb7\xe0\xc2\xc6\xe0\xb2"
+            "\xd7\xe0\xa2\xe6\xe0\x92\xe0\x17\xe0\x82\xe0\x26\xe0"
+            "\x72\xe0\x37\xe0\x62\xe0\x46\xe0\x52\xe0\x57\xe0\x42"
+            "\xe0\x66\xe0\x32\xe0\x77\xe0\x22\xe0\x86\xe0\x13\xe0"
+            "\x87\xe2\xe0\xa6\xd3\xe0\xa7\xc2\xe0\xc6\xb3\xe0\xc7"
+            "\xa2\xe0\xe6\x93\xe0\xe7\x82\xe0\xe0\x17\x73\xe0\xe0"
+            "\x27\x62\xe0\xe0\x37\x53\xe0\xe0\x47\x4e\x0e\x0e\x20"
+            "\xf1\x1e\x0e\x0e\x02\x1f\x1e\x0e\x0e\x04" }  },
+      /* --- pixel bitmap for cmr450 char#2 \Theta --- */
+      {   2,62532,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   45, 3,253, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\xe0\x34\x64\xe0\xb4\xc4\xe0\x74\xe4\xe0"
+            "\x44\xe0\x44\xe0\x14\xe0\x64\xd5\xe0\x65\xb5\xe0\x85"
+            "\xa4\xe0\xa4\x95\xe0\xa5\x40\xf1\x35\xe0\xc5\x30\xf1"
+            "\x25\xe0\xe5\x20\xf1\x16\xe0\xe6\x10\xf1\x15\xe0\xe0"
+            "\x25\x1f\x16\x42\xe0\x42\x46\x0f\x46\x4e\x08\x46\x0f"
+            "\x16\x42\xe0\x42\x46\x06\xe0\xe0\x26\x15\xe0\xe0\x25"
+            "\x10\xf1\x16\xe0\xe6\x10\xf1\x25\xe0\xe5\x20\xf1\x35"
+            "\xe0\xc5\x30\x45\xe0\xa5\x94\xe0\xa4\xa5\xe0\x85\xb5"
+            "\xe0\x65\xd4\xe0\x64\xe0\x14\xe0\x44\xe0\x44\xe4\xe0"
+            "\x74\xc4\xe0\xa5\x65\xe0\xe0\x28\xe0\x37" }  },
+      /* --- pixel bitmap for cmr450 char#3 \Lambda --- */
+      {   3,63662,                      /* character number, location */
+         45, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 39,   45, 3,198, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x43\xe0\x40\xf2\xe0\x35\xe0\x30\xf2\xe0\x27"
+            "\xe0\x20\xe0\x19\xe0\x10\xf1\xe0\x12\x16\xe0\x10\xe3"
+            "\x17\xe0\xf2\xe2\x36\xe0\xf2\xd2\x56\xd0\xc2\x67\xc0"
+            "\xf1\xc2\x76\xc0\xb2\x87\xb0\xf1\xb2\x96\xb0\xa2\xa7"
+            "\xa0\xf1\xa2\xb6\xa0\x92\xc7\x90\xf1\x92\xd6\x90\x83"
+            "\xd7\x80\xf1\x82\xe0\x16\x80\x73\xe0\x17\x70\xf2\x72"
+            "\xe0\x36\x70\xf1\x62\xe0\x56\x60\x53\xe0\x56\xb4\xe0"
+            "\x47\x87\xe0\x29\x4f\x1d\x9e\x03" }  },
+      /* --- pixel bitmap for cmr450 char#4 \Xi --- */
+      {   4,65143,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   43, 3,107, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf4\x1e\x0e\x06\x1f\x13\xe0\xe0\x23\x0f\x22\xe0\xe0"
+            "\x42\xf4\xe0\xe0\x80\xf2\x62\xe0\x62\x60\xf4\x6e\x0a"
+            "\x60\xf2\x62\xe0\x62\x60\xf5\xe0\xe0\x8f\x32\xe0\xe0"
+            "\x42\x03\xe0\xe0\x23\x12\xe0\xe0\x22\x10\xf4\x1e\x0e"
+            "\x06\x11" }  },
+      /* --- pixel bitmap for cmr450 char#5 \Pi --- */
+      {   5,66428,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   43, 2,28, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x01\x00\x2b\x05\x07\x13\x07\x05\x00\xff\x24\x06"
+            "\x06\x13\x06\x06\x00\x05\x08\x11\x08\x05\xff\x01\x12"
+            "\x07\x12" }  },
+      /* --- pixel bitmap for cmr450 char#6 \Sigma --- */
+      {   6,67665,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   43, 3,249, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x0e\x09\x20\x17\xe0\x69\x37\xe0\xa5\x47\xe0"
+            "\xa5\x47\xe0\xa4\x48\xe0\xa3\x57\xe0\xa3\x67\xe0\xa2"
+            "\x10\xf1\x67\xe0\x92\x10\x77\xe0\x92\xf1\x87\xe0\x82"
+            "\x97\xe0\x90\xf1\xa7\xe0\x80\xb7\xe0\xe0\x57\xe0\xe0"
+            "\x48\xe0\xe0\x47\xe0\xe0\x57\xe0\xe0\x55\xe0\xe0\x64"
+            "\xe0\xe0\x82\xe0\xe0\x82\xe0\xe0\x83\xe0\xe0\x73\xe0"
+            "\xe0\x73\xe0\x82\xc2\xe0\x92\xb2\xe0\xa2\xa2\xe0\xa3"
+            "\x92\xe0\xb2\x92\xe0\xc2\x82\xe0\xc3\x73\xe0\xc3\x63"
+            "\xe0\xc4\x53\xe0\xc5\x52\xe0\xc6\x42\xe0\x99\x4e\x0e"
+            "\x07\x3e\x0e\x08\x2e\x0e\x09\x28" }  },
+      /* --- pixel bitmap for cmr450 char#7 \Upsilon --- */
+      {   7,68849,                      /* character number, location */
+         44, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   44, 3,127, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x56\xe0\x66\x9a\xea\x7c\xcc\x5e\xae\x3e\x02\x8e\x02"
+            "\x23\x86\x66\x83\x13\xa5\x65\xa6\xb5\x45\xb5\xd4\x44"
+            "\xd4\xe4\x24\xe2\xf1\xe0\x24\x24\xe0\x20\xe0\x33\x23"
+            "\xe0\x30\xf2\xe0\x38\xe0\x30\xfe\xe0\x46\xe0\x40\xf9"
+            "\xe0\x46\xe0\x40\xe0\x38\xe0\x30\xf1\xae\x08\xa0" }  },
+      /* --- pixel bitmap for cmr450 char#8 \Phi --- */
+      {   8,69973,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   43, 3,181, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x9e\x08\x80\xe0\x28\xe0\x10\xf4\xe0\x36\xe0\x20"
+            "\xeb\xe0\xa5\x26\x15\xe0\x44\x56\x44\xe5\x66\x55\xb4"
+            "\x86\x74\x94\x96\x84\x75\x96\x85\x55\xa6\x95\x36\xa6"
+            "\x96\x25\xb6\xa5\x1f\x66\xb6\xa6\x15\xb6\xa5\x26\xa6"
+            "\x96\x35\xa6\x95\x55\x96\x85\x74\x96\x84\x94\x86\x74"
+            "\xb5\x66\x55\xe4\x56\x44\xe0\x45\x26\x15\xe0\xab\xe0"
+            "\xf4\xe0\x36\xe0\x20\xe0\x28\xe0\x10\xf1\x9e\x08\x83" }  },
+      /* --- pixel bitmap for cmr450 char#9 \Psi --- */
+      {   9,71222,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   43, 3,167, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x08\xa0\xe0\x38\xe0\x30\xf4\xe0\x46\xe0\x47"
+            "\xb6\xb7\x26\xa6\xa6\x20\xf1\x36\x96\x96\x30\xf9\x46"
+            "\x86\x86\x40\x55\x86\x85\x50\xf2\x56\x76\x76\x50\x65"
+            "\x76\x75\xc6\x66\x66\xd5\x66\x65\xe0\x15\x56\x55\xe0"
+            "\x34\x56\x54\xe0\x54\x46\x44\xe0\x75\x26\x25\xe0\xae"
+            "\x02\xe0\xe0\x1a\xe0\x20\xf4\xe0\x46\xe0\x40\xe0\x38"
+            "\xe0\x30\xf1\xae\x08\xa0" }  },
+      /* --- pixel bitmap for cmr450 char#10 \Omega --- */
+      {  10,72509,                      /* character number, location */
+         44, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   44, 3,235, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x19\xe0\xc5\x75\xe0\x64\xd4\xe0\x24\xe0\x34\xd4"
+            "\xe0\x54\xb4\xe0\x74\x94\xe0\x94\x75\xe0\x95\x30\xf1"
+            "\x25\xe0\xb5\x20\x16\xe0\xb6\x25\xe0\xd5\x1f\x66\xe0"
+            "\xd6\x15\xe0\xd5\x10\xf1\x16\xe0\xb6\x10\x25\xe0\xb5"
+            "\x46\xe0\x96\x55\xe0\x95\x74\xe0\x94\x85\xe0\x75\x94"
+            "\xe0\x74\xb4\xe0\x54\x60\xf1\x73\xe0\x53\x70\x83\xe0"
+            "\x33\xe0\x32\xe0\x32\xe0\x43\xe0\x13\x92\x82\xe0\x12"
+            "\x84\x91\xe0\x11\x92\x12\x82\xd2\x82\x10\xf1\x12\x91"
+            "\xd1\x92\x10\x13\x82\xb2\x83\x2d\xbd\x10\xf2\x2c\xbc"
+            "\x27" }  },
+      /* --- pixel bitmap for cmr450 char#11 \ff --- */
+      {  11,122766,                     /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 39,   44, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\x86\xe0\x14\x63\x33\x42\xc4\xa5\x54\xa3\xa7"
+            "\x46\x84\x97\x56\x74\xa7\x56\x74\xa6\x74\x74\xc5\x82"
+            "\x20\xf8\x64\xd4\xcf\x1e\x0e\x06\x50\xfe\x64\xd4\xc0"
+            "\xf6\x64\xd4\xc0\x55\xd5\xb0\xf1\x1e\x3e\x01\x62" }  },
+      /* --- pixel bitmap for cmr450 char#12 \fi --- */
+      {  12,124066,                     /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   44, 3,100, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\xe0\x84\x62\xe0\x44\x92\xe0\x23\xb3\xe4\xa5"
+            "\x50\xf1\x74\xa6\x50\x64\xb6\xb4\xc4\x60\xf6\x64\xe0"
+            "\x80\x64\xd4\x5f\x1e\x0d\x50\x64\xc5\x50\xfe\x64\xd4"
+            "\x50\xf5\x64\xd4\x50\x55\xd5\x40\xf1\x1e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#13 \fl --- */
+      {  13,125334,                     /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 32,   44, 3,76, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x18\xe0\x74\x65\xe0\x14\x85\xe3\x96\xd4\x96\xc4"
+            "\xa6\xc4\xb5\x50\xf9\x64\xd4\x5f\x1e\x0d\x50\xfe\x64"
+            "\xd4\x50\xf6\x64\xd4\x50\x56\xb6\x40\xf1\x1e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#14 \ffi --- */
+      {  14,127061,                     /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 49,   44, 3,138, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\xa7\xe0\x84\x62\x54\x62\xe0\x44\x92\x24\x92"
+            "\xe0\x23\xb6\xb3\xe4\xa7\xa5\x50\xf1\x74\xa7\xa6\x50"
+            "\x64\xb6\xb6\xb4\xc5\xc4\x60\xf6\x64\xd4\xe0\x80\x64"
+            "\xd4\xd4\x5f\x1e\x0e\x0e\x02\x50\x64\xd4\xc5\x50\xfe"
+            "\x64\xd4\xd4\x50\xf5\x64\xd4\xd4\x50\x55\xd4\xd5\x40"
+            "\xf1\x1e\x3e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#15 \ffl --- */
+      {  15,128862,                     /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 49,   44, 3,114, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\xa8\xe0\x74\x62\x54\x65\xe0\x14\xa1\x24\x85"
+            "\xe3\xa7\x96\xd4\x98\x96\xc4\xa7\xa6\xc4\xa7\xb5\xb4"
+            "\xc5\xd4\x50\xf8\x64\xd4\xd4\x5f\x1e\x0e\x0e\x02\x50"
+            "\xfe\x64\xd4\xd4\x50\xf6\x64\xd4\xd4\x50\x56\xb6\xb6"
+            "\x40\xf1\x1e\x3e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#16 \imath --- */
+      {  16,87862,                      /* character number, location */
+         28, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 13,   28, 3,30, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\x4f\x19\x40\x45\x40\xfe\x54\x40\xf5\x54\x40\x45"
+            "\x4f\x1d" }  },
+      /* --- pixel bitmap for cmr450 char#17 \jmath --- */
+      {  17,88610,                      /* character number, location */
+         28,-3,  -13,-3,      /* topleft row,col, and botleft row,col */
+          { 16,   41, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb5\xf1\x79\xb5\xfe\xc4\xfd\xc4\x14\x7a\x6a\x63\x16"
+            "\x54\x15\x63\x33\x63\x53\x43\x86\x60" }  },
+      /* --- pixel bitmap for cmr450 char#18 \gravesym --- */
+      {  18,113703,                     /* character number, location */
+         43, 7,   32, 7,      /* topleft row,col, and botleft row,col */
+          { 11,   11, 3,22, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x03\x84\x75\x75\x75\x75\x74\x84\x93\x93\x92" }  },
+      /* --- pixel bitmap for cmr450 char#19 \acutesym --- */
+      {  19,114288,                     /* character number, location */
+         43,13,   32,13,      /* topleft row,col, and botleft row,col */
+          { 11,   11, 3,23, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x83\x74\x65\x55\x55\x55\x64\x64\x63\x73\x82\x91" }  },
+      /* --- pixel bitmap for cmr450 char#20 \checksym --- */
+      {  20,114929,                     /* character number, location */
+         40, 7,   32, 7,      /* topleft row,col, and botleft row,col */
+          { 16,    8, 3,27, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x11\xd1\x13\x93\x14\x74\x34\x34\x64\x14\x87\xb3\xe1"
+            "\x73" }  },
+      /* --- pixel bitmap for cmr450 char#21 \brevesym --- */
+      {  21,115565,                     /* character number, location */
+         43, 6,   32, 6,      /* topleft row,col, and botleft row,col */
+          { 19,   11, 3,41, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x01\xe0\x31\x02\xe0\x12\x11\xe0\x11\x22\xd2\x32"
+            "\xb2\x52\x92\x64\x54\x89\xc5\x73" }  },
+      /* --- pixel bitmap for cmr450 char#22 (noname) --- */
+      {  22,116175,                     /* character number, location */
+         36, 4,   34, 4,      /* topleft row,col, and botleft row,col */
+          { 23,    2, 3, 6, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x09" }  },
+      /* --- pixel bitmap for cmr450 char#23 (noname) --- */
+      {  23,117020,                     /* character number, location */
+         44,17,   33,17,      /* topleft row,col, and botleft row,col */
+          { 13,   11, 3,27, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x45\x62\x52\x32\x72\x1f\x42\x92\x12\x72\x32\x52\x65"
+            "\x42" }  },
+      /* --- pixel bitmap for cmr450 char#24 (noname) --- */
+      {  24,117740,                     /* character number, location */
+         -1, 8,  -13, 8,      /* topleft row,col, and botleft row,col */
+          { 15,   12, 3,27, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x64\x50\x65\xc5\xc4\x10\xf2\xb4\xa5\x95\x2b\x31"
+            "\xe2" }  },
+      /* --- pixel bitmap for cmr450 char#25 \ss --- */
+      {  25,89759,                      /* character number, location */
+         44, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   45, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc7\xe0\x43\x53\xe3\x84\xb3\xa4\x94\xa5\x83\xc4\x20"
+            "\xf4\x54\xc5\x10\x54\xc4\x74\xb5\x74\xb4\x84\xa4\x94"
+            "\x94\xa4\x74\x79\x35\xa9\x63\xe4\x83\xc4\x93\xb4\xa3"
+            "\xa4\xb3\x94\xb4\x30\xf1\x54\xc4\x20\xf1\x54\xc5\x10"
+            "\x54\xd4\x10\xf7\x54\xd5\x54\x51\x74\x64\x34\x64\x64"
+            "\x35\x44\x74\x34\x54\x65\x34\x44\x39\x42\x53\x49\x51"
+            "\x43\xe0\x65\x70" }  },
+      /* --- pixel bitmap for cmr450 char#26 \ae --- */
+      {  26,91232,                      /* character number, location */
+         29, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   30, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x77\xd6\xc3\x54\x83\x43\x82\xa3\x62\x73\x62\xc3\x33"
+            "\x93\x54\xb3\x22\xb3\x36\xa7\xb3\x36\xa6\xc4\x26\xb5"
+            "\xd3\x26\xb5\xd4\x24\xc4\xe4\xf2\xe0\x44\xe4\xce\x0e"
+            "\x86\x44\xe0\xa5\x74\xe0\x85\x94\xe0\x74\xb4\xe0\x65"
+            "\xb4\xe0\x55\xd3\xe0\x55\xd4\xe0\x35\xe4\xe0\x35\xe4"
+            "\xe0\x17\xd5\xe0\x17\xd2\x13\xd2\x15\xc3\x23\xc2\x25"
+            "\xa3\x42\xb2\x44\x93\x62\x92\x65\x53\x93\x53\xa8\xe6"
+            "\x62" }  },
+      /* --- pixel bitmap for cmr450 char#27 \oe --- */
+      {  27,92474,                      /* character number, location */
+         29, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 44,   30, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa6\xe0\x16\xe0\x13\x53\xa3\x43\xb3\x92\x82\x73\x93"
+            "\xb2\x53\x93\x73\xc3\x42\xb3\x54\xd3\x23\xb3\x44\xe0"
+            "\x16\xc4\x34\xe0\x16\xd3\x25\xe0\x16\xd4\xf1\x14\xe0"
+            "\x34\xe4\x0f\x15\xe0\x34\xe4\x05\xe0\x3e\x08\x0f\x45"
+            "\xe0\x34\xe0\x40\x14\xe0\x34\xe0\x54\xe0\x35\xe0\x45"
+            "\xe0\x16\xe0\x30\xf1\x24\xe0\x16\xe0\x12\x34\xd3\x23"
+            "\xd2\x53\xc3\x43\xc2\x63\xb2\x62\xb2\x83\x92\x82\x92"
+            "\xb3\x53\xa3\x53\xe6\xe0\x26\x64" }  },
+      /* --- pixel bitmap for cmr450 char#28 (noname) --- */
+      {  28,93418,                      /* character number, location */
+         33, 2,   -6, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   39, 3,185, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\xa1\x20\xe0\x91\xe0\xb2\xd7\x51\xc3\x53\x21"
+            "\xb3\x94\xa3\xb3\x93\xc4\x73\xd1\x13\x63\xc1\x23\x53"
+            "\xd1\x33\x34\xc1\x44\x24\xb2\x44\x23\xc1\x63\x1f\x14"
+            "\xb1\x74\x0f\x14\xa1\x84\x04\x91\x94\x0f\x14\x81\xa4"
+            "\x0f\x14\x71\xb4\x13\x61\xc3\x24\x42\xb4\x33\x41\xc3"
+            "\x43\x31\xd3\x53\x21\xc3\x74\xc3\x93\xc2\xb3\x93\xb1"
+            "\x14\x54\xc1\x47\xe1\xe0\xb2\xe0\xb1\xe0\x90\xf1\x21"
+            "\xe0\xa3" }  },
+      /* --- pixel bitmap for cmr450 char#29 \AE --- */
+      {  29,95364,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 52,   43, 3,287, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xee\x0e\x07\x30\xe0\x52\x27\xc7\xe0\x82\x36\xe0"
+            "\x14\xe0\x73\x36\xe0\x24\x20\xf1\xe0\x42\x46\xe0\x33"
+            "\x20\xf2\xe0\x32\x56\xe0\x42\x20\xe0\x22\x66\xe0\x42"
+            "\x20\xf1\xe0\x22\x66\xe0\x52\x10\xe0\x12\x76\xe0\x52"
+            "\x10\xf1\xe0\x12\x76\xa2\xa0\xf1\xe2\x86\xa2\xa0\xd3"
+            "\x86\xa2\xe0\x92\x96\x93\xe0\x92\x96\x84\xa0\xf1\xce"
+            "\x0e\x02\xa0\xc2\xa6\x84\xe0\x72\xb6\x93\xa0\xf1\xb2"
+            "\xb6\xa2\xa0\xf2\xa2\xc6\xa2\x82\xf2\x92\xd6\xe0\x52"
+            "\x10\x82\xe6\xe0\x52\x92\xe6\xe0\x43\x83\xe6\xe0\x42"
+            "\x20\xf1\x72\xe0\x16\xe0\x33\x20\x63\xe0\x16\xe0\x24"
+            "\x74\xe0\x16\xe0\x15\x58\xc7\xc7\x3f\x1d\x6e\x0e\x02"
+            "\x32" }  },
+      /* --- pixel bitmap for cmr450 char#30 \OE --- */
+      {  30,97262,                      /* character number, location */
+         44, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 57,   45, 3,363, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x39\xe0\xe0\xe0\x34\x6e\x0e\x02\xe4\xbe\x0e\xd4"
+            "\xd6\xe7\xb5\xe6\xe0\x34\xa5\xe0\x16\xe0\x44\x85\xe0"
+            "\x35\xe0\x53\x75\xe0\x45\xe0\x53\x74\xe0\x55\xe0\x62"
+            "\x65\xe0\x55\xe0\x62\x20\xf1\x35\xe0\x65\xe0\x62\x20"
+            "\x26\xe0\x65\xe0\x72\x35\xe0\x75\xe0\x72\x26\xe0\x75"
+            "\xd2\x62\x26\xe0\x75\xd2\x90\xf1\x15\xe0\x85\xd2\x9f"
+            "\x16\xe0\x85\xc3\x96\xe0\x85\xa5\x9f\x16\xe0\x8e\x06"
+            "\x96\xe0\x85\xa5\x9f\x16\xe0\x85\xc3\x96\xe0\x85\xd2"
+            "\x97\xe0\x75\xd2\x90\xf1\x16\xe0\x75\xd2\x72\x16\xe0"
+            "\x75\xe0\x82\xf1\x26\xe0\x65\xe0\x72\x10\x35\xe0\x65"
+            "\xe0\x72\x46\xe0\x55\xe0\x72\x55\xe0\x55\xe0\x63\x65"
+            "\xe0\x45\xe0\x62\x75\xe0\x45\xe0\x53\x85\xe0\x35\xe0"
+            "\x53\x95\xe0\x16\xe0\x44\xa5\xe6\xe0\x26\xc4\xd6\xe7"
+            "\xe5\xae\x0e\xe0\x34\x6e\x0e\x02\xe0\x69\xe0\xe0\x30" }  },
+      /* --- pixel bitmap for cmr450 char#31 (noname) --- */
+      {  31,98414,                      /* character number, location */
+         46, 3,   -3, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   49, 3,355, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x91\xe0\xe0\xc2\xe0\x78\xb1\xe0\x53\x83\x71"
+            "\xe0\x34\xc4\x31\xe0\x33\xe0\x23\x21\xe0\x14\xe0\x44"
+            "\xe0\x14\xe0\x64\xd4\xe0\x75\xb5\xe0\x76\xa4\xe0\x71"
+            "\x24\x94\xe0\x72\x34\x75\xe0\x71\x45\x65\xe0\x61\x55"
+            "\x55\xe0\x62\x65\x45\xe0\x61\x75\x36\xe0\x51\x86\x26"
+            "\xe0\x41\x96\x25\xe0\x51\xa5\x25\xe0\x41\xb5\x16\xe0"
+            "\x31\xcc\xe0\x22\xcc\xe0\x21\xdc\xe0\x11\xec\xe2\xec"
+            "\xe1\xe0\x1c\xd1\xe0\x2c\xc2\xe0\x2c\xc1\xe0\x3c\xb1"
+            "\xe0\x46\xf1\x15\xa1\xe0\x55\x10\x16\x81\xe0\x56\x35"
+            "\x71\xe0\x65\x45\x62\xe0\x65\x54\x61\xe0\x74\x65\x41"
+            "\xe0\x75\x74\x32\xe0\x74\x94\x21\xe0\x74\xa4\x11\xe0"
+            "\x84\xb5\xe0\x74\xd4\xe0\x64\xe0\x14\xe0\x44\xe0\x11"
+            "\x23\xe0\x23\xe0\x31\x34\xc4\xe0\x31\x64\x84\xe0\x41"
+            "\xb8\xe0\x72\xe0\xe0\xc1\xe0\xe0\x90" }  },
+      /* --- pixel bitmap for cmr450 char#32 (noname) --- */
+      {  32,118254,                     /* character number, location */
+         24, 1,   18, 1,      /* topleft row,col, and botleft row,col */
+          { 14,    6, 3,13, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb3\x95\x66\x56\x65\x93\xa0" }  },
+      /* --- pixel bitmap for cmr450 char#33 ! --- */
+      {  33,99247,                      /* character number, location */
+         44, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          {  7,   44, 3,41, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x35\x1f\x67\xfa\x15\x10\xf9\x23\x20\x32\x20\xf5"
+            "\x70\x23\x35\x1f\x27\x15\x33\x23" }  },
+      /* --- pixel bitmap for cmr450 char#34 " --- */
+      {  34,129985,                     /* character number, location */
+         43, 2,   24, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   19, 3,73, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x93\x45\x75\x27\x57\x1f\x18\x48\x15\x11\x55\x11"
+            "\x23\x21\x63\x21\xf2\x71\xb1\xf2\x61\xb1\x10\xf1\x51"
+            "\xb1\x20\x41\xb1\x61\xb1\x61\xb1\x61\xb1\x6e" }  },
+      /* --- pixel bitmap for cmr450 char#35 # --- */
+      {  35,100809,                     /* character number, location */
+         43, 3,  -12, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   55, 3,231, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x73\xc3\x70\xe0\x64\xb4\x70\xf2\xe0\x63\xc3"
+            "\x80\xe0\x54\xb4\x80\xf1\xe0\x53\xc3\x90\xe0\x44\xb4"
+            "\x90\xf2\xe0\x43\xc3\xa0\xe0\x34\xb4\xa0\xf2\xe0\x33"
+            "\xc3\xb0\xe0\x24\xb4\xbf\x2e\x0e\x0e\x04\xe0\x13\xc3"
+            "\xe0\xd4\xb4\xd0\xf6\xe3\xc3\xe0\xd4\xb4\xe0\xd3\xc3"
+            "\xe0\x1f\x2e\x0e\x0e\x04\xb4\xb4\xe0\x20\xf2\xb3\xc3"
+            "\xe0\x30\xa4\xb4\xe0\x30\xf2\xa3\xc3\xe0\x40\x94\xb4"
+            "\xe0\x40\xf1\x93\xc3\xe0\x50\x84\xb4\xe0\x50\xf2\x83"
+            "\xc3\xe0\x60\x74\xb4\xe0\x60\xf2\x73\xc3\xe0\x76" }  },
+      /* --- pixel bitmap for cmr450 char#36 $ --- */
+      {  36,83650,                      /* character number, location */
+         47, 3,   -3, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   50, 3,205, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xc2\xb0\x98\xe0\x1c\xb4\x32\x25\x83\x52\x53\x62"
+            "\x72\x63\x43\x72\x73\x32\x82\x82\x22\x92\x82\x22\x92"
+            "\x77\x92\x65\x0f\x23\x92\x56\x04\x82\x64\x14\x82\xb5"
+            "\x72\xc6\x52\xc8\x32\xdc\xed\xde\xce\x01\xbe\x01\xce"
+            "\xe0\x1b\xe2\x27\xe2\x46\xd2\x55\xd2\x65\xc2\x74\x14"
+            "\x72\x74\x0f\x26\x62\x83\x05\x72\x87\x82\x86\x92\x82"
+            "\x22\x92\x73\x22\x92\x72\x42\x82\x63\x43\x72\x53\x63"
+            "\x62\x43\x85\x32\x24\xbc\xe0\x27\x90\xf1\xc2\xb2" }  },
+      /* --- pixel bitmap for cmr450 char#37 % --- */
+      {  37,102182,                     /* character number, location */
+         47, 3,   -3, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   50, 3,373, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe0\xc2\xb3\x32\xe0\xa3\xa2\x71\xe0\x84\x93\x82"
+            "\xe0\x54\x93\x93\xe0\x34\xa3\xa1\x12\xd6\x94\xa2\x24"
+            "\x54\x14\xa3\xb2\x65\x53\xb3\xc1\xe0\x14\xa4\xc2\xd4"
+            "\xb4\xc2\xd3\xc4\xc2\xc4\xc4\xc2\xb4\xd4\xc2\xb3\xe4"
+            "\xc2\xa4\xe4\xc2\x94\xe0\x14\xc2\x93\xe0\x33\xc1\x94"
+            "\xe0\x33\xb2\x84\xe0\x44\xa2\x83\xe0\x63\xa1\x84\xe0"
+            "\x63\x92\x74\xe0\x83\x81\x83\xe0\xa2\x71\x84\xe0\xb3"
+            "\x32\x84\xe0\xe5\x93\xb5\xe0\xc4\x93\x41\xe0\xb3\x92"
+            "\x71\xe0\x94\x83\x81\xe0\x74\x83\x92\xe0\x63\x93\xa2"
+            "\xe0\x44\x84\xa2\xe0\x34\x93\xb2\xe0\x33\xa3\xc2\xe0"
+            "\x14\x94\xc2\xe4\xa4\xc2\xe3\xb4\xc2\xd4\xb4\xc2\xc4"
+            "\xc4\xc2\xc3\xd4\xc2\xb4\xd4\xc2\xa4\xe0\x13\xc2\xa3"
+            "\xe0\x23\xb2\xa4\xe0\x24\xa2\x94\xe0\x43\xa2\x93\xe0"
+            "\x53\x92\x94\xe0\x63\x81\x94\xe0\x82\x71\xa3\xe0\xa3"
+            "\x41\xc2\xe0\xc5\x60" }  },
+      /* --- pixel bitmap for cmr450 char#38 & --- */
+      {  38,85068,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   45, 3,309, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd4\xe0\xe0\x82\x42\xe0\xe0\x52\x61\xe0\xe0\x43\x62"
+            "\xe0\xe0\x23\x81\xe0\xe0\x23\x82\xe0\x70\xf3\x74\x82"
+            "\xe0\x70\x74\x81\xe0\xe0\x14\x72\xe0\xe0\x14\x71\xe0"
+            "\xe0\x24\x62\xe0\xe0\x24\x61\xe0\xe0\x44\x41\xe0\xe0"
+            "\x54\x31\xe0\xc0\xf1\x84\x21\xde\x95\xe0\x37\xd4\xe0"
+            "\x54\xe0\x15\xe0\x43\xe0\x34\xe0\x42\xe0\x35\xe0\x42"
+            "\xe0\x21\x24\xe0\x22\xe0\x21\x35\xe0\x12\xe0\x11\x54"
+            "\xe2\xe0\x12\x55\xc2\xe0\x12\x74\xc2\xe0\x12\x75\xa2"
+            "\xe0\x12\x95\x92\xe3\xa4\x82\xe4\xb4\x62\xe0\x14\xb5"
+            "\x52\xe5\xc5\x32\xe0\x15\xd4\x22\xe0\x2f\x15\xe6\xe0"
+            "\x12\x06\xe5\xe0\x12\x15\xe0\x15\xd2\x26\xc8\xc2\x36"
+            "\xa2\x45\x83\x56\x64\x65\x63\x8c\xab\xb8\xe7\x60" }  },
+      /* --- pixel bitmap for cmr450 char#39 ' --- */
+      {  39,103046,                     /* character number, location */
+         43, 5,   24, 5,      /* topleft row,col, and botleft row,col */
+          {  8,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\x3e\x7f\xff\xff\xbe\x9c\x80\x80\x80\x40\x40\x40"
+            "\x20\x20\x10\x08\x04\x02" }  },
+      /* --- pixel bitmap for cmr450 char#40 ( --- */
+      {  40,103650,                     /* character number, location */
+         47, 7,  -16, 7,      /* topleft row,col, and botleft row,col */
+          { 14,   63, 3,118, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd1\xc1\xc1\xc1\xc2\xb2\x40\xf1\x72\x50\x62\xb3\xb2"
+            "\xb3\xb2\x80\xf1\x33\x80\x32\x90\xf2\x23\x90\x14\x90"
+            "\xf3\x13\xaf\xe4\xa0\xf3\x13\xa0\x14\x90\xf2\x23\x90"
+            "\x32\x90\xf1\x33\x80\x42\xc3\xc2\xc3\xc2\x60\xf1\x72"
+            "\x50\x82\xd2\xd1\xe1\xe1\xe1" }  },
+      /* --- pixel bitmap for cmr450 char#41 ) --- */
+      {  41,104339,                     /* character number, location */
+         47, 3,  -16, 3,      /* topleft row,col, and botleft row,col */
+          { 14,   63, 3,119, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x01\xe1\xe1\xe1\xd2\xd2\x80\xf1\x52\x70\x62\xc3\xc2"
+            "\xc3\xc2\x40\xf1\x83\x30\x92\x30\xf2\x93\x20\x94\x10"
+            "\xf3\xa3\x10\xfe\xa4\xf3\xa3\x10\x94\x10\xf2\x93\x20"
+            "\x92\x30\xf1\x83\x30\x82\xb3\xb2\xb3\xb2\x60\xf1\x52"
+            "\x70\x42\xb2\xc1\xc1\xc1\xc1\xd2" }  },
+      /* --- pixel bitmap for cmr450 char#42 * --- */
+      {  42,105052,                     /* character number, location */
+         47, 4,   20, 4,      /* topleft row,col, and botleft row,col */
+          { 23,   27, 3,83, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf5\xa3\xa3\x73\x77\x62\x79\x61\x65\x25\x41\x45\x64"
+            "\x31\x34\xa4\x11\x14\xe7\xe0\x43\xe0\x47\xe4\x11\x14"
+            "\xa4\x31\x34\x65\x41\x45\x25\x61\x69\x62\x77\x73\x73"
+            "\xf5\xa3\xa1" }  },
+      /* --- pixel bitmap for cmr450 char#43 + --- */
+      {  43,105810,                     /* character number, location */
+         36, 3,   -5, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   41, 2,13, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x12\x14\x03\x13\xff\x02\x2a\xff\x12\x14\x03\x13" }  },
+      /* --- pixel bitmap for cmr450 char#44 (noname) --- */
+      {  44,106447,                     /* character number, location */
+          7, 5,  -12, 5,      /* topleft row,col, and botleft row,col */
+          {  8,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\x3e\x7f\xff\xff\xbe\x9c\x80\x80\x80\x40\x40\x40"
+            "\x20\x20\x10\x08\x04\x02" }  },
+      /* --- pixel bitmap for cmr450 char#45 (noname) --- */
+      {  45,130548,                     /* character number, location */
+         15, 1,   12, 1,      /* topleft row,col, and botleft row,col */
+          { 16,    3, 3, 6, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x02" }  },
+      /* --- pixel bitmap for cmr450 char#46 (noname) --- */
+      {  46,106942,                     /* character number, location */
+          7, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          {  7,    7, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\xdf\xff\xff\xf7\x71\x00" }  },
+      /* --- pixel bitmap for cmr450 char#47 / --- */
+      {  47,107458,                     /* character number, location */
+         47, 3,  -16, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   63, 3,257, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x92\xe0\x83\xe0\x74\xf1\xe0\x73\x10\xe0\x64\x10"
+            "\xf1\xe0\x63\x20\xe0\x54\x20\xf1\xe0\x53\x30\xe0\x44"
+            "\xe0\x73\xe0\x74\x40\xf1\xe0\x33\x50\xe0\x24\x50\xf1"
+            "\xe0\x23\x60\xe0\x14\xe0\x73\xe0\x74\x70\xf1\xe3\x80"
+            "\xd4\x80\xf1\xd3\x90\xc4\x90\xf1\xc3\xa0\xb4\xe0\x73"
+            "\xe0\x74\xb0\xf1\xa3\xc0\x94\xc0\xf1\x93\xd0\x84\xd0"
+            "\xf1\x83\xe0\x74\xe0\x73\xe0\x74\xe0\x10\xf1\x63\xe0"
+            "\x20\x54\xe0\x20\xf1\x53\xe0\x30\x44\xe0\x73\xe0\x74"
+            "\xe0\x40\xf1\x33\xe0\x50\x24\xe0\x50\xf1\x23\xe0\x60"
+            "\x14\xe0\x60\xf1\x13\xe0\x74\xe0\x7f\x13\xe0\x82" }  },
+      /* --- pixel bitmap for cmr450 char#48 0 --- */
+      {  48,73365,                      /* character number, location */
+         41, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   42, 3,131, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa7\xe0\x43\x53\xe3\x93\xb3\xb3\x93\xd3\x74\xd4\x63"
+            "\xe0\x13\x30\xf1\x24\xe0\x14\x20\x15\xe0\x15\x10\xf2"
+            "\x14\xe0\x34\x1f\xe5\xe0\x35\x05\xe0\x35\xf2\x14\xe0"
+            "\x34\x10\x15\xe0\x15\x10\xf1\x24\xe0\x14\x20\x33\xe0"
+            "\x13\x64\xd4\x73\xd3\x93\xb3\xb3\x93\xd4\x54\xe0\x37"
+            "\xa0" }  },
+      /* --- pixel bitmap for cmr450 char#49 1 --- */
+      {  49,74251,                      /* character number, location */
+         41, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 21,   41, 3,46, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb2\xe0\x43\xe0\x25\xd8\x8d\x85\x35\x80\xfe\x85\x80"
+            "\xfe\x85\x80\xf1\x85\x80\x77\x7f\x1e\x07" }  },
+      /* --- pixel bitmap for cmr450 char#50 2 --- */
+      {  50,75276,                      /* character number, location */
+         41, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   41, 3,165, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x88\xe0\x1c\xb4\x66\x83\xa5\x62\xd5\x52\xe5\x32\xe0"
+            "\x16\x24\xe5\x16\xdd\xc6\x0f\x27\xd5\x15\xd6\xe0\x56"
+            "\xf1\xe0\x55\x10\xf1\xe0\x45\x20\xe0\x35\xe0\x64\xe0"
+            "\x64\xe0\x64\xe0\x73\xe0\x73\xe0\x73\xe0\x73\xe0\x73"
+            "\xe0\x73\xe0\x73\xe0\x73\xc2\x72\xe2\x62\xe0\x12\x61"
+            "\xe0\x12\x61\xe0\x22\x51\xe0\x32\x4e\x07\x3e\x08\x2e"
+            "\x08\x2f\x1e\x09\x22" }  },
+      /* --- pixel bitmap for cmr450 char#51 3 --- */
+      {  51,76384,                      /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x88\xe0\x1d\xa4\x75\x83\xb4\x63\xd4\x54\xc5\x36\xb6"
+            "\x10\xf2\x17\xb5\x10\x25\xb6\x43\xc6\x10\xf1\xe0\x45"
+            "\x20\xe0\x35\xe0\x64\xe0\x64\xe0\x63\xe0\x63\xe0\x29"
+            "\xe0\x94\xe0\x94\xe0\x84\xe0\x84\xe0\x75\xe0\x66\xe0"
+            "\x65\x10\xf1\xe0\x56\x24\xd6\x16\xc6\x0f\x18\xb6\x08"
+            "\xb5\x18\xa6\x17\xb5\x35\xc5\x42\xd5\x63\xa5\x84\x75"
+            "\xad\xe0\x18\x99" }  },
+      /* --- pixel bitmap for cmr450 char#52 4 --- */
+      {  52,77388,                      /* character number, location */
+         42, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   42, 3,162, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x52\x60\xf1\xe0\x43\x60\xe0\x34\x60\xf1\xe0\x25"
+            "\x60\xe0\x16\xe0\x67\xe0\x61\x15\xe0\x52\x15\xe0\x42"
+            "\x25\xe0\x41\x35\xe0\x32\x35\xe0\x22\x45\xe0\x21\x55"
+            "\xe0\x12\x55\xe2\x65\xe1\x75\xd2\x75\xc2\x85\xc1\x95"
+            "\xb2\x95\xa2\xa5\xa1\xb5\x92\xb5\x82\xc5\x81\xd5\x72"
+            "\xd5\x62\xe5\x6f\x1e\x0d\xf7\xe0\x25\x60\xe0\x17\x50"
+            "\xf1\xae\x03" }  },
+      /* --- pixel bitmap for cmr450 char#53 5 --- */
+      {  53,78504,                      /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,147, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x32\xe0\x12\x65\x94\x7e\x03\x8e\x02\x9e\x01\xad\xc2"
+            "\x26\xc0\xf7\x32\xe0\x60\x32\x56\xc2\x32\x53\xa2\x12"
+            "\x93\x83\xb4\x72\xd4\x62\xd5\xe0\x74\x20\xf1\xe0\x55"
+            "\x10\xf2\xe0\x56\x31\xe0\x16\x15\xdc\xd6\x0f\x17\xc6"
+            "\x06\xd5\x15\xe5\x10\xf1\x12\xe0\x15\x20\x22\xd5\x53"
+            "\xc4\x73\xa4\x94\x65\xcb\xe0\x27\xa5" }  },
+      /* --- pixel bitmap for cmr450 char#54 6 --- */
+      {  54,79482,                      /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd6\xe0\x2b\xd4\x63\xa4\xa2\x84\x95\x64\x96\x63\xa6"
+            "\x53\xb6\x44\xb6\x43\xd4\x20\xf1\x24\xe0\x50\x15\xe0"
+            "\x50\xf1\x14\xe0\x60\x14\x56\x95\x41\x62\x75\x31\x83"
+            "\x55\x21\xa3\x45\x11\xc3\x3f\x16\xd4\x26\xe4\x15\xe0"
+            "\x14\x1f\x35\xe0\x15\xf3\x14\xe0\x15\xf1\x24\xe4\x10"
+            "\x24\xd5\x43\xd4\x54\xc3\x73\xb4\x83\x94\xa4\x55\xcb"
+            "\xe0\x27\x93" }  },
+      /* --- pixel bitmap for cmr450 char#55 7 --- */
+      {  55,80488,                      /* character number, location */
+         42, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 27,   43, 3,137, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x22\xe0\xb4\xe0\x70\xf1\x2e\x0b\x2e\x0a\x2e\x0b\x2e"
+            "\x0a\x33\xe0\x42\x30\xf1\x12\xe0\x42\x42\xe0\x42\x52"
+            "\xe0\x32\x62\xe0\x22\xe0\xb2\xe0\xa2\x80\xf1\xe0\x22"
+            "\x90\xe0\x12\xe0\xa3\xe0\xa2\xb0\xf1\xd3\xb0\xf1\xc3"
+            "\xc0\xf1\xb4\xc0\xa5\xc0\xf1\xa4\xd0\xf4\x95\xd0\xf7"
+            "\x86\xd0\x94\xe4" }  },
+      /* --- pixel bitmap for cmr450 char#56 8 --- */
+      {  56,81466,                      /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x97\xe0\x2c\xb4\x74\x93\xb3\x72\xe3\x53\xe0\x13\x42"
+            "\xe0\x24\x10\xf2\x13\xe0\x33\x10\x14\xe0\x23\x25\xe0"
+            "\x13\x26\xd3\x47\xb2\x58\x93\x69\x63\x89\x42\xbd\xda"
+            "\xe0\x2b\xe0\x2b\xc2\x1b\x92\x5a\x72\x7a\x52\xa8\x43"
+            "\xc7\x23\xe6\x23\xe0\x25\x0f\x13\xe0\x44\x0f\x23\xe0"
+            "\x53\x03\xe0\x52\x23\xe0\x42\x23\xe0\x33\x33\xe0\x22"
+            "\x44\xe2\x64\xb3\x94\x74\xbc\xe0\x27\x92" }  },
+      /* --- pixel bitmap for cmr450 char#57 9 --- */
+      {  57,82464,                      /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x97\xe0\x2b\xd4\x54\xa4\x93\x93\xb3\x73\xc4\x54\xd3"
+            "\x45\xd4\x34\xe4\x34\xe5\x1f\x35\xe0\x14\x1f\x35\xe0"
+            "\x15\x14\xe0\x15\x14\xe6\xf1\x24\xd6\x33\xc1\x15\x43"
+            "\xa1\x25\x53\x81\x35\x72\x61\x45\x96\x54\x10\xf1\xe0"
+            "\x64\x10\xe0\x55\x10\xf1\xe0\x54\x20\x24\xd4\x36\xb4"
+            "\x46\xb3\x56\xa4\x56\xa3\x65\xa3\x82\xb3\xa3\x74\xcb"
+            "\xe0\x27\xc4" }  },
+      /* --- pixel bitmap for cmr450 char#58 : --- */
+      {  58,108130,                     /* character number, location */
+         27, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          {  7,   27, 3,31, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x35\x1f\x27\x15\x33\x20\xfc\x70\x23\x35\x1f\x27"
+            "\x15\x33\x23" }  },
+      /* --- pixel bitmap for cmr450 char#59 ; --- */
+      {  59,108813,                     /* character number, location */
+         27, 5,  -12, 5,      /* topleft row,col, and botleft row,col */
+          {  7,   39, 3,57, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x35\x1f\x27\x15\x33\x20\xfc\x70\x23\x35\x16\x1f"
+            "\x17\x16\x23\x11\xf3\x61\xf2\x51\x10\xf1\x41\x20\x31"
+            "\x51\x51\x50" }  },
+      /* --- pixel bitmap for cmr450 char#60 (noname) --- */
+      {  60,99911,                      /* character number, location */
+         31, 5,  -13, 5,      /* topleft row,col, and botleft row,col */
+          {  7,   44, 3,41, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x35\x1f\x27\x15\x33\x20\xf5\x70\x32\x20\xf9\x23"
+            "\x20\xfa\x15\x1f\x67\x15\x33\x23" }  },
+      /* --- pixel bitmap for cmr450 char#61 = --- */
+      {  61,109527,                     /* character number, location */
+         24, 3,    7, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   17, 2,10, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x2a\xff\x0a\x2a\xff\x02\x2a" }  },
+      /* --- pixel bitmap for cmr450 char#62 (noname) --- */
+      {  62,87189,                      /* character number, location */
+         31, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   44, 3,115, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x93\xe0\x55\xa0\xf2\x77\x90\x85\xe0\x53\xb0\xf5\xe0"
+            "\x90\xf3\xa2\xb0\xf4\x92\xc0\x83\xc0\xf1\x82\xd0\x73"
+            "\xd0\xf1\x63\xe0\x53\xe0\x53\xe0\x45\xe0\x44\xe0\x44"
+            "\xe0\x45\xd4\x1f\x35\xc6\x05\xd4\x24\xe0\x12\x34\xd2"
+            "\x44\xb3\x74\x73\xb9\x84" }  },
+      /* --- pixel bitmap for cmr450 char#63 ? --- */
+      {  63,86185,                      /* character number, location */
+         44, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   44, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x79\xb3\x75\x72\xb4\x52\xd4\x32\xe0\x14\x24\xd4\x1f"
+            "\x36\xc5\x14\xd4\xe0\x45\xe0\x44\xe0\x44\xe0\x44\xe0"
+            "\x43\xe0\x53\xe0\x62\xe0\x63\xe0\x53\x90\xf1\xb2\xa0"
+            "\xf8\xa2\xb0\xf5\xe0\x90\x93\xe0\x55\xa0\xf2\x77\x90"
+            "\x85\xe0\x53\xb0" }  },
+      /* --- pixel bitmap for cmr450 char#64 @ --- */
+      {  64,110705,                     /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   45, 3,291, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\xe0\x33\x83\xe0\xc2\xe2\xe0\x82\xe0\x42"
+            "\xe0\x51\xe0\x81\xe0\x22\xe0\xa2\xd2\xe0\xc2\xc1\xe0"
+            "\xe1\xb1\xe0\xe0\x21\x92\xc6\xc2\x72\xb3\x52\xb2\x62"
+            "\x93\x82\xa2\x52\x93\xb1\xa2\x42\x83\xc2\x92\x32\x84"
+            "\xd5\x62\x22\x83\xe0\x14\x62\x10\xf1\x12\x74\xe0\x14"
+            "\x62\x12\x83\xe0\x24\x72\x0f\x62\x74\xe0\x24\x72\x02"
+            "\x83\xe0\x24\x72\xf1\x12\x74\xe0\x14\x72\x12\x83\xe0"
+            "\x14\x71\x22\x84\xd5\x62\x32\x83\xc6\x62\x32\x93\xb1"
+            "\x14\x61\x52\x93\x82\x33\x52\x52\xb3\x52\x53\x32\x72"
+            "\xc6\x85\xa1\xe0\xe0\xe1\xe0\xe0\xd2\xe0\xe0\xd2\xe0"
+            "\xe0\xe1\xe0\xe4\xa2\xe0\x95\xe2\xe0\x45\xe0\x53\xa7"
+            "\xe0\xbb\xe3" }  },
+      /* --- pixel bitmap for cmr450 char#65 A --- */
+      {  65, 1092,                      /* character number, location */
+         45, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   45, 3,226, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x63\xe0\x60\xf2\xe0\x55\xe0\x50\xf1\xe0\x47"
+            "\xe0\x40\xe0\x39\xe0\x30\xf1\xe0\x32\x16\xe0\x30\xe0"
+            "\x23\x17\xe0\x20\xf1\xe0\x22\x36\xe0\x20\xe0\x13\x37"
+            "\xe0\x10\xf1\xe0\x12\x56\xe0\x10\xe2\x67\xe0\xf1\xe2"
+            "\x76\xe0\xd2\x87\xd0\xf1\xd2\x96\xd0\xf2\xc2\xb6\xc0"
+            "\xf2\xb2\xd6\xb0\xf1\xae\x09\xa0\xa2\xe0\x16\xa0\xf1"
+            "\x92\xe0\x36\x90\x83\xe0\x37\x80\xf1\x82\xe0\x56\x80"
+            "\x73\xe0\x57\x70\xf1\x72\xe0\x76\x70\x63\xe0\x77\xb4"
+            "\xe0\x86\xa7\xe0\x58\x5f\x1e\xbe\x04" }  },
+      /* --- pixel bitmap for cmr450 char#66 B --- */
+      {  66, 2564,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 39,   43, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0d\xce\x0e\x02\xe7\xe6\xd6\xe0\x25\xc6\xe0\x35"
+            "\xb6\xe0\x45\xa6\xe0\x46\x96\xe0\x55\x30\xf5\x66\xe0"
+            "\x56\x20\x66\xe0\x55\x96\xe0\x45\xa6\xe0\x36\xa6\xe0"
+            "\x26\xb6\xe0\x15\xd6\xd6\xee\x09\xe0\x26\xe6\xd6\xe0"
+            "\x26\xb6\xe0\x45\xa6\xe0\x55\x96\xe0\x56\x20\xf1\x66"
+            "\xe0\x66\x10\xf5\x66\xe0\x76\x66\xe0\x75\x76\xe0\x66"
+            "\x76\xe0\x65\x86\xe0\x56\x86\xe0\x46\x96\xe0\x27\x97"
+            "\xe8\x5e\x0e\x04\x7e\x0e\x01\xa6" }  },
+      /* --- pixel bitmap for cmr450 char#67 C --- */
+      {  67, 3597,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   45, 3,221, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x48\xc1\xee\x01\x82\xc7\x84\x53\xa6\xd3\x43\x95"
+            "\xe0\x32\x24\x85\xe0\x57\x75\xe0\x76\x65\xe0\x95\x55"
+            "\xe0\xa5\xf1\x45\xe0\xc4\x35\xe0\xe3\x26\xe0\xe3\x25"
+            "\xe0\xe0\x13\xf2\x16\xe0\xe0\x22\x15\xe0\xe0\x5f\x86"
+            "\xe0\xe0\x50\x15\xe0\xe0\x66\xe0\xe0\x40\xf1\x16\xe0"
+            "\xe0\x22\x25\xe0\xe0\x22\x26\xe0\xe0\x12\x35\xe0\xe2"
+            "\x10\xf1\x45\xe0\xd2\x10\x55\xe0\xb2\x85\xe0\x93\x95"
+            "\xe0\x82\xb5\xe0\x62\xd5\xe0\x33\xe0\x16\xe3\xe0\x47"
+            "\x84\xe0\x8e\x01\xe0\xe8\xde" }  },
+      /* --- pixel bitmap for cmr450 char#68 D --- */
+      {  68, 4851,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   43, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\xe0\x1e\x0e\x02\xe0\x47\xe6\xe0\x36\xe0\x26"
+            "\xe0\x16\xe0\x45\xe6\xe0\x55\xd6\xe0\x74\xc6\xe0\x75"
+            "\xb6\xe0\x85\x40\xf1\x66\xe0\x95\x30\xf1\x66\xe0\xa5"
+            "\x20\x66\xe0\xa6\x10\xf2\x66\xe0\xb5\x10\xf9\x66\xe0"
+            "\xb6\xf1\x66\xe0\xb5\x10\x66\xe0\xa6\x10\xf1\x66\xe0"
+            "\xa5\x20\xf1\x66\xe0\x95\x30\x66\xe0\x85\xa6\xe0\x84"
+            "\xb6\xe0\x75\xb6\xe0\x65\xc6\xe0\x45\xe6\xe0\x35\xe7"
+            "\xe7\xae\x0e\x03\xce\x0e\xe0\x13" }  },
+      /* --- pixel bitmap for cmr450 char#69 E --- */
+      {  69, 6392,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   43, 3,199, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x0e\x07\x30\x57\xe0\x27\x96\xe0\x45\x96\xe0"
+            "\x64\x20\xf1\x66\xe0\x73\x20\xf3\x66\xe0\x82\x20\xf1"
+            "\x66\xe0\x92\x10\x66\xc2\x92\x10\xf2\x66\xc2\xc0\xf1"
+            "\x66\xb3\xc0\x66\x95\xc0\xf1\x6e\x06\xc0\x66\x95\xc0"
+            "\xf1\x66\xb3\xc0\xf1\x66\xc2\xc0\xf1\x66\xc2\xa2\x66"
+            "\xe0\xa2\xf2\x66\xe0\x92\x10\xf1\x66\xe0\x83\x10\x66"
+            "\xe0\x82\x20\xf1\x66\xe0\x73\x20\x66\xe0\x64\x86\xe0"
+            "\x46\x77\xe0\x18\x3f\x1e\x0e\x07\x30" }  },
+      /* --- pixel bitmap for cmr450 char#70 F --- */
+      {  70, 7793,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 36,   43, 3,137, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x0e\x06\x20\x57\xe0\x17\x86\xe0\x44\x86\xe0"
+            "\x54\x10\xf1\x66\xe0\x63\x10\xf3\x66\xe0\x72\x10\xf1"
+            "\x66\xe0\x82\x66\xc2\x82\xf2\x66\xc2\xa0\xf1\x66\xb3"
+            "\xa0\x66\x95\xa0\xf1\x6e\x06\xa0\x66\x95\xa0\xf1\x66"
+            "\xb3\xa0\xf3\x66\xc2\xa0\xfa\x66\xe0\xa0\x58\xe0\x9f"
+            "\x1e\x06\xe0\x26" }  },
+      /* --- pixel bitmap for cmr450 char#71 G --- */
+      {  71, 9048,                      /* character number, location */
+         44, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 42,   45, 3,249, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xc1\xe0\x4e\x82\xe0\x27\x74\x53\xe6\xc3\x43"
+            "\xd5\xe0\x22\x24\xc4\xe0\x57\xb4\xe0\x76\xa4\xe0\x95"
+            "\x95\xe0\x95\x85\xe0\xb4\x75\xe0\xc4\x75\xe0\xd3\x66"
+            "\xe0\xd3\x65\xe0\xe3\x40\xf1\x16\xe0\xe0\x12\x40\x15"
+            "\xe0\xe0\x22\x55\xe0\xe0\x8f\x76\xe0\xe0\x86\xe0\x4e"
+            "\x04\x15\xe0\x4e\x04\x16\xe0\xa7\x40\xf1\x16\xe0\xb6"
+            "\x40\x25\xe0\xb6\x66\xe0\xa6\x75\xe0\xa6\x76\xe0\x96"
+            "\x85\xe0\x96\x95\xe0\x86\xa5\xe0\x76\xb4\xe0\x76\xc5"
+            "\xe0\x47\xd5\xe0\x23\x14\xe6\xd3\x33\xe0\x27\x84\x52"
+            "\xe0\x4e\x01\x81\xe0\x79\xe0\x20" }  },
+      /* --- pixel bitmap for cmr450 char#72 H --- */
+      {  72,10397,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   43, 3,84, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x04\x7e\x04\x58\xe0\x38\x50\xfe\x66\xe0\x56"
+            "\x60\xf1\x66\xe0\x56\x60\xf1\x6e\x0e\x03\x60\xfe\x66"
+            "\xe0\x56\x60\xf2\x66\xe0\x56\x60\x58\xe0\x38\x5f\x1e"
+            "\x04\x7e\x04" }  },
+      /* --- pixel bitmap for cmr450 char#73 I --- */
+      {  73,11244,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   43, 3,36, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x04\x58\x50\xfe\x66\x60\xfe\x66\x60\xf6\x66"
+            "\x60\x58\x5f\x1e\x04" }  },
+      /* --- pixel bitmap for cmr450 char#74 J --- */
+      {  74,12124,                      /* character number, location */
+         43, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 28,   44, 3,71, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x9e\x05\xe0\x28\x40\xfe\xe0\x36\x50\xfd\xe0\x36"
+            "\x50\x24\xb6\x66\xa6\x5f\x28\x96\x58\x95\x76\x96\x75"
+            "\xa5\x92\xb5\xb2\x95\xd3\x64\xe0\x47\xe0" }  },
+      /* --- pixel bitmap for cmr450 char#75 K --- */
+      {  75,13411,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 44,   43, 3,280, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x04\xbe\x10\x58\xe0\x48\xb6\xe0\x65\xd6\xe0"
+            "\x63\xe0\x16\xe0\x53\xe0\x26\xe0\x43\xe0\x36\xe0\x33"
+            "\xe0\x46\xe0\x23\xe0\x56\xe0\x13\xe0\x66\xe3\xe0\x76"
+            "\xd3\xe0\x86\xc3\xe0\x96\xb3\xe0\xa6\xa3\xe0\xb6\x93"
+            "\xe0\xc6\x83\xe0\xd6\x74\xe0\xd6\x66\xe0\xc6\x58\xe0"
+            "\xb6\x49\xe0\xb6\x33\x26\xe0\xa6\x23\x37\xe0\x96\x13"
+            "\x56\xe0\x98\x86\xe0\x87\x97\xe0\x76\xb6\xe0\x76\xc6"
+            "\xe0\x66\xc7\xe0\x56\xd6\xe0\x56\xe6\xe0\x46\xe7\xe0"
+            "\x36\xe0\x16\xe0\x36\xe0\x26\xe0\x26\xe0\x27\xe0\x16"
+            "\xe0\x36\xe0\x16\xe0\x46\xe6\xe0\x47\xd6\xe0\x56\xd6"
+            "\xe0\x57\xb8\xe0\x3a\x4f\x1e\x04\x9e\x03" }  },
+      /* --- pixel bitmap for cmr450 char#76 L --- */
+      {  76,14514,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   43, 3,97, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x06\xe0\x58\xe0\x70\xfe\x66\xe0\x80\xf8\x66"
+            "\xe0\x80\xf2\x66\xe0\x62\x66\xe0\x53\xf2\x66\xe0\x52"
+            "\x10\xf1\x66\xe0\x43\x10\xf1\x66\xe0\x34\x10\x66\xe0"
+            "\x25\x76\xe6\x77\xc8\x2f\x1e\x0e\x04\x23" }  },
+      /* --- pixel bitmap for cmr450 char#77 M --- */
+      {  77,15928,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 51,   43, 3,218, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\xe0\xde\x0b\xe0\xbd\x58\xe0\xb8\xb7\xe0\xb7\x60"
+            "\xf2\x62\x15\xe0\x92\x15\x60\xf1\x62\x25\xe0\x72\x25"
+            "\x60\xf2\x62\x35\xe0\x52\x35\x60\xf2\x62\x45\xe0\x32"
+            "\x45\x60\xf1\x62\x55\xe0\x12\x55\x60\xf2\x62\x65\xd2"
+            "\x65\x60\xf2\x62\x75\xb2\x75\x60\xf2\x62\x85\x92\x85"
+            "\x60\xf1\x62\x95\x72\x95\x60\xf2\x62\xa5\x52\xa5\x60"
+            "\xf2\x62\xb5\x32\xb5\x60\xf1\x62\xc5\x12\xc5\x60\xf2"
+            "\x62\xd6\xd5\x60\x54\xd4\xe5\xa6\xc4\xd7\x5e\x84\x8e"
+            "\x0e\x03\x92\x9e\x03" }  },
+      /* --- pixel bitmap for cmr450 char#78 N --- */
+      {  78,17338,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   43, 3,291, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\xe0\x3e\x0d\xe0\x2e\x68\xe0\x48\x99\xe0\x54\xb2"
+            "\x16\xe0\x62\xc2\x17\xe0\x52\xc2\x27\xe0\x42\xc2\x36"
+            "\xe0\x42\xc2\x46\xe0\x32\xc2\x47\xe0\x22\xc2\x56\xe0"
+            "\x22\xc2\x66\xe0\x12\xc2\x67\xe2\xc2\x76\xe2\xc2\x86"
+            "\xd2\xc2\x87\xc2\xc2\x96\xc2\xc2\xa6\xb2\xc2\xa7\xa2"
+            "\xc2\xb7\x92\xc2\xc6\x92\xc2\xc7\x82\xc2\xd7\x72\xc2"
+            "\xe6\x72\xc2\xe0\x16\x62\xc2\xe0\x17\x52\xc2\xe0\x26"
+            "\x52\xc2\xe0\x36\x42\xc2\xe0\x37\x32\xc2\xe0\x46\x32"
+            "\xc2\xe0\x56\x22\xc2\xe0\x57\x12\xc2\xe0\x69\x60\xf1"
+            "\x62\xe0\x78\x60\x62\xe0\x87\xc2\xe0\x96\x60\xf1\x62"
+            "\xe0\xa5\x60\x54\xe0\xa4\x98\xe0\x93\x6e\xe0\x63\x6e"
+            "\xe0\x72\x60" }  },
+      /* --- pixel bitmap for cmr450 char#79 O --- */
+      {  79,18353,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   45, 3,215, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\xe0\x34\x64\xe0\xb4\xc4\xe0\x74\xe4\xe0"
+            "\x44\xe0\x44\xe0\x14\xe0\x64\xd4\xe0\x84\xb5\xe0\x85"
+            "\xa4\xe0\xa4\x95\xe0\xa5\x40\xf1\x35\xe0\xc5\x30\xf1"
+            "\x25\xe0\xe5\x20\xf1\x16\xe0\xe6\x10\xf1\x15\xe0\xe0"
+            "\x25\x1f\x96\xe0\xe0\x26\xf2\x16\xe0\xe6\x10\x25\xe0"
+            "\xe5\x46\xe0\xc6\x20\xf1\x35\xe0\xc5\x30\x45\xe0\xa5"
+            "\x94\xe0\xa4\xa5\xe0\x85\xb5\xe0\x65\xd5\xe0\x45\xe0"
+            "\x15\xe0\x25\xe0\x44\xe4\xe0\x74\xc4\xe0\xa5\x65\xe0"
+            "\xe0\x28\xe0\x32" }  },
+      /* --- pixel bitmap for cmr450 char#80 P --- */
+      {  80,19620,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 37,   43, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0c\xbe\x0e\x01\xd7\xd6\xc6\xe0\x16\xa6\xe0\x35"
+            "\x96\xe0\x45\x86\xe0\x46\x10\xf1\x66\xe0\x55\x10\xf4"
+            "\x66\xe0\x56\x66\xe0\x55\x76\xe0\x46\x10\xf1\x66\xe0"
+            "\x45\x20\x66\xe0\x35\x96\xe0\x15\xb6\xd6\xce\x08\x90"
+            "\xfe\x66\xe0\xb0\xf2\x66\xe0\xb0\x58\xe0\xaf\x1e\x04"
+            "\xe0\x56" }  },
+      /* --- pixel bitmap for cmr450 char#81 Q --- */
+      {  81,20719,                      /* character number, location */
+         44, 3,  -12, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   56, 3,303, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\xe0\x34\x64\xe0\xb4\xc4\xe0\x74\xe4\xe0"
+            "\x44\xe0\x44\xe0\x14\xe0\x64\xd5\xe0\x65\xb5\xe0\x85"
+            "\xa4\xe0\xa4\x95\xe0\xa5\x40\xf1\x35\xe0\xc5\x30\xf1"
+            "\x25\xe0\xe5\x20\xf1\x16\xe0\xe6\x10\xf1\x15\xe0\xe0"
+            "\x25\x1f\x96\xe0\xe0\x26\x15\xe0\xe0\x25\x10\xf1\x16"
+            "\xe0\xe6\x10\xf1\x25\xe0\xe5\x20\xf1\x35\xe0\xc5\x30"
+            "\x45\xa4\xa5\x94\x91\x42\x84\xa5\x71\x71\x65\xb5\x51"
+            "\x81\x55\xd4\x51\x91\x44\xe0\x14\x41\x92\x24\xe0\x44"
+            "\x21\xa5\xe0\x74\x21\x94\xe0\xa6\x55\xc1\xe0\x38\x22"
+            "\xc1\xe0\xd3\xb1\xe0\xe2\xb1\xe0\xe3\x92\xe0\xe3\x83"
+            "\xe0\xe5\x53\xe0\xe0\x1d\xe0\xe0\x2c\xe0\xe0\x2b\xe0"
+            "\xe0\x49\xe0\xe0\x67\xe0\xe0\x85\x50" }  },
+      /* --- pixel bitmap for cmr450 char#82 R --- */
+      {  82,22220,                      /* character number, location */
+         43, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 44,   44, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0b\xe0\x5e\x0e\xe0\x77\xb7\xe0\x66\xe5\xe0\x56"
+            "\xe0\x16\xe0\x36\xe0\x26\xe0\x26\xe0\x35\xe0\x26\xe0"
+            "\x36\xe0\x16\xe0\x45\x90\xf4\x66\xe0\x46\x80\x66\xe0"
+            "\x45\xe0\x16\xe0\x36\xe0\x16\xe0\x35\xe0\x26\xe0\x25"
+            "\xe0\x36\xe0\x15\xe0\x46\xe4\xe0\x66\xb5\xe0\x8e\x05"
+            "\xe0\xb6\xb5\xe0\x86\xd5\xe0\x66\xe5\xe0\x56\xe0\x15"
+            "\xe0\x46\xe0\x16\xb0\xf9\x66\xe0\x26\xa0\x66\xe0\x26"
+            "\x82\xf1\x66\xe0\x35\x82\x58\xe0\x35\x62\x1e\x04\xd4"
+            "\x62\x1e\x04\xe4\x42\xe0\xe0\x87\x35" }  },
+      /* --- pixel bitmap for cmr450 char#83 S --- */
+      {  83,23387,                      /* character number, location */
+         44, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 27,   45, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x88\x91\x7d\x52\x64\x74\x33\x53\xb3\x23\x43\xe6\x33"
+            "\xe0\x25\x24\xe0\x34\x23\xe0\x44\x23\xe0\x53\x1f\x14"
+            "\xe0\x53\x1f\x14\xe0\x62\x15\xe0\x52\x15\xe0\x86\xe0"
+            "\x87\xe0\x69\xe0\x5c\xe0\x2e\x01\xce\x04\xae\x04\xbe"
+            "\x03\xce\x02\xee\xe0\x49\xe0\x77\xe0\x76\xe0\x86\xf1"
+            "\xe0\x85\x0f\x32\xe0\x74\x03\xe0\x67\xe0\x63\x13\xe0"
+            "\x54\x14\xe0\x43\x25\xe0\x33\x26\xe0\x13\x33\x14\xc3"
+            "\x43\x35\x74\x52\x6d\x61\xa7\x90" }  },
+      /* --- pixel bitmap for cmr450 char#84 T --- */
+      {  84,24573,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 41,   43, 3,97, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x1e\x0e\x0b\x10\x16\xb6\xa6\x24\xd6\xc4\x23\xe6"
+            "\xd3\x10\xf1\x12\xe0\x16\xe2\x1f\x13\xe0\x16\xe3\x0f"
+            "\x42\xe0\x26\xe0\x12\xfe\xe0\x46\xe0\x30\xfa\xe0\x46"
+            "\xe0\x30\xe0\x38\xe0\x20\xf1\x9e\x0a\x84" }  },
+      /* --- pixel bitmap for cmr450 char#85 U --- */
+      {  85,25709,                      /* character number, location */
+         43, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   44, 3,117, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x04\xbe\x58\xe0\x58\x96\xe0\x84\x50\xfe\x66"
+            "\xe0\x92\x60\xfc\x66\xe0\x92\x60\x75\xe0\x92\xd5\xe0"
+            "\x82\xe6\xe0\x72\x70\xf1\x85\xe0\x62\x80\x95\xe0\x42"
+            "\xe0\x55\xe0\x22\xe0\x75\xe3\xe0\x85\xc3\xe0\xb5\x74"
+            "\xe0\xee\xe0\xe0\x48\xe0\x30" }  },
+      /* --- pixel bitmap for cmr450 char#86 V --- */
+      {  86,26877,                      /* character number, location */
+         43, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 45,   44, 3,235, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x03\xe0\x1d\x58\xe0\x77\xa6\xe0\xa4\xb7\xe0"
+            "\x93\x60\xf1\x76\xe0\x92\x70\xf1\x86\xe0\x72\x80\x87"
+            "\xe0\x62\x80\xf1\x96\xe0\x52\x90\x97\xe0\x33\x90\xf1"
+            "\xa6\xe0\x32\xa0\xf1\xb6\xe0\x12\xb0\xb7\xe2\xb0\xf1"
+            "\xc6\xd2\xc0\xc7\xb3\xc0\xf1\xd6\xb2\xd0\xf1\xe6\x92"
+            "\xe0\xe7\x73\xe0\xf1\xe0\x16\x72\xe0\x10\xf1\xe0\x26"
+            "\x52\xe0\x20\xe0\x27\x42\xe0\x20\xf1\xe0\x36\x32\xe0"
+            "\x30\xe0\x37\x13\xe0\x30\xf1\xe0\x46\x12\xe0\x40\xf2"
+            "\xe0\x57\xe0\x50\xf2\xe0\x65\xe0\x60\xf1\xe0\x73\xe0"
+            "\x71" }  },
+      /* --- pixel bitmap for cmr450 char#87 W --- */
+      {  87,28463,                      /* character number, location */
+         43, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 62,   44, 3,333, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x03\x6e\x03\x8e\x58\xe0\x18\xe0\x18\x87\xe0"
+            "\x36\xe0\x44\x50\xf1\x66\xe0\x36\xe0\x52\x60\x67\xe0"
+            "\x36\xe0\x42\x60\xf1\x76\xe0\x36\xe0\x32\x70\x76\xe0"
+            "\x28\xe0\x22\x70\xf1\x86\xe0\x18\xe0\x12\x80\x86\xe2"
+            "\x26\xe2\x80\xf1\x96\xd2\x26\xd2\x90\x96\xc2\x46\xc2"
+            "\x90\xf1\xa6\xb2\x46\xb2\xa0\xa6\xa3\x47\xa2\xa0\xf1"
+            "\xb6\x92\x66\x92\xb0\xb6\x83\x67\x82\xe0\x87\x72\x86"
+            "\x73\xb0\xf1\xc6\x72\x86\x72\xc0\xc7\x52\xa6\x53\xc0"
+            "\xf1\xd6\x52\xa6\x52\xd0\xd7\x32\xc6\x42\xd0\xf1\xe6"
+            "\x32\xc6\x32\xe0\xe6\x22\xe6\x22\xe0\xf1\xe0\x16\x12"
+            "\xe6\x12\xe0\x10\xe0\x18\xe0\x28\xe0\x10\xf1\xe0\x27"
+            "\xe0\x27\xe0\x20\xe0\x26\xe0\x46\xe0\x20\xf2\xe0\x35"
+            "\xe0\x45\xe0\x30\xf2\xe0\x43\xe0\x63\xe0\x40" }  },
+      /* --- pixel bitmap for cmr450 char#88 X --- */
+      {  88,29834,                      /* character number, location */
+         43, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 45,   43, 3,290, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x1e\x04\x8e\x01\x30\x79\xd9\xe0\x17\xe0\x15\xe0"
+            "\x47\xe0\x23\xe0\x67\xe0\x12\xe0\x87\xd2\xe0\x97\xc3"
+            "\xe0\xa7\xb2\xe0\xc6\xa2\xe0\xd7\x83\xe0\xe7\x72\xe0"
+            "\xe0\x26\x62\xe0\xe0\x37\x43\xe0\xe0\x47\x32\xe0\xe0"
+            "\x66\x22\xe0\xe0\x7a\xe0\xe0\x88\xe0\xe0\xa6\xe0\xe0"
+            "\xb7\xe0\xe0\xb7\xe0\xe0\xb6\xe0\xe0\xa8\xe0\xe0\x99"
+            "\xe0\xe0\x72\x26\xe0\xe0\x63\x27\xe0\xe0\x52\x47\xe0"
+            "\xe0\x32\x57\xe0\xe0\x23\x67\xe0\xe0\x12\x87\xe0\xd2"
+            "\x97\xe0\xc3\xa7\xe0\xb2\xc6\xe0\xa2\xd7\xe0\x83\xe7"
+            "\xe0\x72\xe0\x26\xe0\x62\xe0\x37\xe0\x43\xe0\x47\xe0"
+            "\x23\xe0\x66\xe0\x15\xe0\x57\xc8\xe0\x39\x6f\x1e\x02"
+            "\xbe\x04" }  },
+      /* --- pixel bitmap for cmr450 char#89 Y --- */
+      {  89,31144,                      /* character number, location */
+         43, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 45,   43, 3,195, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x03\xe0\x1d\x59\xe0\x68\x97\xe0\x94\xc7\xe0"
+            "\x82\xe7\xe0\x73\xe0\x17\xe0\x62\xe0\x36\xe0\x53\xe0"
+            "\x37\xe0\x42\xe0\x57\xe0\x22\xe0\x67\xe0\x13\xe0\x77"
+            "\xe2\xe0\x97\xc3\xe0\x97\xc2\xe0\xb7\xa2\xe0\xd6\xa2"
+            "\xe0\xd7\x82\xe0\xe0\x17\x63\xe0\xe0\x17\x62\xe0\xe0"
+            "\x37\x43\xe0\xe0\x47\x32\xe0\xe0\x57\x22\xe0\xe0\x7a"
+            "\xe0\x30\xf1\xe0\x58\xe0\x40\xfe\xe0\x66\xe0\x50\xe0"
+            "\x58\xe0\x40\xf1\xee\x04\xd7" }  },
+      /* --- pixel bitmap for cmr450 char#90 Z --- */
+      {  90,32267,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   43, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x2e\x0e\x02\x29\xe6\x36\xe0\x27\x35\xe0\x36\x44"
+            "\xe0\x36\x53\xe0\x37\x43\xe0\x46\x53\xe0\x36\x63\xe0"
+            "\x27\x62\xe0\x36\x72\xe0\x27\x72\xe0\x26\x82\xe0\x16"
+            "\xe0\xb7\xe0\xb6\xe0\xb6\xe0\xb7\xe0\xb6\xe0\xb6\xe0"
+            "\xb7\xe0\xb6\xe0\xb7\xe0\xb6\xe0\xb6\xe0\xb7\xe0\xb6"
+            "\xe2\x96\xe0\x12\x87\xe0\x12\x86\xe0\x22\x76\xe0\x32"
+            "\x67\xe0\x23\x66\xe0\x33\x57\xe0\x33\x56\xe0\x42\x56"
+            "\xe0\x43\x47\xe0\x43\x46\xe0\x44\x36\xe0\x45\x27\xe0"
+            "\x36\x26\xe0\x19\x1f\x1e\x0e\x03\x12" }  },
+      /* --- pixel bitmap for cmr450 char#91 [ --- */
+      {  91,111630,                     /* character number, location */
+         47, 6,  -16, 6,      /* topleft row,col, and botleft row,col */
+          { 10,   63, 3,24, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0a\x0f\xe3\x7f\xe3\x7f\xe3\x7f\xb3\x7f\x2a" }  },
+      /* --- pixel bitmap for cmr450 char#92 (noname) --- */
+      {  92,131419,                     /* character number, location */
+         43, 9,   24, 9,      /* topleft row,col, and botleft row,col */
+          { 20,   19, 3,73, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x61\xb1\x61\xb1\x61\xb1\x61\xb1\x40\xf1\x21\xb1\x50"
+            "\xf2\x11\xb1\x6f\x21\xb1\x71\x23\x61\x23\x21\x15\x51"
+            "\x15\x1f\x18\x48\x17\x57\x25\x75\x43\x93\x2e" }  },
+      /* --- pixel bitmap for cmr450 char#93 ] --- */
+      {  93,112404,                     /* character number, location */
+         47, 1,  -16, 1,      /* topleft row,col, and botleft row,col */
+          { 10,   63, 3,24, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0a\xfe\x73\xfe\x73\xfe\x73\xfb\x73\x0f\x2a" }  },
+      /* --- pixel bitmap for cmr450 char#94 \^ --- */
+      {  94,118887,                     /* character number, location */
+         43, 7,   34, 7,      /* topleft row,col, and botleft row,col */
+          { 16,    9, 3,30, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x81\xe3\xc5\xa3\x13\x83\x33\x63\x53\x43\x73\x23\x93"
+            "\x12\xb2" }  },
+      /* --- pixel bitmap for cmr450 char#95 (noname) --- */
+      {  95,119374,                     /* character number, location */
+         43, 5,   36, 5,      /* topleft row,col, and botleft row,col */
+          {  7,    7, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\xdf\xff\xff\xf7\x71\x00" }  },
+      /* --- pixel bitmap for cmr450 char#96 (noname) --- */
+      {  96,113098,                     /* character number, location */
+         43, 4,   24, 4,      /* topleft row,col, and botleft row,col */
+          {  8,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x40\x20\x10\x08\x04\x04\x02\x02\x02\x01\x01\x01\x39"
+            "\x7d\xff\xff\xfe\x7c\x38" }  },
+      /* --- pixel bitmap for cmr450 char#97 a --- */
+      {  97,33499,                      /* character number, location */
+         29, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 28,   30, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x77\xe0\x53\x53\xe0\x12\x93\xd2\xb3\xc4\xa3\xa6\x94"
+            "\x96\xa3\x80\xf1\x16\xa4\x70\x24\xb4\x70\xf2\xe0\x34"
+            "\x70\xc9\xe0\x15\x44\xd4\x74\xb4\x94\xa4\xa4\x95\xa4"
+            "\x85\xb4\x85\xb4\x52\x0f\x25\xc4\x52\x0f\x15\xb1\x13"
+            "\x52\x15\x91\x23\x52\x24\x81\x43\x32\x45\x42\x66\x86"
+            "\x94\x36" }  },
+      /* --- pixel bitmap for cmr450 char#98 b --- */
+      {  98,34601,                      /* character number, location */
+         43, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   44, 3,153, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x54\xe0\x8f\x19\xe0\x80\x45\xe0\x80\xfa\x54\xe0\x80"
+            "\x54\x57\xe0\x14\x32\x63\xd4\x12\xa3\xb6\xc3\xa5\xe3"
+            "\x95\xe4\x30\xf1\x54\xe0\x24\x20\x54\xe0\x25\x10\xf1"
+            "\x54\xe0\x34\x10\xf6\x54\xe0\x35\xf1\x54\xe0\x34\x10"
+            "\x54\xe0\x25\x64\xe0\x24\x74\xe0\x23\x85\xe4\x85\xd4"
+            "\x93\x12\xc3\xa3\x22\x94\xb2\x52\x54\xe0\x86\xb0" }  },
+      /* --- pixel bitmap for cmr450 char#99 c --- */
+      {  99,35480,                      /* character number, location */
+         29, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   30, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xa8\xe3\x63\xa3\xa3\x73\xd2\x54\xb4\x10\xf1\x34\xb6"
+            "\xf1\x24\xc6\x15\xd4\x24\xe0\x5f\x75\xe0\x50\xf1\x14"
+            "\xe0\x50\x15\xe0\x40\xf1\x24\xe0\x22\x34\xe2\x54\xd2"
+            "\x63\xc2\x83\xa2\xb3\x62\xe0\x17\x71" }  },
+      /* --- pixel bitmap for cmr450 char#100 d --- */
+      { 100,36539,                      /* character number, location */
+         43, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   44, 3,155, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x84\x50\xf1\xe0\x39\x50\xe0\x75\x50\xfa\xe0\x84"
+            "\x50\xb6\x54\xd4\x53\x24\xb4\x92\x14\xa3\xc6\x94\xd5"
+            "\x84\xe0\x14\x83\xe0\x24\x74\xe0\x24\x65\xe0\x24\x50"
+            "\xf1\x14\xe0\x34\x5f\x65\xe0\x34\x50\xf1\x14\xe0\x34"
+            "\x50\x15\xe0\x24\x50\xf1\x24\xe0\x24\x50\x34\xe5\x93"
+            "\xe5\xa3\xc1\x15\xa3\xa1\x29\x83\x62\x39\xa7\x54\x52" }  },
+      /* --- pixel bitmap for cmr450 char#101 e --- */
+      { 101,37405,                      /* character number, location */
+         29, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   30, 3,117, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa6\xe0\x13\x54\xb3\x83\x93\xa3\x73\xb4\x54\xc3\x20"
+            "\xf1\x24\xd4\x10\x15\xe3\x10\xf1\x14\xe0\x14\x0f\x15"
+            "\xe0\x14\x0e\x0a\x0f\x45\xe0\x50\xf1\x14\xe0\x50\x15"
+            "\xe0\x64\xe0\x22\x33\xe0\x22\x34\xe2\x53\xe2\x63\xc2"
+            "\x83\xa2\xb3\x62\xe0\x17\x74" }  },
+      /* --- pixel bitmap for cmr450 char#102 f --- */
+      { 102,38322,                      /* character number, location */
+         44, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   44, 3,67, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xd6\xe3\x42\xb3\x54\x94\x46\x83\x56\x74\x56\x73\x74"
+            "\x74\x82\x20\xf8\x64\xcf\x1e\x03\x50\xfe\x64\xc0\xf6"
+            "\x64\xc0\x56\xb0\xf1\x1e\x01\x60" }  },
+      /* --- pixel bitmap for cmr450 char#103 g --- */
+      { 103,39625,                      /* character number, location */
+         28, 2,  -14, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   42, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x96\x75\x83\x43\x32\x24\x53\x84\x44\x43\xa3\x44\x34"
+            "\xa4\x42\x43\xc3\x70\xf5\x24\xc4\x60\x33\xc3\xa4\xa4"
+            "\xb3\xa3\xd3\x83\xd1\x23\x43\xe0\x11\x46\xe0\x22\xe0"
+            "\xc1\xe0\xa0\xf2\x32\xe0\x90\x33\xe0\xce\x01\xee\x03"
+            "\xce\x04\x82\xd6\x53\xe0\x34\x33\xe0\x53\x33\xe0\x54"
+            "\x1f\x43\xe0\x73\x10\x13\xe0\x53\x42\xe0\x52\x63\xe0"
+            "\x13\x83\xd3\xb4\x74\xe0\x29\xa0" }  },
+      /* --- pixel bitmap for cmr450 char#104 h --- */
+      { 104,40710,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   43, 3,92, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\xe0\x8f\x19\xe0\x80\x45\xe0\x80\xfa\x54\xe0\x80"
+            "\x54\x66\xe0\x14\x42\x53\xd4\x31\x83\xc4\x21\x94\xb4"
+            "\x11\xb3\x60\xf2\x55\xc4\x50\xfe\x54\xd4\x50\xf1\x54"
+            "\xd4\x50\x46\xb6\x4f\x1e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#105 i --- */
+      { 105,41525,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 13,   43, 3,52, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x53\x95\x40\xf2\x37\x30\x45\x93\x50\xf7\xd0\x54\x4f"
+            "\x19\x40\x45\x40\xfe\x54\x40\xf5\x54\x40\x45\x4f\x1d" }  },
+      /* --- pixel bitmap for cmr450 char#106 j --- */
+      { 106,42379,                      /* character number, location */
+         43,-3,  -13,-3,      /* topleft row,col, and botleft row,col */
+          { 16,   56, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb3\xc5\x10\xf2\x97\xa5\xc3\x20\xf7\xe0\x20\xb5\xf1"
+            "\x79\xb5\xfe\xc4\xfd\xc4\x14\x7a\x6a\x63\x16\x54\x15"
+            "\x63\x33\x63\x53\x43\x86\x60" }  },
+      /* --- pixel bitmap for cmr450 char#107 k --- */
+      { 107,43571,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   43, 3,156, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x54\xe0\x7f\x19\xe0\x70\x45\xe0\x70\xfb\x54\xe0\x70"
+            "\xf1\x54\x8c\x10\x54\x98\x94\xa4\xc4\xa3\xd4\x93\xe4"
+            "\x82\xe0\x24\x72\xe0\x34\x62\xe0\x44\x43\xe0\x54\x34"
+            "\xe0\x54\x25\xe0\x54\x13\x13\xe0\x47\x24\xe0\x35\x54"
+            "\xe0\x24\x73\xe0\x24\x83\xe0\x14\x84\xe4\x93\xe4\xa3"
+            "\xd4\xa4\xc4\xb3\xc4\xc3\xb4\xc4\x96\xb5\x4f\x1e\x5b" }  },
+      /* --- pixel bitmap for cmr450 char#108 l --- */
+      { 108,44284,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 14,   43, 3,36, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\x5f\x19\x50\x45\x50\xfe\x54\x50\xfe\x54\x50\xf5"
+            "\x54\x50\x46\x4f\x1e" }  },
+      /* --- pixel bitmap for cmr450 char#109 m --- */
+      { 109,45649,                      /* character number, location */
+         28, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 48,   28, 3,92, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\x66\xb6\xa9\x42\x53\x72\x53\x89\x31\x83\x51\x83"
+            "\xb5\x21\x94\x31\x94\xb4\x11\xb3\x21\xb3\x60\xf2\x55"
+            "\xc5\xc4\x50\xfe\x54\xd4\xd4\x50\xf1\x54\xd4\xd4\x50"
+            "\x46\xb6\xb6\x4f\x1e\x3e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#110 n --- */
+      { 110,46758,                      /* character number, location */
+         28, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   28, 3,64, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\x66\xa9\x42\x53\x89\x31\x83\xb5\x21\x94\xb4\x11"
+            "\xb3\x60\xf2\x55\xc4\x50\xfe\x54\xd4\x50\xf1\x54\xd4"
+            "\x50\x46\xb6\x4f\x1e\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#111 o --- */
+      { 111,47535,                      /* character number, location */
+         29, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   30, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa7\xe0\x43\x53\xe3\x93\xb3\xb3\x93\xd3\x74\xd4\x63"
+            "\xe0\x13\x54\xe0\x14\x35\xe0\x15\x10\xf1\x14\xe0\x34"
+            "\x1f\x85\xe0\x35\x14\xe0\x34\x25\xe0\x15\x10\xf1\x24"
+            "\xe0\x14\x20\x34\xd4\x73\xd3\x93\xb3\xb3\x93\xd4\x54"
+            "\xe0\x37\xa3" }  },
+      /* --- pixel bitmap for cmr450 char#112 p --- */
+      { 112,48681,                      /* character number, location */
+         28, 2,  -12, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   40, 3,147, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x54\x57\xa9\x32\x63\x89\x12\x94\xa7\xb4\xa5\xd4\x95"
+            "\xe4\x84\xe0\x15\x74\xe0\x24\x20\xf1\x54\xe0\x25\x10"
+            "\x54\xe0\x34\x10\xf6\x54\xe0\x35\x54\xe0\x34\x10\xf1"
+            "\x54\xe0\x25\x10\x54\xe0\x24\x74\xe0\x14\x85\xe4\x85"
+            "\xd4\x96\xb4\xa4\x12\x94\xb4\x32\x54\xd4\x56\xb0\xf7"
+            "\x54\xe0\x80\x46\xe0\x7f\x1e\xe0\x36" }  },
+      /* --- pixel bitmap for cmr450 char#113 q --- */
+      { 113,49809,                      /* character number, location */
+         28, 2,  -12, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   40, 3,156, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb6\x72\xd4\x52\x52\xb4\x91\x33\xa4\xb1\x23\x94\xc2"
+            "\x13\x50\xf1\x34\xe5\x50\x24\xe0\x24\x50\xf1\x15\xe0"
+            "\x24\x50\x14\xe0\x34\x5f\x65\xe0\x34\x50\x14\xe0\x34"
+            "\x50\xf1\x15\xe0\x24\x50\x24\xe0\x24\x75\xe0\x14\x84"
+            "\xe5\x94\xc6\xa4\xb1\x14\xb4\x82\x24\xd3\x62\x34\xe0"
+            "\x17\x54\x50\xf7\xe0\x84\x50\xe0\x76\x40\xf1\xe0\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#114 r --- */
+      { 114,50772,                      /* character number, location */
+         28, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   28, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x44\x65\x28\x42\x33\x18\x31\x45\x44\x21\x55\x53\x21"
+            "\x55\x53\x11\x73\x10\xf1\x53\x11\xb0\xfe\x54\xc0\xf1"
+            "\x54\xc0\x46\xbf\x1e\x01\x65" }  },
+      /* --- pixel bitmap for cmr450 char#115 s --- */
+      { 115,51763,                      /* character number, location */
+         29, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   30, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x68\x41\x63\x62\x22\x43\xa4\x42\xc3\x32\xd3\x23\xd3"
+            "\x2f\x13\xe2\x2f\x14\xd2\x20\x15\xe0\x28\xec\xad\xad"
+            "\xac\xe7\xe0\x35\x12\xe7\xe0\x16\xe0\x23\x0f\x23\xe0"
+            "\x13\x04\xe2\x14\xd3\x15\xc2\x23\x12\xa2\x32\x33\x63"
+            "\x41\x68\x66" }  },
+      /* --- pixel bitmap for cmr450 char#116 t --- */
+      { 116,52666,                      /* character number, location */
+         38, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   39, 3,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf3\x82\xa0\xf2\x73\xa0\xf1\x64\xa0\x55\xe6\xde\x02"
+            "\x1e\x05\x10\xfd\x64\xa0\xf6\x64\x82\x73\x81\x84\x62"
+            "\x93\x61\xb3\x41\xe5\x47" }  },
+      /* --- pixel bitmap for cmr450 char#117 u --- */
+      { 117,53655,                      /* character number, location */
+         28, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   29, 3,71, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\xd4\x5f\x19\x89\x50\x45\xc5\x50\xfe\x54\xd4\x50"
+            "\xf2\x54\xd4\x50\xf1\x54\xc5\x50\x63\xb1\x14\xb4\xa1"
+            "\x15\xb3\x91\x29\x84\x52\x39\xa7\x54\x53" }  },
+      /* --- pixel bitmap for cmr450 char#118 v --- */
+      { 118,54631,                      /* character number, location */
+         27, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 31,   28, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0d\x7b\x46\xc6\x84\xe4\x94\xe3\x50\xf1\x64\xd2"
+            "\x60\x65\xb3\x60\xf1\x74\xb2\x70\xf1\x84\x92\x80\x84"
+            "\x83\x80\xf1\x94\x72\x90\xf2\xa4\x52\xa0\xf1\xb4\x32"
+            "\xb0\xf2\xc4\x12\xc0\xf2\xd5\xd0\xf1\xe3\xe2" }  },
+      /* --- pixel bitmap for cmr450 char#119 w --- */
+      { 119,55963,                      /* character number, location */
+         27, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 43,   28, 3,205, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0c\x3c\x5b\x45\xa5\xa6\x75\xb3\xc4\x40\xf1\x54"
+            "\xb4\xc2\x50\x55\xa4\xb3\xb4\xa5\xa2\xc4\x92\x13\xa2"
+            "\xc5\x82\x13\x93\xd4\x82\x14\x82\xe4\x72\x33\x82\xe5"
+            "\x62\x33\x73\xe0\x14\x62\x34\x62\xe0\x24\x52\x53\x62"
+            "\xe0\x34\x42\x53\x52\xe0\x44\x42\x54\x42\xe0\x44\x32"
+            "\x73\x42\xe0\x54\x22\x73\x32\xe0\x64\x22\x74\x22\xe0"
+            "\x64\x12\x93\x22\xe0\x76\x93\x12\xe0\x86\x96\xe0\x85"
+            "\xb5\xb0\xf1\xc4\xb4\xc0\xc3\xd3\xe0\xb2\xd2\xd7" }  },
+      /* --- pixel bitmap for cmr450 char#120 x --- */
+      { 120,57084,                      /* character number, location */
+         27, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 31,   27, 3,130, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0c\x7b\x10\x56\x97\xa4\xb4\xd4\xa2\xe0\x15\x83"
+            "\xe0\x24\x73\xe0\x44\x53\xe0\x64\x42\xe0\x75\x22\xe0"
+            "\x94\x13\xe0\xa6\xe0\xc4\xe0\xe4\xe0\xc6\xe0\xa7\xe0"
+            "\x93\x24\xe0\x82\x44\xe0\x62\x55\xe0\x42\x74\xe0\x33"
+            "\x84\xe0\x13\xa4\xe2\xc4\xb4\xc5\x87\xb6\x4f\x1b\x8c" }  },
+      /* --- pixel bitmap for cmr450 char#121 y --- */
+      { 121,58237,                      /* character number, location */
+         27, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 31,   40, 3,167, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x0d\x7b\x46\xc6\x84\xe4\x94\xe3\x50\xf1\x64\xd2"
+            "\x60\xf1\x74\xb2\x70\x74\xa3\x70\xf1\x84\x92\x80\xf1"
+            "\x94\x72\x90\x95\x53\x90\xf1\xa4\x52\xa0\xf1\xb4\x32"
+            "\xb0\xb5\x13\xb0\xf1\xc4\x12\xc0\xf2\xd5\xd0\xf1\xe3"
+            "\xe0\xf1\xe2\xe0\x10\xd3\xe0\xe2\xe0\x42\x92\xe0\x2f"
+            "\x16\x62\xe0\x3f\x16\x52\xe0\x45\x52\xe0\x62\x62\xe0"
+            "\x82\x42\xe0\xb4\xe0\x96" }  },
+      /* --- pixel bitmap for cmr450 char#122 z --- */
+      { 122,59292,                      /* character number, location */
+         27, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 23,   27, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x2e\x07\x25\xb4\x33\xc5\x33\xc4\x42\xc4\x43\xb4\x52"
+            "\xb5\x52\xb4\x62\xa4\x72\x95\xe0\x44\xe0\x44\xe0\x44"
+            "\xe0\x45\xe0\x44\xe0\x44\xe0\x44\xa2\x65\xa2\x64\xb2"
+            "\x54\xc2\x45\xb3\x44\xc2\x44\xd2\x34\xd3\x25\xc4\x24"
+            "\xb6\x1e\x08\x10" }  },
+      /* --- pixel bitmap for cmr450 char#123 (noname) --- */
+      { 123,132087,                     /* character number, location */
+         17, 0,   16, 0,      /* topleft row,col, and botleft row,col */
+          { 31,    1, 2, 2, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x1f" }  },
+      /* --- pixel bitmap for cmr450 char#124 (noname) --- */
+      { 124,132907,                     /* character number, location */
+         17, 0,   16, 0,      /* topleft row,col, and botleft row,col */
+          { 62,    1, 2, 2, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x3e" }  },
+      /* --- pixel bitmap for cmr450 char#125 (noname) --- */
+      { 125,120061,                     /* character number, location */
+         43, 8,   32, 8,      /* topleft row,col, and botleft row,col */
+          { 18,   11, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x53\x73\xf1\x44\x64\xf1\x34\x64\x10\x24\x64\x43\x73"
+            "\x30\xf1\x13\x73\x43\x73\x52\x82\x62" }  },
+      /* --- pixel bitmap for cmr450 char#126 \~ --- */
+      { 126,120773,                     /* character number, location */
+         42, 5,   36, 5,      /* topleft row,col, and botleft row,col */
+          { 21,    6, 3,29, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\xb1\x46\x91\x42\x34\x61\x41\x64\x32\x41\x96\x41"
+            "\xb4\x51" }  },
+      /* --- pixel bitmap for cmr450 char#127 (noname) --- */
+      { 127,121472,                     /* character number, location */
+         43, 6,   36, 6,      /* topleft row,col, and botleft row,col */
+          { 19,    7, 3,23, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x93\x35\x75\x1f\x27\x57\x15\x75\x33\x93\x26" }  },
+      /* --- trailer  --- */
+      { -99, -999,  0,0,0,0, { 0,0,0,0, (pixbyte *)"\0" }  }
+   } ;
+
+
+/* --- size=10 for .600gf ---
+ * mf '\mode=preview; mag=magstep(-8.04680493988053835544); input cmr10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmr600 --- */
+static	chardef  cmr600[] =
+   {
+      /* --- pixel bitmap for cmr600 char#0 \Gamma --- */
+      {   0,62764,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 47,   57, 3,125, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0e\x0e\x03\x20\x89\xe0\x59\xb7\xe0\x96\xb7"
+            "\xe0\xa6\xa7\xe0\xb5\xa7\xe0\xc4\x10\xf1\x97\xe0\xd3"
+            "\x10\xf3\x97\xe0\xe2\x10\x97\xe0\xe3\xf3\x97\xe0\xe0"
+            "\x12\xfe\x97\xe0\xe0\x30\xfe\x97\xe0\xe0\x30\xf3\x97"
+            "\xe0\xe0\x30\x8a\xe0\xe0\x1f\x2e\x0d\xe0\x62" }  },
+      /* --- pixel bitmap for cmr600 char#1 \Delta --- */
+      {   1,63777,                      /* character number, location */
+         60, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 61,   60, 2,224, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x01\x1d\x03\x1d\x00\xff\x01\x1c\x05\x1c\x00\xff"
+            "\x01\x1b\x07\x1b\x00\xff\x01\x1a\x09\x1a\x00\x19\x02"
+            "\x01\x08\x32\x02\x02\x07\x31\x02\x03\x08\x30\x02\x04"
+            "\x07\x2f\x02\x05\x08\x2e\x02\x06\x07\x2d\x02\x07\x08"
+            "\x2c\x02\x08\x07\x2b\x02\x09\x08\x2a\x02\x0a\x07\x29"
+            "\x02\x0b\x08\x28\x02\x0c\x07\x27\x02\x0d\x08\x26\x02"
+            "\x0e\x07\x25\x02\x0f\x08\x24\x02\x10\x07\x23\x02\x11"
+            "\x08\x22\x02\x12\x07\x21\x02\x13\x08\x20\x02\x14\x07"
+            "\x1f\x02\x15\x08\x1e\x02\x16\x07\x1d\x02\x17\x08\x1c"
+            "\x02\x18\x07\x1b\x02\x19\x08\x1a\x02\x1a\x07\x19\x02"
+            "\x1b\x08\x18\x02\x1c\x07\x17\x02\x1d\x08\x16\x02\x1e"
+            "\x07\x15\x02\x1f\x08\x14\x02\x20\x07\x0a\x00\xff\x01"
+            "\x09\x02\x21\x08\x09\x00\xff\x01\x08\x02\x23\x08\x08"
+            "\x00\xff\x01\x07\x02\x25\x08\x07\x00\xff\x01\x06\x02"
+            "\x27\x08\x06\x00\xff\x01\x05\x02\x29\x08\x05\x00\xff"
+            "\x01\x04\x02\x2b\x08\x04\x00\xff\x01\x03\x02\x2d\x08"
+            "\x03\x00\xff\x01\x02\x39\x02\x00\xff\x01\x01\x3b\x01"
+            "\xff\x01\x3d" }  },
+      /* --- pixel bitmap for cmr600 char#2 \Theta --- */
+      {   2,65070,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   61, 3,381, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x99\xe0\xe0\xee\x03\xe0\xe0\x87\x77\xe0\xe0\x46"
+            "\xd6\xe0\xe7\xe0\x17\xe0\xb6\xe0\x56\xe0\x96\xe0\x76"
+            "\xe0\x67\xe0\x97\xe0\x46\xe0\xb6\xe0\x36\xe0\xd6\xe0"
+            "\x17\xe0\xd7\xd7\xe0\xe0\x17\xb8\xe0\xe0\x18\xa7\xe0"
+            "\xe0\x37\x98\xe0\xe0\x38\x87\xe0\xe0\x57\x40\xf1\x38"
+            "\xe0\xe0\x58\x30\xf2\x28\xe0\xe0\x78\x20\xf1\x19\xe0"
+            "\xe0\x79\x10\x18\xe0\xe0\x98\x28\x62\xe0\x72\x68\x1f"
+            "\x19\x62\xe0\x72\x69\x0f\x59\x6e\x0b\x69\x0f\x29\x62"
+            "\xe0\x72\x69\x09\xe0\xe0\x99\x18\xe0\xe0\x98\x10\xf2"
+            "\x19\xe0\xe0\x79\x10\xf1\x28\xe0\xe0\x78\x20\xf2\x38"
+            "\xe0\xe0\x58\x30\x48\xe0\xe0\x38\x97\xe0\xe0\x37\xa8"
+            "\xe0\xe0\x18\xb7\xe0\xe0\x17\x60\xf1\x77\xe0\xd7\x70"
+            "\x87\xe0\xb7\xe0\x37\xe0\x97\xe0\x57\xe0\x77\xe0\x86"
+            "\xe0\x56\xe0\xb6\xe0\x36\xe0\xe6\xd6\xe0\xe0\x47\x77"
+            "\xe0\xe0\x8e\x03\xe0\xe0\xe9\xe0\x92" }  },
+      /* --- pixel bitmap for cmr600 char#3 \Lambda --- */
+      {   3,66270,                      /* character number, location */
+         60, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 52,   60, 3,352, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xb2\xe0\xb0\xf2\xe0\xa4\xe0\xa0\xf3\xe0\x96\xe0"
+            "\x90\xf2\xe0\x88\xe0\x80\xe0\x7a\xe0\x70\xf1\xe0\x72"
+            "\x17\xe0\x70\xe0\x62\x28\xe0\x60\xf1\xe0\x62\x37\xe0"
+            "\x60\xe0\x52\x48\xe0\x50\xf1\xe0\x52\x57\xe0\x50\xe0"
+            "\x42\x68\xe0\x40\xf1\xe0\x42\x77\xe0\x40\xe0\x32\x88"
+            "\xe0\x30\xf1\xe0\x32\x97\xe0\x30\xe0\x22\xa8\xe0\x20"
+            "\xf1\xe0\x22\xb7\xe0\x20\xe0\x12\xc8\xe0\x10\xf1\xe0"
+            "\x12\xd7\xe0\x10\xe2\xe8\xe0\xf1\xe2\xe0\x17\xe0\xd2"
+            "\xe0\x28\xd0\xf1\xd2\xe0\x37\xd0\xc2\xe0\x48\xc0\xf1"
+            "\xc2\xe0\x57\xc0\xb3\xe0\x58\xb0\xf1\xb2\xe0\x77\xb0"
+            "\xa3\xe0\x78\xa0\xf1\xa2\xe0\x97\xa0\x93\xe0\x98\x90"
+            "\xf1\x92\xe0\xb7\x90\x83\xe0\xb8\xe0\x22\xe0\xc8\xe0"
+            "\x22\xe0\xd7\x80\xf1\x73\xe0\xd8\x70\x56\xe0\xc8\xaa"
+            "\xe0\x9b\x5f\x2e\x02\xee\x08" }  },
+      /* --- pixel bitmap for cmr600 char#4 \Xi --- */
+      {   4,67807,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 49,   57, 3,147, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf5\x2e\x0e\x0e\x03\x20\x22\xe0\xe0\xd2\x20\xf1\x13"
+            "\xe0\xe0\xd3\x10\xf3\x12\xe0\xe0\xe0\x12\x10\xf6\xe0"
+            "\xe0\xe0\x70\xf3\x82\xe0\xe0\x12\x80\xf5\x8e\x0e\x05"
+            "\x80\xf3\x82\xe0\xe0\x12\x80\xf8\xe0\xe0\xe0\x7f\x42"
+            "\xe0\xe0\xe0\x32\x0f\x13\xe0\xe0\xe0\x13\x12\xe0\xe0"
+            "\xe0\x12\x10\xf5\x1e\x0e\x0e\x05\x10" }  },
+      /* --- pixel bitmap for cmr600 char#5 \Pi --- */
+      {   5,69122,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 2,28, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x3a\x08\x08\x1a\x08\x08\x00\xff\x30\x09"
+            "\x07\x1a\x07\x09\x00\x08\x09\x18\x09\x08\xff\x02\x19"
+            "\x08\x19" }  },
+      /* --- pixel bitmap for cmr600 char#6 \Sigma --- */
+      {   6,70413,                      /* character number, location */
+         57, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 50,   57, 2,181, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x30\x02\x00\x01\x08\x1b\x0c\x03\x09\x1e"
+            "\x08\x04\x09\x1f\x07\x04\x09\x1f\x06\x04\x09\x20\x05"
+            "\x05\x09\x20\x04\x06\x09\x20\x03\x07\x08\x20\x03\x07"
+            "\x09\x1f\x03\x08\x09\x1f\x02\x09\x08\x1f\x02\x09\x09"
+            "\x1e\x03\x09\x09\x1e\x02\xff\x01\x0a\x09\x1d\x02\x0b"
+            "\x09\x1c\x02\x0c\x09\x2a\x08\x2a\x09\x2a\x09\x2a\x08"
+            "\x2a\x09\x2a\x09\x19\x00\xff\x01\x11\x09\x18\x00\x12"
+            "\x09\x2a\x07\x2c\x05\x2d\x04\x2f\x02\x2f\x03\x2e\x03"
+            "\x2e\x03\x2e\x03\x2e\x03\x1d\x02\x0f\x03\x1e\x02\x0e"
+            "\x03\x1f\x02\x0d\x03\x20\x02\x0d\x02\x20\x03\x0c\x03"
+            "\x20\x02\x0c\x03\x21\x02\x0b\x03\x21\x03\x0a\x03\x22"
+            "\x03\x09\x03\x23\x03\x08\x03\x23\x04\x07\x03\x23\x05"
+            "\x06\x03\x23\x06\x05\x03\x23\x07\x05\x02\x22\x09\x04"
+            "\x03\x1e\x0c\x04\x2e\x03\x2f\x02\xff\x01\x30\x02" }  },
+      /* --- pixel bitmap for cmr600 char#7 \Upsilon --- */
+      {   7,71641,                      /* character number, location */
+         59, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   59, 3,217, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x77\xe0\xd7\xcc\xe0\x7c\x9e\xe0\x5e\x7e\x03\xe0\x1e"
+            "\x03\x6e\x04\xde\x04\x5e\x06\xbe\x06\x3e\x07\xbe\x07"
+            "\x25\x89\x99\x85\x24\xb8\x78\xb4\x14\xe6\x76\xe7\xe0"
+            "\x26\x56\xe0\x25\xe0\x36\x56\xe0\x34\xe0\x45\x55\xe0"
+            "\x44\xe0\x55\x35\xe0\x52\xe0\x75\x35\xe0\xe0\xe0\x14"
+            "\x34\xe0\x80\xf1\xe0\x85\x15\xe0\x80\xf2\xe0\x94\x14"
+            "\xe0\x90\xf1\xe0\x99\xe0\x90\xfe\xe0\xa7\xe0\xa0\xfe"
+            "\xe0\xa7\xe0\xa0\xf1\xe0\xa7\xe0\xa0\xe0\x8b\xe0\x80"
+            "\xf2\xde\x0e\x01\xd0" }  },
+      /* --- pixel bitmap for cmr600 char#8 \Phi --- */
+      {   8,72819,                      /* character number, location */
+         57, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 50,   57, 3,233, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xbe\x0e\x01\xa0\xe0\x6b\xe0\x50\xf7\xe0\x87\xe0"
+            "\x70\xe0\x5c\xe0\xe0\x5e\x08\xe0\xc8\x27\x18\xe0\x87"
+            "\x57\x47\xe0\x47\x77\x67\xe7\x97\x87\xb7\xa7\x97\x97"
+            "\xb7\xa7\x78\xb7\xa8\x30\xf1\x28\xc7\xb8\x20\x19\xc7"
+            "\xb9\x28\xd7\xc8\x1f\x69\xd7\xc9\x18\xd7\xc8\x29\xc7"
+            "\xb9\x10\xf1\x28\xc7\xb8\x20\x38\xb7\xa8\x77\xb7\xa7"
+            "\x97\xa7\x97\xb7\x97\x87\xe7\x77\x67\xe0\x47\x57\x47"
+            "\xe0\x88\x27\x18\xe0\xce\x08\xe0\xe0\x5c\xe0\x50\xf7"
+            "\xe0\x87\xe0\x70\xe0\x6b\xe0\x50\xf2\xbe\x0e\x01\xa0" }  },
+      /* --- pixel bitmap for cmr600 char#9 \Psi --- */
+      {   9,74112,                      /* character number, location */
+         57, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   57, 3,215, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xde\x0e\x01\xd0\xe0\x8b\xe0\x80\xf6\xe0\xa7\xe0"
+            "\xa8\xe0\x27\xe0\x2e\x04\xe7\xea\x37\xe7\xe7\x68\xd7"
+            "\xd8\x77\xd7\xd7\x88\xc7\xc8\x40\xfb\x57\xc7\xc7\x50"
+            "\xf2\x67\xb7\xb7\x60\x76\xb7\xb6\x70\xf1\x77\xa7\xa7"
+            "\x70\x87\x97\x97\xe0\x36\x97\x96\xe0\x47\x87\x87\xe0"
+            "\x57\x77\x77\xe0\x77\x67\x67\xe0\x97\x57\x57\xe0\xc7"
+            "\x37\x37\xe0\xe0\x27\x17\x17\xe0\xe0\x6e\x05\xe0\xe0"
+            "\xcb\xe0\x80\xf7\xe0\xa7\xe0\xa0\xe0\x8b\xe0\x80\xf2"
+            "\xde\x0e\x01\xd0" }  },
+      /* --- pixel bitmap for cmr600 char#10 \Omega --- */
+      {  10,75455,                      /* character number, location */
+         59, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 52,   59, 3,347, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x7a\xe0\xe0\xae\x04\xe0\xe0\x38\x88\xe0\xc7\xe7"
+            "\xe0\x97\xe0\x27\xe0\x67\xe0\x67\xe0\x37\xe0\x87\xe0"
+            "\x17\xe0\xa7\xd8\xe0\xa8\xb8\xe0\xc8\x50\xf1\x48\xe0"
+            "\xe8\x40\x39\xe0\xe9\x68\xe0\xe0\x28\x30\xf1\x29\xe0"
+            "\xe0\x29\x20\xf9\x19\xe0\xe0\x49\x10\xf2\x29\xe0\xe0"
+            "\x29\x20\xf1\x38\xe0\xe0\x28\x30\xf1\x48\xe0\xe8\x40"
+            "\x57\xe0\xe7\xa8\xe0\xc8\x50\xf1\x67\xe0\xc7\x60\x77"
+            "\xe0\xa7\x70\xf1\x86\xe0\xa6\x80\x95\xe0\xa5\xe0\x46"
+            "\xe0\x86\xe0\x55\xe0\x85\xe0\x74\xe0\x84\xe0\x85\xe0"
+            "\x65\xe0\x94\xe0\x64\xc2\xa4\xe0\x64\xa4\xb4\xe0\x44"
+            "\xb2\x12\xa4\xe0\x44\xa2\x10\xf1\x12\xb3\xe0\x43\xb2"
+            "\x10\x12\xc2\xe0\x42\xc2\x32\xb3\xe0\x23\xb2\x43\xa3"
+            "\xe0\x23\xa3\x20\xf2\x2e\x02\xe0\x2e\x02\x20\xf1\x3e"
+            "\x01\xe0\x2e\x01\x30" }  },
+      /* --- pixel bitmap for cmr600 char#11 \ff --- */
+      {  11,127698,                     /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 52,   59, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x69\xb7\xe0\x8e\x01\x6b\xe0\x46\x85\x25\x64\xe6"
+            "\xc9\x56\xc6\xca\x58\xa6\xca\x68\x96\xda\x68\x96\xd9"
+            "\x78\x86\xe9\x78\x86\xe8\xa4\x96\xe0\x27\xe0\x20\xfb"
+            "\x76\xe0\x36\xe0\x2f\x2e\x0e\x0e\x03\x70\xfe\x76\xe0"
+            "\x36\xe0\x20\xfd\x76\xe0\x36\xe0\x20\x68\xe0\x18\xe0"
+            "\x10\xf2\x1e\x04\x5e\x06\x83" }  },
+      /* --- pixel bitmap for cmr600 char#12 \fi --- */
+      {  12,129058,                     /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 42,   59, 3,138, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x78\xe0\xe0\x2e\xe0\xc7\x74\xe0\x96\xb3\xe0\x66"
+            "\xe3\xe0\x46\xc6\x70\xf1\xa6\xc8\x60\xf1\x96\xd8\x60"
+            "\x86\xe8\xe6\xe0\x16\xe0\x16\xe0\x32\x90\xf8\x86\xe0"
+            "\xe0\x86\xe0\x26\x6f\x2e\x0e\x08\x60\x86\xe8\x60\xfe"
+            "\x86\xe0\x26\x60\xfc\x86\xe0\x26\x60\x78\xe8\x50\xf2"
+            "\x2e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#13 \fl --- */
+      {  13,130378,                     /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 42,   59, 3,118, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x79\xe0\xe0\x1e\x01\x13\xe0\x77\x86\xe0\x65\xa7"
+            "\xe0\x46\xa8\xe0\x36\xb8\xe0\x26\xc8\xe0\x17\xc8\xe0"
+            "\x16\xd8\xe0\x16\xe7\x60\xfc\x86\xe0\x26\x6f\x2e\x0e"
+            "\x08\x60\xfe\x86\xe0\x26\x60\xfd\x86\xe0\x26\x60\x78"
+            "\xe8\x50\xf2\x2e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#14 \ffi --- */
+      {  14,132163,                     /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 65,   59, 3,206, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x78\xe0\x18\xe0\xe0\x3e\x8e\xe0\xd6\x75\x47\x74"
+            "\xe0\x96\xc3\x26\xb3\xe0\x66\xe0\x18\xe3\xe0\x46\xda"
+            "\xc6\x70\xf1\xa6\xda\xc8\x60\xf1\x96\xe9\xd8\x60\x86"
+            "\xe0\x18\xe8\xe6\xe0\x27\xe0\x16\xe0\x16\xe0\x36\xe0"
+            "\x32\x90\xf8\x86\xe0\x36\xe0\xe0\x86\xe0\x36\xe0\x26"
+            "\x6f\x2e\x0e\x0e\x0e\x03\x60\x86\xe0\x36\xe8\x60\xfe"
+            "\x86\xe0\x36\xe0\x26\x60\xfc\x86\xe0\x36\xe0\x26\x60"
+            "\x78\xe0\x18\xe8\x50\xf2\x2e\x04\x5e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#15 \ffl --- */
+      {  15,134044,                     /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 65,   59, 3,172, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x79\xe9\xe0\xe0\x2e\x01\x7e\x01\x13\xe0\x86\x84"
+            "\x47\x86\xe0\x66\xc3\x25\xa7\xe0\x46\xcb\xa8\xe0\x36"
+            "\xcb\xb8\x60\xf1\xa6\xda\xc8\x60\x96\xe9\xd8\xe0\x16"
+            "\xe9\xe7\xe6\xe0\x27\xe0\x26\x60\xfb\x86\xe0\x36\xe0"
+            "\x26\x6f\x2e\x0e\x0e\x0e\x03\x60\xfe\x86\xe0\x36\xe0"
+            "\x26\x60\xfd\x86\xe0\x36\xe0\x26\x60\x78\xe0\x18\xe8"
+            "\x50\xf2\x2e\x04\x5e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#16 \imath --- */
+      {  16,91542,                      /* character number, location */
+         37, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 18,   37, 3,32, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\x6f\x2c\x60\x57\x60\xfe\x66\x60\xfc\x66\x60\x58"
+            "\x5f\x2e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#17 \jmath --- */
+      {  17,92334,                      /* character number, location */
+         37,-4,  -17,-4,      /* topleft row,col, and botleft row,col */
+          { 22,   54, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\xf2\x9d\xe8\xfe\xe0\x26\xfe\xe0\x26\xf7\xe0"
+            "\x26\x24\xa6\x16\x9e\x85\x1f\x18\x76\x18\x75\x27\x75"
+            "\x45\x75\x64\x65\x9b\xd7\x94" }  },
+      /* --- pixel bitmap for cmr600 char#18 \gravesym --- */
+      {  18,118535,                     /* character number, location */
+         58, 9,   43, 9,      /* topleft row,col, and botleft row,col */
+          { 15,   15, 3,30, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x14\xaf\x16\x97\x88\x88\x97\x96\xa6\xb5\xb5\xb5\xc4"
+            "\xc3\xd2" }  },
+      /* --- pixel bitmap for cmr600 char#19 \acutesym --- */
+      {  19,119128,                     /* character number, location */
+         58,17,   43,17,      /* topleft row,col, and botleft row,col */
+          { 16,   15, 3,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb4\x10\xf1\xa6\x97\x88\x78\x77\x96\x96\x95\xa5\xa5"
+            "\xa4\xc3\xd2\xd3" }  },
+      /* --- pixel bitmap for cmr600 char#20 \checksym --- */
+      {  20,119777,                     /* character number, location */
+         53,10,   43,10,      /* topleft row,col, and botleft row,col */
+          { 21,   10, 3,37, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x11\xe0\x41\x13\xe3\x15\xa5\x34\x84\x65\x45\x8c\xaa"
+            "\xd6\xe0\x24\xe0\x42\x9f" }  },
+      /* --- pixel bitmap for cmr600 char#21 \brevesym --- */
+      {  21,120417,                     /* character number, location */
+         58, 8,   44, 8,      /* topleft row,col, and botleft row,col */
+          { 26,   14, 3,57, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x02\xe0\x82\x03\xe0\x63\xf1\x12\xe0\x62\x10\x13"
+            "\xe0\x43\x33\xe0\x23\x53\xe3\x64\xc4\x76\x66\xae\xdc"
+            "\xe0\x36\xa3" }  },
+      /* --- pixel bitmap for cmr600 char#22 (noname) --- */
+      {  22,121037,                     /* character number, location */
+         49, 6,   46, 6,      /* topleft row,col, and botleft row,col */
+          { 30,    3, 3, 8, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0e\x02" }  },
+      /* --- pixel bitmap for cmr600 char#23 (noname) --- */
+      {  23,121884,                     /* character number, location */
+         60,23,   45,23,      /* topleft row,col, and botleft row,col */
+          { 16,   15, 3,39, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x56\x8a\x53\x63\x20\xf1\x12\xa2\x1f\x42\xc2\xf1\x12"
+            "\xa2\x10\x23\x63\x5a\x86\x53" }  },
+      /* --- pixel bitmap for cmr600 char#24 (noname) --- */
+      {  24,122616,                     /* character number, location */
+         -2,11,  -17,11,      /* topleft row,col, and botleft row,col */
+          { 20,   15, 3,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x76\x70\x79\xe8\xe7\xe6\x10\xf2\xe6\xd6\xd7\xa9"
+            "\x2e\x02\x4b\x93" }  },
+      /* --- pixel bitmap for cmr600 char#25 \ss --- */
+      {  25,93513,                      /* character number, location */
+         59, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   60, 3,239, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\xdd\xe0\x96\x56\xe0\x66\x86\xe0\x36\xa6"
+            "\xe0\x16\xb7\x50\xf1\x86\xd7\x40\x76\xe0\x16\x40\xf6"
+            "\x76\xe0\x17\x30\xf1\x76\xe7\x40\x76\xd7\xc6\xd6\xd6"
+            "\xc6\xe6\xb6\xe0\x16\x96\xaf\x1d\x58\xcd\x96\xe0\x36"
+            "\xb5\xe0\x26\xc6\xe6\xd6\xd6\xe6\xc6\xe7\xb6\xe0\x16"
+            "\x40\xf1\x76\xe0\x26\x30\x76\xe0\x27\x96\xe0\x36\x20"
+            "\xf2\x76\xe0\x37\x10\xf9\x76\xe0\x47\x76\xe0\x46\x86"
+            "\x44\x97\x86\x36\x87\x86\x36\x86\x20\xf1\x76\x36\x76"
+            "\x30\x67\x35\x76\x4d\x43\x76\x5d\x53\x55\x7d\x6a\xe0"
+            "\xe0\x26\xb0" }  },
+      /* --- pixel bitmap for cmr600 char#26 \ae --- */
+      {  26,95046,                      /* character number, location */
+         38, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 55,   39, 3,283, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb8\xe0\x47\xe0\x5e\xdc\xe5\x76\x95\x56\xb3\xc6\x55"
+            "\x95\x95\xc6\x35\xb5\x77\xc6\x15\xc6\x68\xbb\xe6\x58"
+            "\xca\xe6\x58\xc9\xe0\x26\x48\xd8\xe0\x26\x56\xe7\xe0"
+            "\x36\x64\xe0\x17\xe0\x36\x10\xf1\xe0\xa7\xe0\x46\xf2"
+            "\xe0\xa6\xe0\x56\xe0\x4e\x0e\x09\xde\x0e\x0e\xaa\x46"
+            "\xe0\xe0\x48\x96\xe0\xe0\x28\xb6\xe0\xe0\x17\xd6\xe0"
+            "\xe7\xe6\xe0\xd7\xe0\x25\xe0\xc8\xe0\x26\xe0\xb7\xe0"
+            "\x36\xe0\xa8\xe0\x36\xe0\xaf\x17\xe0\x47\xe0\x72\x07"
+            "\xe0\x38\xe0\x6a\xe0\x39\xe0\x52\x18\xe0\x1b\xe0\x33"
+            "\x27\xe5\x26\xe0\x13\x38\xc5\x46\xd3\x58\xa5\x75\xb3"
+            "\x87\x75\xa6\x65\xbe\x01\xed\xe0\x29\xe0\x67\xa3" }  },
+      /* --- pixel bitmap for cmr600 char#27 \oe --- */
+      {  27,96326,                      /* character number, location */
+         38, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 61,   39, 3,305, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe8\xe0\x77\xe0\x8e\xe0\x2c\xe0\x36\x66\xc5\x56\xe5"
+            "\xa5\x95\x95\xc5\xd5\x65\xb5\x96\xe0\x15\x45\xc6\x85"
+            "\xe0\x26\x25\xe6\x66\xe0\x35\x16\xe6\x56\xe0\x5a\xe0"
+            "\x26\x37\xe0\x5a\xe0\x26\x36\xe0\x78\xe0\x36\x27\xe0"
+            "\x78\xe0\x36\x27\xe0\x78\xe0\x46\x16\xe0\x88\xe0\x46"
+            "\x16\xe0\x96\xe0\x56\x0f\x17\xe0\x96\xe0\x56\x0f\x17"
+            "\xe0\x9e\x0e\x03\x0f\x47\xe0\x96\xe0\xb0\x16\xe0\x96"
+            "\xe0\xb0\xf2\x17\xe0\x78\xe0\xa0\x26\xe0\x79\xe0\x72"
+            "\x27\xe0\x5a\xe0\x72\x36\xe0\x5a\xe0\x63\x46\xe0\x35"
+            "\x25\xe0\x52\x65\xe0\x26\x26\xe0\x33\x66\xe0\x15\x46"
+            "\xe0\x13\x95\xd5\x66\xd3\xb5\xa5\xa5\xb3\xd6\x66\xc6"
+            "\x65\xe0\x2e\xe0\x2d\xe0\x78\xe0\x87\xa0" }  },
+      /* --- pixel bitmap for cmr600 char#28 (noname) --- */
+      {  28,97320,                      /* character number, location */
+         44, 3,   -8, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   52, 3,317, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x42\xe0\xe0\x52\xe0\xe0\x53\xe0\xe0\x52\xe0"
+            "\xe0\x53\xe0\xe0\x52\xe0\x58\x62\xe0\x3e\x32\xe0\x16"
+            "\x68\xe0\x15\xa6\xe4\xe4\xd4\xe0\x15\xb4\xe0\x26\x95"
+            "\xe0\x12\x15\x75\xe0\x13\x25\x65\xe0\x12\x35\x55\xe0"
+            "\x13\x45\x45\xe0\x12\x55\x36\xe2\x66\x25\xe0\x12\x75"
+            "\x25\xe2\x85\x16\xd3\x8c\xd2\x9c\xc3\x9c\xc2\xa6\x0f"
+            "\x16\xb2\xb6\x06\xa2\xcc\x93\xcc\x92\xdc\x83\xd6\x15"
+            "\x82\xe5\x25\x72\xe0\x15\x26\x62\xe6\x35\x52\xe0\x15"
+            "\x45\x43\xe0\x15\x55\x32\xe0\x15\x74\x23\xe0\x14\x85"
+            "\x12\xe0\x15\x96\xe0\x15\xb5\xe5\xe4\xc4\xe0\x18\x66"
+            "\xe0\x22\x2e\xe0\x32\x68\xe0\x62\xe0\xe0\x52\xe0\xe0"
+            "\x53\xe0\xe0\x52\xe0\xe0\x53\xe0\xe0\x52\xe0\xe0\x52"
+            "\xe0\xe0\x43" }  },
+      /* --- pixel bitmap for cmr600 char#29 \AE --- */
+      {  29,99318,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 70,   57, 3,491, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x5e\x0e\x0e\x04\x50\xe0\xc2\x29\xe0\x39\xe0"
+            "\xe0\x32\x46\xe0\x76\xe0\xe0\x22\x56\xe0\x95\x40\xf1"
+            "\xe0\xb2\x56\xe0\xa4\x40\xf1\xe0\xa2\x66\xe0\xb3\x40"
+            "\xe0\x93\x66\xe0\xc2\x40\xf1\xe0\x92\x76\xe0\xc2\x40"
+            "\xe0\x82\x86\xe0\xc2\xe0\xc2\x86\xe0\xc3\xe0\xb2\x86"
+            "\xe0\xd2\x30\xf1\xe0\x72\x96\xe0\xd2\x30\xe0\x63\x96"
+            "\xe0\x22\x92\x30\xf1\xe0\x62\xa6\xe0\x22\xe0\xf2\xe0"
+            "\x52\xb6\xe0\x22\xe0\xf1\xe0\x42\xc6\xe0\x13\xe0\xe0"
+            "\x33\xc6\xe4\xe0\xe0\x32\xd6\xc6\xe0\xe0\x3e\x0e\x0b"
+            "\xe0\xf1\xe0\x2e\x0e\x0c\xe0\xe0\x22\xe6\xc6\xe0\xe0"
+            "\x12\xe0\x16\xe4\xe0\xf1\xe0\x12\xe0\x16\xe0\x13\xe0"
+            "\xf1\xe2\xe0\x26\xe0\x22\xc2\xd3\xe0\x26\xe0\x22\xc2"
+            "\xd2\xe0\x36\xe0\x22\xb3\xd2\xe0\x36\xe0\x22\xb2\xd2"
+            "\xe0\x46\xe0\x22\xb2\x10\xf1\xc2\xe0\x46\xe0\xe0\x12"
+            "\x10\xb2\xe0\x56\xe0\xe0\x12\xc2\xe0\x56\xe0\xe3\xb3"
+            "\xe0\x56\xe0\xe3\xb2\xe0\x66\xe0\xe2\xc2\xe0\x66\xe0"
+            "\xd3\xb2\xe0\x76\xe0\xd3\xb2\xe0\x76\xe0\xc4\xa3\xe0"
+            "\x76\xe0\xb5\x95\xe0\x66\xe0\xa6\x86\xe0\x66\xe0\x88"
+            "\x6a\xe0\x38\xe0\x4a\x3f\x2e\x03\x9e\x0e\x0d\x30" }  },
+      /* --- pixel bitmap for cmr600 char#30 \OE --- */
+      {  30,101298,                     /* character number, location */
+         59, 6,   -2, 6,      /* topleft row,col, and botleft row,col */
+          { 76,   61, 3,559, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x89\xe0\xe0\xe0\xe0\x8e\x03\xe0\xe0\xe0\xe0\x17"
+            "\x7e\x0e\x0c\xe0\x66\xce\x0e\x0a\xe0\x47\xee\x0e\x09"
+            "\xe0\x36\xe0\x39\xe0\x49\xe0\x26\xe0\x48\xe0\x86\xe7"
+            "\xe0\x67\xe0\x96\xc7\xe0\x77\xe0\xa5\xc7\xe0\x77\xe0"
+            "\xb4\xb7\xe0\x87\xe0\xc3\xa7\xe0\x97\xe0\xc3\x98\xe0"
+            "\x97\xe0\xd2\x97\xe0\xa7\xe0\xd2\x88\xe0\xa7\xe0\xd2"
+            "\x87\xe0\xb7\xe0\xd2\x78\xe0\xb7\xe0\xd3\x68\xe0\xb7"
+            "\xe0\xe2\x30\xf2\x28\xe0\xc7\xe0\x42\x82\x30\xf1\x19"
+            "\xe0\xd6\xe0\x42\xd0\x18\xe0\xe6\xe0\x42\xe8\xe0\xe6"
+            "\xe0\x33\xd9\xe0\xe6\xe0\x33\xd9\xe0\xe6\xe0\x24\xd9"
+            "\xe0\xe6\xe6\xdf\x29\xe0\xee\x0c\xd9\xe0\xe6\xe6\xd9"
+            "\xe0\xe6\xe0\x24\xdf\x19\xe0\xe6\xe0\x33\xd9\xe0\xe6"
+            "\xe0\x42\xda\xe0\xd6\xe0\x42\xd0\xf2\x19\xe0\xd6\xe0"
+            "\x42\xb2\x19\xe0\xc7\xe0\x42\xa3\xf1\x29\xe0\xb7\xe0"
+            "\xe0\x22\x10\x38\xe0\xb7\xe0\xe0\x22\x10\xf1\x39\xe0"
+            "\xa7\xe0\xe0\x22\x10\x48\xe0\xa7\xe0\xe0\x13\x68\xe0"
+            "\x97\xe0\xe0\x13\x68\xe0\x97\xe0\xe0\x12\x88\xe0\x87"
+            "\xe0\xe3\x97\xe0\x87\xe0\xe3\x98\xe0\x77\xe0\xd4\xa8"
+            "\xe0\x67\xe0\xc5\xb8\xe0\x57\xe0\xb6\xc8\xe0\x38\xe0"
+            "\x98\xe7\xe0\x29\xe0\x5a\xe0\x27\xee\x0e\x0b\xe0\x47"
+            "\xbe\x0e\x0c\xe0\x58\x7e\x0e\x0e\xe0\x8e\x03\xe0\xe0"
+            "\xe0\xe0\x69\xe0\xe0\xe0\x30" }  },
+      /* --- pixel bitmap for cmr600 char#31 (noname) --- */
+      {  31,102540,                     /* character number, location */
+         61, 5,   -4, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   65, 3,533, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\xe0\x62\xe0\xe0\xe0\xa3\xe0\xe9\xe0\x12\xe0"
+            "\xbe\x03\xa2\xe0\xa6\x96\x73\xe0\x85\xe0\x15\x52\xe0"
+            "\x75\xe0\x55\x22\xe0\x75\xe0\x78\xe0\x65\xe0\x96\xa0"
+            "\xf1\x95\xe0\xd5\x90\x85\xe0\xe6\xe0\x15\xe0\xe2\x15"
+            "\xd5\xe0\xe3\x25\xb6\xe0\xd3\x36\xa5\xe0\xe2\x55\x96"
+            "\xe0\xd3\x56\x85\xe0\xd3\x75\x76\xe0\xd2\x86\x66\xe0"
+            "\xc3\x86\x56\xe0\xc3\xa6\x46\xe0\xc2\xb6\x46\xe0\xb2"
+            "\xc6\x37\xe0\xa3\xc7\x27\xe0\xa2\xd7\x26\xe0\xa2\xe0"
+            "\x16\x26\xe0\x93\xe0\x16\x17\xe0\x92\xe0\x2e\xe0\x82"
+            "\xe0\x3e\xe0\x73\xe0\x3e\xe0\x72\xe0\x4e\xe0\x62\xe0"
+            "\x5e\xe0\x53\xe0\x5e\xe0\x52\xe0\x6e\xe0\x42\xe0\x7e"
+            "\xe0\x33\xe0\x7e\xe0\x32\xe0\x8e\xe0\x22\xe0\x9e\xe0"
+            "\x13\xe0\x97\x16\xe0\x12\xe0\xa6\x26\xe2\xe0\xb6\x27"
+            "\xc3\xe0\xa7\x27\xc2\xe0\xb7\x36\xb2\xe0\xc6\x46\xa3"
+            "\xe0\xc6\x56\x83\xe0\xc6\x66\x82\xe0\xd6\x66\x73\xe0"
+            "\xd6\x76\x53\xe0\xd6\x95\x52\xe0\xe5\xa6\x33\xe0\xd6"
+            "\xb5\x23\xe0\xe5\xd5\x12\xe0\xe5\xe7\xe0\xe6\xe0\x16"
+            "\xe0\xe5\xe0\x35\xe0\xd5\xe0\x55\xe0\xb5\xe0\x58\xe0"
+            "\x75\xe0\x72\x25\xe0\x55\xe0\x72\x55\xe0\x15\xe0\x83"
+            "\x76\x96\xe0\xa2\xae\x03\xe0\xb2\xe0\x19\xe0\xe3\xe0"
+            "\xe0\xe0\xa2\xe0\xe0\xe0\x6e" }  },
+      /* --- pixel bitmap for cmr600 char#32 (noname) --- */
+      {  32,123136,                     /* character number, location */
+         33, 2,   23, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   10, 3,29, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x41\xe0\x14\xc7\x99\x79\x7a\x79\x97\xc4\xe0\x11"
+            "\xe0\x42" }  },
+      /* --- pixel bitmap for cmr600 char#33 ! --- */
+      {  33,103459,                     /* character number, location */
+         60, 7,    0, 7,      /* topleft row,col, and botleft row,col */
+          {  9,   60, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x79\xfa\x17\x10\xfa\x25\x20\xfa\x33\x30"
+            "\xf7\x90\x33\x47\x1f\x49\x17\x43\x35" }  },
+      /* --- pixel bitmap for cmr600 char#34 " --- */
+      {  34,135253,                     /* character number, location */
+         58, 3,   33, 3,      /* topleft row,col, and botleft row,col */
+          { 26,   25, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\xd3\x57\x97\x2f\x19\x79\x1f\x2a\x6a\x19\x79\x33"
+            "\x22\x93\x22\xf3\x82\xe2\x73\xd3\xf1\x72\xe2\x10\x63"
+            "\xd3\x72\xe2\x73\xd3\x72\xe2\x73\xd3\x63\xd3\x63\xd3"
+            "\x63\xd3\x72\xe2\x77" }  },
+      /* --- pixel bitmap for cmr600 char#35 # --- */
+      {  35,105077,                     /* character number, location */
+         58, 5,  -16, 5,      /* topleft row,col, and botleft row,col */
+          { 59,   74, 3,429, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe2\xe0\x32\xa0\xf1\xe0\xd4\xe0\x14\x90\xf1\xe0"
+            "\xc5\xe5\x90\xf1\xe0\xc4\xe0\x14\xa0\xf1\xe0\xb5\xe5"
+            "\xa0\xf2\xe0\xb4\xe0\x14\xb0\xf1\xe0\xa5\xe5\xb0\xf1"
+            "\xe0\xa4\xe0\x14\xc0\xf1\xe0\x95\xe5\xc0\xf1\xe0\x94"
+            "\xe0\x14\xd0\xf1\xe0\x85\xe5\xd0\xf2\xe0\x84\xe0\x14"
+            "\xe0\xe0\x75\xe5\xe0\x1e\x0e\x0e\x0e\x01\x1f\x1e\x0e"
+            "\x0e\x0e\x03\x1e\x0e\x0e\x0e\x01\xe0\x65\xe5\xe0\x20"
+            "\xf2\xe0\x54\xe0\x14\xe0\x30\xf1\xe0\x45\xe5\xe0\x30"
+            "\xf1\xe0\x44\xe0\x14\xe0\x40\xf1\xe0\x35\xe5\xe0\x40"
+            "\xf2\xe0\x34\xe0\x14\xe0\x50\xe0\x25\xe5\xe0\x6e\x0e"
+            "\x0e\x0e\x01\x1f\x1e\x0e\x0e\x0e\x03\x1e\x0e\x0e\x0e"
+            "\x01\xe0\x15\xe5\xe0\x70\xf2\xe4\xe0\x14\xe0\x80\xf1"
+            "\xd5\xe5\xe0\x80\xf1\xd4\xe0\x14\xe0\x90\xf1\xc5\xe5"
+            "\xe0\x90\xf1\xc4\xe0\x14\xe0\xa0\xf1\xb5\xe5\xe0\xa0"
+            "\xf2\xb4\xe0\x14\xe0\xb0\xf1\xa5\xe5\xe0\xb0\xf1\xa4"
+            "\xe0\x14\xe0\xc0\xf1\x95\xe5\xe0\xc0\xf1\x94\xe0\x14"
+            "\xe0\xd0\xa2\xe0\x32\xe0\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#36 $ --- */
+      {  36,87116,                      /* character number, location */
+         62, 5,   -5, 5,      /* topleft row,col, and botleft row,col */
+          { 32,   67, 3,319, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x13\xe0\xc9\xe0\x6e\xe0\x3e\x03\xd6\x33\x36"
+            "\xa5\x53\x64\x84\x73\x74\x64\x83\x84\x44\x93\x93\x44"
+            "\x93\xa3\x24\xa3\xb2\x24\xa3\xb3\x13\xb3\x99\xb3\x77"
+            "\x0f\x34\xb3\x68\x05\xa3\x76\x15\xa3\x84\x26\x93\xe0"
+            "\xf1\x16\x83\xe0\x18\x63\xe0\x28\x53\xe0\x2b\x23\xe0"
+            "\x3e\x01\xe0\x4e\x03\xe0\x2e\x04\xe0\x1e\x05\xe0\x1e"
+            "\x04\xe0\x2e\x03\xe0\x3e\x02\xe0\x5e\xe0\x43\x2a\xe0"
+            "\x33\x48\xe0\x33\x67\x10\xf1\xe0\x13\x76\x10\xe0\x13"
+            "\x86\xe0\x13\x95\x24\x93\x9d\x73\x95\x0f\x38\x73\xa4"
+            "\x07\x83\xa9\xa3\xa3\x13\xc3\x94\x22\xc3\x94\x23\xb3"
+            "\x93\x33\xb3\x84\x43\xa3\x74\x63\x93\x65\x64\x83\x55"
+            "\x85\x63\x45\xa6\x43\x26\xde\x03\xe0\x3d\xe0\x88\xc0"
+            "\xf3\xe0\x13\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#37 % --- */
+      {  37,106522,                     /* character number, location */
+         62, 5,   -5, 5,      /* topleft row,col, and botleft row,col */
+          { 59,   67, 3,603, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x96\xe0\xe0\x62\xe0\x1a\xe0\xe0\x34\xd4\x53\xe0\xe0"
+            "\x15\xc4\x73\xe0\xd6\xb4\x93\xe0\xb6\xb4\xb4\xe0\x86"
+            "\xb5\xb5\xe0\x67\xb4\xd7\xe9\xb5\xd3\x16\x8b\xc5\xe2"
+            "\x4e\x26\xc5\xe2\x78\x55\xc5\xe0\x13\xe0\x45\xd5\xe0"
+            "\x22\xe0\x45\xd5\xe0\x22\xe0\x35\xe5\xe0\x22\xe0\x26"
+            "\xe5\xe0\x22\xe0\x25\xe0\x15\xe0\x22\xe0\x15\xe0\x25"
+            "\xe0\x22\xe6\xe0\x25\xe0\x22\xe5\xe0\x35\xe0\x22\xd5"
+            "\xe0\x45\xe0\x22\xc6\xe0\x45\xe0\x13\xc5\xe0\x65\xe2"
+            "\xc5\xe0\x75\xe2\xb6\xe0\x75\xd3\xb5\xe0\x94\xd2\xb5"
+            "\xe0\xa5\xb3\xa6\xe0\xb4\xb2\xb5\xe0\xd4\x93\xa5\xe0"
+            "\xe0\x14\x73\xa6\xe0\xe0\x24\x53\xb5\xe0\xe0\x4a\xb5"
+            "\xe0\xe0\x76\xc6\xe0\xe0\xe0\xb5\xd6\xe0\xe0\x65\xca"
+            "\xe0\xe0\x45\xb4\x53\xe0\xe0\x25\xb4\x73\xe0\xe6\xa4"
+            "\x93\xe0\xd5\xa4\xb2\xe0\xc5\xa5\xb3\xe0\xa6\xa4\xd2"
+            "\xe0\xa5\xa5\xd3\xe0\x85\xb5\xe2\xe0\x76\xb5\xe2\xe0"
+            "\x75\xc4\xe0\x13\xe0\x55\xc5\xe0\x22\xe0\x46\xc5\xe0"
+            "\x22\xe0\x45\xd5\xe0\x22\xe0\x35\xe5\xe0\x22\xe0\x26"
+            "\xe5\xe0\x22\xe0\x25\xe0\x15\xe0\x22\xe0\x15\xe0\x25"
+            "\xe0\x22\xe6\xe0\x25\xe0\x22\xe5\xe0\x35\xe0\x22\xd5"
+            "\xe0\x45\xe0\x22\xd5\xe0\x54\xe0\x13\xc5\xe0\x65\xe2"
+            "\xc6\xe0\x65\xe2\xc5\xe0\x75\xd3\xb5\xe0\x94\xd2\xb6"
+            "\xe0\x95\xb3\xb5\xe0\xb4\xb2\xb5\xe0\xd4\x93\xa6\xe0"
+            "\xe4\x73\xb5\xe0\xe0\x24\x53\xc4\xe0\xe0\x4a\xe2\xe0"
+            "\xe0\x76\x80" }  },
+      /* --- pixel bitmap for cmr600 char#38 & --- */
+      {  38,88608,                      /* character number, location */
+         60, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 58,   62, 3,545, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x55\xe0\xe0\xe0\x99\xe0\xe0\xe0\x64\x43\xe0\xe0"
+            "\xe0\x35\x63\xe0\xe0\xe0\x24\x82\xe0\xe0\xe0\x15\x82"
+            "\xe0\xe0\xe5\x93\xe0\xe0\x10\xf1\xc5\xa2\xe0\xe0\x10"
+            "\xf1\xb6\xa2\xe0\xe0\x10\xb5\xb2\xe0\xe0\xc6\xa2\xe0"
+            "\xe0\xc6\x93\xe0\xe0\x10\xf1\xb6\x92\xe0\xe0\x20\xb6"
+            "\x83\xe0\xe0\xd6\x73\xe0\xe0\xe6\x72\xe0\xe0\xe0\x16"
+            "\x63\xe0\xe0\xe0\x26\x43\xe0\xe0\xe0\x36\x42\xe0\xe0"
+            "\xe0\x46\x33\xe0\xe0\xe0\x46\x23\xe0\xe0\xe0\x5a\xe0"
+            "\x4e\x04\xd8\xe0\x5e\x04\xd7\xe0\x6e\x04\xd7\xe0\x9b"
+            "\xe0\x37\xe0\xb6\xe0\x76\xe0\xb5\xe0\x78\xe0\xa4\xe0"
+            "\x88\xe0\xa3\xe0\x8a\xe0\x92\xe0\x83\x17\xe0\x83\xe0"
+            "\x73\x37\xe0\x72\xe0\x73\x47\xe0\x63\xe0\x63\x67\xe0"
+            "\x43\xe0\x63\x78\xe0\x32\xe0\x63\x97\xe0\x23\xe0\x54"
+            "\x98\xe3\xe0\x54\xb8\xd2\xe0\x55\xc7\xc3\xe0\x46\xc8"
+            "\xb2\xe0\x46\xe8\x93\xe0\x46\xe0\x17\x83\xe0\x56\xe0"
+            "\x18\x72\xe0\x57\xe0\x28\x53\xe0\x57\xe0\x37\x43\xe0"
+            "\x67\xe0\x47\x23\xe0\x77\xe0\x4b\xe0\x88\xe0\x4a\xe0"
+            "\x52\x18\xe0\x58\xe0\x62\x18\xe0\x67\xe0\x62\x28\xe0"
+            "\x67\xe0\x43\x28\xe0\x59\xe0\x32\x48\xe0\x3b\xe0\x13"
+            "\x58\xe0\x14\x28\xc3\x78\xc4\x58\xa4\x88\x86\x88\x65"
+            "\xae\x05\xbe\x03\xde\x01\xe0\x2c\xe0\x49\xe0\x87\x90" }  },
+      /* --- pixel bitmap for cmr600 char#39 ' --- */
+      {  39,107474,                     /* character number, location */
+         58, 7,   33, 7,      /* topleft row,col, and botleft row,col */
+          { 10,   25, 3,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x57\x2f\x19\x1f\x2a\x19\x33\x22\xf3\x82\x73\xf1"
+            "\x72\x10\x63\x72\x73\x72\x73\x63\x63\x63\x72\x70" }  },
+      /* --- pixel bitmap for cmr600 char#40 ( --- */
+      {  40,108088,                     /* character number, location */
+         62, 8,  -20, 8,      /* topleft row,col, and botleft row,col */
+          { 19,   82, 3,190, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x32\xe0\x23\xe0\x13\xe0\x13\xe0\x13\xe0\x13\xe0"
+            "\x14\xe4\x50\xf1\x94\x60\x84\x70\xf1\x74\x80\xf1\x64"
+            "\x90\x55\xe4\xe5\xa0\xf1\x44\xb0\x35\xb0\xf1\x34\xc0"
+            "\xf2\x25\xc0\xf5\x15\xdf\xe5\xef\x25\xe0\xf5\x15\xd0"
+            "\xf2\x25\xc0\xf1\x34\xc0\x35\xb0\xf1\x44\xb0\x45\xe0"
+            "\x14\xe0\x15\x90\xf1\x64\x90\xf1\x74\x80\x84\x70\xf1"
+            "\x94\x60\xa4\xe0\x24\xe0\x23\xe0\x33\xe0\x33\xe0\x33"
+            "\xe0\x33\xe0\x32" }  },
+      /* --- pixel bitmap for cmr600 char#41 ) --- */
+      {  41,108815,                     /* character number, location */
+         62, 5,  -20, 5,      /* topleft row,col, and botleft row,col */
+          { 19,   82, 3,191, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x02\xe0\x33\xe0\x33\xe0\x33\xe0\x33\xe0\x33\xe0\x24"
+            "\xe0\x24\xa0\xf1\x64\x90\x74\x80\xf1\x84\x70\xf1\x94"
+            "\x60\x95\xe0\x14\xe0\x15\x40\xf1\xb4\x40\xb5\x30\xf1"
+            "\xc4\x30\xf2\xc5\x20\xf5\xd5\x10\xfe\xe5\xf2\xe5\xf5"
+            "\xd5\x10\xf2\xc5\x20\xf1\xc4\x30\xb5\x30\xf1\xb4\x40"
+            "\xa5\xe4\xe5\x50\xf1\x94\x60\xf1\x84\x70\x74\x80\xf1"
+            "\x64\x90\x54\xe4\xe0\x13\xe0\x13\xe0\x13\xe0\x13\xe0"
+            "\x13\xe0\x22\xe0\x36" }  },
+      /* --- pixel bitmap for cmr600 char#42 * --- */
+      {  42,109566,                     /* character number, location */
+         62, 5,   26, 5,      /* topleft row,col, and botleft row,col */
+          { 32,   36, 3,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe4\xe0\xe5\xd0\xf4\xe4\xe0\x14\x94\x94\x25\x84"
+            "\x85\x17\x74\x77\x18\x54\x58\x38\x44\x48\x68\x32\x38"
+            "\xa7\x22\x27\xe6\x12\x16\xe0\x4c\xa0\xf1\xd6\xd0\xac"
+            "\xe0\x46\x12\x16\xe7\x22\x27\xa8\x32\x38\x68\x44\x48"
+            "\x38\x54\x58\x17\x74\x77\x15\x84\x85\x24\x94\x94\x10"
+            "\xf4\xe4\xe0\xe5\xd0\xf1\xe4\xe1" }  },
+      /* --- pixel bitmap for cmr600 char#43 + --- */
+      {  43,110358,                     /* character number, location */
+         48, 5,   -6, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   54, 2,29, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1b\x02\x1a\x00\xff\x17\x1a\x04\x19\x00\x01\x35\x01"
+            "\xff\x01\x37\x01\x35\x01\x00\xff\x17\x1a\x04\x19\x00"
+            "\x1b\x02\x1a" }  },
+      /* --- pixel bitmap for cmr600 char#44 (noname) --- */
+      {  44,111021,                     /* character number, location */
+          9, 7,  -16, 7,      /* topleft row,col, and botleft row,col */
+          { 10,   25, 3,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x57\x2f\x19\x1f\x2a\x19\x33\x22\xf3\x82\x73\xf1"
+            "\x72\x10\x63\x72\x73\x72\x73\x63\x63\x63\x72\x7e" }  },
+      /* --- pixel bitmap for cmr600 char#45 (noname) --- */
+      {  45,135836,                     /* character number, location */
+         21, 1,   16, 1,      /* topleft row,col, and botleft row,col */
+          { 22,    5, 3, 6, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf4\x0e\x08" }  },
+      /* --- pixel bitmap for cmr600 char#46 (noname) --- */
+      {  46,111526,                     /* character number, location */
+          9, 7,    0, 7,      /* topleft row,col, and botleft row,col */
+          {  9,    9, 3,13, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x39" }  },
+      /* --- pixel bitmap for cmr600 char#47 / --- */
+      {  47,112046,                     /* character number, location */
+         62, 5,  -21, 5,      /* topleft row,col, and botleft row,col */
+          { 32,   83, 3,375, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x12\xe0\xe0\x14\xf1\xe0\xd5\xe0\xd4\x10\xf1"
+            "\xe0\xc5\x10\xe0\xc4\x20\xf1\xe0\xb5\x20\xe0\xb4\x30"
+            "\xf1\xe0\xa5\x30\xe0\xa4\x40\xf1\xe0\x95\x40\xe0\x94"
+            "\x50\xf1\xe0\x85\x50\xf1\xe0\x75\x60\xe0\x74\x70\xf1"
+            "\xe0\x65\x70\xe0\x64\x80\xf1\xe0\x55\x80\xe0\x54\x90"
+            "\xf1\xe0\x45\x90\xe0\x44\xa0\xf1\xe0\x35\xa0\xf1\xe0"
+            "\x25\xb0\xe0\x24\xc0\xf1\xe0\x15\xc0\xe0\x14\xd0\xf1"
+            "\xe5\xd0\xe4\xe0\xf1\xd5\xe0\xd4\xe0\x10\xf1\xc5\xe0"
+            "\x10\xc4\xe0\x20\xf1\xb5\xe0\x20\xf1\xa5\xe0\x30\xa4"
+            "\xe0\x40\xf1\x95\xe0\x40\x94\xe0\x50\xf1\x85\xe0\x50"
+            "\x84\xe0\x60\xf1\x75\xe0\x60\x74\xe0\x70\xf1\x65\xe0"
+            "\x70\xf1\x55\xe0\x80\x54\xe0\x90\xf1\x45\xe0\x90\x44"
+            "\xe0\xa0\xf1\x35\xe0\xa0\x34\xe0\xb0\xf1\x25\xe0\xb0"
+            "\x24\xe0\xc0\xf1\x15\xe0\xc0\x14\xe0\xdf\x15\xe0\xd4"
+            "\xe0\xe0\x12\xe0\xe0\x15" }  },
+      /* --- pixel bitmap for cmr600 char#48 0 --- */
+      {  48,76377,                      /* character number, location */
+         55, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   57, 3,177, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe8\xe0\xbe\xe0\x66\x66\xe0\x35\xa5\xe0\x15\xc5\xd5"
+            "\xe5\xb5\xe0\x25\x50\xf1\x45\xe0\x45\x40\xf1\x35\xe0"
+            "\x65\x30\xf2\x26\xe0\x66\x20\xf4\x16\xe0\x86\x1f\xe7"
+            "\xe0\x87\x0f\x37\xe0\x87\xf3\x16\xe0\x86\x10\x17\xe0"
+            "\x67\x10\xf2\x26\xe0\x66\x20\x35\xe0\x65\x66\xe0\x46"
+            "\x30\xf1\x45\xe0\x45\x40\x55\xe0\x25\xb5\xe5\xd5\xc5"
+            "\xe0\x15\xa5\xe0\x36\x66\xe0\x6e\xe0\xb8\xe7" }  },
+      /* --- pixel bitmap for cmr600 char#49 1 --- */
+      {  49,77319,                      /* character number, location */
+         55, 8,    0, 8,      /* topleft row,col, and botleft row,col */
+          { 28,   55, 3,60, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x12\xe0\xa4\xe0\x95\xe0\x77\xe0\x4a\xbe\x03\xba"
+            "\x16\xb7\x46\xb0\xfe\xb6\xb0\xfe\xb6\xb0\xfc\xb6\xb0"
+            "\x9a\x9f\x2e\x0e" }  },
+      /* --- pixel bitmap for cmr600 char#50 2 --- */
+      {  50,78374,                      /* character number, location */
+         55, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   55, 3,255, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc9\xe0\x8e\x01\xe0\x3e\x05\xe5\x7a\xa4\xd8\x93\xe0"
+            "\x18\x73\xe0\x38\x53\xe0\x58\x33\xe0\x68\x33\xe0\x78"
+            "\x22\xe0\x88\x17\xe0\x48\x18\xe0\x48\x0f\x49\xe0\x38"
+            "\x17\xe0\x48\x33\xe0\x68\xe0\xc8\xf1\xe0\xb8\x10\xe0"
+            "\xb7\xe0\xc8\xe0\xc7\xe0\xc7\xe0\xc8\xe0\xc7\xe0\xc7"
+            "\xe0\xc7\xe0\xd6\xe0\xd6\xe0\xd6\xe0\xd5\xe0\xe5\xe0"
+            "\xe5\xe0\xe5\xe0\xe5\xe0\xe4\xe0\xe0\x14\xe0\xe0\x14"
+            "\xe0\x42\x94\xe0\x52\x93\xe0\x62\x83\xe0\x62\x83\xe0"
+            "\x72\x73\xe0\x82\x63\xe0\x92\x53\xe0\x93\x4e\x0e\x02"
+            "\x3e\x0e\x03\x2e\x0e\x03\x2f\x2e\x0e\x04\x24" }  },
+      /* --- pixel bitmap for cmr600 char#51 3 --- */
+      {  51,79524,                      /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 35,   57, 3,269, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc9\xe0\xae\xe0\x5e\x04\xe0\x16\x88\xc4\xc8\xa3\xe0"
+            "\x18\x83\xe0\x38\x74\xe0\x28\x67\xe0\x18\x30\xf1\x28"
+            "\xe8\x30\x29\xd8\x30\xf1\x28\xe8\x30\x36\xe0\x18\x83"
+            "\xe0\x28\x30\xf1\xe0\x98\x40\xe0\x97\xe0\xd8\xe0\xd7"
+            "\xe0\xd7\xe0\xd7\xe0\xd6\xe0\xd6\xe0\x8b\xe0\xae\xe0"
+            "\xe0\x37\xe0\xe0\x17\xe0\xe0\x18\xe0\xe8\xe0\xe8\xe0"
+            "\xd9\xe0\xd8\x20\xf1\xe0\xb9\x10\xe0\xc8\x10\xf1\xe0"
+            "\xc9\x33\xe0\x69\x17\xe0\x49\x0f\x39\xe0\x39\x09\xe0"
+            "\x29\x18\xe0\x39\x26\xe0\x48\x33\xe0\x69\x34\xe0\x58"
+            "\x54\xe0\x38\x74\xe0\x18\x95\xc8\xb7\x88\xee\x05\xe0"
+            "\x4e\x01\xe0\x99\xe4" }  },
+      /* --- pixel bitmap for cmr600 char#52 4 --- */
+      {  52,80572,                      /* character number, location */
+         56, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   56, 3,249, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\xc3\x90\xe0\xb4\xe0\xe0\x55\x90\xf1\xe0\x96"
+            "\x90\xe0\x87\x90\xf1\xe0\x78\x90\xe0\x62\x16\xe0\xe3"
+            "\x16\xe0\xe2\x26\xe0\xd2\x36\xe0\xc3\x36\xe0\xb3\x46"
+            "\xe0\xb2\x56\xe0\xa2\x66\xe0\x93\x66\xe0\x92\x76\xe0"
+            "\x82\x86\xe0\x73\x86\xe0\x72\x96\xe0\x62\xa6\xe0\x53"
+            "\xa6\xe0\x43\xb6\xe0\x42\xc6\xe0\x32\xd6\xe0\x23\xd6"
+            "\xe0\x22\xe6\xe0\x12\xe0\x16\xe3\xe0\x16\xe2\xe0\x26"
+            "\xd2\xe0\x36\xc3\xe0\x36\xb3\xe0\x46\xb2\xe0\x56\xa2"
+            "\xe0\x66\x93\xe0\x66\x9f\x2e\x0e\x0a\xfa\xe0\x96\x90"
+            "\xe0\x88\x80\xf2\xe0\x1e\x08\x18" }  },
+      /* --- pixel bitmap for cmr600 char#53 5 --- */
+      {  53,81732,                      /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,231, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x52\xe0\x82\x84\xe0\x44\x88\xa7\x9e\x0b\x9e\x0a\xae"
+            "\x09\xbe\x07\xde\x06\xee\x04\xe0\x22\x2b\xe0\xf9\x52"
+            "\xe0\xd0\x52\x78\xe0\x32\x4d\xe0\x12\x34\x75\xd2\x14"
+            "\xa6\xb5\xd6\xa4\xe0\x16\x93\xe0\x35\x92\xe0\x46\x82"
+            "\xe0\x56\xe0\xe6\x20\xf1\xe0\xc7\x10\xe0\xd6\x10\xf3"
+            "\xe0\xd7\x32\xe0\x87\x16\xe0\x67\x0f\x38\xe0\x57\x08"
+            "\xe0\x56\x17\xe0\x57\x15\xe0\x77\x22\xe0\x96\x33\xe0"
+            "\x77\x42\xe0\x76\x53\xe0\x56\x73\xe0\x37\x83\xe0\x17"
+            "\xa4\xc7\xc6\x77\xe0\x1e\x04\xe0\x4e\xe0\x98\xe6" }  },
+      /* --- pixel bitmap for cmr600 char#54 6 --- */
+      {  54,82756,                      /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,231, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x47\xe0\xad\xe0\x5e\x02\xe0\x27\x84\xe6\xc3\xc6"
+            "\xb5\xb6\xb7\x96\xb8\x86\xc8\x77\xc8\x76\xd8\x67\xe6"
+            "\x76\xe0\x24\x77\xe0\xd6\xe0\xb0\xf2\x27\xe0\xb0\x18"
+            "\xe0\xc7\xe0\xd7\x77\xd7\x4c\xa8\x34\x65\x88\x23\x95"
+            "\x78\x13\xb5\x68\x12\xd5\x5b\xd6\x4a\xe0\x16\x3a\xe0"
+            "\x17\x29\xe0\x27\x2f\x29\xe0\x37\x1f\x48\xe0\x48\xf4"
+            "\x17\xe0\x48\x27\xe0\x38\xf1\x27\xe0\x37\x10\x36\xe0"
+            "\x28\x46\xe0\x27\x66\xe0\x16\x76\xe7\x86\xd6\xa6\xb6"
+            "\xc6\x96\xe6\x67\xe0\x2e\x03\xe0\x5d\xe0\xa7\xd6" }  },
+      /* --- pixel bitmap for cmr600 char#55 7 --- */
+      {  55,83814,                      /* character number, location */
+         56, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 36,   58, 3,235, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x22\xe0\xe0\x63\xe0\xe0\x55\xe0\xe0\x10\xf2\x2e\x0e"
+            "\x06\x2e\x0e\x05\x2e\x0e\x06\x2e\x0e\x05\x33\xe0\xc3"
+            "\x42\xe0\xd2\x52\xe0\xc3\x52\xe0\xb3\x62\xe0\xa3\x62"
+            "\xe0\xb2\x72\xe0\xa3\x72\xe0\x93\xe0\xe0\x43\xe0\xe0"
+            "\x52\xe0\xe0\x53\xe0\xe0\x43\xe0\xe0\x43\xe0\xe0\x52"
+            "\xe0\xe0\x53\xd0\xf1\xe0\x53\xe0\xe0\x43\xe0\x10\xf1"
+            "\xe0\x34\xe0\x10\xf1\xe0\x24\xe0\x20\xf1\xe0\x15\xe0"
+            "\x20\xf2\xe5\xe0\x30\xf2\xd6\xe0\x30\xf2\xc6\xe0\x40"
+            "\xf4\xb7\xe0\x40\xf8\xa8\xe0\x40\xb6\xe0\xe0\x34\xe0"
+            "\x60" }  },
+      /* --- pixel bitmap for cmr600 char#56 8 --- */
+      {  56,84826,                      /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,267, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd8\xe0\x9e\xe0\x4e\x04\xe0\x16\x86\xd4\xd6\xa4\xe0"
+            "\x16\x84\xe0\x35\x74\xe0\x55\x64\xe0\x64\x63\xe0\x75"
+            "\x20\xf3\x24\xe0\x84\x20\x25\xe0\x74\x46\xe0\x55\x46"
+            "\xe0\x54\x58\xe0\x34\x68\xe0\x14\x7a\xc5\x8a\xa5\x9c"
+            "\x75\xbc\x54\xed\x24\xe0\x3e\x01\xe0\x6d\xe0\x9d\xe0"
+            "\x8d\xe0\x5e\x03\xe0\x14\x3d\xd4\x6c\xa5\x9b\x85\xbb"
+            "\x65\xea\x45\xe0\x29\x44\xe0\x58\x25\xe0\x67\x24\xe0"
+            "\x8c\xe0\x96\x0f\x14\xe0\xb5\x0f\x34\xe0\xc4\x05\xe0"
+            "\xb3\x10\xf1\x14\xe0\xa4\x10\x15\xe0\x84\x45\xe0\x74"
+            "\x55\xe0\x54\x75\xe0\x34\x95\xe5\xb7\x87\xee\x04\xe0"
+            "\x4e\xe0\x98\xd9" }  },
+      /* --- pixel bitmap for cmr600 char#57 9 --- */
+      {  57,85878,                      /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,235, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd8\xe0\xac\xe0\x6e\x02\xe0\x27\x66\xe6\x97\xb6\xb6"
+            "\xa6\xd6\x87\xe6\x76\xe0\x16\x67\xe0\x26\x48\xe0\x26"
+            "\x30\xf1\x17\xe0\x37\x28\xe0\x37\x2f\x48\xe0\x47\x1f"
+            "\x48\xe0\x48\xf2\x17\xe0\x39\x27\xe0\x29\x27\xe0\x1a"
+            "\x36\xe0\x1a\x46\xdb\x55\xd2\x18\x65\xb3\x18\x75\x93"
+            "\x28\x85\x64\x38\xac\x47\xd7\x77\x10\xf1\xe0\xc7\x10"
+            "\xe0\xb8\x10\xf2\xe0\xb7\x20\xe0\xa7\x74\xe0\x27\x66"
+            "\xe0\x16\x68\xd7\x68\xd6\x78\xc6\x88\xb6\x97\xc6\xa5"
+            "\xc6\xb3\xc7\xd5\x86\xe0\x2e\x03\xe0\x5d\xe0\x98\xe0"
+            "\x35" }  },
+      /* --- pixel bitmap for cmr600 char#58 : --- */
+      {  58,112758,                     /* character number, location */
+         36, 7,    0, 7,      /* topleft row,col, and botleft row,col */
+          {  9,   36, 3,35, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x30\xfe\x90\xf2\x90\x33\x47"
+            "\x1f\x49\x17\x43\x34" }  },
+      /* --- pixel bitmap for cmr600 char#59 ; --- */
+      {  59,113449,                     /* character number, location */
+         36, 7,  -16, 7,      /* topleft row,col, and botleft row,col */
+          {  9,   52, 3,73, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x30\xfe\x90\xf2\x90\x33\x47"
+            "\x18\x1f\x39\x18\x33\x12\xf3\x72\x63\xf1\x62\x10\x53"
+            "\x10\xf1\x52\x20\x43\x53\x62\x63\x53\x62\x60" }  },
+      /* --- pixel bitmap for cmr600 char#60 (noname) --- */
+      {  60,104151,                     /* character number, location */
+         42, 7,  -18, 7,      /* topleft row,col, and botleft row,col */
+          {  9,   60, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x30\xf7\x90\xfa\x33\x30\xfa"
+            "\x25\x20\xfa\x17\x1f\x79\x17\x43\x35" }  },
+      /* --- pixel bitmap for cmr600 char#61 = --- */
+      {  61,114179,                     /* character number, location */
+         32, 5,   10, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   22, 2,23, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\x35\x01\xff\x01\x37\x01\x35\x01\x00\xff\x0d\x37"
+            "\x00\x01\x35\x01\xff\x01\x37\x01\x35\x01" }  },
+      /* --- pixel bitmap for cmr600 char#62 (noname) --- */
+      {  62,90837,                      /* character number, location */
+         42, 5,  -17, 5,      /* topleft row,col, and botleft row,col */
+          { 29,   59, 3,173, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc3\xe0\xa7\xc0\xf4\x99\xb0\xa7\xe0\xa3\xe0\xf7\xe0"
+            "\xe0\x10\xf3\xd2\xe0\xc3\xe0\xf5\xc2\xe0\x10\xf2\xb3"
+            "\xe0\x10\xf1\xa3\xe0\x20\x94\xe0\x20\xf1\x84\xe0\x30"
+            "\x75\xe0\x95\xe0\x96\xe0\x86\xe0\x86\xe0\x87\xe0\x60"
+            "\xf1\x17\xe0\x77\xe0\x24\x27\xe0\x16\x1f\x37\xe8\x07"
+            "\xe0\x1e\xe0\x25\x26\xe0\x43\x27\xe0\x23\x46\xe0\x13"
+            "\x66\xc4\x86\x85\xce\x01\xe0\x39\xb0" }  },
+      /* --- pixel bitmap for cmr600 char#63 ? --- */
+      {  63,89801,                      /* character number, location */
+         59, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 29,   59, 3,159, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa9\xe0\x3e\x01\xc5\x77\x93\xc7\x54\xe7\x42\xe0\x37"
+            "\x23\xe0\x37\x25\xe0\x26\x17\xe0\x17\x0f\x38\xe7\x16"
+            "\xe0\x17\x24\xe0\x18\xf1\xe0\x77\x10\xe0\x67\xe0\x77"
+            "\xe0\x76\xe0\x86\xe0\x95\xe0\x95\xe0\xa4\x90\xf1\xe0"
+            "\x14\xa0\xe4\xb0\xf1\xe3\xc0\xf2\xd3\xd0\xf9\xd2\xe0"
+            "\xf7\xe0\xe0\x10\xc3\xe0\xa7\xc0\xf4\x99\xb0\xa7\xe0"
+            "\xa3\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#64 @ --- */
+      {  64,115361,                     /* character number, location */
+         59, 5,   -1, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   60, 3,431, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x99\xe0\xe0\xee\x03\xe0\xe0\x86\x96\xe0\xe0\x44"
+            "\xe0\x34\xe0\xe4\xe0\x74\xe0\xb3\xe0\xb3\xe0\x84\xe0"
+            "\xd4\xe0\x53\xe0\xe0\x33\xe0\x33\xe0\xe0\x53\xe0\x13"
+            "\xe0\xe0\x73\xd3\xe0\xe0\x93\xc2\xe0\xe0\xb2\xb3\xe0"
+            "\x27\xe0\x23\x93\xec\xe0\x13\x82\xd6\x64\xe2\x73\xc5"
+            "\xa3\xd3\x62\xc5\xc3\xd2\x53\xb5\xe3\xc3\x42\xb5\xe0"
+            "\x23\xc2\x42\xa6\xe0\x37\x72\x33\x96\xe0\x47\x73\x22"
+            "\xa6\xe0\x56\x82\x10\xf1\x12\x96\xe0\x66\x82\x13\x96"
+            "\xe0\x66\x83\x0f\x92\x96\xe0\x76\x92\x03\x96\xe0\x66"
+            "\x92\xf1\x12\x96\xe0\x66\x92\x12\xa6\xe0\x56\x83\x13"
+            "\x96\xe0\x47\x82\x32\xa6\xe0\x37\x82\x32\xb5\xe0\x28"
+            "\x82\x33\xb5\xe9\x73\x42\xc5\xc3\x16\x72\x53\xc5\xa3"
+            "\x36\x53\x62\xd6\x64\x55\x43\x73\xec\x8a\x93\xe0\x27"
+            "\xc6\xc2\xe0\xe0\xe0\xb3\xe0\xe0\xe0\xb3\xe0\xe0\xe0"
+            "\xb3\xe0\xe0\xe0\xb3\xe0\xe0\xe0\xb4\xe0\xe0\x85\xc3"
+            "\xe0\xe0\x48\xd4\xe0\xd9\xe0\x34\xe0\x89\xe0\x86\xcb"
+            "\xe0\xee\x09\xe0\xe0\x8d\xe0\x55" }  },
+      /* --- pixel bitmap for cmr600 char#65 A --- */
+      {  65, 1092,                      /* character number, location */
+         60, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   60, 3,324, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xd2\xe0\xd0\xf2\xe0\xc4\xe0\xc0\xf2\xe0\xb6\xe0"
+            "\xb0\xf2\xe0\xa8\xe0\xa0\xf2\xe0\x92\x17\xe0\x90\xf2"
+            "\xe0\x82\x37\xe0\x80\xf2\xe0\x72\x57\xe0\x70\xf1\xe0"
+            "\x62\x77\xe0\x60\xe0\x53\x78\xe0\x50\xf1\xe0\x52\x97"
+            "\xe0\x50\xe0\x43\x98\xe0\x40\xf1\xe0\x42\xb7\xe0\x40"
+            "\xe0\x33\xb8\xe0\x30\xf1\xe0\x32\xd7\xe0\x30\xe0\x22"
+            "\xe8\xe0\x20\xf1\xe0\x22\xe0\x17\xe0\x20\xf2\xe0\x12"
+            "\xe0\x37\xe0\x10\xf1\xe2\xe0\x57\xe0\xee\x0e\xe0\xf1"
+            "\xde\x0e\x02\xd0\xd2\xe0\x77\xd0\xf2\xc2\xe0\x97\xc0"
+            "\xf1\xb2\xe0\xb7\xb0\xa3\xe0\xb8\xa0\xf1\xa2\xe0\xd7"
+            "\xa0\x93\xe0\xd8\x90\xf1\x92\xe0\xe0\x17\x90\x83\xe0"
+            "\xe0\x18\xe0\x14\xe0\xe0\x27\xe6\xe0\xe9\xba\xe0\xbb"
+            "\x6f\x2e\x03\xe0\x3e\x08" }  },
+      /* --- pixel bitmap for cmr600 char#66 B --- */
+      {  66, 2620,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 52,   57, 3,309, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\x08\xe0\x2e\x0e\x0c\xce\x0e\x0e\xe0\x49\xe0"
+            "\x3a\xe0\x37\xe0\x69\xe0\x27\xe0\x88\xe0\x17\xe0\x98"
+            "\xe7\xe0\x99\xd7\xe0\xa8\xd7\xe0\xa9\xc7\xe0\xb8\x30"
+            "\xf5\x97\xe0\xb9\x20\xf1\x97\xe0\xb8\x30\x97\xe0\xa9"
+            "\xc7\xe0\xa8\xd7\xe0\x98\xe7\xe0\x88\xe0\x17\xe0\x78"
+            "\xe0\x27\xe0\x68\xe0\x37\xe0\x48\xa0\xf1\x9e\x0e\x03"
+            "\xc0\x97\xe0\x49\xe0\x47\xe0\x77\xe0\x37\xe0\x88\xe0"
+            "\x17\xe0\x98\xe7\xe0\xa8\xd7\xe0\xb8\x30\xf1\x97\xe0"
+            "\xc8\x20\x97\xe0\xc9\xa7\xe0\xd8\x10\xf6\x97\xe0\xd9"
+            "\x97\xe0\xd8\x10\xf1\x97\xe0\xc9\x10\x97\xe0\xb9\x20"
+            "\xf1\x97\xe0\xa9\x30\x97\xe0\x8a\xd7\xe0\x7a\xd9\xe0"
+            "\x4a\x7e\x0e\x0e\x02\x8e\x0e\x0e\xae\x0e\x0a\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#67 C --- */
+      {  67, 3703,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 50,   61, 3,329, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xa9\xe0\x12\xe0\x6e\x02\xb3\xe0\x4e\x06\x93\xe0"
+            "\x29\x96\x64\xe8\xe0\x14\x45\xc8\xe0\x44\x26\xb8\xe0"
+            "\x73\x16\xa8\xe0\x99\x98\xe0\xb8\x88\xe0\xd7\x78\xe0"
+            "\xe7\x68\xe0\xe0\x26\xf1\x58\xe0\xe0\x45\xf1\x48\xe0"
+            "\xe0\x64\x38\xe0\xe0\x74\x38\xe0\xe0\x83\x29\xe0\xe0"
+            "\x83\x28\xe0\xe0\x93\xf3\x19\xe0\xe0\xa2\x0f\xc9\xe0"
+            "\xe0\xd0\x19\xe0\xe0\xc0\xf2\x19\xe0\xe0\xa2\x28\xe0"
+            "\xe0\xa2\x29\xe0\xe0\x92\x38\xe0\xe0\x83\x38\xe0\xe0"
+            "\x82\x58\xe0\xe0\x72\x58\xe0\xe0\x63\x68\xe0\xe0\x52"
+            "\x78\xe0\xe0\x43\x88\xe0\xe0\x33\x98\xe0\xe0\x13\xb8"
+            "\xe0\xd3\xd8\xe0\xc3\xe8\xe0\xa3\xe0\x28\xe0\x74\xe0"
+            "\x48\xe0\x54\xe0\x78\xe0\x15\xe0\xa9\x96\xe0\xee\x07"
+            "\xe0\xe0\x3e\x02\xe0\xe0\xa9\xe0\x30" }  },
+      /* --- pixel bitmap for cmr600 char#68 D --- */
+      {  68, 5017,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 55,   57, 3,299, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\x07\xe0\x6e\x0e\x0a\xe0\x3e\x0e\x0c\xe0\x89"
+            "\xe0\x2a\xe0\x77\xe0\x68\xe0\x67\xe0\x88\xe0\x47\xe0"
+            "\x98\xe0\x37\xe0\xb7\xe0\x27\xe0\xc7\xe0\x17\xe0\xc8"
+            "\xe7\xe0\xd7\xe7\xe0\xe7\xd7\xe0\xe8\xc7\xe0\xe0\x17"
+            "\xc7\xe0\xe0\x18\xb7\xe0\xe0\x27\x30\xf2\x87\xe0\xe0"
+            "\x28\x20\xf3\x87\xe0\xe0\x38\x10\xfb\x87\xe0\xe0\x39"
+            "\xf3\x87\xe0\xe0\x38\x10\xf1\x87\xe0\xe0\x28\x20\x87"
+            "\xe0\xe0\x27\xb7\xe0\xe0\x18\x30\xf1\x87\xe0\xe0\x17"
+            "\x40\x87\xe0\xe7\xd7\xe0\xd8\xd7\xe0\xd7\xe7\xe0\xc7"
+            "\xe0\x17\xe0\xb7\xe0\x27\xe0\xa7\xe0\x37\xe0\x88\xe0"
+            "\x47\xe0\x69\xe0\x49\xe0\x2a\xde\x0e\x0c\xe0\x1e\x0e"
+            "\x0a\xe0\x3e\x0e\x07\xe0\x65" }  },
+      /* --- pixel bitmap for cmr600 char#69 E --- */
+      {  69, 6610,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 51,   57, 3,293, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0e\x0e\x04\x50\x79\xe0\x6a\xd7\xe0\xa7\xd7"
+            "\xe0\xc6\xc7\xe0\xd5\xc7\xe0\xe4\x40\xf2\x87\xe0\xe0"
+            "\x13\x40\xf2\x87\xe0\xe0\x22\x40\x87\xe0\xe0\x23\xb7"
+            "\xe0\xe0\x32\x30\xf2\x87\xe0\x32\xc2\x30\xf2\x87\xe0"
+            "\x32\xe0\x30\xf1\x87\xe0\x23\xe0\x30\x87\xe0\x14\xe0"
+            "\xb7\xd6\xe0\x30\xf2\x8e\x0c\xe0\x30\x87\xd6\xe0\xb7"
+            "\xe0\x14\xe0\x30\xf1\x87\xe0\x23\xe0\x30\xf1\x87\xe0"
+            "\x32\xe0\x30\xf2\x87\xe0\x32\xe0\x12\x87\xe0\x32\xe3"
+            "\xf3\x87\xe0\xe0\x52\x10\xf2\x87\xe0\xe0\x43\x10\xf1"
+            "\x87\xe0\xe0\x33\x20\xf1\x87\xe0\xe0\x24\x20\x87\xe0"
+            "\xe0\x15\xa7\xe0\xd7\xa7\xe0\xc8\x99\xe0\x7b\x3f\x2e"
+            "\x0e\x0e\x06\x3e" }  },
+      /* --- pixel bitmap for cmr600 char#70 F --- */
+      {  70, 8069,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 49,   57, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0e\x0e\x05\x20\x89\xe0\x6a\xb7\xe0\xa7\xb7"
+            "\xe0\xc6\xa7\xe0\xd5\xa7\xe0\xe4\x10\xf2\x97\xe0\xe0"
+            "\x13\x10\xf2\x97\xe0\xe0\x22\x10\x97\xe0\xe0\x23\xf1"
+            "\x97\xe0\xe0\x32\xf1\x97\xe0\x32\xc2\xf3\x97\xe0\x32"
+            "\xe0\xf1\x97\xe0\x23\xe0\x97\xe0\x14\xe0\x97\xd6\xe0"
+            "\xf2\x9e\x0c\xe0\x97\xd6\xe0\x97\xe0\x14\xe0\xf1\x97"
+            "\xe0\x23\xe0\xf5\x97\xe0\x32\xe0\xfc\x97\xe0\xe0\x50"
+            "\x8a\xe0\xe0\x3f\x2e\x0d\xe0\x80" }  },
+      /* --- pixel bitmap for cmr600 char#71 G --- */
+      {  71, 9398,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 56,   61, 3,371, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xa9\xe0\x12\xe0\xce\x02\xb3\xe0\xae\x06\x93\xe0"
+            "\x89\x96\x64\xe0\x68\xe0\x14\x45\xe0\x48\xe0\x44\x26"
+            "\xe0\x38\xe0\x73\x16\xe0\x28\xe0\x99\xe0\x18\xe0\xb8"
+            "\xe8\xe0\xd7\xd8\xe0\xe7\xc8\xe0\xe0\x26\x60\xf1\x58"
+            "\xe0\xe0\x45\x60\xf1\x48\xe0\xe0\x64\x60\x38\xe0\xe0"
+            "\x74\x98\xe0\xe0\x83\x89\xe0\xe0\x83\x88\xe0\xe0\x93"
+            "\x60\xf3\x19\xe0\xe0\xa2\x6f\xa9\xe0\xe0\xe0\x5f\x19"
+            "\xe0\xae\x09\x19\xe0\x9e\x09\x19\xe0\xe0\x3a\x50\xf1"
+            "\x19\xe0\xe0\x57\x60\x28\xe0\xe0\x57\x89\xe0\xe0\x47"
+            "\x60\xf1\x38\xe0\xe0\x47\x60\xf1\x48\xe0\xe0\x37\x60"
+            "\xf1\x58\xe0\xe0\x27\x60\x68\xe0\xe0\x17\xd8\xe0\xe7"
+            "\xe8\xe0\xc8\xe0\x18\xe0\xb8\xe0\x28\xe0\x99\xe0\x38"
+            "\xe0\x73\x25\xe0\x49\xe0\x44\x25\xe0\x69\xe0\x14\x44"
+            "\xe0\x8a\x95\x73\xe0\xae\x07\x92\xe0\xce\x03\xe0\xe0"
+            "\xe0\x1a\xe0\x80" }  },
+      /* --- pixel bitmap for cmr600 char#72 H --- */
+      {  72,10809,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 3,84, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0b\x8e\x0b\x89\xe0\xa9\x80\xfe\x97\xe0\xc7"
+            "\x90\xf6\x97\xe0\xc7\x90\xf2\x9e\x0e\x0c\x90\xfe\x97"
+            "\xe0\xc7\x90\xf8\x97\xe0\xc7\x90\x89\xe0\xa9\x8f\x2e"
+            "\x0b\x8e\x0b" }  },
+      /* --- pixel bitmap for cmr600 char#73 I --- */
+      {  73,11684,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   57, 2,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x19\x08\x09\x08\x00\xff\x30\x09\x07\x09"
+            "\x00\x08\x09\x08\xff\x02\x19" }  },
+      /* --- pixel bitmap for cmr600 char#74 J --- */
+      {  74,12566,                      /* character number, location */
+         57, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 35,   59, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\xbe\x0a\xe0\x6a\x50\xfe\xe0\x87\x60\xfe\xe0\x87"
+            "\x60\xf8\xe0\x87\x60\x33\xe0\x27\x77\xe7\x6f\x39\xd7"
+            "\x69\xc7\x78\xd7\x85\xe7\x93\xe0\x27\xa3\xe7\xc3\xc7"
+            "\xe3\xa7\xe0\x24\x76\xe0\x6d\xe0\xa8\xe0\x40" }  },
+      /* --- pixel bitmap for cmr600 char#75 K --- */
+      {  75,13889,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 3,424, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0b\xe0\x1e\x03\x10\x89\xe0\xbb\xe7\xe0\xd7"
+            "\xe0\x37\xe0\xd5\xe0\x57\xe0\xd4\xe0\x67\xe0\xd3\xe0"
+            "\x77\xe0\xc3\xe0\x87\xe0\xb3\xe0\x97\xe0\xa3\xe0\xa7"
+            "\xe0\x93\xe0\xb7\xe0\x83\xe0\xc7\xe0\x64\xe0\xd7\xe0"
+            "\x53\xe0\xe0\x17\xe0\x43\xe0\xe0\x27\xe0\x33\xe0\xe0"
+            "\x37\xe0\x23\xe0\xe0\x47\xe0\x13\xe0\xe0\x57\xe3\xe0"
+            "\xe0\x67\xd3\xe0\xe0\x77\xc3\xe0\xe0\x87\xb4\xe0\xe0"
+            "\x87\xa6\xe0\xe0\x77\x97\xe0\xe0\x77\x89\xe0\xe0\x67"
+            "\x7b\xe0\xe0\x57\x63\x18\xe0\xe0\x57\x53\x38\xe0\xe0"
+            "\x47\x43\x58\xe0\xe0\x37\x33\x68\xe0\xe0\x37\x23\x88"
+            "\xe0\xe0\x27\x13\xa8\xe0\xe0\x1a\xb8\xe0\xe0\x19\xd8"
+            "\xe0\xe8\xe0\x18\xe0\xd7\xe0\x28\xe0\xd7\xe0\x38\xe0"
+            "\x30\xf1\x97\xe0\x48\xe0\x20\x97\xe0\x58\xe0\x10\xf1"
+            "\x97\xe0\x68\xe0\x97\xe0\x78\xd0\xf1\x97\xe0\x88\xc0"
+            "\x97\xe0\x98\xb0\xf1\x97\xe0\xa8\xa0\x97\xe0\xb8\x90"
+            "\xf1\x97\xe0\xc8\x80\x97\xe0\xc9\xe0\x19\xe0\xac\x5f"
+            "\x2e\x0b\xce\x07" }  },
+      /* --- pixel bitmap for cmr600 char#76 L --- */
+      {  76,15054,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 47,   57, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x0d\xe0\x60\x8a\xe0\xe0\x10\xfe\x97\xe0\xe0"
+            "\x30\xfe\x97\xe0\xe0\x30\x97\xe0\xe0\x30\xf4\x97\xe0"
+            "\xe0\x12\x97\xe0\xe3\xf2\x97\xe0\xe2\x10\xf2\x97\xe0"
+            "\xd3\x10\x97\xe0\xc4\x10\xf1\x97\xe0\xb5\x10\x97\xe0"
+            "\xa6\xa7\xe0\x88\xa7\xe0\x69\xa9\xe0\x2c\x2f\x2e\x0e"
+            "\x0e\x03\x23" }  },
+      /* --- pixel bitmap for cmr600 char#77 M --- */
+      {  77,16506,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 70,   57, 3,346, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x02\xe0\xe0\xae\x02\x0f\x1e\x03\xe0\xe0\x8e\x03"
+            "\x89\xe0\xe0\x89\x80\xf1\x92\x16\xe0\xe0\x62\x16\x90"
+            "\xf2\x92\x26\xe0\xe0\x42\x26\x90\xf2\x92\x36\xe0\xe0"
+            "\x22\x36\x90\xf1\x92\x46\xe0\xe2\x46\x90\xf2\x92\x56"
+            "\xe0\xc2\x56\x90\xf1\x92\x66\xe0\xa2\x66\x90\xf2\x92"
+            "\x76\xe0\x82\x76\x90\xf2\x92\x86\xe0\x62\x86\x90\xf1"
+            "\x92\x96\xe0\x42\x96\x90\xf2\x92\xa6\xe0\x22\xa6\x90"
+            "\xf1\x92\xb6\xe2\xb6\x90\xf2\x92\xc6\xc2\xc6\x90\xf2"
+            "\x92\xd6\xa2\xd6\x90\xf1\x92\xe6\x82\xe6\x90\xf2\x92"
+            "\xe0\x16\x62\xe0\x16\x90\xf1\x92\xe0\x26\x42\xe0\x26"
+            "\x90\xf2\x92\xe0\x36\x22\xe0\x36\x90\xf2\x92\xe0\x48"
+            "\xe0\x46\x90\x84\xe0\x46\xe0\x56\xe0\x26\xe0\x36\xe0"
+            "\x56\xea\xe0\x24\xe0\x58\x8f\x1e\x06\xb4\xbe\x0a\x0e"
+            "\x06\xc2\xce\x0a" }  },
+      /* --- pixel bitmap for cmr600 char#78 N --- */
+      {  78,18024,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 3,461, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x02\xe0\x8e\x0e\x09\xe0\x7e\x0e\x0a\xe0\x6e\x06"
+            "\x99\xe0\xba\xea\xe0\xc6\xe0\x22\x18\xe0\xc4\xe0\x32"
+            "\x18\xe0\xd2\xe0\x42\x28\xe0\xc2\xe0\x42\x38\xe0\xb2"
+            "\xe0\x42\x47\xe0\xb2\xe0\x42\x48\xe0\xa2\xe0\x42\x58"
+            "\xe0\x92\x90\xf1\x92\x68\xe0\x82\x90\x92\x78\xe0\x72"
+            "\x90\xf1\x92\x88\xe0\x62\x90\x92\x98\xe0\x52\x90\xf1"
+            "\x92\xa8\xe0\x42\x90\x92\xb8\xe0\x32\xe0\x42\xc8\xe0"
+            "\x22\xe0\x42\xd7\xe0\x22\xe0\x42\xd8\xe0\x12\xe0\x42"
+            "\xe8\xe2\x90\xf1\x92\xe0\x18\xd2\x90\x92\xe0\x28\xc2"
+            "\x90\xf1\x92\xe0\x38\xb2\x90\x92\xe0\x48\xa2\x90\xf1"
+            "\x92\xe0\x58\x92\x90\x92\xe0\x68\x82\x90\xf1\x92\xe0"
+            "\x78\x72\x90\x92\xe0\x88\x62\xe0\x42\xe0\x98\x52\xe0"
+            "\x42\xe0\xa7\x52\xe0\x42\xe0\xa8\x42\xe0\x42\xe0\xb8"
+            "\x32\x90\xf1\x92\xe0\xc8\x22\x90\x92\xe0\xd8\x12\x90"
+            "\xf1\x92\xe0\xea\x90\x92\xe0\xe0\x19\x90\xf1\x92\xe0"
+            "\xe0\x28\x90\x92\xe0\xe0\x37\xe0\x42\xe0\xe0\x46\xe0"
+            "\x34\xe0\xe0\x45\xe0\x26\xe0\xe0\x35\xea\xe0\xe0\x24"
+            "\x9f\x1e\x06\xe0\xc3\x9e\x06\xe0\xd2\x90" }  },
+      /* --- pixel bitmap for cmr600 char#79 O --- */
+      {  79,19117,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   61, 3,339, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x99\xe0\xe0\xee\x03\xe0\xe0\x87\x77\xe0\xe0\x46"
+            "\xd6\xe0\xe6\xe0\x36\xe0\xb6\xe0\x56\xe0\x96\xe0\x76"
+            "\xe0\x67\xe0\x97\xe0\x46\xe0\xb6\xe0\x36\xe0\xd6\xe0"
+            "\x17\xe0\xd7\xd7\xe0\xe0\x17\x60\xf1\x57\xe0\xe0\x37"
+            "\x50\xf1\x47\xe0\xe0\x57\x40\x38\xe0\xe0\x58\x67\xe0"
+            "\xe0\x77\x30\xf2\x28\xe0\xe0\x78\x20\x19\xe0\xe0\x79"
+            "\x10\xf2\x18\xe0\xe0\x98\x1f\xb9\xe0\xe0\x99\x18\xe0"
+            "\xe0\x98\x10\xf2\x19\xe0\xe0\x79\x10\xf1\x28\xe0\xe0"
+            "\x78\x20\xf2\x38\xe0\xe0\x58\x30\x48\xe0\xe0\x38\x97"
+            "\xe0\xe0\x37\xa8\xe0\xe0\x18\xb7\xe0\xe0\x17\xd7\xe0"
+            "\xd7\xe8\xe0\xb8\xe0\x17\xe0\xb7\xe0\x37\xe0\x97\xe0"
+            "\x57\xe0\x77\xe0\x86\xe0\x56\xe0\xb7\xe0\x17\xe0\xe6"
+            "\xd6\xe0\xe0\x47\x77\xe0\xe0\x8e\x03\xe0\xe0\xe9\xe0"
+            "\x92" }  },
+      /* --- pixel bitmap for cmr600 char#80 P --- */
+      {  80,20444,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 48,   57, 3,185, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\x06\xee\x0e\x09\xbe\x0e\x0b\xe0\x29\xe0\x1a"
+            "\xe0\x17\xe0\x58\xe7\xe0\x77\xd7\xe0\x87\xc7\xe0\x97"
+            "\xb7\xe0\x98\xa7\xe0\x99\x10\xf1\x87\xe0\xa8\x10\xf6"
+            "\x87\xe0\xa9\xf1\x87\xe0\xa8\x10\xf1\x87\xe0\x98\x20"
+            "\x87\xe0\x88\xb7\xe0\x87\xc7\xe0\x77\xd7\xe0\x58\xe7"
+            "\xe0\x29\xe0\x2e\x0e\x02\xe0\x4e\x0e\xc0\xfe\x87\xe0"
+            "\xe0\x50\xf7\x87\xe0\xe0\x50\x79\xe0\xe0\x4f\x2e\x09"
+            "\xe0\xb8" }  },
+      /* --- pixel bitmap for cmr600 char#81 Q --- */
+      {  81,21583,                      /* character number, location */
+         59, 5,  -16, 5,      /* topleft row,col, and botleft row,col */
+          { 55,   75, 3,455, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x99\xe0\xe0\xee\x03\xe0\xe0\x87\x77\xe0\xe0\x46"
+            "\xd6\xe0\xe7\xe0\x17\xe0\xb6\xe0\x56\xe0\x96\xe0\x76"
+            "\xe0\x67\xe0\x97\xe0\x46\xe0\xb6\xe0\x36\xe0\xd6\xe0"
+            "\x17\xe0\xd7\xd7\xe0\xe0\x17\xb8\xe0\xe0\x18\xa7\xe0"
+            "\xe0\x37\x98\xe0\xe0\x38\x87\xe0\xe0\x57\x40\xf1\x38"
+            "\xe0\xe0\x58\x30\xf2\x28\xe0\xe0\x78\x20\xf1\x19\xe0"
+            "\xe0\x79\x10\xf1\x18\xe0\xe0\x98\x1f\xb9\xe0\xe0\x99"
+            "\x18\xe0\xe0\x98\x10\xf2\x19\xe0\xe0\x79\x10\xf1\x28"
+            "\xe0\xe0\x78\x20\xf2\x38\xe0\xe0\x58\x30\x48\xe0\xe0"
+            "\x38\x97\xd5\xd7\xa8\xa9\xa8\xb7\x93\x53\x97\xd7\x82"
+            "\x82\x77\xe7\x73\x83\x67\xe0\x17\x62\xa3\x47\xe0\x37"
+            "\x52\xa3\x37\xe0\x57\x42\xb3\x17\xe0\x86\x32\xb9\xe0"
+            "\xb6\x23\xa8\xe0\xe6\x12\xa6\xe0\xe0\x48\x67\xe0\x12"
+            "\xe0\x5e\x06\xe2\xe0\x99\x34\xe2\xf1\xe0\xe0\x75\xc3"
+            "\xe0\xe0\x85\xa4\xe0\xe0\x86\x85\xe0\xe0\x87\x65\xe0"
+            "\xe0\x9e\x04\x10\xf1\xe0\xe0\x9e\x03\x10\xe0\xe0\x9e"
+            "\x02\xe0\xe0\xce\x01\xe0\xe0\xce\xe0\xe0\xec\xe0\xe0"
+            "\xe0\x2a\xe0\xe0\xe0\x56\x76" }  },
+      /* --- pixel bitmap for cmr600 char#82 R --- */
+      {  82,23160,                      /* character number, location */
+         57, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 59,   59, 3,371, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x0e\x05\xe0\xce\x0e\x09\xe0\x8e\x0e\x0b\xe0\xe9"
+            "\xea\xe0\xd7\xe0\x49\xe0\xb7\xe0\x68\xe0\xa7\xe0\x78"
+            "\xe0\x97\xe0\x88\xd0\xf1\x97\xe0\x98\xc0\x97\xe0\x99"
+            "\xe0\x67\xe0\xa8\xb0\xf5\x97\xe0\xa9\xa0\x97\xe0\xa8"
+            "\xe0\x67\xe0\x99\xe0\x67\xe0\x98\xe0\x77\xe0\x97\xe0"
+            "\x87\xe0\x88\xe0\x87\xe0\x77\xe0\xa7\xe0\x67\xe0\xb7"
+            "\xe0\x47\xe0\xd7\xe0\x18\xe0\xe0\x1e\x0e\xe0\xe0\x3e"
+            "\x0b\xe0\xe0\x67\xe6\xe0\xe0\x47\xe0\x26\xe0\xe0\x27"
+            "\xe0\x36\xe0\xe0\x17\xe0\x46\xe0\xe7\xe0\x56\xe0\xd7"
+            "\xe0\x66\xe0\xc7\xe0\x67\xe0\xb7\xe0\x76\xe0\x20\xf3"
+            "\x97\xe0\x77\xe0\x10\xf2\x97\xe0\x78\xe0\xf3\x97\xe0"
+            "\x79\xd0\xf2\x97\xe0\x7a\xa2\x97\xe0\x8a\x92\x97\xe0"
+            "\x8a\x83\x89\xe0\x89\x82\x1e\x0b\xe0\x19\x63\x1e\x0b"
+            "\xe0\x28\x62\x2e\x0b\xe0\x38\x43\xe0\xe0\xe0\x4c\xe0"
+            "\xe0\xe0\x87\x54" }  },
+      /* --- pixel bitmap for cmr600 char#83 S --- */
+      {  83,24387,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 36,   61, 3,313, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc8\xc2\xbe\x83\x9e\x04\x63\x86\x87\x34\x75\xd5\x15"
+            "\x65\xe0\x29\x55\xe0\x48\x45\xe0\x67\x45\xe0\x76\x20"
+            "\xf1\x15\xe0\x95\x20\x14\xe0\xb4\x25\xe0\xb4\x2f\x25"
+            "\xe0\xc3\x25\xe0\xd2\x2f\x16\xe0\xc2\x27\xe0\xb2\x27"
+            "\xe0\xe0\x27\xe0\xe0\x18\xe0\xe0\x19\xe0\xdc\xe0\xbe"
+            "\x01\xe0\x8e\x04\xe0\x4e\x08\xe0\x2e\x08\xe0\x1e\x08"
+            "\xe0\x2e\x08\xe0\x2e\x07\xe0\x5e\x03\xe0\x9e\xe0\xcb"
+            "\xe0\xd9\xe0\xe0\x18\x10\xf1\xe0\xe7\x10\xe0\xe0\x17"
+            "\xe0\xe0\x26\x0f\x12\xe0\xe6\x0f\x22\xe0\xe0\x15\x0f"
+            "\x13\xe0\xe5\x03\xe0\xe4\x1f\x14\xe0\xc5\x15\xe0\xb4"
+            "\x26\xe0\x95\x27\xe0\x84\x38\xe0\x65\x39\xe0\x45\x45"
+            "\x15\xe0\x15\x54\x47\x96\x63\x6e\x05\x83\x9e\xa2\xd9"
+            "\xca" }  },
+      /* --- pixel bitmap for cmr600 char#84 T --- */
+      {  84,25629,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 54,   57, 3,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x2e\x0e\x0e\x08\x20\x28\xd9\xc8\x46\xe0\x27\xe0"
+            "\x25\x35\xe0\x47\xe0\x35\x24\xe0\x57\xe0\x44\x10\xf2"
+            "\x13\xe0\x67\xe0\x53\x10\xf3\x12\xe0\x77\xe0\x62\x13"
+            "\xe0\x77\xe0\x63\x0f\x32\xe0\x87\xe0\x72\xfe\xe0\xa7"
+            "\xe0\x90\xfe\xe0\xa7\xe0\x90\xf3\xe0\xa7\xe0\x90\xe0"
+            "\x8b\xe0\x70\xf2\xce\x0e\x03\xb0" }  },
+      /* --- pixel bitmap for cmr600 char#85 U --- */
+      {  85,26809,                      /* character number, location */
+         57, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   59, 2,93, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x19\x0d\x14\x08\x09\x1a\x0a\x0e\x07\x1d"
+            "\x06\x10\x07\x1e\x04\x08\x00\xff\x23\x09\x07\x1f\x02"
+            "\x09\x00\x09\x07\x1e\x03\x09\x00\xff\x01\x0a\x07\x1d"
+            "\x02\x0a\x00\x0a\x07\x1c\x03\x15\x06\x1c\x03\x15\x07"
+            "\x1a\x03\x17\x06\x1a\x03\x17\x07\x18\x03\x19\x06\x17"
+            "\x03\x1b\x06\x15\x04\x1c\x06\x13\x04\x1e\x06\x11\x04"
+            "\x20\x07\x0d\x05\x23\x07\x08\x07\x25\x13\x2a\x0e\x2f"
+            "\x08\x18" }  },
+      /* --- pixel bitmap for cmr600 char#86 V --- */
+      {  86,28035,                      /* character number, location */
+         57, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   59, 3,375, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x08\xe0\x5e\x03\x6b\xe0\xe9\xb8\xe0\xe0\x36"
+            "\xe7\xe0\xe0\x44\xe0\x17\xe0\xe0\x43\xe0\x28\xe0\xe0"
+            "\x33\x80\xf1\x97\xe0\xe0\x32\x90\xf1\xa7\xe0\xe0\x12"
+            "\xa0\xa8\xe0\xe2\xa0\xf1\xb7\xe0\xd2\xb0\xb8\xe0\xb3"
+            "\xb0\xf1\xc7\xe0\xb2\xc0\xf1\xd7\xe0\x92\xd0\xd8\xe0"
+            "\x82\xd0\xf1\xe7\xe0\x72\xe0\xe8\xe0\x53\xe0\xf1\xe0"
+            "\x17\xe0\x52\xe0\x10\xf1\xe0\x27\xe0\x32\xe0\x20\xe0"
+            "\x28\xe0\x13\xe0\x20\xf1\xe0\x37\xe0\x12\xe0\x30\xf1"
+            "\xe0\x47\xd2\xe0\x40\xe0\x48\xc2\xe0\x40\xf1\xe0\x57"
+            "\xb2\xe0\x50\xe0\x58\x93\xe0\x50\xf1\xe0\x67\x92\xe0"
+            "\x60\xf1\xe0\x77\x72\xe0\x70\xe0\x78\x62\xe0\x70\xf1"
+            "\xe0\x87\x52\xe0\x80\xe0\x88\x33\xe0\x80\xf1\xe0\x97"
+            "\x32\xe0\x90\xf1\xe0\xa7\x12\xe0\xa0\xe0\xaa\xe0\xa0"
+            "\xf2\xe0\xb8\xe0\xb0\xf1\xe0\xc6\xe0\xc0\xf2\xe0\xd4"
+            "\xe0\xd0\xe0\xe2\xe0\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#87 W --- */
+      {  87,29677,                      /* character number, location */
+         57, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 81,   59, 3,593, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x07\xae\x08\xbe\x03\x5b\xe0\x7b\xe0\x6a\x98"
+            "\xe0\xa8\xe0\xa6\xc7\xe0\xa8\xe0\xb4\xd7\xe0\xb7\xe0"
+            "\xb3\xe8\xe0\xa7\xe0\xb3\x70\xf1\x87\xe0\xa8\xe0\xa2"
+            "\x80\x88\xe0\x98\xe0\x93\xe0\x37\xe0\x98\xe0\x92\x90"
+            "\xf1\x97\xe0\x82\x17\xe0\x82\x90\xa7\xe0\x72\x17\xe0"
+            "\x72\xa0\xf1\xa7\xe0\x62\x37\xe0\x62\xa0\xb7\xe0\x52"
+            "\x37\xe0\x52\xb0\xf1\xb7\xe0\x42\x57\xe0\x42\xb0\xc7"
+            "\xe0\x32\x57\xe0\x32\xc0\xf1\xc7\xe0\x22\x77\xe0\x22"
+            "\xc0\xc8\xe0\x12\x77\xe0\x13\xe0\xb7\xe3\x78\xe2\xe0"
+            "\xc7\xe2\x97\xe2\xe0\xc8\xd2\x97\xd3\xe0\xd7\xd2\x98"
+            "\xc2\xe0\xf1\xe7\xc2\xb7\xc2\xe0\xe0\x17\xb2\xb7\xb2"
+            "\xe0\x10\xf1\xe0\x17\xa2\xd7\xa2\xe0\x10\xe0\x27\x92"
+            "\xd7\x92\xe0\x20\xf1\xe0\x27\x82\xe0\x17\x82\xe0\x20"
+            "\xe0\x37\x72\xe0\x17\x72\xe0\x30\xf1\xe0\x37\x62\xe0"
+            "\x37\x62\xe0\x30\xe0\x47\x52\xe0\x37\x52\xe0\xe0\x87"
+            "\x43\xe0\x38\x42\xe0\xe0\x87\x42\xe0\x57\x42\xe0\xe0"
+            "\x88\x32\xe0\x57\x33\xe0\xe0\x97\x23\xe0\x58\x22\xe0"
+            "\xe0\xa7\x22\xe0\x77\x22\xe0\xe0\xa8\x12\xe0\x77\x22"
+            "\xe0\xe0\xb7\x12\xe0\x77\x12\xe0\x60\xf1\xe0\x69\xe0"
+            "\x99\xe0\x60\xe0\x78\xe0\x98\xe0\x70\xf1\xe0\x77\xe0"
+            "\xb7\xe0\x70\xe0\x86\xe0\xb6\xe0\x80\xf1\xe0\x85\xe0"
+            "\xd5\xe0\x80\xf1\xe0\x94\xe0\xd4\xe0\x90\xe0\x93\xe0"
+            "\xe0\x13\xe0\xe0\xe0\x52\xe0\xe0\x12\xe0\xa0" }  },
+      /* --- pixel bitmap for cmr600 char#88 X --- */
+      {  88,31160,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 2,204, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x01\x17\x0b\x13\x04\x00\x08\x0c\x12\x0c\x11"
+            "\x0a\x14\x08\x15\x08\x16\x05\x18\x08\x15\x04\x1a\x08"
+            "\x14\x03\x1b\x08\x14\x02\x1d\x08\x12\x02\x1f\x08\x10"
+            "\x03\x1f\x08\x10\x02\x21\x08\x0e\x02\x23\x08\x0c\x03"
+            "\x23\x08\x0c\x02\x25\x08\x0a\x02\x27\x08\x08\x03\x27"
+            "\x08\x08\x02\x29\x08\x06\x02\x2b\x08\x04\x03\x2b\x08"
+            "\x03\x03\x2d\x08\x02\x02\x2f\x0b\x2f\x0a\x31\x08\x1b"
+            "\x00\xff\x01\x18\x08\x1a\x00\x19\x08\x33\x08\x31\x09"
+            "\x31\x0a\x2f\x02\x02\x07\x2e\x03\x02\x08\x2d\x02\x04"
+            "\x08\x2b\x02\x06\x07\x2a\x03\x06\x08\x29\x02\x08\x08"
+            "\x27\x02\x0a\x07\x26\x03\x0a\x08\x25\x02\x0c\x08\x23"
+            "\x02\x0e\x07\x22\x03\x0e\x08\x21\x02\x10\x08\x1f\x02"
+            "\x12\x07\x1e\x03\x12\x08\x1d\x02\x14\x08\x1b\x02\x16"
+            "\x07\x1a\x03\x16\x08\x18\x03\x18\x08\x17\x02\x1a\x07"
+            "\x16\x03\x1a\x08\x14\x04\x1b\x08\x11\x07\x19\x0a\x0d"
+            "\x0c\x16\x0c\x07\xff\x02\x13\x11\x16" }  },
+      /* --- pixel bitmap for cmr600 char#89 Y --- */
+      {  89,32524,                      /* character number, location */
+         57, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 60,   57, 2,139, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x00\x17\x14\x11\x07\x0b\x1c\x0a\x0c\x09\x1e"
+            "\x06\x10\x08\x1f\x04\x12\x08\x1e\x03\x13\x08\x1d\x03"
+            "\x15\x08\x1c\x02\x17\x08\x1a\x03\x17\x08\x1a\x02\x19"
+            "\x08\x18\x02\x1a\x08\x17\x03\x1b\x08\x16\x02\x1d\x08"
+            "\x14\x03\x1d\x08\x14\x02\x1f\x08\x12\x02\x21\x08\x10"
+            "\x03\x21\x08\x10\x02\x23\x08\x0e\x03\x23\x08\x0e\x02"
+            "\x25\x08\x0c\x02\x27\x08\x0a\x03\x27\x08\x0a\x02\x29"
+            "\x08\x08\x03\x2a\x08\x07\x02\x2b\x08\x06\x02\x2d\x08"
+            "\x04\x03\x2d\x08\x04\x02\x2f\x08\x02\x03\x30\x08\x01"
+            "\x02\x31\x0a\x33\x09\x19\x00\xff\x13\x1b\x07\x1a\x00"
+            "\x1a\x09\x19\x00\xff\x02\x12\x18\x12" }  },
+      /* --- pixel bitmap for cmr600 char#90 Z --- */
+      {  90,33693,                      /* character number, location */
+         57, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 42,   57, 3,303, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x2e\x0e\x0b\x10\x2c\xe0\x48\x49\xe0\x78\x47\xe0"
+            "\x88\x30\xf1\x25\xe0\x98\x40\x24\xe0\x98\x73\xe0\xa8"
+            "\x64\xe0\x98\x60\xf1\x13\xe0\x98\x70\x13\xe0\x88\x80"
+            "\xf1\x12\xe0\x88\x90\x12\xe0\x78\xb2\xe0\x77\xc2\xe0"
+            "\x68\xb0\xf1\xe0\x88\xc0\xe0\x78\xd0\xf1\xe0\x68\xe0"
+            "\xe0\x58\xe0\x10\xf1\xe0\x48\xe0\x20\xe0\x38\xe0\xe0"
+            "\x67\xe0\xe0\x68\xe0\x40\xf1\xe0\x18\xe0\x50\xe8\xe0"
+            "\x60\xf1\xd8\xe0\x70\xc8\xe0\x62\xf1\xb8\xe0\x72\xa8"
+            "\xe0\x82\xa7\xe0\x92\x98\xe0\x92\xf1\x88\xe0\x93\x78"
+            "\xe0\xa3\xf1\x68\xe0\xb3\x58\xe0\xb3\x58\xe0\xc3\x58"
+            "\xe0\xb4\x48\xe0\xb5\x48\xe0\xa6\x38\xe0\xa7\x28\xe0"
+            "\x99\x28\xe0\x6c\x1f\x2e\x0e\x0d\x19" }  },
+      /* --- pixel bitmap for cmr600 char#91 [ --- */
+      {  91,116372,                     /* character number, location */
+         62, 9,  -21, 9,      /* topleft row,col, and botleft row,col */
+          { 13,   83, 2,12, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x03\x00\x0d\x00\xff\x4a\x04\x09\xff\x03\x0d" }  },
+      /* --- pixel bitmap for cmr600 char#92 (noname) --- */
+      {  92,136711,                     /* character number, location */
+         58,13,   33,13,      /* topleft row,col, and botleft row,col */
+          { 26,   25, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x72\xe2\x73\xd3\x63\xd3\x63\xd3\x63\xd3\x72\xe2\x73"
+            "\xd3\x72\xe2\x73\xd3\x60\xf1\x12\xe2\x73\xd3\x7f\x32"
+            "\xe2\x82\x23\x92\x23\x39\x79\x1f\x2a\x6a\xf1\x19\x79"
+            "\x27\x97\x53\xd3\x37" }  },
+      /* --- pixel bitmap for cmr600 char#93 ] --- */
+      {  93,117186,                     /* character number, location */
+         62, 1,  -21, 1,      /* topleft row,col, and botleft row,col */
+          { 13,   83, 2,12, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x03\x00\x0d\xff\x4a\x09\x04\x00\xff\x03\x0d" }  },
+      /* --- pixel bitmap for cmr600 char#94 \^ --- */
+      {  94,123777,                     /* character number, location */
+         57,10,   45,10,      /* topleft row,col, and botleft row,col */
+          { 22,   12, 3,51, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xa2\xe0\x54\xe0\x36\xe0\x18\xd4\x24\xb4\x44\x94\x64"
+            "\x74\x84\x53\xc3\x33\xe3\x13\xe0\x23\x11\xe0\x41\x1c" }  },
+      /* --- pixel bitmap for cmr600 char#95 (noname) --- */
+      {  95,124274,                     /* character number, location */
+         56, 7,   47, 7,      /* topleft row,col, and botleft row,col */
+          {  9,    9, 3,13, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x38" }  },
+      /* --- pixel bitmap for cmr600 char#96 (noname) --- */
+      {  96,117920,                     /* character number, location */
+         58, 6,   33, 6,      /* topleft row,col, and botleft row,col */
+          { 10,   25, 3,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x72\x73\x63\x63\x63\x72\x73\x72\x73\x60\xf1\x12\x73"
+            "\x7f\x32\x82\x23\x39\x1f\x2a\xf1\x19\x27\x53\x34" }  },
+      /* --- pixel bitmap for cmr600 char#97 a --- */
+      {  97,34969,                      /* character number, location */
+         38, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 38,   39, 3,187, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa9\xe0\xce\xe0\x85\x76\xe0\x53\xc6\xe0\x25\xc6\xe7"
+            "\xc6\xd8\xb6\xb0\xf1\x28\xc6\xa0\x28\xd6\xc6\xe6\xd4"
+            "\xe0\x16\x90\xf3\xe0\x96\x90\xe0\x3c\xe0\x7e\x03\xe0"
+            "\x4a\x46\xe0\x28\x86\xe8\xa6\xd7\xc6\xc7\xd6\xb7\xe6"
+            "\xa8\xe6\xa7\xe0\x16\x98\xe0\x16\x72\x0f\x27\xe0\x26"
+            "\x72\x0f\x17\xe0\x17\x72\x08\xd8\x72\x17\xd2\x15\x72"
+            "\x18\xb3\x25\x52\x38\x93\x36\x33\x57\x64\x5a\x8d\x88"
+            "\xc8\xb5\x58" }  },
+      /* --- pixel bitmap for cmr600 char#98 b --- */
+      {  98,36103,                      /* character number, location */
+         58, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   59, 3,211, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xe0\xef\x2c\xe0\xe0\x48\xe0\xe0\xfe\x66\xe0\xe0"
+            "\x66\xe0\xe0\x66\x77\xe0\x66\x5c\xe0\x36\x34\x66\xe0"
+            "\x16\x14\xa6\xd9\xd6\xc8\xe0\x16\xb8\xe0\x26\xa7\xe0"
+            "\x46\x96\xe0\x56\x30\xf1\x66\xe0\x66\x20\xf1\x66\xe0"
+            "\x67\x10\x66\xe0\x76\x10\xf9\x66\xe0\x77\x66\xe0\x76"
+            "\x10\xf1\x66\xe0\x67\x10\x66\xe0\x66\x86\xe0\x57\x86"
+            "\xe0\x56\x97\xe0\x36\xa8\xe0\x26\xa5\x12\xe0\x16\xb4"
+            "\x23\xd5\xd4\x33\xb5\xe3\x54\x75\xe0\x22\x8c\xe0\xe0"
+            "\x28\xe2" }  },
+      /* --- pixel bitmap for cmr600 char#99 c --- */
+      {  99,37032,                      /* character number, location */
+         38, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   39, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe9\xe0\x6e\x01\xe0\x16\x85\xc5\xd3\x96\xd5\x76\xd7"
+            "\x65\xd8\x56\xd8\x10\xf1\x36\xe8\x10\x26\xe0\x26\x46"
+            "\xe0\x34\x30\xf1\x17\xe0\xa0\x16\xe0\xbf\x97\xe0\xb0"
+            "\xf2\x17\xe0\xa0\x26\xe0\x82\x27\xe0\x72\x36\xe0\x63"
+            "\x46\xe0\x52\x56\xe0\x43\x66\xe0\x23\x86\xe3\xb5\xc3"
+            "\xd6\x75\xe0\x2e\xe0\x78\xa6" }  },
+      /* --- pixel bitmap for cmr600 char#100 d --- */
+      { 100,38115,                      /* character number, location */
+         58, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   59, 3,201, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe6\x60\xf2\xe0\x8c\x60\xe0\xc8\x60\xfe\xe0\xe6"
+            "\x60\xe0\xe6\xe0\x68\x66\xe0\x4c\x46\xe0\x25\x74\x26"
+            "\xe5\xb3\x16\xd5\xd9\xb6\xe0\x18\x60\xf1\x46\xe0\x37"
+            "\x60\x36\xe0\x56\x87\xe0\x56\x86\xe0\x66\x60\xf1\x17"
+            "\xe0\x66\x60\x16\xe0\x76\x6f\x97\xe0\x76\x60\x16\xe0"
+            "\x76\x60\xf1\x17\xe0\x66\x60\xf1\x26\xe0\x66\x60\xf1"
+            "\x36\xe0\x47\x60\x46\xe0\x28\xb6\xe9\xc6\xc3\x18\xb6"
+            "\xa3\x2c\x96\x64\x3c\xbc\x5c\xe7\x76\x62" }  },
+      /* --- pixel bitmap for cmr600 char#101 e --- */
+      { 101,39029,                      /* character number, location */
+         38, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   39, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe8\xe0\x8d\xe0\x46\x65\xe0\x15\x96\xb6\xb6\x96\xd6"
+            "\x76\xe0\x15\x75\xe0\x26\x56\xe0\x35\x47\xe0\x36\x36"
+            "\xe0\x55\x27\xe0\x55\x27\xe0\x56\x16\xe0\x66\x0f\x27"
+            "\xe0\x66\x0f\x1e\x0e\x05\x0f\x47\xe0\xc0\x16\xe0\xc0"
+            "\xf1\x17\xe0\xb0\x26\xe0\xd6\xe0\x92\x36\xe0\x82\x36"
+            "\xe0\x73\x46\xe0\x62\x65\xe0\x53\x75\xe0\x33\x95\xe0"
+            "\x13\xb6\xb4\xe6\x74\xe0\x4d\xe0\x98\xa6" }  },
+      /* --- pixel bitmap for cmr600 char#102 f --- */
+      { 102,39974,                      /* character number, location */
+         59, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   59, 3,83, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x37\xe0\x6b\xe0\x25\x64\xc6\x56\xb6\x58\xf1\x96"
+            "\x68\xf1\x86\x78\x76\xa4\x20\xfc\x76\xe0\x2f\x2e\x08"
+            "\x70\xfe\x76\xe0\x20\xfd\x76\xe0\x20\x68\xe0\x10\xf2"
+            "\x1e\x06\x8f" }  },
+      /* --- pixel bitmap for cmr600 char#103 g --- */
+      { 103,41309,                      /* character number, location */
+         38, 2,  -18, 2,      /* topleft row,col, and botleft row,col */
+          { 39,   56, 3,255, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x36\xe0\x17\x99\xbd\x44\x44\x86\x56\x13\x55"
+            "\x75\x97\x65\x65\xb5\x75\x55\xd5\x81\x20\xf1\x46\xd6"
+            "\xa0\xf7\x36\xe0\x16\x90\xf1\x46\xd6\xa0\x55\xd5\xe0"
+            "\x35\xb5\xe0\x46\x95\xe0\x58\x56\xe0\x53\x2d\xe0\x72"
+            "\x67\xe0\x50\xf3\x43\xe0\xe0\x40\x44\xe0\xe0\x75\xe0"
+            "\xe0\x75\xe0\xe0\x6e\x07\xe0\x5e\x0a\xe0\x1e\x0c\xe0"
+            "\x1e\x0c\xbe\x0e\x01\x85\xe0\x3a\x65\xe0\x78\x45\xe0"
+            "\xa6\x35\xe0\xb6\x35\xe0\xc6\x1f\x45\xe0\xe5\x16\xe0"
+            "\xc6\x25\xe0\xc5\x45\xe0\xa5\x65\xe0\x85\x85\xe0\x65"
+            "\xa6\xe0\x26\xd7\xa7\xe0\x4e\x04\xe0\xac\xe0" }  },
+      /* --- pixel bitmap for cmr600 char#104 h --- */
+      { 104,42440,                      /* character number, location */
+         58, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   58, 3,128, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xe0\xef\x2c\xe0\xe0\x48\xe0\xe0\xfe\x66\xe0\xe0"
+            "\x66\xe0\xe0\x66\x87\xe0\x56\x5c\xe0\x36\x44\x56\xe0"
+            "\x16\x33\x86\xe6\x23\xa6\xd6\x13\xb6\xd9\xd5\x70\xf1"
+            "\x68\xe6\x60\xf1\x67\xe0\x16\x60\xfe\x66\xe0\x26\x60"
+            "\xf6\x66\xe0\x26\x60\x58\xe8\x5f\x2e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#105 i --- */
+      { 105,43303,                      /* character number, location */
+         56, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 18,   56, 3,56, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x63\xd7\x70\xf4\x39\x60\x47\xd3\x90\xf9\xe0\x40\x66"
+            "\x6f\x2c\x60\x57\x60\xfe\x66\x60\xfc\x66\x60\x58\x5f"
+            "\x2e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#106 j --- */
+      { 106,44205,                      /* character number, location */
+         56,-4,  -17,-4,      /* topleft row,col, and botleft row,col */
+          { 22,   73, 3,93, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x23\xe0\x37\x10\xf4\xd9\xe7\xe0\x33\x30\xf9\xe0"
+            "\x80\xe0\x17\xf2\x9d\xe8\xfe\xe0\x26\xfe\xe0\x26\xf7"
+            "\xe0\x26\x24\xa6\x16\x9e\x85\x1f\x18\x76\x18\x75\x27"
+            "\x75\x45\x75\x64\x65\x9b\xd7\x90" }  },
+      /* --- pixel bitmap for cmr600 char#107 k --- */
+      { 107,45431,                      /* character number, location */
+         58, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   58, 3,224, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xe0\xef\x2c\xe0\xe0\x48\xe0\xe0\xfe\x66\xe0\xe0"
+            "\xf1\x66\xe0\xe0\xf2\x66\xbe\x01\x20\x66\xd9\xc6\xd7"
+            "\xe6\xd5\xe0\x26\xd3\xe0\x46\xc3\xe0\x56\xb3\xe0\x66"
+            "\xa3\xe0\x76\x93\xe0\x86\x74\xe0\x96\x63\xe0\xb6\x54"
+            "\xe0\xb6\x46\xe0\xa6\x37\xe0\xa6\x29\xe0\x96\x13\x26"
+            "\xe0\x89\x37\xe0\x77\x66\xe0\x76\x86\xe0\x66\x87\xe0"
+            "\x56\x96\xe0\x56\xa6\xe0\x46\xb6\xe0\x36\xb7\xe0\x26"
+            "\xc6\xe0\x26\xd6\xe0\x16\xd7\xe6\xe6\xe6\xe7\xd6\xe0"
+            "\x17\xb8\xda\x4f\x2e\x04\x6e\x02" }  },
+      /* --- pixel bitmap for cmr600 char#108 l --- */
+      { 108,46192,                      /* character number, location */
+         58, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 18,   58, 3,44, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\x6f\x2c\x60\x48\x60\xfe\x66\x60\xfe\x66\x60\xfe"
+            "\x66\x60\xf3\x66\x60\x58\x5f\x2e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#109 m --- */
+      { 109,47587,                      /* character number, location */
+         37, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 64,   37, 3,144, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\x88\xe0\x18\xdc\x6c\xbc\xbc\x44\x66\x74\x66\x9c"
+            "\x33\x96\x53\x96\xc8\x23\xb6\x33\xb6\xd6\x13\xc6\x23"
+            "\xc6\xd9\xd6\x13\xd6\x70\xf1\x68\xe0\x18\xe0\x16\x60"
+            "\xf2\x67\xe0\x27\xe0\x26\x60\xfe\x66\xe0\x36\xe0\x36"
+            "\x60\xf5\x66\xe0\x36\xe0\x36\x60\x58\xe0\x18\xe0\x18"
+            "\x5f\x2e\x04\x5e\x04\x5e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#110 n --- */
+      { 110,48752,                      /* character number, location */
+         37, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   37, 3,90, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\x87\xdc\x5c\xbc\x44\x56\x9c\x33\x86\xc8\x23\xa6"
+            "\xd6\x13\xb6\xd9\xd5\x70\xf1\x68\xe6\x60\xf1\x67\xe0"
+            "\x16\x60\xfe\x66\xe0\x26\x60\xf6\x66\xe0\x26\x60\x58"
+            "\xe8\x5f\x2e\x04\x4e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#111 o --- */
+      { 111,49565,                      /* character number, location */
+         38, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   39, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x18\xe0\xde\xe0\x86\x66\xe0\x45\xc5\xe0\x15\xe5"
+            "\xd5\xe0\x25\xb5\xe0\x45\x50\xf1\x45\xe0\x65\x40\x35"
+            "\xe0\x85\x30\xf1\x26\xe0\x86\x20\xf3\x16\xe0\xa6\x1f"
+            "\x87\xe0\xa7\xf1\x16\xe0\xa6\x10\x17\xe0\x87\x10\xf1"
+            "\x26\xe0\x86\x20\x36\xe0\x66\x75\xe0\x65\x95\xe0\x45"
+            "\xb5\xe0\x25\xd5\xe5\xe0\x15\xc5\xe0\x46\x66\xe0\x8e"
+            "\xe0\xd8\xe0\x16" }  },
+      /* --- pixel bitmap for cmr600 char#112 p --- */
+      { 112,50743,                      /* character number, location */
+         37, 3,  -16, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   53, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\x77\xec\x5c\xbc\x34\x66\x9c\x14\xa6\xbb\xd6\xc8"
+            "\xe0\x16\xb8\xe0\x17\xa7\xe0\x37\x96\xe0\x56\x30\xf1"
+            "\x66\xe0\x57\x20\xf2\x66\xe0\x67\x10\xf9\x66\xe0\x77"
+            "\xf2\x66\xe0\x67\x10\xf1\x66\xe0\x57\x20\x66\xe0\x47"
+            "\x97\xe0\x36\xa8\xe0\x17\xa8\xe7\xb9\xc6\xd6\x13\xa6"
+            "\xe6\x24\x66\xe0\x26\x4c\xe0\x46\x68\xe0\xfa\x66\xe0"
+            "\xe0\x58\xe0\xdf\x2e\x04\xe0\x86" }  },
+      /* --- pixel bitmap for cmr600 char#113 q --- */
+      { 113,51915,                      /* character number, location */
+         37, 3,  -16, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   53, 3,188, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe8\xa2\xe0\x4c\x73\xe0\x26\x63\x63\xe6\x93\x44\xd6"
+            "\xb3\x34\xb7\xd3\x15\xa7\xe0\x12\x15\xa6\xe0\x28\x97"
+            "\xe0\x37\x87\xe0\x47\x87\xe0\x56\x60\xf2\x17\xe0\x66"
+            "\x6f\x97\xe0\x76\x60\xf2\x17\xe0\x66\x60\x27\xe0\x56"
+            "\x87\xe0\x47\x96\xe0\x47\x97\xe0\x28\xa7\xe0\x18\xb6"
+            "\xe9\xc6\xc3\x16\xd6\xa3\x26\xe0\x16\x64\x36\xe0\x3c"
+            "\x56\xe0\x67\x76\x60\xfa\xe0\xe6\x60\xe0\xd8\x50\xf2"
+            "\xe0\x8e\x04" }  },
+      /* --- pixel bitmap for cmr600 char#114 r --- */
+      { 114,52924,                      /* character number, location */
+         37, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 29,   37, 3,85, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\x85\x4c\x69\x2c\x44\x35\x1c\x33\x47\x57\x23\x57"
+            "\x75\x22\x67\x75\x13\x67\x75\x12\x85\x88\xa1\x30\xf3"
+            "\x77\xe0\x10\xfe\x76\xe0\x20\xf4\x76\xe0\x20\x68\xe0"
+            "\x1f\x2e\x07\x86" }  },
+      /* --- pixel bitmap for cmr600 char#115 s --- */
+      { 115,53937,                      /* character number, location */
+         38, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 27,   39, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x98\x62\x8d\x33\x65\x88\x54\xc6\x44\xe5\x34\xe0\x24"
+            "\x33\xe0\x43\x2f\x14\xe0\x43\x24\xe0\x52\x2f\x15\xe0"
+            "\x42\x26\xe0\x32\x28\xe0\x6a\xe0\x3e\x01\xde\x03\xbe"
+            "\x04\xae\x05\xae\x04\xce\x02\xe0\x1d\xe0\x58\xe0\x76"
+            "\x12\xe0\x56\x0f\x12\xe0\x65\x0f\x23\xe0\x64\x04\xe0"
+            "\x58\xe0\x53\x15\xe0\x34\x16\xe0\x24\x17\xe4\x28\xc4"
+            "\x34\x24\x85\x43\x5d\x62\x88\x96" }  },
+      /* --- pixel bitmap for cmr600 char#116 t --- */
+      { 116,54866,                      /* character number, location */
+         51, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 25,   52, 3,89, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf4\xa2\xd0\xf3\x93\xd0\xf1\x84\xd0\xf1\x75\xd0\x66"
+            "\xe0\x47\xe0\x2e\x07\x1f\x1e\x0a\x10\xfe\x66\xd0\xf2"
+            "\x66\xd0\xf8\x66\xb2\x76\x93\x76\x92\x95\x83\x96\x72"
+            "\xb6\x53\xdb\xe0\x36\x5e" }  },
+      /* --- pixel bitmap for cmr600 char#117 u --- */
+      { 117,55887,                      /* character number, location */
+         37, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   38, 3,89, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xe0\x26\x6f\x2c\xac\x60\x48\xe8\x60\xfe\x66\xe0"
+            "\x26\x60\xf6\x66\xe0\x26\x60\xf2\x66\xe0\x17\x60\x66"
+            "\xe8\xd5\xe8\xd6\xc9\xe5\xb3\x18\xc6\x93\x2c\x96\x73"
+            "\x3c\xbd\x4c\xe8\x66\x6e" }  },
+      /* --- pixel bitmap for cmr600 char#118 v --- */
+      { 118,56897,                      /* character number, location */
+         36, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 40,   37, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x03\xad\x58\xe0\x28\x97\xe0\x35\xb7\xe0\x43"
+            "\xd6\xe0\x43\xd6\xe0\x42\xe7\xe0\x23\x70\xf1\x86\xe0"
+            "\x22\x80\xf1\x96\xe2\x90\x97\xc3\x90\xf1\xa6\xc2\xa0"
+            "\xf1\xb6\xa2\xb0\xb7\x83\xb0\xf1\xc6\x82\xc0\xf1\xd6"
+            "\x62\xd0\xd7\x43\xe0\xd6\x42\xe0\xe7\x32\xe0\xf1\xe0"
+            "\x16\x22\xe0\x10\xe0\x1a\xe0\x10\xf1\xe0\x28\xe0\x20"
+            "\xf1\xe0\x36\xe0\x30\xf2\xe0\x44\xe0\x40\xe0\x52\xe0"
+            "\x50" }  },
+      /* --- pixel bitmap for cmr600 char#119 w --- */
+      { 119,58257,                      /* character number, location */
+         36, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 56,   37, 3,299, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x03\x3e\x02\x7d\x49\xc8\xc9\x77\xe6\xe0\x15"
+            "\x97\xe6\xe0\x14\xb6\xe6\xe0\x13\xc6\xe0\x15\xe0\x13"
+            "\xd6\xe6\xe2\x70\xf1\x76\xd7\xe2\x70\x86\xc8\xc2\xe0"
+            "\x26\xb2\x25\xc2\xe0\x27\xa2\x25\xb3\xe0\x36\xa2\x26"
+            "\xa2\xe0\x46\x92\x45\xa2\xe0\x47\x82\x45\x93\xe0\x56"
+            "\x82\x46\x82\xe0\x66\x72\x65\x82\xe0\x76\x62\x65\x72"
+            "\xe0\x86\x53\x66\x62\xe0\x86\x52\x85\x62\xe0\x96\x42"
+            "\x85\x52\xe0\xa6\x33\x86\x42\xe0\xa6\x32\xa5\x42\xe0"
+            "\xb6\x22\xa6\x22\xd0\xf1\xd6\x12\xc5\x22\xd0\xe8\xc8"
+            "\xe0\xf1\xe7\xe7\xe0\xe0\x16\xe6\xe0\x10\xf1\xe0\x15"
+            "\xe0\x25\xe0\x10\xe0\x24\xe0\x24\xe0\xe0\x43\xe0\x43"
+            "\xe0\xe0\x52\xe0\x42\xe0\x3e" }  },
+      /* --- pixel bitmap for cmr600 char#120 x --- */
+      { 120,59432,                      /* character number, location */
+         36, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 42,   36, 3,208, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x04\x8e\x01\x10\x6a\xb9\xe7\xd6\xe0\x27\xd4"
+            "\xe0\x57\xc3\xe0\x76\xb3\xe0\x96\xa2\xe0\xb6\x82\xe0"
+            "\xc7\x63\xe0\xd6\x53\xe0\xe0\x16\x33\xe0\xe0\x36\x22"
+            "\xe0\xe0\x49\xe0\xe0\x68\xe0\xe0\x76\xe0\xe0\x96\xe0"
+            "\xe0\x87\xe0\xe0\x78\xe0\xe0\x59\xe0\xe0\x43\x26\xe0"
+            "\xe0\x23\x37\xe0\xe0\x12\x57\xe0\xd2\x76\xe0\xc3\x86"
+            "\xe0\xa3\xa6\xe0\x83\xb7\xe0\x63\xd6\xe0\x63\xe6\xe0"
+            "\x35\xe7\xe0\x16\xe0\x17\xba\xd9\x6f\x2e\x01\xae\x03" }  },
+      /* --- pixel bitmap for cmr600 char#121 y --- */
+      { 121,60617,                      /* character number, location */
+         36, 2,  -17, 2,      /* topleft row,col, and botleft row,col */
+          { 40,   53, 3,277, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\x0e\x03\xad\x59\xe0\x18\x97\xe0\x35\xb7\xe0\x43"
+            "\xd6\xe0\x43\xd6\xe0\x42\x70\xf1\x86\xe0\x22\x80\x87"
+            "\xe3\x80\xf1\x96\xe2\x90\xf1\xa6\xc2\xa0\xa7\xa3\xe0"
+            "\x76\xa2\xe0\x87\x92\xb0\xf1\xc6\x82\xc0\xf1\xd6\x62"
+            "\xd0\xd7\x52\xd0\xf1\xe6\x42\xe0\xf1\xe0\x16\x22\xe0"
+            "\x10\xe0\x1a\xe0\x10\xf1\xe0\x28\xe0\x20\xf2\xe0\x36"
+            "\xe0\x30\xf1\xe0\x44\xe0\x40\xf1\xe0\x52\xe0\x50\xf1"
+            "\xe0\x42\xe0\x60\xe0\x33\xe0\x60\xf1\xe0\x32\xe0\x70"
+            "\xe0\x22\xe0\x95\xa2\xe0\x87\x83\xe0\x87\x82\xe0\x97"
+            "\x72\xe0\xa7\x63\xe0\xa6\x72\xe0\xc3\x82\xe0\xe3\x53"
+            "\xe0\xe0\x29\xe0\xe0\x55\xe0\xe0\x20" }  },
+      /* --- pixel bitmap for cmr600 char#122 z --- */
+      { 122,61708,                      /* character number, location */
+         36, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 32,   36, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x2e\x0e\x01\x10\x27\xe8\x35\xe0\x27\x44\xe0\x27"
+            "\x53\xe0\x27\x62\xe0\x28\x53\xe0\x27\x63\xe0\x17\x72"
+            "\xe0\x17\x82\xe8\x82\xe7\x92\xd7\xa2\xc7\xe0\xa8\xe0"
+            "\xa7\xe0\xa7\xc0\xf1\xc7\xd0\xb7\xe0\xa7\xe0\xa8\xd2"
+            "\x97\xe2\x87\xe0\x12\x77\xe0\x22\x68\xe0\x22\x67\xe0"
+            "\x23\x57\xe0\x33\x47\xe0\x42\x48\xe0\x33\x47\xe0\x43"
+            "\x37\xe0\x44\x27\xe0\x45\x18\xe0\x18\x1f\x1e\x0e\x03"
+            "\x10" }  },
+      /* --- pixel bitmap for cmr600 char#123 (noname) --- */
+      { 123,137399,                     /* character number, location */
+         23, 0,   21, 0,      /* topleft row,col, and botleft row,col */
+          { 42,    2, 3, 8, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\x0e\x0e\x0e" }  },
+      /* --- pixel bitmap for cmr600 char#124 (noname) --- */
+      { 124,138221,                     /* character number, location */
+         23, 0,   21, 0,      /* topleft row,col, and botleft row,col */
+          { 83,    2, 2, 4, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xff\x01\x00\x53" }  },
+      /* --- pixel bitmap for cmr600 char#125 (noname) --- */
+      { 125,124965,                     /* character number, location */
+         58,11,   43,11,      /* topleft row,col, and botleft row,col */
+          { 24,   15, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x54\xa4\x10\xf2\x46\x86\x37\x77\x36\x86\x45\x95\x20"
+            "\xf1\x25\x95\x30\x15\x95\x54\xa4\x63\xb3\x64\xa4\x63"
+            "\xb3\x72\xc2\x80" }  },
+      /* --- pixel bitmap for cmr600 char#126 \~ --- */
+      { 126,125693,                     /* character number, location */
+         55, 7,   47, 7,      /* topleft row,col, and botleft row,col */
+          { 28,    8, 3,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x75\xe1\x69\xb3\x4b\x93\x4e\x54\x44\x5e\x43\x9b\x43"
+            "\xb9\x61\xe5\x70" }  },
+      /* --- pixel bitmap for cmr600 char#127 (noname) --- */
+      { 127,126396,                     /* character number, location */
+         56, 8,   47, 8,      /* topleft row,col, and botleft row,col */
+          { 26,    9, 3,31, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x34\xc4\x47\xa7\x28\x88\x1f\x29\x89\x18\x88\x27\xa7"
+            "\x44\xc4\x35" }  },
+      /* --- trailer  --- */
+      { -99, -999,  0,0,0,0, { 0,0,0,0, (pixbyte *)"\0" }  }
+   } ;
+
+
 /* ------------------------------------------------------------------------
-font sizes 0-7 for cmmi10
+font sizes 0-10 for cmmi10
 ------------------------------------------------------------------------ */
 
 /* --- size=0 for .83gf ---
@@ -12130,8 +15903,4552 @@
    } ;
 
 
+/* --- size=8 for .325gf ---
+ * mf '\mode=preview; mag=magstep(-11.40956951729850636869); input cmmi10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmmi325 --- */
+static	chardef  cmmi325[] =
+   {
+      /* --- pixel bitmap for cmmi325 char#0 \Gamma --- */
+      {   0,58867,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   31, 3,89, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x7e\x0a\xb4\xc3\xc4\xd2\x10\xf1\xb4\xe1\x10\xf3\xa4"
+            "\xe0\x11\x10\x94\xe0\x11\x20\xf2\x94\xe0\x40\xf3\x84"
+            "\xe0\x50\xf3\x74\xe0\x60\xf3\x64\xe0\x70\xf3\x54\xe0"
+            "\x80\x45\xe0\x8e\xe0\x33" }  },
+      /* --- pixel bitmap for cmmi325 char#1 \Delta --- */
+      {   1,59814,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   32, 3,180, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xa1\xe0\xe0\x32\xe0\xe0\x24\x70\xf1\xe0\x75\x70"
+            "\xe0\x61\x14\xe0\xc1\x25\xe0\xa1\x35\xe0\xa1\x44\xe0"
+            "\x91\x54\xe0\x81\x65\xe0\x61\x75\xe0\x61\x84\xe0\x51"
+            "\x94\xe0\x41\xa5\x40\xf1\xc1\xc4\x40\xb1\xd4\xe1\xe5"
+            "\x30\xf1\x91\xe0\x24\x30\x81\xe0\x34\xa1\xe0\x45\x81"
+            "\xe0\x64\x72\xe0\x64\x71\xe0\x75\x51\xe0\x85\x41\xe0"
+            "\xa4\x32\xe0\xa4\x3e\x0e\x03\x1e\x0e\x0e\x0e\x09" }  },
+      /* --- pixel bitmap for cmmi325 char#2 \Theta --- */
+      {   2,61047,                      /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   33, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x27\xe0\x63\x63\xe0\x23\xa3\xd3\xc3\xa3\xe3\x93"
+            "\xe0\x23\x74\xe0\x23\x64\xe0\x34\x53\xe0\x53\x44\xe0"
+            "\x53\xf1\x34\xe0\x63\x24\xe0\x73\x24\x41\xb1\x34\x14"
+            "\x41\xb1\x44\xf2\x14\x4d\x44\x0f\x14\x41\xb1\x44\x14"
+            "\xe0\x73\x24\xe0\x64\x24\xe0\x63\x34\xe0\x54\x43\xe0"
+            "\x53\x53\xe0\x43\x64\xe0\x23\x83\xe0\x13\x93\xe3\xb3"
+            "\xc3\xd3\xa3\xe0\x23\x54\xe0\x67\xe0\x1e" }  },
+      /* --- pixel bitmap for cmmi325 char#3 \Lambda --- */
+      {   3,62151,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 28,   32, 3,144, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x71\x60\xf1\xe0\x62\x60\xe0\x53\x60\xf1\xe0\x44"
+            "\x60\xf1\xe0\x36\x50\xe0\x21\x24\x50\xf1\xe0\x11\x34"
+            "\x50\xf1\xe1\x44\x50\xf1\xd1\x54\x50\xc1\x64\x50\xf1"
+            "\xb1\x74\x50\xf1\xa1\x85\x40\x91\x95\xc2\xa4\xc1\xb4"
+            "\x40\xf1\x71\xc4\x40\xf1\x61\xd4\x40\x51\xe4\x82\xe4"
+            "\x81\xe0\x14\x64\xe5\x38\x8c" }  },
+      /* --- pixel bitmap for cmmi325 char#4 \Xi --- */
+      {   4,63636,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   31, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x8e\x0c\xf1\x7e\x0c\x10\xf1\x71\xe0\xa1\x10\xf1\x61"
+            "\xe0\xa1\x20\xf3\xe0\xe0\x60\xf1\x91\xe0\x21\x70\xf2"
+            "\x8e\x04\x80\x81\xe0\x21\xe0\x11\xe0\x21\x90\xf5\xe0"
+            "\xe0\x60\x21\xe0\xa1\x60\xf2\x11\xe0\xa1\x70\x1e\x0c"
+            "\x7f\x1e\x0c\x84" }  },
+      /* --- pixel bitmap for cmmi325 char#5 \Pi --- */
+      {   5,64941,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   31, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x7e\x0e\x03\xb4\xe5\x40\xf2\xb4\xe4\x50\xf3\xa4\xe4"
+            "\x60\xf3\x94\xe4\x70\xf3\x84\xe4\x80\xf3\x74\xe4\x90"
+            "\xf3\x64\xe4\xa0\xf3\x54\xe4\xb0\x45\xd5\xbd\x5d\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#6 \Sigma --- */
+      {   6,66184,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 35,   31, 3,177, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x8e\x0d\x85\xe0\x25\x95\xe0\x43\xa4\xe0\x52\xa5\xe0"
+            "\x42\xb4\xe0\x51\x10\xf1\xa5\xe0\x41\x10\xb4\xe0\x32"
+            "\xc5\xe0\x21\xe4\xe0\xe0\x35\xe0\x40\xf1\xd4\xe0\x40"
+            "\xd5\xe0\xe0\x34\xe0\xe0\x33\xe0\xe0\x51\xe0\xe0\x51"
+            "\xe0\xe0\x51\xe0\xe0\x51\xe0\x31\xe2\xe0\x31\xe1\xe0"
+            "\x51\xd1\xe0\x52\xc1\xe0\x61\xc1\xe0\x62\xb1\xe0\x63"
+            "\x92\xe0\x63\x91\xe0\x56\x8e\x0c\x8e\x0d\x8e" }  },
+      /* --- pixel bitmap for cmmi325 char#7 \Upsilon --- */
+      {   7,67294,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 29,   32, 3,113, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x55\xd4\x68\x98\x3a\x6a\x23\x44\x54\x52\x12\x74\x43"
+            "\x71\x11\x93\x33\x82\xa3\x23\x92\xb2\x22\xa1\xc2\x13"
+            "\xe0\x92\x12\xe0\xa5\xc0\xf1\xc4\xd0\xb5\xd0\xf3\xb4"
+            "\xe0\xf3\xa4\xe0\x10\xf3\x94\xe0\x20\xf3\x84\xe0\x30"
+            "\x75\xe0\x4e\x02\xc0" }  },
+      /* --- pixel bitmap for cmmi325 char#8 \Phi --- */
+      {   8,68376,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 28,   31, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x01\xe0\x45\x80\xf2\xe0\x14\x90\xe4\xe0\x89\xe0"
+            "\x14\x24\x23\xb3\x54\x43\x83\x54\x63\x54\x64\x73\x34"
+            "\x74\x74\x14\x84\x74\x14\x74\x84\x0f\x24\x84\x84\x04"
+            "\x74\x84\x14\x74\x83\x24\x74\x74\x33\x74\x64\x53\x54"
+            "\x63\x83\x44\x44\xa4\x24\x23\xe0\x29\xc0\xf3\x94\xe0"
+            "\x10\x85\xe0\x3e\x02\xa0" }  },
+      /* --- pixel bitmap for cmmi325 char#9 \Psi --- */
+      {   9,69557,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 29,   31, 3,131, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x9e\x01\xe0\x55\xa0\xf2\xe4\xb5\x84\x75\x24\x74\x64"
+            "\x20\xf1\x24\x74\x54\x30\xf3\x24\x64\x54\x40\xf2\x14"
+            "\x64\x54\x50\x14\x64\x44\x74\x54\x54\x74\x54\x44\x93"
+            "\x54\x43\xa3\x54\x34\xb3\x34\x34\xc3\x34\x23\xe0\x23"
+            "\x18\xe0\x57\xe0\x10\xf3\x84\xe0\x30\x75\xe0\x4e\x02"
+            "\xc0" }  },
+      /* --- pixel bitmap for cmmi325 char#10 \Omega --- */
+      {  10,70846,                      /* character number, location */
+         32, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,173, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x38\xe0\x73\x73\xe0\x33\xb3\xd3\xe3\xb3\xe0\x23"
+            "\x93\xe0\x33\x83\xe0\x44\x64\xe0\x53\x54\xe0\x63\x54"
+            "\xe0\x54\xf2\x44\xe0\x64\xf1\x44\xe0\x54\x10\xf1\x44"
+            "\xe0\x44\x20\x44\xe0\x34\x83\xe0\x33\x93\xe0\x23\xb2"
+            "\xe0\x13\xc3\xe2\xe2\xd2\xe0\x12\xc2\xe0\x31\xc1\xb1"
+            "\x61\xb1\x71\x41\x61\xa2\x61\x41\x72\x91\x71\x42\x62"
+            "\x81\x71\x59\x99\x59\x8a\x59\x89\x6e" }  },
+      /* --- pixel bitmap for cmmi325 char#11 \alpha --- */
+      {  11,71986,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 25,   19, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x95\xe0\x43\x42\xe3\x72\x71\x43\x83\x61\x33\xa2\x61"
+            "\x24\xa3\x41\x33\xb3\x41\x10\xf1\x14\xb3\x31\x24\xc3"
+            "\x21\x3f\x14\xc3\x11\x44\xc4\x54\xc3\x73\xc3\x73\xb4"
+            "\x82\x92\x22\x41\x42\x62\x52\x21\x67\x83\x30" }  },
+      /* --- pixel bitmap for cmmi325 char#12 \beta --- */
+      {  12,73087,                      /* character number, location */
+         31, 1,   -9, 1,      /* topleft row,col, and botleft row,col */
+          { 25,   40, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x16\xe0\x41\x53\xe2\x82\xc1\xa2\x10\xf1\xa1\xc2"
+            "\x91\xc3\xf1\x81\xd3\x81\xd2\x81\xd2\x91\xc2\xa1\x46"
+            "\x12\xa1\x41\x53\xb1\x56\x11\xb1\xc2\xa1\xc3\x30\xf3"
+            "\x51\xe2\x30\xf2\x41\xe3\x30\x41\xd3\x72\xd3\x72\xc3"
+            "\x81\x11\xb2\x91\x11\x93\x91\x32\x53\xb1\x56\xb0\xf1"
+            "\x21\xe0\x80\xf3\x11\xe0\x9f\x21\xe0\xa1" }  },
+      /* --- pixel bitmap for cmmi325 char#13 \gamma --- */
+      {  13,74112,                      /* character number, location */
+         19, 1,  -10, 1,      /* topleft row,col, and botleft row,col */
+          { 24,   29, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\xd1\x48\xa1\x4a\x81\x4b\x81\x33\x73\x61\x41\xb1"
+            "\x61\x31\xc2\x41\x41\xd1\x41\xe0\x41\x31\xe0\x61\x21"
+            "\x50\xf2\xe0\x11\x11\x60\xf1\xe0\x12\x70\xf2\xe0\x11"
+            "\x80\xf2\xe2\x80\xf3\xd2\x90\xf2\xc2\xa0\xc1\xb2" }  },
+      /* --- pixel bitmap for cmmi325 char#14 \delta --- */
+      {  14,75113,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   32, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb4\xc9\x81\x54\x72\x63\xf2\x72\x90\xf1\x82\x80\x83"
+            "\x70\xf1\x93\x60\xa3\xe5\xb2\x23\x93\x34\x72\x64\x53"
+            "\x64\x43\x83\x42\x93\x20\xf1\x13\x93\x2f\x23\xa3\x2f"
+            "\x13\xa2\x30\x12\x92\x52\x83\x62\x72\x82\x43\xb5\x83" }  },
+      /* --- pixel bitmap for cmmi325 char#15 \epsilon --- */
+      {  15,76027,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 15,   19, 3,45, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x96\x63\xb3\xb3\xb3\xb4\x90\xf1\x14\xa0\x1c\x2f\x24"
+            "\xb0\xf2\x13\xb0\x23\xd2\xe2\x53\x75\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#16 \zeta --- */
+      {  16,76977,                      /* character number, location */
+         31, 1,   -9, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   40, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd1\x60\xf1\xc1\x70\xd6\xd2\x51\xa2\x25\xa2\xe0\x31"
+            "\xe0\x41\xe0\x42\xe0\x32\xe0\x41\xe0\x42\xe0\xf1\x32"
+            "\xe0\x10\xf1\x22\xe0\x20\xf4\x12\xe0\x3f\x23\xe0\x30"
+            "\x12\xe0\x43\xe0\x34\xe0\x35\xe0\x26\xe0\x18\xe8\xe0"
+            "\x16\xe0\x33\x50\xf1\xd3\x40\xf1\xd2\x50\x72\x32\xe0"
+            "\x14\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#17 \eta --- */
+      {  17,77936,                      /* character number, location */
+         19, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   29, 3,93, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x34\x65\x41\x32\x32\x42\x21\x42\x21\x63\x11\x44\x73"
+            "\x11\x43\x84\x44\x84\x43\x93\xf1\x53\x93\xf3\x43\x93"
+            "\x10\xf3\x33\x93\x20\x23\x93\x62\x93\x30\xf1\xe3\x30"
+            "\xf3\xd3\x40\xf2\xc3\x50\xc2\x60" }  },
+      /* --- pixel bitmap for cmmi325 char#18 \theta --- */
+      {  18,78754,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   31, 3,115, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb4\xd2\x41\xb2\x52\x93\x53\x73\x63\x63\x73\x63\x74"
+            "\xf1\x43\x84\x34\x84\x33\x94\x24\x94\x24\x93\x10\xf1"
+            "\x14\x94\x10\x1e\x03\x24\x94\x1f\x24\x94\x24\x93\x34"
+            "\x84\x33\x93\x43\x84\x43\x83\x53\x73\x72\x73\x73\x53"
+            "\x92\x43\xa2\x33\xd4\xb3" }  },
+      /* --- pixel bitmap for cmmi325 char#19 \iota --- */
+      {  19,79485,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 11,   19, 3,45, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x52\x40\xf3\x43\x40\xf2\x33\x50\xf3\x23\x60\x13\x83"
+            "\x61\x12\x74\x61\x13\x51\x32\x32\x54\x54" }  },
+      /* --- pixel bitmap for cmmi325 char#20 \kappa --- */
+      {  20,80439,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   19, 3,85, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x52\x94\x53\x76\x53\x61\x24\x53\x51\x42\x63\x41\xc3"
+            "\x32\xd3\x21\xe0\x15\xe0\x2a\xa3\x64\x60\xf1\x23\x83"
+            "\x50\x23\x93\x40\xf2\x13\x93\x41\x13\xa2\x31\x13\xb2"
+            "\x31\x22\xc4\x23" }  },
+      /* --- pixel bitmap for cmmi325 char#21 \lambda --- */
+      {  21,81338,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   31, 3,118, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x63\xe0\x73\xe0\x54\xa0\xf1\x93\xa0\x94\x90\xf1\xa3"
+            "\x90\xa4\xe0\x53\xe0\x54\x70\xf1\xc3\x70\xc4\x60\xf1"
+            "\xd3\x60\xf1\xd4\x50\xc1\x13\xe0\x21\x24\xe2\x33\xd2"
+            "\x44\xb2\x63\xa2\x73\x92\x84\x63\xa3\x53\xb3\x43\xc4"
+            "\x24\xd3\x23\xe4\x12\xe0\x23" }  },
+      /* --- pixel bitmap for cmmi325 char#22 \mu --- */
+      {  22,82416,                      /* character number, location */
+         19, 1,  -10, 1,      /* topleft row,col, and botleft row,col */
+          { 23,   29, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x72\xa2\x20\xf3\x63\x93\x20\xf3\x53\x93\x30\xf3\x43"
+            "\x93\x40\x34\x83\x41\x33\x93\x41\x34\x74\x41\x34\x65"
+            "\x31\x36\x41\x32\x31\x33\x25\x54\x20\xf1\x23\xe0\x40"
+            "\xf3\x13\xe0\x5f\x23\xe0\x62\xe0\x73" }  },
+      /* --- pixel bitmap for cmmi325 char#23 \nu --- */
+      {  23,83263,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   19, 3,75, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x17\xb2\xf2\x43\xb3\x43\xa3\x43\xb3\x10\xf1\x33\xa3"
+            "\x20\x33\x93\x53\xa2\x63\x92\x73\x82\x83\x72\x83\x72"
+            "\x93\x62\xa3\x42\xc3\x23\xc3\x12\xe0\x14\xe0\x30" }  },
+      /* --- pixel bitmap for cmmi325 char#24 \xi --- */
+      {  24,84445,                      /* character number, location */
+         31, 0,   -9, 0,      /* topleft row,col, and botleft row,col */
+          { 20,   40, 3,131, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc1\x70\xf1\xb1\x80\xc7\xa4\x61\x83\x26\x83\xe0\x23"
+            "\xe0\x24\xb0\xf4\x44\xc0\x53\xe0\x3b\xb3\x61\x91\x27"
+            "\x82\xe0\x32\xe0\x41\xe0\x42\xe0\x20\xf2\x12\xe0\x3f"
+            "\x13\xe0\x30\x12\xe0\x44\xe0\x35\xe0\x26\xe0\x18\xe9"
+            "\xe7\xe0\x15\x40\xf1\xe2\x40\x71\x62\xc2\x32\xe0\x14"
+            "\x64" }  },
+      /* --- pixel bitmap for cmmi325 char#25 \pi --- */
+      {  25,85433,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 24,   19, 3,93, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x5e\x05\x4e\x06\x3e\x06\x32\x51\x51\x91\x71\x51\x91"
+            "\x62\x51\xe0\x21\x61\xe0\x21\x52\x80\xf1\x72\x52\x80"
+            "\x71\x62\x80\xf1\x62\x62\x80\x53\x62\xd2\x73\x70\xf1"
+            "\x43\x73\x70\x33\x84\xa2\x92\x75" }  },
+      /* --- pixel bitmap for cmmi325 char#26 \rho --- */
+      {  26,86307,                      /* character number, location */
+         19, 1,  -10, 1,      /* topleft row,col, and botleft row,col */
+          { 22,   29, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xc5\xe0\x13\x42\xc2\x72\xa2\x83\x82\x93\x73\x94\x62"
+            "\xa4\xf1\x53\xa4\xf2\x43\xa4\x10\x43\x94\x53\xa4\x53"
+            "\xa3\x64\x83\x74\x73\x73\x21\x43\x93\x35\x90\xf1\x23"
+            "\xe0\x30\xf3\x13\xe0\x4f\x23\xe0\x52\xe0\x60" }  },
+      /* --- pixel bitmap for cmmi325 char#27 \sigma --- */
+      {  27,87255,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   19, 3,69, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x9e\x01\x7e\x03\x5e\x04\x54\x64\x93\x93\x83\xa3\x83"
+            "\xb3\x50\xf1\x13\xc3\x5f\x23\xc3\x6f\x13\xb3\x73\xa3"
+            "\x92\xa2\xb2\x73\xd2\x52\xe0\x26\xe3" }  },
+      /* --- pixel bitmap for cmmi325 char#28 \tau --- */
+      {  28,88074,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 21,   19, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x5e\x02\x3e\x04\x3e\x03\x32\x61\xa0\xf1\x11\x72\xa0"
+            "\x91\xb0\xf3\x82\xb0\x73\xb0\xf1\x72\xc0\xf2\x63\xc0"
+            "\x53\xe0\x52\xd3" }  },
+      /* --- pixel bitmap for cmmi325 char#29 \upsilon --- */
+      {  29,88993,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,89, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x44\xa2\x51\x32\x84\x31\x42\x84\x21\x52\x85\x11\x43"
+            "\xa2\x11\x53\xa2\x11\x53\xb1\x10\xf1\x53\xc1\x10\xf1"
+            "\x43\xc1\x20\xf1\x43\xb1\x30\xf1\x43\xa1\x40\x43\x91"
+            "\xa2\x81\xc2\x52\xe6\x9f" }  },
+      /* --- pixel bitmap for cmmi325 char#30 \phi --- */
+      {  30,89929,                      /* character number, location */
+         31, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   40, 3,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x31\x60\xf3\xe0\x21\x70\xf3\xe0\x11\x80\xf2\xe1"
+            "\x90\xa8\xe3\x21\x33\xa3\x41\x52\x82\x61\x62\x53\x71"
+            "\x63\x42\x71\x82\x33\x71\x82\x10\xf1\x13\x81\x83\x0f"
+            "\x23\x81\x83\x13\x81\x73\x32\x71\x82\x42\x71\x72\x62"
+            "\x61\x62\x82\x51\x43\xa3\x21\x33\xe7\xb0\xf1\x91\xe0"
+            "\xf3\x81\xe0\x10\xf2\x71\xe0\x21" }  },
+      /* --- pixel bitmap for cmmi325 char#31 \chi --- */
+      {  31,91068,                      /* character number, location */
+         19, 1,   -9, 1,      /* topleft row,col, and botleft row,col */
+          { 25,   28, 3,139, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x44\xe0\x21\x31\x23\xe1\x31\x43\xc1\x94\xb1\xa3\xa1"
+            "\xb4\x81\xd3\x71\xe3\x61\xe0\x14\x41\xe0\x33\x31\xe0"
+            "\x43\x21\xe0\x55\xe0\x74\xe0\x73\xb0\xf1\xb4\xa0\xa1"
+            "\x13\xe0\x51\x23\xe0\x41\x43\xe0\x21\x53\xe0\x11\x64"
+            "\xe1\x73\xd1\x83\xc1\x94\xa1\xb3\x91\xc4\x31\x31\xe3"
+            "\x31\x21\xe0\x34\x32" }  },
+      /* --- pixel bitmap for cmmi325 char#32 \psi --- */
+      {  32,92195,                      /* character number, location */
+         31, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   40, 3,181, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x51\x70\xf3\xe0\x41\x80\xf3\xe0\x31\x90\xf1"
+            "\xe0\x21\xa0\x44\x81\x62\x51\x32\x71\x54\x31\x42\x61"
+            "\x64\x21\x52\x61\x65\x11\x43\x61\x82\x11\x53\x61\x82"
+            "\x11\x53\x51\xa1\x10\xf1\x53\x61\xa1\x10\x43\x71\x91"
+            "\x63\x61\xa1\x20\xf1\x43\x61\x91\x30\x43\x61\x81\x83"
+            "\x51\x81\x93\x51\x71\xb3\x41\x52\xd4\x21\x32\xe0\x47"
+            "\xb0\xf2\xb1\xe0\x10\xf3\xa1\xe0\x20\xf1\x91\xe0\x35" }  },
+      /* --- pixel bitmap for cmmi325 char#33 \omega --- */
+      {  33,93378,                      /* character number, location */
+         19, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 27,   19, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x42\xe0\x32\x52\xe0\x34\x41\xe0\x44\x32\xe0\x45\xf1"
+            "\x21\xe0\x72\x10\x11\xb1\xb1\x10\xf1\x11\xa2\xb1\x11"
+            "\xb2\xa1\x21\xb1\xb1\x21\xb1\xa2\x22\x92\xa1\x32\x84"
+            "\x82\x33\x66\x62\x4b\x1b\x59\x39\x77\x57\x94\x84\x81" }  },
+      /* --- pixel bitmap for cmmi325 char#34 \varepsilon --- */
+      {  34,94397,                      /* character number, location */
+         20, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 18,   21, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x96\x9b\x63\x73\x41\xc1\xf3\x31\xe0\x31\x17\xa3\x42"
+            "\x81\x34\x91\xe0\x10\xf1\x11\xe0\x2f\x11\xe0\x32\xd1"
+            "\x31\xc1\x52\x82\x7a\x97\x71" }  },
+      /* --- pixel bitmap for cmmi325 char#35 \vartheta --- */
+      {  35,95456,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   31, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x14\xe0\x22\x32\xe1\x53\x10\xf1\xb1\x72\x10\xf2"
+            "\xa1\x83\xf1\xa1\x74\xf1\xb1\x64\x34\x52\x43\x31\x32"
+            "\x61\x24\x21\x42\x76\x21\x43\x85\x11\x43\x84\x1f\x11"
+            "\x43\x84\x20\x53\x84\x73\x83\x73\x84\x30\xf1\x43\x83"
+            "\x40\x43\x73\x92\x83\x83\x73\xa2\x72\xb3\x52\xd2\x42"
+            "\xe0\x15\xb3" }  },
+      /* --- pixel bitmap for cmmi325 char#36 \varpi --- */
+      {  36,96767,                      /* character number, location */
+         19, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 35,   19, 3,123, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x5e\x0e\x02\x4e\x0e\x03\x3e\x0e\x03\x32\x41\xe0\x81"
+            "\x41\x51\xe0\x91\x41\x41\xe0\xa1\x91\xb1\xc1\x81\xc1"
+            "\xc1\x81\xb2\xc1\x71\xc2\xb1\x81\xb3\xb1\x81\xb3\xa2"
+            "\x81\xa4\xa1\x91\x92\x12\x92\x91\x82\x22\x82\xa2\x53"
+            "\x42\x53\xb9\x59\xd7\x77\xe0\x14\xa4\xb3" }  },
+      /* --- pixel bitmap for cmmi325 char#37 \varrho --- */
+      {  37,97722,                      /* character number, location */
+         19, 3,   -9, 3,      /* topleft row,col, and botleft row,col */
+          { 20,   28, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xa5\xd3\x42\xa2\x72\x82\x83\x62\x93\x53\x94\x42\xa4"
+            "\xf1\x33\xa4\xf2\x23\xa4\x10\x23\x94\x34\x94\x34\x93"
+            "\x41\x12\x83\x51\x22\x63\x61\x22\x43\x71\x55\x9f\x31"
+            "\xe0\x52\xe0\x4d\x8d\x9b\xe0\x51\x62" }  },
+      /* --- pixel bitmap for cmmi325 char#38 \varsigma --- */
+      {  38,98593,                      /* character number, location */
+         19, 2,   -4, 2,      /* topleft row,col, and botleft row,col */
+          { 16,   23, 3,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x88\x53\x62\x42\xd1\xe1\xe2\xdf\x32\xef\x13\xd0\x14"
+            "\xc6\xb7\xb7\xb6\xc4\x40\xf2\xa2\x40\x92\xb4\x64" }  },
+      /* --- pixel bitmap for cmmi325 char#39 \varphi --- */
+      {  39,99546,                      /* character number, location */
+         19, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 26,   29, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x41\xe4\x71\xc7\x51\xc9\x31\xc3\x53\x21\xb2\x82\x11"
+            "\xc1\xa1\xf1\x11\xb1\xb1\x11\xa1\xc3\xa1\xb1\x12\x91"
+            "\xc1\x21\x91\xb1\x31\x91\xa2\x32\x71\xa2\x53\x51\x83"
+            "\x75\x21\x55\x9e\x01\xcd\xe0\x27\xb0\xf2\x82\xe0\x20"
+            "\xf1\x73\xe0\x20\xf1\x72\xe0\x30\xf1\x63\xe0\x30\x62"
+            "\xe0\x45" }  },
+      /* --- pixel bitmap for cmmi325 char#40 \leftharpoonup --- */
+      {  40,116104,                     /* character number, location */
+         23, 3,   10, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   13, 2,30, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0a\x01\x1d\x00\xff\x01\x09\x02\x1d\x00\xff\x01\x08"
+            "\x02\x1e\x00\x07\x02\x25\x03\x25\x02\x25\x02\x24\x03"
+            "\x24\x03\x24\x4f" }  },
+      /* --- pixel bitmap for cmmi325 char#41 \leftharpoondown --- */
+      {  41,117144,                     /* character number, location */
+         12, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   13, 2,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x28\x01\x27\x02\x03\x26\x03\x27\x02\x27\x02\x26"
+            "\x03\x26\x02\x1f\x00\xff\x01\x08\x02\x1e\x00\xff\x01"
+            "\x09\x02\x1d\x00\x0a\x01\x1d" }  },
+      /* --- pixel bitmap for cmmi325 char#42 \rightharpoonup --- */
+      {  42,118182,                     /* character number, location */
+         23, 3,   10, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   13, 2,32, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1d\x01\x0a\x00\xff\x01\x1d\x02\x09\x00\xff\x01\x1e"
+            "\x02\x08\x00\x1f\x02\x26\x03\x26\x02\x27\x02\x27\x03"
+            "\x26\x03\x02\xff\x01\x28" }  },
+      /* --- pixel bitmap for cmmi325 char#43 \rightharpoondown --- */
+      {  43,119223,                     /* character number, location */
+         12, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 40,   13, 2,31, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x4f\x24\x03\x24\x03\x24\x02\x25\x02\x25\x03\x25"
+            "\x02\x07\x00\xff\x01\x1e\x02\x08\x00\xff\x01\x1d\x02"
+            "\x09\x00\x1d\x01\x0a" }  },
+      /* --- pixel bitmap for cmmi325 char#44 ` --- */
+      {  44,119656,                     /* character number, location */
+         22, 2,   10, 2,      /* topleft row,col, and botleft row,col */
+          {  8,   12, 3,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x44\x26\x13\x43\x5f\x32\x63\x63\x66\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#45 ' --- */
+      {  45,120088,                     /* character number, location */
+         22, 2,   10, 2,      /* topleft row,col, and botleft row,col */
+          {  8,   12, 3,21, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x04\x46\x63\x63\xf3\x62\x53\x43\x16\x24\x40" }  },
+      /* --- pixel bitmap for cmmi325 char#46 \triangleright --- */
+      {  46,120637,                     /* character number, location */
+         23, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   24, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x02\xe0\x44\xe0\x25\xe0\x12\x14\xd2\x34\xb2\x53\xa2"
+            "\x64\x82\x83\x72\x94\x52\xb4\x32\xd3\x2f\x12\xe4\x02"
+            "\xd3\x22\xb4\x32\x94\x52\x83\x72\x64\x82\x53\xa2\x34"
+            "\xb2\x14\xd5\xe0\x14\xe0\x22\xe0\x43" }  },
+      /* --- pixel bitmap for cmmi325 char#47 \triangleleft --- */
+      {  47,121245,                     /* character number, location */
+         23, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   24, 3,94, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x42\xe0\x24\xe0\x15\xd4\x12\xb4\x32\xa3\x52\x84"
+            "\x62\x73\x82\x54\x92\x34\xb2\x23\xd2\x0f\x14\xe2\x23"
+            "\xd2\x34\xb2\x54\x92\x73\x82\x84\x62\xa3\x52\xb4\x32"
+            "\xd4\x12\xe0\x15\xe0\x24\xe0\x42" }  },
+      /* --- pixel bitmap for cmmi325 char#48 \0 --- */
+      {  48,106251,                     /* character number, location */
+         20, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   21, 3,51, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xa3\x43\x40\xf1\x23\x83\x20\xf1\x13\xa3\x1f\x84"
+            "\xa4\xf1\x13\xa3\x10\xf1\x23\x83\x20\x43\x43\xa6\x63" }  },
+      /* --- pixel bitmap for cmmi325 char#49 \1 --- */
+      {  49,107058,                     /* character number, location */
+         20, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 15,   20, 3,20, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x81\xb4\x65\x13\x60\xfe\x63\x60\x63\x7e" }  },
+      /* --- pixel bitmap for cmmi325 char#50 \2 --- */
+      {  50,108046,                     /* character number, location */
+         20, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   20, 3,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x58\x82\x64\x51\xa3\x31\xb4\x12\xc4\x0f\x13\xb4\xe4"
+            "\xf1\xd4\x10\xc4\xd3\xe3\xd3\xe2\x81\x52\xa1\x42\xa2"
+            "\x3e\x2e\x02\x1e\x03\x11" }  },
+      /* --- pixel bitmap for cmmi325 char#51 \3 --- */
+      {  51,109099,                     /* character number, location */
+         20, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   30, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xa2\x53\x71\x83\x51\xa3\x20\xf2\x14\x84\x10\x23"
+            "\x84\xe3\xe4\xe3\xe3\xe3\xa7\xe0\x33\xe0\x23\xe0\x23"
+            "\xe0\x14\xe0\x13\x10\xf1\xe4\x13\xa4\x0f\x15\x94\x04"
+            "\xa3\x22\xa4\x21\xb3\x41\x93\x63\x53\xa6\x62" }  },
+      /* --- pixel bitmap for cmmi325 char#52 \4 --- */
+      {  52,110072,                     /* character number, location */
+         20, 1,   -9, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   29, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\xd2\x50\xc3\x50\xf1\xb4\x50\xa1\x13\xe1\x23\xd2"
+            "\x23\xd1\x33\xc1\x43\xb1\x53\xa2\x53\xa1\x63\x91\x73"
+            "\x50\xf1\x31\x83\x50\x21\x93\x61\xa3\x52\xa3\x5e\x06"
+            "\xf7\xc3\x50\x8b\x13" }  },
+      /* --- pixel bitmap for cmmi325 char#53 \5 --- */
+      {  53,111153,                     /* character number, location */
+         20, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   30, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x32\x92\x5c\x6b\x79\x60\xf6\x31\xe0\x31\x26\x91\x11"
+            "\x53\x72\x82\x61\x93\xe0\x14\xe0\x13\x10\xf2\xe4\x13"
+            "\xa4\x0f\x14\xa4\x03\xb3\x21\xc3\x21\xb3\x41\xa3\x51"
+            "\x83\x71\x53\xa6\x73" }  },
+      /* --- pixel bitmap for cmmi325 char#54 \6 --- */
+      {  54,112094,                     /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x95\xb2\x51\x83\x71\x63\x73\x52\x74\x42\x84\x33\x92"
+            "\x43\xe4\xd0\xf1\x13\xe4\x35\x64\x21\x43\x44\x11\x72"
+            "\x35\x83\x2f\x15\x93\x1f\x44\xa4\xf1\x13\xa4\x13\xa3"
+            "\x33\x93\x33\x83\x52\x83\x62\x63\x82\x43\xb5\x61" }  },
+      /* --- pixel bitmap for cmmi325 char#55 \7 --- */
+      {  55,113063,                     /* character number, location */
+         20, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   30, 3,85, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x11\xe0\x4e\x04\xf1\x1e\x03\x10\x11\xe1\x21\xe1\x3f"
+            "\x11\xd1\x40\xd1\x50\xf1\xc1\x60\xb1\xe0\x32\xe0\x31"
+            "\x80\xf1\x92\x80\x83\x80\xf1\x82\x90\xf3\x73\x90\xf5"
+            "\x64\x90\x72\xa3" }  },
+      /* --- pixel bitmap for cmmi325 char#56 \8 --- */
+      {  56,114016,                     /* character number, location */
+         30, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x66\xa2\x62\x71\x92\x52\xa2\x41\xc2\x10\xf2\x12\xc2"
+            "\x10\x13\xb2\x24\x92\x45\x72\x46\x52\x67\x21\x98\xc7"
+            "\xa9\x82\x36\x61\x66\x42\x85\x22\xa4\x22\xc5\xd3\x0f"
+            "\x22\xe2\x02\xe1\x22\xc2\x31\xc1\x51\xa1\x72\x62\xa6"
+            "\x61" }  },
+      /* --- pixel bitmap for cmmi325 char#57 \9 --- */
+      {  57,114981,                     /* character number, location */
+         20, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   30, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x66\xa3\x42\x83\x62\x63\x82\x44\x83\x33\x93\x2f\x24"
+            "\xa3\x1f\x34\xa4\x13\xa4\x13\x95\x23\x85\x32\x71\x14"
+            "\x43\x41\x24\x65\x34\xe4\xf1\xe3\x10\xd4\x32\x93\x34"
+            "\x82\x44\x73\x43\x82\x61\x82\x81\x53\xa6\x82" }  },
+      /* --- pixel bitmap for cmmi325 char#58 . --- */
+      {  58,121782,                     /* character number, location */
+          5, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          {  5,    5, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xff\xef\x00" }  },
+      /* --- pixel bitmap for cmmi325 char#59 , --- */
+      {  59,122347,                     /* character number, location */
+          5, 4,   -9, 4,      /* topleft row,col, and botleft row,col */
+          {  5,   14, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xee\xfd\xef\x21\x84\x08\x21\x42\x04" }  },
+      /* --- pixel bitmap for cmmi325 char#60 < --- */
+      {  60,123021,                     /* character number, location */
+         25, 4,   -3, 4,      /* topleft row,col, and botleft row,col */
+          { 27,   28, 3,112, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xb2\xe0\x94\xe0\x74\xe0\x74\xe0\x74\xe0\x74\xe0"
+            "\x74\xe0\x83\xe0\x84\xe0\x74\xe0\x74\xe0\x74\xe0\x74"
+            "\xe0\x7f\x14\xe0\x90\x24\xe0\xb4\xe0\xb4\xe0\xb4\xe0"
+            "\xb4\xe0\xb3\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4"
+            "\xe0\xb4\xe0\xb2" }  },
+      /* --- pixel bitmap for cmmi325 char#61 / --- */
+      {  61,123579,                     /* character number, location */
+         34, 2,  -11, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   45, 3,159, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x22\xe0\x13\xf1\xe0\x12\x10\xe3\xe0\x12\xe0"
+            "\x13\x20\xf1\xd2\x30\xc3\x30\xf1\xc2\x40\xb3\xe0\x12"
+            "\xe0\x13\x50\xf1\xa2\x60\x93\x60\xf1\x92\x70\x83\xe0"
+            "\x12\xe0\x13\x80\xf1\x72\x90\x63\x90\xf1\x62\xa0\x53"
+            "\xe0\x12\xe0\x13\xb0\xf1\x42\xc0\x33\xc0\xf1\x32\xd0"
+            "\x23\xe0\x12\xe0\x13\xe0\xf1\x12\xe0\x13\xe0\x1f\x12"
+            "\xe0\x20" }  },
+      /* --- pixel bitmap for cmmi325 char#62 > --- */
+      {  62,124318,                     /* character number, location */
+         25, 4,   -3, 4,      /* topleft row,col, and botleft row,col */
+          { 27,   28, 3,113, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x02\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4"
+            "\xe0\xb3\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4\xe0\xb4\x20"
+            "\xf1\xe0\x94\xe0\x74\xe0\x74\xe0\x74\xe0\x74\xe0\x74"
+            "\xe0\x83\xe0\x84\xe0\x74\xe0\x74\xe0\x74\xe0\x74\xe0"
+            "\x74\xe0\x92\xe0\xb0" }  },
+      /* --- pixel bitmap for cmmi325 char#63 \star --- */
+      {  63,125051,                     /* character number, location */
+         22, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 23,   22, 3,69, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf3\xb1\xb0\xf3\xa3\xa3\x73\x73\x27\x13\x17\x6e\x01"
+            "\xab\xe7\xe0\x35\xe0\x37\xe0\x14\x14\xe3\x33\xd3\x53"
+            "\xc2\x72\xb2\x92\xa1\xb1\x91\xd1\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#64 \partial --- */
+      {  64,100612,                     /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   33, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb6\xe0\x22\x53\xd1\x92\xb1\xb2\x91\xc3\x83\xb2\x20"
+            "\xf1\x54\xb3\x10\x62\xc3\x10\xf1\xe0\x63\x10\xe0\x64"
+            "\xa5\x53\x92\x52\x33\x73\x81\x14\x63\x91\x14\x53\xb5"
+            "\x43\xc5\x34\xc4\x20\xf1\x14\xd4\x20\x14\xd3\x34\xd4"
+            "\x3f\x14\xd3\x4f\x14\xc3\x54\xb3\x73\xb2\x83\xa2\xa3"
+            "\x82\xc3\x53\xe0\x16\xd3" }  },
+      /* --- pixel bitmap for cmmi325 char#65 A --- */
+      {  65, 1066,                      /* character number, location */
+         32, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   32, 3,158, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x82\x70\xe0\x73\x70\xf1\xe0\x64\x70\xe0\x55"
+            "\xe0\xb6\xe0\xb1\x14\xe0\xa1\x24\xe0\xa1\x25\xe0\x81"
+            "\x44\x60\xf1\xe0\x11\x54\x60\xf1\xe1\x64\x60\xd1\x74"
+            "\x60\xf1\xc1\x84\x60\xb1\x95\xe0\x21\xa4\xe0\x11\xb4"
+            "\xee\x03\xe1\xc4\xd1\xd4\xc2\xd4\xc1\xe4\x50\xf1\x61"
+            "\xe0\x15\x40\x51\xe0\x34\x82\xe0\x34\x73\xe0\x25\x49"
+            "\x9d" }  },
+      /* --- pixel bitmap for cmmi325 char#66 B --- */
+      {  66, 2518,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,123, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x06\xe0\x24\xb3\xe4\xc4\xc4\xd3\xc4\xd4\xf3\xa4"
+            "\xe4\x94\xe4\xa4\xe3\xb4\xd4\xb4\xc4\xb4\xb4\xde\x03"
+            "\xe0\x14\xa5\xd4\xc4\xb4\xe4\x30\xf2\x74\xe0\x14\x20"
+            "\xf2\x64\xe0\x24\x20\x64\xe0\x14\x84\xe0\x24\x84\xe0"
+            "\x14\x94\xe4\xa4\xd4\xa4\xb5\x8e\x07\xb4" }  },
+      /* --- pixel bitmap for cmmi325 char#67 C --- */
+      {  67, 3573,                      /* character number, location */
+         32, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 33,   33, 3,167, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x37\x81\xe4\x62\x52\xc3\xb1\x32\xb3\xe1\x13\xa3"
+            "\xe0\x24\x93\xe0\x34\x83\xe0\x52\x83\xe0\x62\x73\xe0"
+            "\x72\x64\xe0\x72\x63\xe0\x81\x64\xe0\x81\x54\xe0\x91"
+            "\x54\xe0\xd0\xf3\x14\xe0\xef\x24\xe0\xe0\x14\xe0\x91"
+            "\x50\xf1\x13\xe0\x81\x60\xf1\x13\xe0\x71\x70\x23\xe0"
+            "\x51\xa3\xe0\x41\xc3\xe0\x21\xe3\xe1\xe0\x23\xb2\xe0"
+            "\x53\x63\xe0\x97\xe0\x30" }  },
+      /* --- pixel bitmap for cmmi325 char#68 D --- */
+      {  68, 4841,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   31, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x06\xe0\x44\xb3\xe0\x24\xd3\x30\xf1\xb4\xe3\x20"
+            "\xf1\xa4\xe0\x23\x10\xf1\xa4\xe0\x33\xf3\x94\xe0\x43"
+            "\xf3\x84\xe0\x44\xf1\x74\xe0\x44\x10\x74\xe0\x43\x94"
+            "\xe0\x34\x84\xe0\x43\x94\xe0\x34\x94\xe0\x33\xa4\xe0"
+            "\x23\xa4\xe0\x23\xb4\xe0\x13\xc4\xe3\xd4\xc3\xe4\xb3"
+            "\xce\x06\xe0" }  },
+      /* --- pixel bitmap for cmmi325 char#69 E --- */
+      {  69, 6390,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   31, 3,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x8e\x0c\xc4\xd4\x10\xf1\xc4\xe0\x12\x10\xc4\xe0\x21"
+            "\x10\xf3\xb4\xe0\x31\x10\xa4\x91\x71\x20\xf1\xa4\x91"
+            "\xa0\xa4\x82\xe0\x54\x82\xe0\x6e\xb0\xf1\x94\x82\xb0"
+            "\xf2\x84\x91\xc0\x84\xe0\x41\x30\xf1\x74\xe0\x41\x40"
+            "\xf1\x74\xe0\x31\x50\x64\xe0\x31\xc4\xe0\x22\xc4\xe0"
+            "\x21\xd4\xe3\xc4\xd5\x8e\x0b\x83" }  },
+      /* --- pixel bitmap for cmmi325 char#70 F --- */
+      {  70, 7771,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,107, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x0b\xb4\xc4\x10\xf1\xb4\xe2\x10\xb4\xe0\x11\x10"
+            "\xf3\xa4\xe0\x21\x10\x94\xe0\x21\x20\xf2\x94\x91\x90"
+            "\x84\x91\xe0\x44\x82\xe0\x4e\xe0\x44\x82\xa0\xf3\x74"
+            "\x91\xb0\xf3\x64\xe0\x80\xf3\x54\xe0\x90\x45\xe0\x9e"
+            "\xe0\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#71 G --- */
+      {  71, 9028,                      /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 32,   33, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x36\x81\xe3\x62\x52\xc3\xa1\x32\xb3\xd1\x13\xa3"
+            "\xe0\x14\x93\xe0\x24\x83\xe0\x42\x83\xe0\x52\x73\xe0"
+            "\x62\x64\xe0\x62\x20\xf1\x34\xe0\x71\x30\x24\xe0\x81"
+            "\x54\xe0\xc0\xf3\x14\xe0\xd4\xe0\xe4\xdd\x2f\x14\xe0"
+            "\x54\x54\xe0\x44\x60\xf2\x13\xe0\x44\x60\xf1\x23\xe0"
+            "\x24\x70\x33\xe5\xb2\xe1\x13\xc2\xb2\x22\xe3\x72\x51"
+            "\xe0\x37\xe0\x27" }  },
+      /* --- pixel bitmap for cmmi325 char#72 H --- */
+      {  72,10387,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   31, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x7d\x5d\xb5\xd5\x40\xf2\xb4\xe4\x50\xf3\xa4\xe4\x60"
+            "\xf3\x94\xe4\x70\x84\xe4\xe0\x2e\x08\x80\xf1\x84\xe4"
+            "\x80\xf3\x74\xe4\x90\xf3\x64\xe4\xa0\xf3\x54\xe4\xb0"
+            "\x45\xd5\xbd\x5d\x74" }  },
+      /* --- pixel bitmap for cmmi325 char#73 I --- */
+      {  73,11240,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   31, 3,53, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x7d\xb5\x40\xf2\xb4\x50\xf3\xa4\x60\xf3\x94\x70\xf3"
+            "\x84\x80\xf3\x74\x90\xf3\x64\xa0\xf3\x54\xb0\x45\xbd"
+            "\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#74 J --- */
+      {  74,12122,                      /* character number, location */
+         31, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   32, 3,89, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xcd\xe0\x35\x30\xf2\xe0\x34\x40\xf3\xe0\x24\x50\xf3"
+            "\xe0\x14\x60\xf3\xe4\x70\xf3\xd4\x80\xf1\xc4\x90\x22"
+            "\x84\xa4\x74\x9f\x15\x64\xa4\x64\xb1\x93\xd1\x73\xe0"
+            "\x11\x53\xe0\x36\xe0\x20" }  },
+      /* --- pixel bitmap for cmmi325 char#75 K --- */
+      {  75,13431,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   31, 3,179, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7d\x99\xb5\xe0\x15\xd4\xe0\x23\xe0\x14\xe0\x12\xe0"
+            "\x34\xe2\xe0\x34\xe1\xe0\x54\xd1\xe0\x64\xb1\xe0\x84"
+            "\xa1\xe0\x84\xa1\xe0\x94\x81\xe0\xb4\x71\xe0\xc4\x62"
+            "\xe0\xb4\x54\xe0\xb4\x45\xe0\xb4\x31\x24\xe0\xa4\x21"
+            "\x34\xe0\x94\x11\x64\xe0\x85\x74\xe0\x84\x85\xe0\x74"
+            "\x94\xe0\x64\xa4\xe0\xf1\x64\xb4\xd0\x64\xb5\xc0\xf1"
+            "\x54\xd4\xc0\xf1\x54\xe4\xb0\x45\xd6\xad\x6c\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#76 L --- */
+      {  76,14512,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   31, 3,93, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x7e\xe0\x35\xb0\xf2\xb4\xc0\xf3\xa4\xd0\xf3\x94\xe0"
+            "\xf3\x84\xe0\x10\xf2\x74\xe0\x20\x74\xe0\x11\xf1\x64"
+            "\xe0\x11\x10\x64\xe2\x74\xe1\x20\xf1\x54\xe2\x20\x54"
+            "\xd2\x84\xc3\x74\xa5\x4e\x09\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#77 M --- */
+      {  77,15946,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 45,   31, 3,265, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x79\xe0\x69\xb5\xe0\x56\xe0\x11\x14\xe0\x45\xe0\x21"
+            "\x14\xe0\x31\x14\xe0\x21\x14\xe0\x21\x24\xe0\x11\x24"
+            "\xe0\x21\x14\xe0\x21\x24\xe0\x11\x24\x60\xf1\xa1\x24"
+            "\xe1\x34\x60\xf1\x91\x44\xc1\x34\x70\x91\x44\xb1\x44"
+            "\xe0\x21\x44\xa1\x54\xe0\x11\x54\xa1\x44\xe0\x21\x54"
+            "\x91\x54\xe0\x21\x54\x81\x64\xe0\x21\x64\x71\x64\xe0"
+            "\x11\x74\x61\x64\x90\xf1\x71\x74\x51\x74\x90\x71\x74"
+            "\x41\x84\xe0\x11\x84\x41\x74\xe0\x21\x84\x31\x84\xe0"
+            "\x21\x84\x21\x94\xe0\x21\x94\x11\x94\xe0\x11\xa5\x94"
+            "\xb0\xf1\x51\xa4\xa4\xb0\x42\xa3\xb4\xe4\x92\xb5\xba"
+            "\x62\x7d\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#78 N --- */
+      {  78,17294,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   31, 3,201, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x79\xca\xb5\xe0\x14\x30\xf1\xb1\x14\xe0\x11\x50\xb1"
+            "\x15\xe1\xe0\x11\x34\xd1\xe0\x21\x35\xc1\x60\xf1\xa1"
+            "\x44\xc1\x60\xf1\x91\x64\xa1\x70\xf1\x91\x74\x91\x70"
+            "\x81\x85\x71\xe0\x21\x94\x71\xe0\x21\x95\x61\xe0\x21"
+            "\xa4\x61\xe0\x11\xb4\x51\x90\xf1\x71\xc4\x41\x90\x71"
+            "\xd4\x31\xe0\x11\xe4\x21\xa0\xf1\x61\xe0\x14\x11\xa0"
+            "\x61\xe0\x16\xa0\xf1\x51\xe0\x34\xb0\x51\xe0\x43\xe0"
+            "\x12\xe0\x43\xe4\xe0\x41\xca\xe0\x11\xc4" }  },
+      /* --- pixel bitmap for cmmi325 char#79 O --- */
+      {  79,18289,                      /* character number, location */
+         32, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   33, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x27\xe0\x63\x63\xe0\x23\xa3\xd3\xc3\xa3\xe3\x93"
+            "\xe0\x23\x73\xe0\x33\x64\xe0\x43\x53\xe0\x53\x43\xe0"
+            "\x63\x34\xe0\x63\x33\xe0\x73\xf1\x24\xe0\x73\xf3\x14"
+            "\xe0\x74\x0f\x14\xe0\x74\x14\xe0\x73\x24\xe0\x64\x24"
+            "\xe0\x63\x34\xe0\x54\x43\xe0\x44\x53\xe0\x43\x64\xe0"
+            "\x23\x83\xe0\x13\x94\xd3\xb3\xc3\xd3\xa3\xe0\x23\x54"
+            "\xe0\x67\xe0\x10" }  },
+      /* --- pixel bitmap for cmmi325 char#80 P --- */
+      {  80,19508,                      /* character number, location */
+         31, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   31, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x05\xe0\x34\xa4\xe4\xc3\x20\xf1\xb4\xd3\x10\xf3"
+            "\xa4\xe4\xf1\x94\xe4\x10\x94\xd4\xb4\xc4\xb4\xc3\xd4"
+            "\xa3\xe0\x1e\x01\xe0\x34\xe0\x60\xf3\x74\xe0\x70\xf3"
+            "\x64\xe0\x80\xf3\x54\xe0\x90\x45\xe0\x9d\xe0\x54" }  },
+      /* --- pixel bitmap for cmmi325 char#81 Q --- */
+      {  81,20613,                      /* character number, location */
+         32, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   41, 3,215, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x27\xe0\x63\x63\xe0\x23\xa3\xd3\xc3\xa3\xe3\x93"
+            "\xe0\x23\x74\xe0\x23\x64\xe0\x34\x53\xe0\x53\x44\xe0"
+            "\x53\xf1\x34\xe0\x63\x24\xe0\x73\x24\xe0\x64\xf3\x14"
+            "\xe0\x74\x0f\x14\xe0\x74\x14\xe0\x73\x24\xe0\x64\x24"
+            "\xe0\x63\x34\xe0\x54\x43\xe0\x53\x53\x74\x73\x64\x51"
+            "\x41\x53\x83\x41\xa3\x93\x41\x61\x23\xb3\x31\x61\x13"
+            "\xd3\x21\x64\xe0\x24\x44\x71\xc9\x81\xe0\x52\x72\xe0"
+            "\x52\x71\xe0\x62\x62\xe0\x63\x42\xe0\x79\xe0\x78\xe0"
+            "\x96\xe0\xb4\x94" }  },
+      /* --- pixel bitmap for cmmi325 char#82 R --- */
+      {  82,22074,                      /* character number, location */
+         31, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x04\xe0\x44\x94\xe0\x14\xb3\x30\xf1\xb4\xc3\x20"
+            "\xf3\xa4\xd4\x10\xf1\x94\xd4\x20\x94\xc4\xc4\xb4\xc4"
+            "\xb3\xe4\x93\xe0\x2e\xe0\x44\x83\xe0\x24\xa3\xe0\x14"
+            "\xa4\xe4\xb3\xe4\xb4\x60\xf3\x64\xb4\x70\x54\xb4\x80"
+            "\xf1\x54\xb4\x71\x54\xb4\x61\x55\xc3\x61\x1d\x93\x32"
+            "\xe0\xb5\x43" }  },
+      /* --- pixel bitmap for cmmi325 char#83 S --- */
+      {  83,23245,                      /* character number, location */
+         32, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 26,   33, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd6\x61\xb3\x52\x32\xa2\x91\x12\xa2\xb3\x92\xc3\x83"
+            "\xd2\x82\xe1\x20\xf2\x63\xe1\x20\x63\xe0\x30\xf1\x64"
+            "\xe0\x20\x67\xe0\x5b\xe0\x2c\xe0\x1c\xe0\x3a\xe0\x58"
+            "\xe0\x75\xe0\x84\x40\xf1\xe0\x53\x40\xf1\x21\xe0\x23"
+            "\x40\x21\xe0\x22\x62\xe0\x13\x62\xe0\x12\x72\xe2\x83"
+            "\xc2\x83\x11\xa2\x92\x32\x63\xa1\x67\xc3" }  },
+      /* --- pixel bitmap for cmmi325 char#84 T --- */
+      {  84,24379,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 30,   31, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x4e\x0c\x34\x74\x83\x42\x94\x92\x41\xa4\xa1\x31\xb4"
+            "\xa1\x31\xa4\xb1\x22\xa4\xb1\x10\xf1\x11\xb4\xb1\x11"
+            "\xb4\xb1\x20\xf2\xc4\xe0\xf3\xb4\xe0\x10\xf3\xa4\xe0"
+            "\x20\xf3\x94\xe0\x30\xf3\x84\xe0\x40\x75\xe0\x5e\x03"
+            "\xc0" }  },
+      /* --- pixel bitmap for cmmi325 char#85 U --- */
+      {  85,25453,                      /* character number, location */
+         31, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   32, 3,115, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1d\x8a\x55\xe0\x14\x30\xf2\x54\xe0\x31\x50\xf3\x44"
+            "\xe0\x31\x60\xf3\x34\xe0\x31\x70\xf3\x24\xe0\x31\x80"
+            "\xf3\x14\xe0\x31\x9f\x24\xe0\x31\xa4\xe0\x21\xb0\xf1"
+            "\x13\xe0\x11\xc0\x13\xe1\xe0\x13\xb2\xe0\x33\x91\xe0"
+            "\x63\x62\xe0\x97\xe0\x50" }  },
+      /* --- pixel bitmap for cmmi325 char#86 V --- */
+      {  86,26471,                      /* character number, location */
+         31, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   32, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0d\xb9\x45\xe0\x34\x74\xe0\x51\x94\xe0\x41\xa5\xe0"
+            "\x31\xb4\xe0\x21\xc4\xe0\x12\xc4\xe0\x11\x80\xf1\x54"
+            "\xe1\x90\x54\xd1\xe0\x15\xb1\xe0\x34\xb1\xe0\x34\xa1"
+            "\xc0\xf1\x64\x91\xd0\x64\x81\xe0\x64\x72\xe0\x65\x61"
+            "\xe0\x75\x51\xe0\x94\x51\xe0\x94\x41\xe0\x30\xf1\x74"
+            "\x31\xe0\x40\x74\x21\xe0\xc4\x11\xe0\xd6\xe0\x60\xf1"
+            "\x84\xe0\x70\x83\xe0\x80\xf1\x82\xe0\x90" }  },
+      /* --- pixel bitmap for cmmi325 char#87 W --- */
+      {  87,27920,                      /* character number, location */
+         31, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 45,   32, 3,257, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\x6c\x69\x36\xc5\xc4\x74\xd4\xe2\x84\xd4\xe1\x94"
+            "\xd4\xd1\xa4\xc5\xd1\xa4\xc5\xc1\xb4\xb1\x14\xc1\xb4"
+            "\xb1\x15\xa1\xc4\xa1\x34\xa1\xc4\xa1\x34\x91\xd4\x91"
+            "\x44\x82\xd4\x82\x44\x81\xe4\x81\x54\x71\xe0\x15\x61"
+            "\x64\x71\xe0\x15\x61\x64\x61\xe0\x34\x51\x74\x61\xe0"
+            "\x34\x51\x74\x51\xe0\x44\x41\x84\x51\xe0\x44\x41\x84"
+            "\x41\xe0\x54\x31\x94\x31\xe0\x64\x21\xa4\x31\xe0\x64"
+            "\x21\xa4\x21\xe0\x74\x11\xb4\x21\xe0\x74\x11\xb6\xe0"
+            "\x85\xd5\xe0\x85\xd4\xe0\x94\xe4\xe0\x94\xe3\xe0\xa3"
+            "\xe0\x12\xe0\xb2\xe0\x22\xe0\xb2\xe0\x21\xe0\x75" }  },
+      /* --- pixel bitmap for cmmi325 char#88 X --- */
+      {  88,29267,                      /* character number, location */
+         31, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 38,   31, 3,191, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x8d\x6b\xc6\xc4\xe0\x25\xd2\xe0\x54\xd1\xe0\x65\xb1"
+            "\xe0\x84\xa1\xe0\x95\x81\xe0\xb4\x71\xe0\xc4\x61\xe0"
+            "\xd5\x41\xe0\xe0\x14\x31\xe0\xe0\x25\x11\xe0\x10\xf1"
+            "\xe0\x35\xe0\x20\xf1\xe0\x44\xe0\x20\xe0\x36\xe0\xe0"
+            "\x32\x14\xe0\xe0\x31\x25\xe0\xe0\x11\x44\xe0\xe1\x55"
+            "\xe0\xc1\x65\xe0\xb1\x84\xe0\xa1\x95\xe0\x81\xb4\xe0"
+            "\x71\xc5\xe0\x51\xe4\xe0\x41\xe0\x14\xe0\x32\xe0\x15"
+            "\xe4\xe6\xab\x9c\x64" }  },
+      /* --- pixel bitmap for cmmi325 char#89 Y --- */
+      {  89,30431,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   31, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\xc9\x45\xe0\x34\x75\xe0\x32\xa4\xe0\x31\xb4\xe0"
+            "\x21\xc5\xe1\xe4\xd2\xe5\xb2\xe0\x15\xb1\xe0\x34\xa1"
+            "\xe0\x45\x81\xe0\x55\x71\xe0\x74\x61\xe0\x85\x41\xe0"
+            "\xa4\x32\xe0\xa5\x21\xe0\xb5\x11\xe0\xd5\xe0\x40\xf2"
+            "\xa4\xe0\x50\xf3\x94\xe0\x60\xf3\x84\xe0\x70\x74\xe0"
+            "\xbd\xe0\x35" }  },
+      /* --- pixel bitmap for cmmi325 char#90 Z --- */
+      {  90,31598,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   31, 3,127, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x9e\x08\x86\xc4\x94\xd4\xa2\xe4\xb1\xe4\xb2\xd4\xc1"
+            "\xd4\xd1\xc5\xd1\xb5\xd1\xc4\xe0\xc4\xe0\xc4\xe0\xc4"
+            "\xe0\xc4\xe0\xc4\xe0\xc4\xe0\xc5\xe0\xc4\xe0\xc4\xe0"
+            "\xc4\xe0\xc4\xc1\xd4\xc1\xd4\xd1\xc4\xd2\xb5\xd1\xb5"
+            "\xd2\xb4\xe2\xa4\xe2\xa4\xe3\x94\xc5\x9e\x08\x94" }  },
+      /* --- pixel bitmap for cmmi325 char#91 \flat --- */
+      {  91,125774,                     /* character number, location */
+         34, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 13,   35, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xfd\x01\xc1\x27\x34\x34\x22\x64\x1f\x51\x84\x0f\x11"
+            "\x74\x11\x73\x21\x64\x21\x63\x31\x53\x41\x43\x51\x33"
+            "\x61\x23\x71\x12\x93\xa1\xc1" }  },
+      /* --- pixel bitmap for cmmi325 char#92 \natural --- */
+      {  92,126589,                     /* character number, location */
+         33, 4,  -10, 4,      /* topleft row,col, and botleft row,col */
+          {  9,   43, 3,54, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf9\x01\x81\x63\x45\x26\x0f\x19\x06\x25\x43\x61\x0f"
+            "\xa1\x71\x01\x63\x45\x26\x0f\x19\x06\x25\x43\x61\xf5"
+            "\x81" }  },
+      /* --- pixel bitmap for cmmi325 char#93 \sharp --- */
+      {  93,127520,                     /* character number, location */
+         32, 2,  -10, 2,      /* topleft row,col, and botleft row,col */
+          { 13,   42, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf2\xa1\x20\xf5\x21\x71\x20\x21\x73\x21\x55\x21\x28"
+            "\x2e\x08\x28\x21\x25\x51\x23\x71\x20\xfa\x21\x71\x20"
+            "\x21\x73\x21\x55\x21\x28\x2e\x08\x28\x21\x25\x51\x23"
+            "\x71\x20\xf2\x21\x71\x20\xf2\x21\xa0" }  },
+      /* --- pixel bitmap for cmmi325 char#94 \smile --- */
+      {  94,128518,                     /* character number, location */
+         17, 3,    6, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   11, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\xe0\xe0\x91\x11\xe0\xe0\x71\x31\xe0\xe0\x51\x42"
+            "\xe0\xe0\x32\x52\xe0\xe0\x12\x72\xe0\xd2\xa2\xe0\x92"
+            "\xd3\xe0\x53\xe0\x25\xb5\xe0\x6e\x03\xe0\xc9\xe0\x13" }  },
+      /* --- pixel bitmap for cmmi325 char#95 \frown --- */
+      {  95,129408,                     /* character number, location */
+         18, 3,    6, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   12, 3,80, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x51\xe0\xe0\x4d\xe0\x9e\x05\xe0\x44\xe0\x14\xe0"
+            "\x12\xe0\x72\xc2\xe0\xb2\x92\xe0\xd2\x71\xe0\xe0\x31"
+            "\x51\xe0\xe0\x51\x20\xf1\x11\xe0\xe0\x71\x11\xe0\xe0"
+            "\x91" }  },
+      /* --- pixel bitmap for cmmi325 char#96 \ell --- */
+      {  96,101478,                     /* character number, location */
+         31, 0,    0, 0,      /* topleft row,col, and botleft row,col */
+          { 18,   31, 3,117, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd3\xe2\x21\xc2\x41\xf1\xa2\x51\x92\x51\x93\x51\x92"
+            "\x61\x10\xf1\x73\x51\x20\xf1\x63\x51\x30\x63\x41\x93"
+            "\x51\x93\x41\xa3\x31\xb3\x21\x70\xf1\x43\x21\x80\x43"
+            "\x11\xd4\xa0\xf2\x43\xb0\x34\xd1\x13\xc1\x32\xb1\x42"
+            "\x82\x71\x71\x92\x42\xc4\x64" }  },
+      /* --- pixel bitmap for cmmi325 char#97 a --- */
+      {  97,32612,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   19, 3,79, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x84\x32\x83\x31\x13\x72\x64\x63\x64\x53\x83\x44\x73"
+            "\x53\x83\x30\xf1\x14\x83\x3f\x34\x83\x4f\x14\x73\x41"
+            "\x13\x64\x41\x13\x51\x13\x31\x32\x41\x32\x31\x54\x54"
+            "\x24" }  },
+      /* --- pixel bitmap for cmmi325 char#98 b --- */
+      {  98,33520,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   31, 3,85, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x27\x80\xf3\x53\x90\xf3\x43\xa0\xf2\x33\xb0\x33\x25"
+            "\x63\x21\x42\x55\x62\x20\xf1\x23\x83\x10\xf3\x13\x94"
+            "\x0f\x23\x94\x13\x93\x23\x84\x23\x83\x42\x73\x52\x63"
+            "\x72\x43\xa5\x81" }  },
+      /* --- pixel bitmap for cmmi325 char#99 c --- */
+      {  99,34403,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   19, 3,55, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x96\xa3\x52\x63\x73\x43\x74\x33\x84\x24\x83\x33\xd0"
+            "\xf1\x14\xdf\x44\xe0\x13\xc1\x23\xb1\x42\xa1\x62\x63"
+            "\x96\x73" }  },
+      /* --- pixel bitmap for cmmi325 char#100 d --- */
+      { 100,35395,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   31, 3,107, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe7\xf3\xe0\x33\x10\xf3\xe0\x23\x20\xf2\xe0\x13\x30"
+            "\x84\x33\x93\x31\x13\x92\x64\x83\x64\x73\x83\x64\x73"
+            "\x73\x83\x50\xf1\x14\x83\x5f\x34\x83\x6f\x14\x73\x41"
+            "\x20\x13\x64\x41\x33\x51\x13\x31\x52\x41\x32\x31\x74"
+            "\x54\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#101 e --- */
+      { 101,36294,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   19, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x95\x93\x52\x63\x81\x43\x91\x33\xa1\x24\x91\x24\x91"
+            "\x34\x54\x49\x7f\x34\xd0\x13\xe3\xc1\x13\xb1\x33\x91"
+            "\x53\x53\x86\x61" }  },
+      /* --- pixel bitmap for cmmi325 char#102 f --- */
+      { 102,37494,                      /* character number, location */
+         31, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 23,   40, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x35\xe0\x22\x33\xe0\x12\x24\xe2\x34\xd3\x42\x10"
+            "\xf2\xd3\x70\xf3\xc3\x80\x8c\x30\xf5\xb3\x90\xf4\xa3"
+            "\xa0\xf4\x93\xb0\xf3\x83\xc0\x82\xe0\x63\xe0\x12\x32"
+            "\xe0\x14\x22\xe4\x22\xe0\x22\x31\xe0\x44\xe0\x31" }  },
+      /* --- pixel bitmap for cmmi325 char#103 g --- */
+      { 103,38525,                      /* character number, location */
+         19, 0,   -9, 0,      /* topleft row,col, and botleft row,col */
+          { 21,   28, 3,109, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb5\x32\x93\x41\x13\x83\x64\x73\x74\x63\x93\x54\x83"
+            "\x63\x93\x10\xf1\x44\x93\x10\xf3\x34\x93\x20\xf1\x34"
+            "\x83\x30\x43\x74\x82\x61\x13\x83\x41\x13\xb5\x23\x40"
+            "\xf1\xe3\x40\xf1\xd3\x50\x22\x93\x64\x73\x64\x73\x82"
+            "\x64\xa8\xb2" }  },
+      /* --- pixel bitmap for cmmi325 char#104 h --- */
+      { 104,39534,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   31, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x47\xa0\xf3\x73\xb0\xf3\x63\xc0\xf2\x53\xd0\x53\x35"
+            "\x93\x22\x42\x83\x11\x63\x74\x73\x73\x83\x64\x83\x30"
+            "\xf2\x33\x93\x30\xf2\x23\x93\x40\x23\x83\x63\x93\x41"
+            "\x13\x83\x51\xf1\x13\x83\x41\x13\xa2\x31\x32\xb4\x32" }  },
+      /* --- pixel bitmap for cmmi325 char#105 i --- */
+      { 105,40458,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 11,   31, 3,75, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x83\xf1\x74\x82\x10\xf7\xb0\x43\x71\x22\x51\x33\x20"
+            "\xf1\x11\x43\x2f\x11\x43\x30\x53\x30\xf1\x43\x40\xf2"
+            "\x33\x50\xf2\x23\x41\x10\x23\x31\x52\x21\x73\x43" }  },
+      /* --- pixel bitmap for cmmi325 char#106 j --- */
+      { 106,41437,                      /* character number, location */
+         31,-1,   -9,-1,      /* topleft row,col, and botleft row,col */
+          { 19,   40, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x22\xe0\x24\xe0\x13\xe0\x22\x20\xf7\xe0\x50\xb4"
+            "\xd2\x32\xb1\x52\xb1\x53\x91\x63\x20\xf1\x61\x63\x30"
+            "\xf1\xd3\x30\xf3\xc3\x40\xf3\xb3\x50\xf3\xa3\x60\xf1"
+            "\x93\x70\x22\x53\x84\x33\x84\x33\xa2\x33\xc5\xc4" }  },
+      /* --- pixel bitmap for cmmi325 char#107 k --- */
+      { 107,42492,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   31, 3,115, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x47\xa0\xf3\x73\xb0\xf3\x63\xc0\xf2\x53\xd0\x53\x74"
+            "\x63\x71\x41\x53\x52\x43\x43\x41\x54\x43\x31\x64\x33"
+            "\x31\x73\x43\x21\xe0\x15\xe0\x28\xc3\x44\x80\xf1\x23"
+            "\x63\x70\x23\x64\x60\xf2\x13\x73\x41\x20\x13\x82\x31"
+            "\x33\x92\x31\x42\xa4\x44" }  },
+      /* --- pixel bitmap for cmmi325 char#108 l --- */
+      { 108,43278,                      /* character number, location */
+         31, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 10,   31, 3,53, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x37\xf3\x63\x10\xf3\x53\x20\xf3\x43\x30\xf3\x33\x40"
+            "\xf3\x23\x50\xf3\x13\x6f\x23\x41\x23\x31\x42\x31\x54"
+            "\x41" }  },
+      /* --- pixel bitmap for cmmi325 char#109 m --- */
+      { 109,44537,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 35,   19, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x34\x65\x75\x71\x32\x32\x42\x42\x42\x51\x42\x21\x63"
+            "\x21\x63\x41\x44\x73\x11\x73\x41\x43\x84\x83\x31\x44"
+            "\x84\x83\x31\x43\x93\x93\x30\xf1\x53\x93\x93\x30\xf2"
+            "\x43\x93\x93\x40\x43\x93\x83\x83\x93\x93\x41\xf1\x33"
+            "\x93\x83\x51\x33\x93\x83\x41\x33\x93\xa2\x31\x52\xa2"
+            "\xb4\x30" }  },
+      /* --- pixel bitmap for cmmi325 char#110 n --- */
+      { 110,45646,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 23,   19, 3,97, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x75\x71\x23\x32\x42\x51\x42\x21\x63\x41\x44\x73"
+            "\x41\x43\x83\x31\x44\x83\x31\x43\x93\x30\xf1\x53\x93"
+            "\x30\xf2\x43\x93\x40\x43\x83\x83\x93\x41\xf1\x33\x83"
+            "\x51\x33\x83\x41\x33\xa2\x31\x52\xb4\x33" }  },
+      /* --- pixel bitmap for cmmi325 char#111 o --- */
+      { 111,46448,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   19, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x95\xc2\x52\x83\x63\x63\x83\x43\x93\x34\x93\x33\xa4"
+            "\xf1\x14\xa4\x0f\x24\xa4\x14\x94\x24\x93\x43\x93\x43"
+            "\x83\x62\x73\x82\x43\xb6\x93" }  },
+      /* --- pixel bitmap for cmmi325 char#112 p --- */
+      { 112,47472,                      /* character number, location */
+         19,-1,   -9,-1,      /* topleft row,col, and botleft row,col */
+          { 23,   28, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\x54\x91\x32\x22\x33\x61\x42\x11\x62\x20\xf1\x41"
+            "\x43\x73\x10\xf1\x31\x43\x84\xf1\x83\x84\xf2\x73\x84"
+            "\x10\x73\x83\x83\x84\x83\x83\x93\x73\xa4\x53\xa3\x12"
+            "\x33\xb3\x34\x80\xf1\x53\xe0\x10\xf3\x43\xe0\x20\xf1"
+            "\x33\xe0\x3a\xd3" }  },
+      /* --- pixel bitmap for cmmi325 char#113 q --- */
+      { 113,48457,                      /* character number, location */
+         19, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   28, 3,97, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x85\x51\x63\x41\x31\x63\x61\x12\x53\x74\x43\x93\x34"
+            "\x83\x43\x93\x20\xf1\x14\x93\x2f\x34\x93\x3f\x14\x83"
+            "\x40\x13\x74\x62\x61\x13\x63\x41\x13\x95\x23\x50\xf1"
+            "\xb3\x50\xf3\xa3\x60\xf1\x93\x70\x5b\x33" }  },
+      /* --- pixel bitmap for cmmi325 char#114 r --- */
+      { 114,49400,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 18,   19, 3,65, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x34\x54\x41\x23\x22\x41\x21\x42\x11\x53\xf1\x11\x43"
+            "\x54\x01\x43\x63\x11\x43\xa0\xf1\x53\xa0\xf3\x43\xb0"
+            "\xf3\x33\xc0\x23\xe0\x22\xd3" }  },
+      /* --- pixel bitmap for cmmi325 char#115 s --- */
+      { 115,50398,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 17,   19, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x86\x92\x62\x61\xa1\xf1\x42\x83\x33\x82\x44\xe7\xaa"
+            "\x99\xb6\xe4\x31\xa3\x23\x92\x24\x92\x23\xa1\x31\xb1"
+            "\x52\x72\x87\x73" }  },
+      /* --- pixel bitmap for cmmi325 char#116 t --- */
+      { 116,51174,                      /* character number, location */
+         28, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 14,   28, 3,59, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x82\xc3\x30\xf3\x73\x40\xf2\x63\x5e\xf3\x53\x60\xf3"
+            "\x43\x70\xf3\x33\x80\xf1\x23\x61\x20\xf1\x23\x51\x30"
+            "\x32\x32\x84\x63" }  },
+      /* --- pixel bitmap for cmmi325 char#117 u --- */
+      { 117,52248,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 22,   19, 3,91, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x44\xa2\x51\x32\x83\x41\x42\x83\x31\x52\x83\x31\x43"
+            "\x83\x2f\x11\x53\x73\x30\xf1\x53\x83\x30\xf3\x43\x83"
+            "\x40\x43\x73\x41\x42\x83\x41\x43\x73\x41\x43\x64\x31"
+            "\x62\x42\x22\x31\x75\x54\x23" }  },
+      /* --- pixel bitmap for cmmi325 char#118 v --- */
+      { 118,53189,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   19, 3,85, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x44\x82\x51\x32\x64\x31\x42\x64\x21\x52\x65\x11\x43"
+            "\x82\x11\x53\x82\x11\x53\x91\x10\xf1\x53\xa1\x10\xf2"
+            "\x43\xa1\x20\xf1\x43\x91\x30\x42\x91\x83\x71\x93\x61"
+            "\xb3\x41\xe5\x81" }  },
+      /* --- pixel bitmap for cmmi325 char#119 w --- */
+      { 119,54411,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   19, 3,119, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x44\x92\x72\x51\x32\x73\x64\x31\x42\x73\x64\x21\x52"
+            "\x73\x65\x11\x43\x73\x82\x11\x53\x63\x92\x11\x53\x63"
+            "\xa1\x10\xf1\x53\x73\xa1\x10\xf2\x43\x73\xa1\x20\xf1"
+            "\x43\x73\x91\x30\x43\x73\x81\x83\x64\x81\x83\x61\x12"
+            "\x71\xa3\x41\x23\x42\xd5\x55\x83" }  },
+      /* --- pixel bitmap for cmmi325 char#120 x --- */
+      { 120,55733,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 21,   19, 3,91, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x64\x54\x62\x32\x31\x41\x41\x53\x11\x43\xf1\x21\x73"
+            "\x44\x11\x73\x53\x21\x73\x90\xf1\x93\x90\xf3\x83\xa0"
+            "\x12\x43\x81\x24\x33\x81\x24\x33\x71\x33\x31\x12\x61"
+            "\x51\x31\x32\x41\x73\x55\x61" }  },
+      /* --- pixel bitmap for cmmi325 char#121 y --- */
+      { 121,56857,                      /* character number, location */
+         19, 2,   -9, 2,      /* topleft row,col, and botleft row,col */
+          { 20,   28, 3,113, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x44\xa2\x31\x32\x83\x21\x42\x83\x11\x52\x83\x11\x43"
+            "\x83\x0f\x11\x53\x73\x10\xf1\x53\x83\x10\xf3\x43\x83"
+            "\x20\x43\x73\x72\x83\x73\x73\x73\x64\x82\x45\xa5\x23"
+            "\xe0\x33\xe0\x32\xe0\x33\x64\x72\x74\x63\x73\x63\x82"
+            "\x63\xa1\x52\xd5\xc2" }  },
+      /* --- pixel bitmap for cmmi325 char#122 z --- */
+      { 122,57847,                      /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 19,   19, 3,79, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x73\x81\x65\x61\x68\x22\x62\x64\x71\x91\xe0\x31\xe0"
+            "\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x31\xe0\x22\xe0\x21"
+            "\xe0\x31\xa1\x61\xb1\x55\x62\x61\x39\x51\x57\x51\x83"
+            "\x70" }  },
+      /* --- pixel bitmap for cmmi325 char#123 \imath --- */
+      { 123,102288,                     /* character number, location */
+         19, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 10,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x70\x20\x43\x9c\x70\xc2\x85\x13\x0e\x38\x70\xc0\x81"
+            "\x03\x0e\x38\x70\xc8\x21\x87\x1c\x61\x02\x07" }  },
+      /* --- pixel bitmap for cmmi325 char#124 \jmath --- */
+      { 124,103119,                     /* character number, location */
+         19,-1,   -9,-1,      /* topleft row,col, and botleft row,col */
+          { 17,   28, 3,75, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xa4\xc1\x33\x91\x52\x10\xf1\x71\x63\xf1\x61\x63\x10"
+            "\xf1\xd3\x10\xf3\xc3\x20\xf3\xb3\x30\xf3\xa3\x40\xf1"
+            "\x93\x50\x22\x53\x64\x33\x64\x42\x82\x33\xa5\xa0" }  },
+      /* --- pixel bitmap for cmmi325 char#125 \wp --- */
+      { 125,104306,                     /* character number, location */
+         20, 3,  -10, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   30, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x63\xe0\x72\xe0\x81\xa6\x72\x82\x52\x61\x81\x82\x42"
+            "\x62\xa2\x31\x61\xc2\x22\x51\xd2\x10\xf1\x12\x41\xe3"
+            "\x03\x31\xe3\x1f\x13\x21\xe0\x13\x13\x11\xe0\x13\x34"
+            "\xe0\x13\x34\x52\x82\x54\x41\x82\x74\x31\x72\x71\x13"
+            "\x41\x43\x81\x14\x45\xa1\x24\xe0\x41\x33\xe0\x20\xf3"
+            "\x11\x52\xe0\x20\x11\x42\xe0\x41\x41\xe0\x51\x31\xe0"
+            "\x73\xe0\x61" }  },
+      /* --- pixel bitmap for cmmi325 char#126 \vec --- */
+      { 126,105018,                     /* character number, location */
+         32, 8,   23, 8,      /* topleft row,col, and botleft row,col */
+          { 20,    9, 3,37, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x21\x30\xf1\xe0\x22\x20\xe0\x23\x1f\x1e\x06\xe0"
+            "\x13\xe0\x23\xe0\x32\x42" }  },
+      /* --- pixel bitmap for cmmi325 char#127 (noname) --- */
+      { 127,105566,                     /* character number, location */
+         30,12,   24,12,      /* topleft row,col, and botleft row,col */
+          { 16,    6, 3,22, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x67\x72\x62\x42\xa1\x10\xf1\x11\xd1\x01\xe1" }  },
+      /* --- trailer  --- */
+      { -99, -999,  0,0,0,0, { 0,0,0,0, (pixbyte *)"\0" }  }
+   } ;
+
+
+/* --- size=9 for .450gf ---
+ * mf '\mode=preview; mag=magstep(-9.62468787106292402266); input cmmi10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmmi450 --- */
+static	chardef  cmmi450[] =
+   {
+      /* --- pixel bitmap for cmmi450 char#0 \Gamma --- */
+      {   0,61425,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 42,   43, 3,153, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x0e\x04\xe0\x25\xe6\xe0\x35\xe0\x24\xe0\x35"
+            "\xe0\x33\xe0\x25\xe0\x43\x10\xf2\xe0\x15\xe0\x52\x10"
+            "\xf2\xe5\xe0\x62\x10\xe5\xe0\x52\xe0\x15\xe0\x62\x20"
+            "\xf2\xd5\xe0\xa0\xf3\xc5\xe0\xb0\xf3\xb5\xe0\xc0\xf3"
+            "\xa5\xe0\xd0\xf3\x95\xe0\xe0\xf3\x85\xe0\xe0\x10\xf2"
+            "\x75\xe0\xe0\x20\x66\xe0\xe0\x2f\x1e\x05\xe0\x93" }  },
+      /* --- pixel bitmap for cmmi450 char#1 \Delta --- */
+      {   1,62402,                      /* character number, location */
+         45, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   45, 3,324, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x52\xe0\xe0\xe0\x14\xa0\xf1\xe0\xe0\x35\xa0"
+            "\xe0\xe0\x26\xe0\xe0\xb8\xe0\xe0\x99\xe0\xe0\x92\x25"
+            "\xe0\xe0\x82\x35\xe0\xe0\x72\x46\xe0\xe0\x53\x46\xe0"
+            "\xe0\x52\x65\xe0\xe0\x42\x75\xe0\xe0\x32\x86\xe0\xe0"
+            "\x13\x86\xe0\xe0\x12\xa5\xe0\xe2\xb5\xe0\xd2\xc6\xe0"
+            "\xb3\xc6\xe0\xb2\xe5\xe0\xa2\xe0\x15\xe0\x92\xe0\x26"
+            "\xe0\x73\xe0\x26\xe0\x72\xe0\x45\xe0\x62\xe0\x55\xe0"
+            "\x52\xe0\x66\xe0\x33\xe0\x66\xe0\x32\xe0\x85\xe0\x22"
+            "\xe0\x95\xe0\x12\xe0\xa6\xd3\xe0\xa6\xd2\xe0\xc5\xc2"
+            "\xe0\xd5\xb2\xe0\xe6\x93\xe0\xe6\x92\xe0\xe0\x16\x82"
+            "\xe0\xe0\x35\x72\xe0\xe0\x46\x53\xe0\xe0\x46\x52\xe0"
+            "\xe0\x56\x42\xe0\xe0\x75\x3e\x0e\x0e\x02\xf1\x1e\x0e"
+            "\x0e\x03\x0e\x0e\x0e\x04" }  },
+      /* --- pixel bitmap for cmmi450 char#2 \Theta --- */
+      {   2,63681,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 43,   45, 3,295, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x98\xe0\xe0\x34\x74\xe0\xc4\xb4\xe0\x84\xe4\xe0"
+            "\x54\xe0\x34\xe0\x34\xe0\x54\xe0\x14\xe0\x74\xd4\xe0"
+            "\x85\xa5\xe0\xa4\xa4\xe0\xb5\x85\xe0\xb5\x75\xe0\xc5"
+            "\x65\xe0\xd6\x46\xe0\xd6\x45\xe0\xe6\x36\xe0\xe6\x35"
+            "\xe0\xe0\x16\x26\xe0\xe0\x16\x26\x41\xe0\x51\x46\x16"
+            "\x42\xe0\x42\x46\xf1\x16\x4e\x08\x46\x0f\x26\x4e\x08"
+            "\x46\x16\x42\xe0\x42\x45\x26\x41\xe0\x51\x46\x25\xe0"
+            "\xe0\x26\x2f\x15\xe0\xe0\x16\x35\xe0\xe0\x15\x45\xe0"
+            "\xe5\x55\xe0\xd6\x55\xe0\xd5\x75\xe0\xb5\x85\xe0\xa5"
+            "\x95\xe0\xa4\xb4\xe0\x94\xd4\xe0\x74\xe5\xe0\x54\xe0"
+            "\x24\xe0\x35\xe0\x44\xe0\x14\xe0\x84\xb4\xe0\xc4\x74"
+            "\xe0\xe0\x29\xe0\x90" }  },
+      /* --- pixel bitmap for cmmi450 char#3 \Lambda --- */
+      {   3,64811,                      /* character number, location */
+         45, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 39,   45, 3,242, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\xe0\x13\x70\xf1\xe0\xe4\x70\xf1\xe0\xd5\x70"
+            "\xe0\xc6\x70\xf1\xe0\xb7\x70\xe0\xa2\x15\xe0\xe0\x32"
+            "\x16\x60\xf1\xe0\x92\x26\x60\xe0\x82\x36\xe0\xd3\x45"
+            "\xe0\xd2\x55\x60\xf1\xe0\x62\x65\x60\xf1\xe0\x52\x75"
+            "\x60\xe0\x42\x85\xe0\x93\x85\xe0\x92\x95\x60\xf1\xe0"
+            "\x22\xa5\x60\xf1\xe0\x12\xb6\x50\xf1\xe2\xc6\x50\xd2"
+            "\xe5\x50\xf1\xc2\xe0\x15\x50\xf1\xb2\xe0\x25\x50\xf1"
+            "\xa2\xe0\x35\x50\x92\xe0\x45\x50\xf1\x82\xe0\x55\x50"
+            "\x72\xe0\x65\xc2\xe0\x66\xa3\xe0\x66\x86\xe0\x47\x4d"
+            "\xbe\x0e\xae\x02" }  },
+      /* --- pixel bitmap for cmmi450 char#4 \Xi --- */
+      {   4,66346,                      /* character number, location */
+         43, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 45,   43, 3,165, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xbe\x0e\x06\xf2\xae\x0e\x06\x10\xf1\x92\xe0\xe0\x32"
+            "\x10\xf2\x82\xe0\xe0\x42\x10\xf6\xe0\xe0\xe0\x30\xc2"
+            "\xe0\x62\x90\xf1\xb2\xe0\x62\xa0\xf1\xbe\x0a\xa0\xf1"
+            "\xae\x0a\xb0\xf1\xa2\xe0\x62\xb0\x92\xe0\x62\xc0\xf6"
+            "\xe0\xe0\xe0\x30\xf2\x12\xe0\xe0\x42\x80\xf1\x12\xe0"
+            "\xe0\x32\x90\x12\xe0\xe0\x23\xae\x0e\x06\xae\x0e\x07"
+            "\xaf\x1e\x0e\x06\xb0" }  },
+      /* --- pixel bitmap for cmmi450 char#5 \Pi --- */
+      {   5,67677,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 52,   43, 3,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x0e\x0e\xe0\x25\xe0\x56\x60\xf1\xe0\x25\xe0"
+            "\x55\x70\xf3\xe0\x15\xe0\x55\x80\xf3\xe5\xe0\x55\x90"
+            "\xf3\xd5\xe0\x55\xa0\xf3\xc5\xe0\x55\xb0\xf3\xb5\xe0"
+            "\x55\xc0\xf3\xa5\xe0\x55\xd0\xf3\x95\xe0\x55\xe0\xf3"
+            "\x85\xe0\x55\xe0\x10\xf2\x75\xe0\x55\xe0\x20\x66\xe0"
+            "\x46\xe0\x2f\x1e\x04\x6e\x04\xae" }  },
+      /* --- pixel bitmap for cmmi450 char#6 \Sigma --- */
+      {   6,68966,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 48,   43, 2,145, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0b\x25\x0a\x26\x0b\x06\x16\x08\x0c\x06\x19\x05\x0d"
+            "\x06\x19\x04\x0d\x06\x1a\x03\x0e\x05\x1a\x03\x01\x00"
+            "\xff\x01\x0d\x06\x19\x03\x01\x00\xff\x01\x0e\x06\x19"
+            "\x02\x01\x00\x0f\x06\x18\x02\x10\x06\x17\x02\x12\x06"
+            "\x16\x02\x12\x06\x2b\x05\x1a\x00\xff\x01\x11\x06\x19"
+            "\x00\xff\x01\x12\x06\x18\x00\xff\x01\x13\x06\x17\x00"
+            "\x14\x04\x2c\x03\x2d\x02\x2c\x03\x2c\x03\x2c\x03\x2c"
+            "\x03\x17\x02\x13\x02\x18\x02\x13\x02\x19\x02\x12\x02"
+            "\x19\x02\x12\x02\x1a\x02\x11\x02\x1a\x03\x10\x02\x1b"
+            "\x02\x10\x02\x1b\x03\x0f\x02\x1b\x03\x0e\x03\x1b\x04"
+            "\x0d\x03\x1a\x06\x0c\x03\x17\x09\x0c\x24\x0b\x25\x0a"
+            "\x25\x0b" }  },
+      /* --- pixel bitmap for cmmi450 char#7 \Upsilon --- */
+      {   7,70138,                      /* character number, location */
+         44, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 42,   44, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x86\xe0\x46\xaa\xea\x6d\xbd\x4e\x01\x9e\x3e\x02\x8e"
+            "\x02\x14\x86\x65\x84\x13\xa5\x55\xa6\xc4\x54\xc4\xe3"
+            "\x44\xd4\xe4\x24\xe2\xe0\x24\x23\xe0\xe0\x54\x14\xe0"
+            "\xe0\x54\x13\xe0\xe0\x68\xe0\xe0\x76\xe0\xe0\x77\xe0"
+            "\x50\xf2\xe0\x26\xe0\x60\xf2\xe0\x25\xe0\x70\xf3\xe0"
+            "\x15\xe0\x80\xf3\xe5\xe0\x90\xf3\xd5\xe0\xa0\xf3\xc5"
+            "\xe0\xb0\xf2\xb5\xe0\xc0\xa6\xe0\xc0\xf1\x2e\x07\xe0"
+            "\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#8 \Phi --- */
+      {   8,71250,                      /* character number, location */
+         43, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 40,   43, 3,223, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x1e\x07\xe0\x4e\x07\xe0\xd6\xc0\xf1\xe0\x85\xd0"
+            "\xf2\xe0\x75\xe0\xe0\x4a\xe0\xc4\x25\x25\xe0\x54\x55"
+            "\x54\xe0\x14\x75\x64\xd4\x85\x75\x95\x85\x95\x75\x95"
+            "\x95\x65\xa5\xa5\x45\xb5\xa5\x36\xa5\xb5\x35\xb5\xb6"
+            "\xf1\x16\xb5\xb6\x0f\x26\xb5\xb6\x16\xb5\xa6\x26\xa5"
+            "\xb5\x45\xa5\xa6\x45\xa5\xa5\x55\xa5\x95\x75\x85\x95"
+            "\x94\x85\x84\xc4\x75\x64\xe0\x24\x55\x44\xe0\x64\x25"
+            "\x25\xe0\xbb\xe0\x40\xf1\xe5\xe0\x70\xf2\xd5\xe0\x80"
+            "\xc6\xe0\x80\xf1\x4e\x07\xe0\x10" }  },
+      /* --- pixel bitmap for cmmi450 char#9 \Psi --- */
+      {   9,72487,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 42,   43, 3,233, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xde\x07\xe0\x6e\x07\xe0\xe0\x16\xe0\x20\xf1\xe0\x65"
+            "\xe0\x30\xf2\xe0\x55\xe0\x46\xd5\xb7\x25\xb5\xb5\x65"
+            "\xa5\xa5\x75\xa5\x95\x85\xa5\x85\x95\x95\x95\x60\xf2"
+            "\x35\x95\x85\x70\xf2\x25\x95\x85\x80\x25\x95\x84\xb5"
+            "\x85\x85\xb4\x95\x85\x90\xf1\x24\x95\x75\xa0\x24\x85"
+            "\x75\xd4\x85\x74\xe5\x75\x65\xe0\x14\x75\x64\xe0\x24"
+            "\x65\x64\xe0\x44\x55\x54\xe0\x63\x55\x44\xe0\x83\x45"
+            "\x24\xe0\xb4\x15\x14\xe0\xe0\x29\xe0\x90\xf1\xc5\xe0"
+            "\xb0\xf2\xb5\xe0\xc0\xa6\xe0\xc0\xf1\x2e\x07\xe0\x52" }  },
+      /* --- pixel bitmap for cmmi450 char#10 \Omega --- */
+      {  10,73830,                      /* character number, location */
+         44, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 45,   44, 3,287, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x9a\xe0\xe0\x44\x84\xe0\xc5\xc4\xe0\x85\xe0\x24"
+            "\xe0\x54\xe0\x54\xe0\x25\xe0\x65\xe5\xe0\x85\xc5\xe0"
+            "\x95\xb5\xe0\xa6\x96\xe0\xb5\x10\xf1\x76\xe0\xc5\x10"
+            "\x66\xe0\xd6\x66\xe0\xd5\x10\xf2\x56\xe0\xd6\x10\x56"
+            "\xe0\xd5\x76\xe0\xc6\x76\xe0\xc5\x86\xe0\xb6\x86\xe0"
+            "\xb5\x96\xe0\xa5\xb5\xe0\xa5\xb5\xe0\x95\xc5\xe0\x85"
+            "\xe4\xe0\x84\xe0\x14\xe0\x74\xe0\x33\xe0\x64\xe0\x44"
+            "\xe0\x53\xe0\x63\xe0\x43\xe0\x73\xe0\x33\xe0\x92\xe0"
+            "\x32\xe0\xa2\xe0\x22\xe0\x12\x82\xe0\x12\x82\x62\x92"
+            "\xe1\x92\x62\x92\xd2\x82\x72\x92\xd1\x92\x72\x92\xc1"
+            "\x92\x83\x91\xc1\x92\x8d\xbd\x8d\xbc\x9c\xbd\x9c\xbc"
+            "\xae" }  },
+      /* --- pixel bitmap for cmmi450 char#11 \alpha --- */
+      {  11,75026,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 35,   29, 3,191, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd7\xe0\xc3\x53\xe0\x83\x83\xe0\x63\xa3\x92\x64\xb3"
+            "\x92\x54\xd3\x82\x53\xe4\x62\x54\xe4\x62\x44\xe0\x14"
+            "\x62\x35\xe0\x14\x52\x45\xe0\x15\x42\x20\xf1\x15\xe0"
+            "\x34\x32\x30\x15\xe0\x34\x22\x45\xe0\x44\x22\x45\xe0"
+            "\x44\x12\x55\xe0\x46\x65\xe0\x37\x65\xe0\x36\x7f\x14"
+            "\xe0\x45\x84\xe0\x54\x93\xe0\x45\x94\xe0\x26\x94\xe0"
+            "\x12\x14\x52\x33\xd2\x34\x51\x53\xa3\x53\x42\x63\x64"
+            "\x82\x32\x98\xc4\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#12 \beta --- */
+      {  12,76181,                      /* character number, location */
+         44, 0,  -12, 0,      /* topleft row,col, and botleft row,col */
+          { 36,   56, 3,295, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x97\xe0\xd2\x63\xe0\x92\xa2\xe0\x72\xc2\xe0\x51"
+            "\xe3\xe0\x32\xe3\xe0\x22\xe0\x14\xe2\xe0\x24\xe1\xe0"
+            "\x34\xd2\xe0\x34\xc2\xe0\x43\xd2\xe0\x34\x10\xf1\xb2"
+            "\xe0\x43\x20\xb1\xe0\x43\xd2\xe0\x33\xe2\xe0\x23\xe0"
+            "\x12\x59\x13\xe0\x12\x52\x73\xe0\x32\x68\x22\xe0\x22"
+            "\xe0\x32\xe0\x12\xe0\x42\x50\xf1\x82\xe0\x53\x40\xf1"
+            "\x82\xe0\x63\x30\xf2\x72\xe0\x73\x30\x72\xe0\x64\x30"
+            "\xf3\x62\xe0\x74\x30\xf1\x53\xe0\x64\x40\x53\xe0\x54"
+            "\xa3\xe0\x53\xa4\xe0\x43\xb4\xe0\x33\xc2\x12\xe0\x13"
+            "\xd2\x21\xe3\xd2\x41\xb4\xe2\x52\x74\xe0\x22\x78\xe0"
+            "\x52\xe0\xe0\x30\xf3\x22\xe0\xe0\x40\xf3\x12\xe0\xe0"
+            "\x5f\x12\xe0\xe0\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#13 \gamma --- */
+      {  13,77242,                      /* character number, location */
+         28, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 33,   41, 3,169, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa5\xe0\xba\xe2\x6c\xc2\x6e\xb2\x54\x75\x92\x54\xa3"
+            "\x92\x43\xd3\x72\x52\xe0\x12\x72\x43\xe0\x13\x52\x52"
+            "\xe0\x32\x52\x4f\x12\xe0\x42\x42\x50\xe0\x72\x32\x50"
+            "\xf1\xe0\x72\x22\x60\xf2\xe0\x72\x12\x70\xf2\xe0\x74"
+            "\x80\xf2\xe0\x73\x90\xf2\xe0\x72\xa0\xf1\xe0\x63\xa0"
+            "\xe0\x62\xb0\xf3\xe0\x53\xb0\xf3\xe0\x43\xc0\xe0\x42"
+            "\xe0\xe0\x23\xe0\xe0\x31\xe0" }  },
+      /* --- pixel bitmap for cmmi450 char#14 \delta --- */
+      {  14,78283,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   45, 3,165, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe7\xe0\x2d\xb1\x58\xa1\x86\xa1\xa3\x10\xf2\xa2\xd0"
+            "\xa3\xc0\xf1\xb3\xb0\xb4\xe0\x84\xe0\x75\xe0\x75\xe0"
+            "\x75\xe0\x56\xe0\x33\x15\xe3\x36\xc2\x65\xb2\x75\x40"
+            "\xf1\x53\x95\x30\x43\xa5\x64\xb4\x30\xf1\x24\xc4\x30"
+            "\xf2\x14\xd4\x34\xe3\x4f\x24\xd4\x44\xd3\x54\xc4\x5f"
+            "\x14\xc3\x60\xf1\x13\xb3\x70\x22\xb2\xa3\x92\xc3\x72"
+            "\xe3\x52\xe0\x45\xd0" }  },
+      /* --- pixel bitmap for cmmi450 char#15 \epsilon --- */
+      {  15,79245,                      /* character number, location */
+         27, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 21,   28, 3,87, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xd8\xaa\x95\xe0\x14\xe0\x24\xe0\x24\xe0\x24\xe0\x24"
+            "\xe0\x25\xe0\x24\xe0\x25\xe0\x10\xf1\x1e\x03\x3f\x55"
+            "\xe0\x20\xf2\x14\xe0\x20\x23\xe0\x53\xe0\x43\xb2\x63"
+            "\x93\x83\x53\xc7\x63" }  },
+      /* --- pixel bitmap for cmmi450 char#16 \zeta --- */
+      {  16,80191,                      /* character number, location */
+         43, 2,  -13, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   56, 3,211, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x32\x80\xf1\xe0\x22\x90\xe0\x31\xe0\xca\xe0\x32"
+            "\x62\xe0\x12\x27\xe0\x12\xe0\xa1\xe0\xb1\xe0\xb1\xe0"
+            "\xb2\xe0\xa2\xe0\xa2\xe0\xa2\xe0\xa3\xe0\xa2\xe0\xa2"
+            "\xe0\xa3\xe0\xa2\xe0\x70\xf1\x33\xe0\x70\xf2\x23\xe0"
+            "\x80\xf4\x13\xe0\x9f\x44\xe0\x90\xf1\x14\xe0\x80\x15"
+            "\xe0\x95\xe0\x87\xe0\x79\xe0\x5b\xe0\x4c\xe0\x3b\xe0"
+            "\x4a\xe0\x68\xe0\x85\x60\xf1\xe0\x44\x50\xe0\x53\x50"
+            "\xf1\xe0\x52\x60\xe0\x42\xe0\x31\x72\xe0\x41\x52\xe0"
+            "\x65\xa0" }  },
+      /* --- pixel bitmap for cmmi450 char#17 \eta --- */
+      {  17,81184,                      /* character number, location */
+         28, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 30,   41, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\xa6\x82\x32\x72\x53\x61\x52\x42\x83\x42\x53\x22"
+            "\x93\x32\x63\x12\xa4\x22\x65\xb4\x21\x65\xc4\x12\x65"
+            "\xc4\xf1\x12\x64\xd4\xf3\x84\xd4\x10\xf3\x74\xd4\x20"
+            "\xf3\x64\xd4\x30\xf3\x54\xd4\x40\xf1\x44\xd4\x50\x52"
+            "\xe4\xe0\xc4\x50\xf3\xe0\x64\x60\xf3\xe0\x54\x70\xf1"
+            "\xe0\x44\x80\xe0\x52\x99" }  },
+      /* --- pixel bitmap for cmmi450 char#18 \theta --- */
+      {  18,82056,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 26,   45, 3,189, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x25\xe0\x52\x42\xe0\x32\x62\xe0\x12\x73\xd2\x83"
+            "\xc3\x93\xa3\xa3\x94\xa3\x84\xb3\x84\xb4\xf1\x64\xc4"
+            "\xf1\x54\xc5\x45\xc5\x44\xd5\xf1\x35\xd4\x10\x34\xd5"
+            "\x10\xf1\x25\xd5\x10\x2e\x09\x10\xf1\x1e\x09\x20\xf1"
+            "\x15\xd5\x20\x14\xd5\x35\xd5\x35\xd4\x4f\x15\xc5\x44"
+            "\xd4\x54\xc5\x5f\x14\xc4\x64\xb4\x74\xb3\x93\xa4\x93"
+            "\xa3\xa3\x93\xc2\x83\xd3\x72\xe0\x12\x62\xe0\x32\x33"
+            "\xe0\x55\xe0\x20" }  },
+      /* --- pixel bitmap for cmmi450 char#19 \iota --- */
+      {  19,82839,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 17,   29, 3,77, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x82\xe4\x60\xf3\x64\x70\xf3\x54\x80\xf2\x44\x90\xf2"
+            "\x34\xa0\xf1\x24\xb0\x24\xa1\xf1\x14\xa2\x14\x92\x14"
+            "\xa2\x14\x92\x24\x82\x43\x72\x53\x62\x72\x43\x95\x95" }  },
+      /* --- pixel bitmap for cmmi450 char#20 \kappa --- */
+      {  20,83823,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 31,   29, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x82\xe0\xe4\xd4\x94\xc7\x84\xa2\x16\x84\x91\x36\x84"
+            "\x81\x45\x84\x72\x63\x94\x61\xe0\x64\x51\xe0\x74\x41"
+            "\xe0\x74\x32\xe0\x84\x21\xe0\xa6\xe0\xbe\xe0\x24\x86"
+            "\xd4\xa5\xc4\xb5\xb4\xc4\xa4\xd4\x71\xf2\x24\xd4\x62"
+            "\xf1\x14\xe3\x62\x10\x14\xe3\x61\x34\xe3\x52\x24\xe0"
+            "\x13\x51\x34\xe0\x22\x41\x52\xe0\x54\x53" }  },
+      /* --- pixel bitmap for cmmi450 char#21 \lambda --- */
+      {  21,84774,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 31,   44, 3,210, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x84\xe0\xe0\x14\xe0\xe4\xe0\xd5\xe0\x10\xf1\xc4\xe0"
+            "\x10\xc5\xe0\xd4\xe0\xf1\xd5\xd0\xe4\xd0\xf1\xe5\xc0"
+            "\xe0\x14\xe0\xd5\xb0\xf1\xe0\x24\xb0\xe0\x25\xe0\xd4"
+            "\xa0\xf1\xe0\x35\x90\xe0\x44\x90\xf1\xe0\x45\x80\xe0"
+            "\x36\xe0\xa2\x15\xe0\x83\x24\xe0\x73\x35\xe0\x53\x45"
+            "\xe0\x43\x64\xe0\x33\x75\xe0\x13\x85\xe4\x94\xd4\xa5"
+            "\xb4\xc4\xa4\xd5\x84\xe5\x74\xe0\x24\x65\xe0\x25\x45"
+            "\xe0\x35\x35\xe0\x54\x34\xe0\x65\x14\xe0\x84\x22\xe0"
+            "\xa4" }  },
+      /* --- pixel bitmap for cmmi450 char#22 \mu --- */
+      {  22,85890,                      /* character number, location */
+         28, 2,  -13, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   41, 3,147, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb2\xe0\xe0\x34\xd3\x40\xf3\x94\xd4\x40\xf3\x84\xd4"
+            "\x50\xf3\x74\xd4\x60\xf3\x64\xd4\x70\x54\xd4\x71\xf2"
+            "\x54\xd4\x62\xf1\x45\xc4\x62\x10\x45\xb1\x13\x61\x65"
+            "\xa1\x23\x52\x57\x81\x33\x51\x64\x13\x52\x53\x31\x74"
+            "\x36\x94\x84\xe0\xd0\xf3\x24\xe0\xe0\xf3\x14\xe0\xe0"
+            "\x1f\x14\xe0\xe0\x20\x12\xe0\xe0\x35" }  },
+      /* --- pixel bitmap for cmmi450 char#23 \nu --- */
+      {  23,86797,                      /* character number, location */
+         28, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 30,   28, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x65\xe0\x22\x39\xe0\x14\x19\xe0\x14\x10\xf1\x64\xe0"
+            "\x14\x10\x64\xe4\x20\xf1\x54\xe0\x14\x20\xf1\x54\xe4"
+            "\x30\x44\xe4\x84\xe3\x94\xd4\x94\xc4\x94\xd3\xa4\xc3"
+            "\x80\xf1\x34\xb3\x90\x24\xb3\xc4\xa2\xe4\x92\xe0\x14"
+            "\x73\xe0\x14\x73\xe0\x24\x62\xe0\x44\x42\xe0\x64\x23"
+            "\xe0\x67\xe0\x94\xe0\xc2" }  },
+      /* --- pixel bitmap for cmmi450 char#24 \xi --- */
+      {  24,87987,                      /* character number, location */
+         43, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 26,   56, 3,207, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x22\x80\xf1\xe0\x12\x90\xe0\x21\xe0\xba\xd5\x62"
+            "\xb5\x27\xb4\xe0\x74\xe0\x74\xe0\x75\xe0\xf1\x65\xe0"
+            "\x10\xf4\x55\xe0\x20\xf1\x64\xe0\x20\x74\xe0\x94\x18"
+            "\xe4\x72\xc3\x19\xc2\xe0\x92\xe0\x92\xe0\x92\xe0\x92"
+            "\xe0\x93\xe0\x92\xe0\x80\xf1\x13\xe0\x8f\x23\xe0\x9f"
+            "\x14\xe0\x85\xe0\x85\xe0\x77\xe0\x69\xe0\x4a\xe0\x4b"
+            "\xe0\x3c\xe0\x3a\xe0\x49\xe0\x67\xe0\x75\x40\xf2\xe0"
+            "\x53\x40\xe0\x52\xe0\x11\x82\xe0\x22\x52\xe0\x55\x80" }  },
+      /* --- pixel bitmap for cmmi450 char#25 \pi --- */
+      {  25,89009,                      /* character number, location */
+         27, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 34,   28, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x0c\x6e\x0e\x01\x4e\x0e\x01\x44\x62\x72\xc3\x82"
+            "\x72\xc2\x92\x62\xc2\x92\x72\xbf\x12\xa2\x72\xb0\xb3"
+            "\x63\xb0\xf1\xb2\x73\xb0\xf1\xa3\x73\xb0\xa2\x83\xe0"
+            "\x63\x83\xe0\x63\x74\xb0\xf2\x83\x84\xb0\x74\x84\xe0"
+            "\x43\x94\xe0\x34\x95\xe0\x24\xa4\xe0\x14\xb4\xe0\x14"
+            "\xb5\xe4\xb4\xe0\x13\xd2\xb7" }  },
+      /* --- pixel bitmap for cmmi450 char#26 \rho --- */
+      {  26,89925,                      /* character number, location */
+         28, 2,  -13, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   41, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x46\xe0\x83\x43\xe0\x43\x73\xe0\x23\x93\xe3\xa3"
+            "\xd3\xb4\xb3\xd3\xb3\xd4\x93\xd5\xf1\x84\xd5\xf2\x74"
+            "\xe5\xf2\x64\xe5\x10\x64\xe4\x74\xe5\x74\xe4\x84\xd5"
+            "\x84\xd4\x85\xd3\x95\xc3\xa5\xb4\xa6\x93\xb4\x22\x73"
+            "\xc4\x32\x44\xd4\x55\xe0\x24\xe0\x90\xf3\x24\xe0\xa0"
+            "\xf3\x14\xe0\xbf\x14\xe0\xc0\x12\xe0\xd0" }  },
+      /* --- pixel bitmap for cmmi450 char#27 \sigma --- */
+      {  27,90945,                      /* character number, location */
+         27, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   28, 3,127, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xce\x05\xbe\x08\x8e\x09\x85\x55\xe0\x24\x93\xe0\x14"
+            "\xa4\xd4\xc3\xc4\xd3\xc3\xe4\xa4\xe4\xa3\xe0\x14\x80"
+            "\xf1\x14\xe0\x14\x8f\x24\xe0\x14\x94\xe0\x13\xaf\x13"
+            "\xe0\x14\xa3\xe4\xb3\xe3\xc3\xd4\xc3\xd3\xe3\xb3\xe0"
+            "\x22\xa3\xe0\x42\x82\xe0\x72\x53\xe0\x97\xe0\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#28 \tau --- */
+      {  28,91800,                      /* character number, location */
+         27, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 30,   28, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x08\x6e\x0b\x4e\x0b\x44\x82\xe0\x13\xa2\xe0\x12"
+            "\xa3\xe2\xb2\xe2\xc2\xe2\xb3\xe0\xd3\xe0\xd2\xe0\x10"
+            "\xf3\xc3\xe0\x10\xf2\xb3\xe0\x20\xf1\xa4\xe0\x20\xf1"
+            "\xa3\xe0\x30\xf2\x94\xe0\x30\xf1\x84\xe0\x40\x92\xe0"
+            "\x52" }  },
+      /* --- pixel bitmap for cmmi450 char#29 \upsilon --- */
+      {  29,92769,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 31,   29, 3,151, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe0\x13\x71\x42\xd5\x42\x53\xc5\x41\x63\xc5\x32"
+            "\x63\xd4\x22\x73\xd4\x22\x64\xe3\xf1\x12\x74\xe3\x12"
+            "\x64\xe0\x13\xf1\x94\xe0\x12\x10\xf1\x84\xe0\x22\x10"
+            "\xf2\x74\xe0\x22\x20\x74\xe0\x12\x94\xe0\x22\x30\xf1"
+            "\x64\xe0\x12\x40\x64\xe2\xb4\xe1\xd3\xd2\xd3\xc2\xe0"
+            "\x13\xa2\xe0\x23\x92\xe0\x53\x53\xe0\x87\xca" }  },
+      /* --- pixel bitmap for cmmi450 char#30 \phi --- */
+      {  30,93751,                      /* character number, location */
+         43, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 33,   56, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x92\x80\xf3\xe0\x82\x90\xf3\xe0\x72\xa0\xf3\xe0"
+            "\x62\xb0\xf1\xe0\x52\xc0\xe0\x28\xe0\x83\x32\x23\xe0"
+            "\x34\x42\x53\xe3\x62\x72\xb3\x82\x73\x93\x92\x83\x73"
+            "\x92\x94\x54\x92\xa3\x44\xa2\xa3\x43\xb2\xa4\x24\xa2"
+            "\xb4\xf2\x14\xb2\xb4\x0f\x24\xb2\xb4\x14\xb2\xa4\x24"
+            "\xa2\xb4\x24\xa2\xa4\x34\xa2\xa3\x53\xa2\x94\x53\x92"
+            "\x94\x73\x82\x93\x92\x82\x73\xb3\x72\x63\xe2\x52\x53"
+            "\xe0\x34\x22\x24\xe0\x88\xe0\xe2\xe0\x50\xf3\xb2\xe0"
+            "\x60\xf3\xa2\xe0\x70\xf2\x92\xe0\x83" }  },
+      /* --- pixel bitmap for cmmi450 char#31 \chi --- */
+      {  31,94962,                      /* character number, location */
+         28, 2,  -13, 2,      /* topleft row,col, and botleft row,col */
+          { 35,   41, 3,249, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x56\xe0\xe2\x34\xe0\x71\x32\x45\xe0\x52\x22\x65\xe0"
+            "\x32\xb5\xe0\x22\xd4\xe0\x13\xd5\xd3\xe0\x14\xd2\xe0"
+            "\x25\xb2\xe0\x35\xa2\xe0\x54\x92\xe0\x64\x82\xe0\x75"
+            "\x62\xe0\x94\x52\xe0\xa4\x42\xe0\xb5\x22\xe0\xd4\x13"
+            "\xe0\xd7\xe0\xe6\xe0\xe0\x15\xe0\x10\xf1\xe0\x24\xe0"
+            "\x10\xe0\x16\xe0\xe2\x14\xe0\xd2\x24\xe0\xc2\x34\xe0"
+            "\xb3\x35\xe0\x93\x54\xe0\x92\x64\xe0\x82\x75\xe0\x62"
+            "\x94\xe0\x52\xa4\xe0\x42\xb5\xe0\x22\xd4\xe0\x12\xe5"
+            "\xd2\xe0\x15\xc3\xe0\x24\xb3\xe0\x35\x62\x22\xe0\x54"
+            "\x52\x22\xe0\x74\x32\xe0\xe6\x42" }  },
+      /* --- pixel bitmap for cmmi450 char#32 \psi --- */
+      {  32,96165,                      /* character number, location */
+         43, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 38,   56, 3,253, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf3\xe0\xd2\x90\xf3\xe0\xc2\xa0\xf3\xe0\xb2\xb0\xf2"
+            "\xe0\xa2\xc0\x75\xc2\x83\x71\x42\xa2\x85\x42\x53\x92"
+            "\x85\x41\x63\x92\x85\x32\x63\x92\x94\x22\x73\x82\xa4"
+            "\x22\x64\x82\xb3\xf1\x12\x74\x82\xb3\x12\x64\x82\xc3"
+            "\xf1\x94\x82\xc2\x10\x84\x92\xc2\x94\x82\xd2\x10\xf1"
+            "\x74\x92\xc2\x20\x74\x92\xb2\xa4\x82\xc2\x30\xf1\x64"
+            "\x92\xb2\x40\x64\x92\xa2\xb4\x82\xa2\xd3\x82\xa1\xe4"
+            "\x72\x91\xe0\x23\x72\x81\xe0\x34\x52\x72\xe0\x63\x42"
+            "\x62\xe0\x84\x22\x33\xe0\xd9\xe0\x10\xf3\xe0\x22\xe0"
+            "\x60\xf3\xe0\x12\xe0\x70\xf3\xe2\xe0\x80" }  },
+      /* --- pixel bitmap for cmmi450 char#33 \omega --- */
+      {  33,97426,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 36,   29, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x43\x73\xe0\x85\xf1\x53\xe0\x95\x43\xe0\xb4"
+            "\x33\xe0\xc4\x33\xe0\xd3\x32\xe0\xe3\xf1\x22\xe0\xe0"
+            "\x13\x13\xd2\xe2\x10\xf2\x12\xd4\xd2\x1f\x22\xd4\xd2"
+            "\x2f\x12\xd3\xd2\x32\xd2\xd3\x32\xd2\xd2\x42\xc4\xb3"
+            "\x43\xa5\xa3\x53\x97\x83\x64\x64\x24\x64\x7c\x3d\x8b"
+            "\x5b\xa9\x79\xd5\xb5\xb2" }  },
+      /* --- pixel bitmap for cmmi450 char#34 \varepsilon --- */
+      {  34,98497,                      /* character number, location */
+         28, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 24,   29, 3,97, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xc8\xdd\x95\x75\x63\xd2\x52\xe0\x72\xe0\x73\xe0\x40"
+            "\xf3\x32\xe0\x50\x42\x53\xe0\x16\x33\xcb\xc2\xe0\x72"
+            "\xe0\x72\xe0\x60\xf1\x12\xe0\x7f\x32\xe0\x82\xe0\x41"
+            "\x42\xe0\x21\x53\xe1\x74\x93\xad\xd8\xa2" }  },
+      /* --- pixel bitmap for cmmi450 char#35 \vartheta --- */
+      {  35,99572,                      /* character number, location */
+         44, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 33,   45, 3,231, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x94\xe0\xd2\x42\xe0\xa1\x62\xe0\x91\x82\xe0\x72"
+            "\x83\x20\xf1\xe0\x32\x93\x20\xe0\x22\xa3\x20\xf1\xe0"
+            "\x22\xa4\x10\xf2\xe0\x12\xb4\x10\xf1\xe0\x22\x95\x10"
+            "\xe0\x31\x95\x74\x72\x85\x52\x32\x72\x74\x61\x52\x72"
+            "\x55\x52\x53\x82\x35\x42\x63\xa2\x15\x42\x63\xc6\x41"
+            "\x64\xc8\xf2\x12\x64\xc5\x30\xf2\x84\xc5\x40\x84\xc4"
+            "\xc4\xc5\x50\xf1\x74\xc4\x60\x74\xb4\xd4\xc4\x70\xf1"
+            "\x64\xb4\x80\x64\xa4\xe0\x14\xa3\xa0\xf1\x64\x93\xb0"
+            "\x73\x83\xe0\x54\x63\xe0\x83\x42\xe0\xb7\xe0\x22" }  },
+      /* --- pixel bitmap for cmmi450 char#36 \varpi --- */
+      {  36,100951,                     /* character number, location */
+         27, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 49,   28, 3,237, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7e\x0e\x0d\x6e\x0e\x0e\x02\x4e\x0e\x0e\x02\x44\x52"
+            "\xe0\xe0\x12\x63\x62\xe0\xe0\x22\x62\x72\xe0\xe0\x22"
+            "\x52\x72\xe0\xe0\x32\x4f\x12\x72\xe0\xe0\x42\x40\xf1"
+            "\x82\xe0\x12\xe0\x22\x40\x72\xe0\x22\xe0\x22\xb2\xe0"
+            "\x13\xe0\x22\xa2\xe0\x23\xe0\x12\xb2\xe0\x22\xe0\x22"
+            "\xb2\xe0\x13\xe0\x22\xb2\xe0\x13\xe0\x12\xc2\xe4\xe0"
+            "\x12\xb2\xe5\xe2\xc2\xe2\x12\xd3\xc2\xd2\x22\xd2\xd3"
+            "\xb3\x22\xc3\xd3\xa3\x33\xa3\xe0\x12\x84\x43\x93\xe0"
+            "\x23\x55\x63\x64\xe0\x3c\x7c\xe0\x59\xa9\xe0\x86\xe5"
+            "\xe0\x23" }  },
+      /* --- pixel bitmap for cmmi450 char#37 \varrho --- */
+      {  37,101966,                     /* character number, location */
+         28, 5,  -12, 5,      /* topleft row,col, and botleft row,col */
+          { 27,   40, 3,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x16\xe0\x53\x43\xe0\x13\x73\xd3\x93\xb3\xa3\xa3"
+            "\xb4\x83\xd3\x83\xd4\x63\xd5\xf1\x54\xd5\xf2\x44\xe5"
+            "\xf2\x34\xe5\x10\x34\xe4\x45\xd5\x44\xe4\x54\xd5\x54"
+            "\xd4\x55\xd3\x62\x13\xb3\x72\x13\xa4\x72\x22\x93\x92"
+            "\x32\x73\x92\x52\x44\xa2\x66\xdf\x42\xe0\xb3\xe0\xa4"
+            "\xe0\xae\x03\xbe\x03\xce\x01\xe0\xb2\x82" }  },
+      /* --- pixel bitmap for cmmi450 char#38 \varsigma --- */
+      {  38,102885,                     /* character number, location */
+         28, 3,   -7, 3,      /* topleft row,col, and botleft row,col */
+          { 22,   35, 3,119, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc9\xb3\x63\x82\xe0\x43\xe0\x42\xe0\x52\xe0\x52\xe0"
+            "\x53\xe0\x52\xe0\x53\xe0\x52\xe0\x5f\x43\xe0\x54\xe0"
+            "\x45\xe0\x36\xe0\x36\xe0\x37\xe0\x28\xe0\x19\xe0\x18"
+            "\xe0\x28\xe0\x18\xe0\x26\xe0\x45\x40\xf1\xe4\x40\xf1"
+            "\xe3\x50\xe2\xe1\x42\xe0\x25\x8f" }  },
+      /* --- pixel bitmap for cmmi450 char#39 \varphi --- */
+      {  39,103890,                     /* character number, location */
+         28, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 35,   41, 3,219, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xb6\xa2\xe0\x19\x82\xe0\x1b\x72\xe4\x54\x52\xe3"
+            "\x93\x32\xe3\xa3\x32\xe2\xc2\x22\xe2\xd2\xf1\x22\xd2"
+            "\xe2\xf1\x12\xd2\xe0\x12\x12\xd1\xe0\x22\x12\xc2\xe0"
+            "\x24\xd1\xe0\x22\x12\xc2\xe0\x22\x12\xc2\xe0\x12\x23"
+            "\xb2\xe0\x12\x32\xa2\xe0\x12\x42\xa2\xe3\x43\x92\xe2"
+            "\x62\x83\xc3\x73\x73\xb3\x94\x52\xb3\xb4\x42\x94\xd9"
+            "\x66\xe0\x1e\x04\xe0\x5e\xe0\x99\xe0\x20\xf2\xa3\xe0"
+            "\x80\x94\xe0\x80\xf1\x93\xe0\x90\xf2\x84\xe0\x90\xf1"
+            "\x74\xe0\xa0\x82\xe0\xbc" }  },
+      /* --- pixel bitmap for cmmi450 char#40 \leftharpoonup --- */
+      {  40,121078,                     /* character number, location */
+         31, 3,   14, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   17, 2,37, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x0d\x03\x28\x00\xff\x01\x0c\x03\x29\x00\x0b\x04\x34"
+            "\x03\x34\x04\x34\x03\x34\x03\x34\x04\x33\x04\x33\x04"
+            "\x33\x04\x33\x04\x33\x04\x32\x36\x01\x6f\x01" }  },
+      /* --- pixel bitmap for cmmi450 char#41 \leftharpoondown --- */
+      {  41,122126,                     /* character number, location */
+         17, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   17, 2,39, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x37\x01\x38\x01\x36\x04\x04\x35\x04\x35\x04\x35"
+            "\x04\x35\x04\x35\x04\x35\x03\x36\x03\x35\x04\x35\x03"
+            "\x35\x04\x29\x00\xff\x01\x0c\x03\x29\x00\x0d\x03\x28" }  },
+      /* --- pixel bitmap for cmmi450 char#42 \rightharpoonup --- */
+      {  42,123172,                     /* character number, location */
+         31, 3,   14, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   17, 2,38, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x28\x03\x0d\x00\xff\x01\x29\x03\x0c\x00\x29\x04\x35"
+            "\x03\x35\x04\x35\x03\x36\x03\x35\x04\x35\x04\x35\x04"
+            "\x35\x04\x35\x04\x35\x04\x04\x36\x01\x38\x01\x37" }  },
+      /* --- pixel bitmap for cmmi450 char#43 \rightharpoondown --- */
+      {  43,124221,                     /* character number, location */
+         17, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   17, 2,37, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\x6f\x01\x36\x32\x04\x33\x04\x33\x04\x33\x04\x33"
+            "\x04\x33\x04\x34\x03\x34\x03\x34\x04\x34\x03\x34\x04"
+            "\x0b\x00\xff\x01\x29\x03\x0c\x00\x28\x03\x0d" }  },
+      /* --- pixel bitmap for cmmi450 char#44 ` --- */
+      {  44,124662,                     /* character number, location */
+         31, 3,   14, 3,      /* topleft row,col, and botleft row,col */
+          { 11,   17, 3,32, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x65\x47\x38\x25\x54\x73\x74\x7f\x23\x84\x83\x84\x85"
+            "\x78\x47\x65" }  },
+      /* --- pixel bitmap for cmmi450 char#45 ' --- */
+      {  45,125104,                     /* character number, location */
+         31, 3,   14, 3,      /* topleft row,col, and botleft row,col */
+          { 11,   17, 3,33, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x05\x67\x48\x75\x84\x83\x84\xf2\x83\x74\x73\x74\x55"
+            "\x28\x37\x45\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#46 \triangleright --- */
+      {  46,125663,                     /* character number, location */
+         32, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   33, 3,153, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x12\xe0\xc5\xe0\xa6\xe0\x98\xe0\x73\x16\xe0\x53\x27"
+            "\xe0\x33\x46\xe0\x23\x66\xe3\x86\xc3\x96\xb3\xb6\x93"
+            "\xd6\x73\xe7\x53\xe0\x26\x43\xe0\x46\x23\xe0\x69\xe0"
+            "\x78\xe0\x69\xe0\x46\x23\xe0\x26\x43\xe7\x53\xd6\x73"
+            "\xb6\x93\x96\xb3\x86\xc3\x66\xe3\x46\xe0\x23\x27\xe0"
+            "\x33\x16\xe0\x58\xe0\x76\xe0\x95\xe0\xb2\xe0\xc4" }  },
+      /* --- pixel bitmap for cmmi450 char#47 \triangleleft --- */
+      {  47,126303,                     /* character number, location */
+         32, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   33, 3,156, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xc3\xe0\xa5\xe0\x96\xe0\x78\xe0\x56\x13\xe0\x37"
+            "\x23\xe0\x26\x43\xe6\x63\xc6\x83\xb6\x93\x96\xb3\x76"
+            "\xd3\x57\xe3\x46\xe0\x23\x26\xe0\x43\x15\xe0\x68\xe0"
+            "\x73\x15\xe0\x63\x26\xe0\x43\x46\xe0\x23\x57\xe3\x76"
+            "\xd3\x96\xb3\xb6\x93\xc6\x83\xe6\x63\xe0\x26\x43\xe0"
+            "\x37\x23\xe0\x56\x13\xe0\x78\xe0\x96\xe0\xa5\xe0\xc3" }  },
+      /* --- pixel bitmap for cmmi450 char#48 \0 --- */
+      {  48,110897,                     /* character number, location */
+         28, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   29, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x99\xe0\x14\x74\xb3\xb3\x93\xd3\x73\xe0\x13\x30\xf1"
+            "\x24\xe0\x14\x20\xf2\x14\xe0\x34\x1f\x95\xe0\x35\xf1"
+            "\x14\xe0\x34\x10\x15\xe0\x15\x34\xe0\x14\x53\xe0\x13"
+            "\x73\xd3\x93\xb3\xb4\x74\xe0\x19\x93" }  },
+      /* --- pixel bitmap for cmmi450 char#49 \1 --- */
+      {  49,111736,                     /* character number, location */
+         28, 6,    0, 6,      /* topleft row,col, and botleft row,col */
+          { 20,   28, 3,36, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xb1\xe0\x33\xc8\x8c\x84\x44\x80\xfe\x84\x80\xf4\x84"
+            "\x80\x76\x7f\x1e\x06" }  },
+      /* --- pixel bitmap for cmmi450 char#50 \2 --- */
+      {  50,112740,                     /* character number, location */
+         28, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   28, 3,121, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x7a\xce\x02\x84\x78\x52\xd6\x32\xe0\x16\x14\xe0\x15"
+            "\x15\xe6\x0f\x15\xe0\x15\x13\xe0\x16\xe0\x56\xe0\x55"
+            "\x10\xf1\xe0\x45\x20\xe0\x34\xe0\x55\xe0\x54\xe0\x63"
+            "\xe0\x63\xe0\x73\xe0\x63\xc2\x72\xe2\x62\xe2\x52\xe0"
+            "\x22\x4e\x07\x2e\x09\x1f\x1e\x09\x24" }  },
+      /* --- pixel bitmap for cmmi450 char#51 \3 --- */
+      {  51,113815,                     /* character number, location */
+         28, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   41, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x88\xe0\x1d\xa4\x75\x83\xb5\x52\xe5\x44\xc5\x36\xb6"
+            "\x10\xf2\x16\xc5\x10\x24\xc6\x10\xf1\xe0\x45\x20\xe0"
+            "\x35\xe0\x64\xe0\x64\xe0\x64\xe0\x54\xe0\x19\xe0\x94"
+            "\xe0\x94\xe0\x84\xe0\x84\xe0\x75\xe0\x66\xe0\x65\x10"
+            "\xf1\xe0\x56\x23\xe6\x15\xd6\x0f\x17\xc6\x07\xc5\x17"
+            "\xb6\x25\xc5\x32\xe0\x15\x42\xd5\x63\xa5\x84\x75\xad"
+            "\xe0\x18\x96" }  },
+      /* --- pixel bitmap for cmmi450 char#52 \4 --- */
+      {  52,114820,                     /* character number, location */
+         29, 2,  -12, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   41, 3,150, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x52\xe0\xa3\x60\xf1\xe0\x34\x60\xe0\x25\xe0\x76"
+            "\xe0\x71\x14\xe0\x62\x14\xe0\x52\x24\x60\xf1\xc2\x34"
+            "\x60\xb2\x44\xe0\x22\x54\xe0\x21\x64\xe0\x12\x64\xe2"
+            "\x74\x60\xf1\x72\x84\x60\x62\x94\xb2\xa4\xb1\xb4\xa2"
+            "\xb4\x92\xc4\x60\xf1\x22\xd4\x60\x12\xe4\x62\xe0\x14"
+            "\x6f\x1e\x0d\xf9\xe0\x34\x60\xf1\xbe\x02" }  },
+      /* --- pixel bitmap for cmmi450 char#53 \5 --- */
+      {  53,115939,                     /* character number, location */
+         28, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   41, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x32\xe0\x12\x65\x94\x7e\x03\x8e\x02\x9e\x01\xad\xc2"
+            "\x26\xc0\xf7\x32\xe0\x60\x32\x48\xb2\x22\x73\x92\x11"
+            "\xa3\x83\xc3\x72\xe3\x30\xf1\xe0\x54\x20\xf1\xe0\x64"
+            "\x10\xf2\xe0\x65\x14\xe0\x15\x0f\x26\xe5\x06\xe4\x15"
+            "\xe0\x14\x22\xe0\x25\x22\xe0\x24\x42\xe4\x53\xd3\x73"
+            "\xa4\x94\x65\xcc\xe0\x17\xa0" }  },
+      /* --- pixel bitmap for cmmi450 char#54 \6 --- */
+      {  54,116916,                     /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd6\xe0\x2b\xd4\x63\xa4\xa2\x84\x95\x64\x96\x63\xa6"
+            "\x53\xb6\x44\xb6\x43\xd4\x20\xf1\x24\xe0\x50\x15\xe0"
+            "\x50\xf1\x14\xe0\x60\x14\x56\x95\x41\x62\x75\x31\x83"
+            "\x55\x21\xa3\x45\x11\xc3\x3f\x16\xd4\x26\xe4\x15\xe0"
+            "\x14\x1f\x35\xe0\x15\xf3\x14\xe0\x15\xf1\x24\xe4\x10"
+            "\x24\xd5\x43\xd4\x54\xc3\x73\xb4\x83\x94\xa4\x55\xcb"
+            "\xe0\x27\x96" }  },
+      /* --- pixel bitmap for cmmi450 char#55 \7 --- */
+      {  55,117927,                     /* character number, location */
+         29, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 27,   42, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x22\xe0\xb3\xe0\x80\xf1\x2e\x0b\x2e\x0a\x2e\x0b\x22"
+            "\xe0\x62\x32\xe0\x52\x42\xe0\x42\x42\xe0\x52\x42\xe0"
+            "\x42\x52\xe0\x32\x60\xf1\xe0\x42\x70\xe0\x32\xe0\xa2"
+            "\x90\xf1\xe0\x12\xa0\xe2\xb0\xf1\xd3\xb0\xf1\xc3\xc0"
+            "\xf2\xb4\xc0\xa5\xc0\xf1\xa4\xd0\xf3\x95\xd0\xf7\x86"
+            "\xd0\x94\xe3" }  },
+      /* --- pixel bitmap for cmmi450 char#56 \8 --- */
+      {  56,118908,                     /* character number, location */
+         41, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   42, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x97\xe0\x2c\xb4\x74\x93\xb3\x72\xe3\x53\xe0\x13\x42"
+            "\xe0\x24\x10\xf2\x13\xe0\x33\x10\xf1\x14\xe0\x23\x10"
+            "\x15\xe3\x46\xc2\x57\xa3\x68\x73\x88\x52\xb9\x13\xe9"
+            "\xe0\x39\xe0\x3a\xd2\x29\xa2\x68\x82\x88\x62\xb7\x43"
+            "\xc7\x23\xe0\x15\x23\xe0\x25\x0f\x13\xe0\x44\x0f\x33"
+            "\xe0\x53\x13\xe0\x42\x23\xe0\x33\x33\xe0\x22\x44\xe2"
+            "\x64\xb3\x94\x74\xbd\xe0\x17\x92" }  },
+      /* --- pixel bitmap for cmmi450 char#57 \9 --- */
+      {  57,119913,                     /* character number, location */
+         28, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   41, 3,151, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x97\xe0\x2b\xc5\x54\xa4\x93\x84\xb3\x73\xc4\x54\xd3"
+            "\x30\xf1\x14\xe4\x2f\x35\xe0\x14\x1f\x35\xe0\x15\x14"
+            "\xe0\x15\x14\xe6\xf1\x24\xd6\x33\xc1\x15\x43\xa1\x25"
+            "\x53\x82\x25\x63\x61\x45\x96\x55\xf2\xe0\x64\x10\xf1"
+            "\xe0\x54\x20\x24\xd4\x20\xf1\x16\xb4\x30\x16\xa4\x56"
+            "\xa3\x65\xa3\x82\xb3\xa3\x74\xcb\xe0\x27\xc2" }  },
+      /* --- pixel bitmap for cmmi450 char#58 . --- */
+      {  58,126872,                     /* character number, location */
+          7, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          {  7,    7, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\xdf\xff\xff\xf7\x71\x00" }  },
+      /* --- pixel bitmap for cmmi450 char#59 , --- */
+      {  59,127441,                     /* character number, location */
+          7, 5,  -12, 5,      /* topleft row,col, and botleft row,col */
+          {  8,   19, 1, 1, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x1c\x3e\x7f\xff\xff\xbe\x9c\x80\x80\x80\x40\x40\x40"
+            "\x20\x20\x10\x08\x04\x02" }  },
+      /* --- pixel bitmap for cmmi450 char#60 < --- */
+      {  60,128129,                     /* character number, location */
+         34, 5,   -3, 5,      /* topleft row,col, and botleft row,col */
+          { 38,   37, 2,74, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x23\x03\x21\x05\x1f\x07\x1d\x07\x1d\x07\x1d\x07\x1d"
+            "\x07\x1d\x07\x1c\x08\x1c\x08\x1c\x08\x1c\x07\x1d\x07"
+            "\x1d\x07\x1d\x07\x1d\x07\x1d\x07\x1d\x07\x1f\x05\x21"
+            "\x07\x21\x07\x21\x07\x21\x07\x21\x07\x21\x07\x21\x07"
+            "\x21\x08\x20\x08\x20\x08\x21\x07\x21\x07\x21\x07\x21"
+            "\x07\x21\x07\x21\x07\x21\x05\x23\x03" }  },
+      /* --- pixel bitmap for cmmi450 char#61 / --- */
+      {  61,128705,                     /* character number, location */
+         47, 3,  -16, 3,      /* topleft row,col, and botleft row,col */
+          { 25,   63, 3,257, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x92\xe0\x83\xe0\x74\xf1\xe0\x73\x10\xe0\x64\x10"
+            "\xf1\xe0\x63\x20\xe0\x54\x20\xf1\xe0\x53\x30\xe0\x44"
+            "\xe0\x73\xe0\x74\x40\xf1\xe0\x33\x50\xe0\x24\x50\xf1"
+            "\xe0\x23\x60\xe0\x14\xe0\x73\xe0\x74\x70\xf1\xe3\x80"
+            "\xd4\x80\xf1\xd3\x90\xc4\x90\xf1\xc3\xa0\xb4\xe0\x73"
+            "\xe0\x74\xb0\xf1\xa3\xc0\x94\xc0\xf1\x93\xd0\x84\xd0"
+            "\xf1\x83\xe0\x74\xe0\x73\xe0\x74\xe0\x10\xf1\x63\xe0"
+            "\x20\x54\xe0\x20\xf1\x53\xe0\x30\x44\xe0\x73\xe0\x74"
+            "\xe0\x40\xf1\x33\xe0\x50\x24\xe0\x50\xf1\x23\xe0\x60"
+            "\x14\xe0\x60\xf1\x13\xe0\x74\xe0\x7f\x13\xe0\x88" }  },
+      /* --- pixel bitmap for cmmi450 char#62 > --- */
+      {  62,129480,                     /* character number, location */
+         34, 5,   -3, 5,      /* topleft row,col, and botleft row,col */
+          { 38,   37, 2,75, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x03\x23\x05\x21\x07\x21\x07\x21\x07\x21\x07\x21"
+            "\x07\x21\x07\x21\x08\x20\x08\x20\x08\x21\x07\x21\x07"
+            "\x21\x07\x21\x07\x21\x07\x21\x07\x21\x07\x21\x05\x1f"
+            "\x07\x1d\x07\x1d\x07\x1d\x07\x1d\x07\x1d\x07\x1d\x07"
+            "\x1c\x08\x1c\x08\x1c\x08\x1c\x07\x1d\x07\x1d\x07\x1d"
+            "\x07\x1d\x07\x1d\x07\x1f\x05\x21\x03\x23" }  },
+      /* --- pixel bitmap for cmmi450 char#63 \star --- */
+      {  63,130231,                     /* character number, location */
+         31,-1,    1,-1,      /* topleft row,col, and botleft row,col */
+          { 32,   30, 3,115, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf4\xe0\x21\xe0\x10\xf6\xe0\x13\xe0\x16\x83\x86\x39"
+            "\x25\x29\x7e\x09\xce\x03\xe0\x3d\xe0\x79\xe0\xa7\xe0"
+            "\xa9\xe0\x94\x14\xe0\x85\x15\xe0\x74\x34\xe0\x64\x54"
+            "\xe0\x53\x73\xe0\x43\x93\xe0\x23\xb3\xe0\x12\xd2\xe2"
+            "\xe0\x12\xd1\xe0\x31\x67" }  },
+      /* --- pixel bitmap for cmmi450 char#64 \partial --- */
+      {  64,104990,                     /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 32,   45, 3,229, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x17\xe0\x9c\xe0\x44\x74\xe0\x23\xb3\xe2\xe3\xc2"
+            "\xe0\x23\xb4\xe4\x96\xe3\x20\xf1\x76\xe4\x10\x75\xe0"
+            "\x24\x83\xe0\x34\xf3\xe0\xe4\xe7\x74\xb4\x62\x45\x94"
+            "\xa1\x35\x83\xc1\x35\x73\xe1\x25\x63\xe0\x11\x25\x53"
+            "\xe0\x36\x54\xe0\x36\x44\xe0\x46\x35\xe0\x46\x34\xe0"
+            "\x55\x20\xf1\x15\xe0\x55\x20\x15\xe0\x45\x35\xe0\x55"
+            "\x35\xe0\x54\x45\xe0\x45\x4f\x15\xe0\x44\x54\xe0\x44"
+            "\x64\xe0\x43\x75\xe0\x24\x84\xe0\x14\x94\xe4\xb4\xc4"
+            "\xd3\xb4\xe0\x14\x74\xe0\x4d\xe0\x78\xe0\x30" }  },
+      /* --- pixel bitmap for cmmi450 char#65 A --- */
+      {  65, 1092,                      /* character number, location */
+         45, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 43,   45, 3,280, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\xe0\x33\x90\xf1\xe0\xe0\x24\x90\xe0\xe0\x15"
+            "\x90\xf1\xe0\xe6\x90\xe0\xd8\xe0\xe0\x72\x15\xe0\xe0"
+            "\x62\x25\xe0\xe0\x53\x25\xe0\xe0\x52\x35\x80\xf1\xe0"
+            "\xa2\x45\x80\xe0\x92\x55\xe0\xe0\x23\x55\xe0\xe0\x22"
+            "\x65\xe0\xe0\x12\x75\xe0\xe0\x12\x76\xe0\xd2\x95\xe0"
+            "\xc3\x95\xe0\xc2\xa5\x70\xf1\xe0\x42\xb5\x70\xe0\x32"
+            "\xc5\xe0\x93\xc5\xe0\x92\xd5\xe0\x82\xe5\xe0\x8e\x08"
+            "\xe0\x6e\x09\xe0\x62\xe0\x25\xe0\x52\xe0\x35\x60\xf1"
+            "\xc2\xe0\x45\x60\xf1\xb2\xe0\x55\x60\xa2\xe0\x65\xe0"
+            "\x12\xe0\x75\xe0\x12\xe0\x76\xd2\xe0\x95\xc3\xe0\x95"
+            "\xb4\xe0\x95\x97\xe0\x76\x5f\x1e\xde\x02" }  },
+      /* --- pixel bitmap for cmmi450 char#66 B --- */
+      {  66, 2618,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   43, 3,253, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0d\xe0\x3e\x0e\x02\xe0\x65\xe6\xe0\x55\xe0\x25"
+            "\xe0\x45\xe0\x26\x10\xf1\xe0\x15\xe0\x46\xf1\xe0\x15"
+            "\xe0\x55\xe5\xe0\x65\xf1\xe5\xe0\x56\xe5\xe0\x55\xe5"
+            "\xe0\x56\xe5\xe0\x55\xe0\x15\xe0\x45\xe0\x25\xe0\x35"
+            "\xe0\x25\xe0\x35\xe0\x35\xe0\x16\xe0\x45\xd6\xe0\x6e"
+            "\x08\xe0\x75\xe0\x15\xe0\x55\xe0\x35\xe0\x35\xe0\x45"
+            "\xe0\x25\xe0\x46\xe5\xe0\x65\x40\xf2\xa5\xe0\x66\x30"
+            "\xf3\x95\xe0\x76\x30\xf1\x85\xe0\x76\x40\x85\xe0\x66"
+            "\xd5\xe0\x56\xd5\xe0\x56\xe5\xe0\x46\xe0\x15\xe0\x27"
+            "\xe0\x16\xe7\xbe\x0e\x03\xde\x0e\xe0\x25" }  },
+      /* --- pixel bitmap for cmmi450 char#67 C --- */
+      {  67, 3691,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 45,   45, 3,261, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x99\xc1\xe0\x6e\x92\xe0\x38\x74\x62\xe0\x26\xd3"
+            "\x43\xe0\x15\xe0\x32\x24\xd5\xe0\x67\xc5\xe0\x76\xc5"
+            "\xe0\x95\xb5\xe0\xa5\xa5\xe0\xc4\x95\xe0\xd3\x95\xe0"
+            "\xe3\x86\xe0\xe3\x85\xe0\xe0\x13\x75\xe0\xe0\x22\x76"
+            "\xe0\xe0\x22\x75\xe0\xe0\x32\x40\xf1\x26\xe0\xe0\x90"
+            "\xf2\x16\xe0\xe0\xaf\x46\xe0\xe0\xbf\x15\xe0\xe0\xc5"
+            "\xe0\xe0\x32\x7f\x15\xe0\xe0\x22\x86\xe0\xe0\x12\x95"
+            "\xe0\xe2\x90\xf1\x15\xe0\xd2\xa0\x25\xe0\xb2\xd5\xe0"
+            "\xa2\xe0\x15\xe0\x82\xe0\x35\xe0\x62\xe0\x55\xe0\x33"
+            "\xe0\x76\xd3\xe0\xb6\x85\xe0\xee\x01\xe0\xe0\x58\xe0"
+            "\xa4" }  },
+      /* --- pixel bitmap for cmmi450 char#68 D --- */
+      {  68, 4997,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 48,   43, 3,261, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0d\xe0\x7e\x0e\x02\xe0\xa5\xe7\xe0\x85\xe0\x26"
+            "\xe0\x75\xe0\x45\xe0\x55\xe0\x65\xe0\x45\xe0\x74\xe0"
+            "\x45\xe0\x75\xe0\x35\xe0\x85\x10\xf1\xe5\xe0\x95\x10"
+            "\xe5\xe0\x96\xe5\xe0\xa5\xf2\xd5\xe0\xb5\xd5\xe0\xa6"
+            "\xf3\xc5\xe0\xb6\xb5\xe0\xc5\x10\xf1\xb5\xe0\xb6\x10"
+            "\xb5\xe0\xb5\x20\xf1\xa5\xe0\xb6\x20\xa5\xe0\xb5\xd5"
+            "\xe0\xa6\xc5\xe0\xb5\x40\xf1\x95\xe0\xa5\x50\x95\xe0"
+            "\x95\xe5\xe0\x95\xe0\x15\xe0\x85\xe0\x25\xe0\x75\xe0"
+            "\x35\xe0\x65\xe0\x35\xe0\x65\xe0\x45\xe0\x46\xe0\x55"
+            "\xe0\x26\xe0\x66\xd7\xe0\x2e\x0e\x02\xe0\x4e\x0d\xe0"
+            "\x74" }  },
+      /* --- pixel bitmap for cmmi450 char#69 E --- */
+      {  69, 6590,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 45,   43, 3,269, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x0e\x07\xe0\x25\xe0\x27\xe0\x35\xe0\x54\xe0"
+            "\x35\xe0\x63\x10\xf1\xe0\x15\xe0\x73\x10\xf1\xe0\x15"
+            "\xe0\x82\x10\xf2\xe5\xe0\x92\x10\xe5\xe0\x82\xe0\x15"
+            "\xc2\x92\x20\xf1\xd5\xc2\xd0\xd5\xb3\xe0\xb5\xc2\xe0"
+            "\xc5\xb3\xe0\xc5\xa4\xe0\xce\x05\xe0\xbe\x05\xe0\xc5"
+            "\xa4\xe0\x10\xf1\xb5\xb3\xe0\x10\xf1\xa5\xc2\xe0\x20"
+            "\xa5\xc2\xa2\xe5\xc2\x92\xe5\xe0\xa2\xe5\xe0\x93\xe5"
+            "\xe0\x92\xe0\x15\xe0\x83\xe5\xe0\x92\xe0\x15\xe0\x83"
+            "\xe0\x15\xe0\x82\xe0\x25\xe0\x73\xe0\x15\xe0\x73\xe0"
+            "\x25\xe0\x64\xe0\x25\xe0\x45\xe0\x26\xe0\x18\xae\x0e"
+            "\x07\xae\x0e\x06\xb0" }  },
+      /* --- pixel bitmap for cmmi450 char#70 F --- */
+      {  70, 7991,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   43, 3,197, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x0e\x06\xe0\x25\xe0\x26\xe0\x35\xe0\x44\xe0"
+            "\x35\xe0\x53\x10\xf1\xe0\x15\xe0\x63\x10\xf1\xe0\x15"
+            "\xe0\x72\x10\xf2\xe5\xe0\x82\x10\xe5\xe0\x72\xe0\x15"
+            "\xc2\x82\x20\xf1\xd5\xc2\xc0\xd5\xb3\xe0\xa5\xc2\xe0"
+            "\xb5\xb3\xe0\xb5\xa4\xe0\xbe\x05\xe0\xae\x05\xe0\xb5"
+            "\xa4\xe0\xf1\xb5\xb3\xe0\xf3\xa5\xc2\xe0\x10\xf3\x95"
+            "\xe0\xe0\x20\xf3\x85\xe0\xe0\x30\xf2\x75\xe0\xe0\x40"
+            "\x66\xe0\xe0\x4f\x1e\x05\xe0\xb0" }  },
+      /* --- pixel bitmap for cmmi450 char#71 G --- */
+      {  71, 9286,                      /* character number, location */
+         44, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 44,   45, 3,263, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x98\xc1\xe0\x6e\x82\xe0\x37\x83\x62\xe0\x26\xd2"
+            "\x43\xe0\x15\xe0\x22\x24\xd5\xe0\x57\xc5\xe0\x66\xc5"
+            "\xe0\x85\xb5\xe0\x95\xa5\xe0\xb4\x95\xe0\xc3\x95\xe0"
+            "\xd3\x85\xe0\xe3\x76\xe0\xe3\x75\xe0\xe0\x12\x76\xe0"
+            "\xe0\x12\x75\xe0\xe0\x22\x40\xf1\x26\xe0\xe0\x80\xf2"
+            "\x16\xe0\xe0\x9f\x36\xe0\xe0\xa6\xe0\x4e\x04\x25\xe0"
+            "\x5e\x04\x25\xe0\xc6\x75\xe0\xd5\x7f\x15\xe0\xc5\x8f"
+            "\x16\xe0\xb5\x80\xf1\x15\xe0\xa5\x90\xf1\x25\xe0\x95"
+            "\x90\x35\xe0\x75\xe5\xe0\x56\xe0\x15\xe0\x32\x14\xe0"
+            "\x26\xd3\x33\xe0\x37\x85\x42\xe0\x6e\x02\x71\xe0\x9a"
+            "\xe0\x8e" }  },
+      /* --- pixel bitmap for cmmi450 char#72 H --- */
+      {  72,10687,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 52,   43, 3,163, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x04\x6e\x04\xe0\x26\xe0\x46\x60\xf1\xe0\x25"
+            "\xe0\x55\x70\xf3\xe0\x15\xe0\x55\x80\xf3\xe5\xe0\x55"
+            "\x90\xf3\xd5\xe0\x55\xa0\xf2\xc5\xe0\x55\xb0\xce\x0e"
+            "\x01\xe0\x8e\x0e\x01\xc0\xf2\xb5\xe0\x55\xc0\xf3\xa5"
+            "\xe0\x55\xd0\xf3\x95\xe0\x55\xe0\xf3\x85\xe0\x55\xe0"
+            "\x10\xf2\x75\xe0\x55\xe0\x20\x66\xe0\x46\xe0\x2f\x1e"
+            "\x04\x6e\x04\xa0" }  },
+      /* --- pixel bitmap for cmmi450 char#73 I --- */
+      {  73,11586,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 28,   43, 3,91, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xf1\xae\x04\xe0\x26\x60\xf1\xe0\x25\x70\xf3\xe0\x15"
+            "\x80\xf3\xe5\x90\xf3\xd5\xa0\xf3\xc5\xb0\xf3\xb5\xc0"
+            "\xf3\xa5\xd0\xf3\x95\xe0\xf3\x85\xe0\x10\xf2\x75\xe0"
+            "\x20\x66\xe0\x2f\x1e\x04\xa2" }  },
+      /* --- pixel bitmap for cmmi450 char#74 J --- */
+      {  74,12492,                      /* character number, location */
+         43, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 35,   44, 3,129, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x3e\x04\xf2\xe0\xb5\x50\xf3\xe0\xa5\x60\xf3"
+            "\xe0\x95\x70\xf3\xe0\x85\x80\xf3\xe0\x75\x90\xf3\xe0"
+            "\x65\xa0\xf3\xe0\x55\xb0\xf2\xe0\x45\xc0\x32\xd5\xd5"
+            "\xb5\xdf\x17\xa5\xd7\x95\xe6\xa5\xe5\xa5\xe0\x12\xd4"
+            "\xe0\x31\xc4\xe0\x42\x94\xe0\x82\x64\xe0\xb7\xe0\x90" }  },
+      /* --- pixel bitmap for cmmi450 char#75 K --- */
+      {  75,13831,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 52,   43, 3,339, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x04\xbd\xae\x04\xae\xe0\x26\xe0\x57\xe0\x65\xe0"
+            "\x65\xe0\x85\xe0\x63\xe0\x95\xe0\x63\xe0\xa5\xe0\x52"
+            "\xe0\xc5\xe0\x33\xe0\xd5\xe0\x23\xe0\xd5\xe0\x22\xe0"
+            "\xe0\x15\xe0\x12\xe0\xe0\x25\xd3\xe0\xe0\x35\xc3\xe0"
+            "\xe0\x35\xc2\xe0\xe0\x55\xb2\xe0\xe0\x65\x93\xe0\xe0"
+            "\x75\x83\xe0\xe0\x75\x84\xe0\xe0\x75\x75\xe0\xe0\x75"
+            "\x58\xe0\xe0\x65\x43\x15\xe0\xe0\x55\x42\x35\xe0\xe0"
+            "\x55\x32\x55\xe0\xe0\x45\x13\x65\xe0\xe0\x48\x76\xe0"
+            "\xe0\x27\xa5\xe0\xe0\x26\xb5\xe0\x60\xf1\xa5\xd5\xe0"
+            "\x50\xf1\x95\xe0\x15\xe0\x40\x95\xe0\x16\xe0\xc5\xe0"
+            "\x25\xe0\xb5\xe0\x35\xe0\x30\xf1\x85\xe0\x45\xe0\x20"
+            "\x85\xe0\x46\xe0\x10\xf1\x75\xe0\x65\xe0\x10\x75\xe0"
+            "\x66\xe0\x66\xe0\x58\xde\x04\xae\x01\x9e\x03\xbe\x01"
+            "\x90" }  },
+      /* --- pixel bitmap for cmmi450 char#76 L --- */
+      {  76,14962,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 37,   43, 3,169, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x06\xe0\x3e\x05\xe0\xa6\xe0\x10\xf1\xe0\x25\xe0"
+            "\x20\xf3\xe0\x15\xe0\x30\xf3\xe5\xe0\x40\xf3\xd5\xe0"
+            "\x50\xf3\xc5\xe0\x60\xf3\xb5\xe0\x70\xf1\xa5\xe0\x80"
+            "\xa5\xe0\x62\xa5\xe0\x52\x10\xf1\x95\xe0\x62\x10\xf1"
+            "\x95\xe0\x52\x20\x85\xe0\x53\xa5\xe0\x52\xb5\xe0\x43"
+            "\xb5\xe0\x33\xb5\xe0\x34\xb5\xe0\x25\xb5\xe6\xb6\xc8"
+            "\x5e\x0e\x04\x5e\x0e\x03\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#77 M --- */
+      {  77,16402,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 62,   43, 3,391, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xac\xe0\xec\xe0\x26\xe0\xd7\xe0\x86\xe0\xd6\xe0"
+            "\x96\xe0\xc2\x14\xe0\x82\x14\xe0\xb2\x14\xe0\x92\x24"
+            "\xe0\xa2\x14\xe0\x92\x24\xe0\x92\x24\xe0\x92\x24\xe0"
+            "\x82\x34\xe0\x82\x34\xe0\x82\x24\xe0\x92\x34\xe0\x72"
+            "\x34\x90\xf1\xe2\x34\xe0\x62\x44\x90\xf1\xd2\x54\xe0"
+            "\x42\x44\xa0\xd2\x54\xe0\x32\x54\xe0\x92\x54\xe0\x22"
+            "\x64\xe0\x82\x64\xe0\x22\x54\xe0\x92\x64\xe0\x12\x64"
+            "\xb0\xf1\xc2\x64\xe2\x74\xb0\xb2\x84\xc2\x74\xc0\xf1"
+            "\xb2\x84\xb2\x84\xc0\xb2\x84\xa2\x94\xe0\x82\x94\xa2"
+            "\x84\xe0\x92\x94\x92\x94\xe0\x92\x94\x82\xa4\xe0\x92"
+            "\xa4\x72\xa4\xe0\x82\xb4\x62\xa4\xe0\xf1\x92\xb4\x52"
+            "\xb4\xe0\x92\xb4\x42\xc4\xe0\x82\xc4\x42\xb4\xe0\x92"
+            "\xc4\x32\xc4\xe0\x92\xc4\x22\xd4\xe0\x92\xd4\x12\xd4"
+            "\xe0\x82\xe6\xd4\xe0\x92\xe5\xe4\xe0\x84\xd5\xe4\xe0"
+            "\x67\xc4\xe5\xe0\x2e\x01\x83\x9e\x03\xae\x93\x9e\x02"
+            "\xb0" }  },
+      /* --- pixel bitmap for cmmi450 char#78 N --- */
+      {  78,17838,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 52,   43, 3,287, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xac\xe0\x1e\x01\xe0\x27\xe0\x46\xe0\x77\xe0\x54"
+            "\xe0\x87\xe0\x53\x70\xf1\xe0\x12\x25\xe0\x42\x80\xe0"
+            "\x12\x26\xe0\x32\xe0\x92\x35\xe0\x32\xe0\x82\x45\xe0"
+            "\x22\x90\xf2\xe2\x55\xe0\x12\x90\xf1\xd2\x75\xd2\xa0"
+            "\xf1\xd2\x85\xc2\xa0\xc2\x95\xb2\xb0\xf1\xc2\xa5\xa2"
+            "\xb0\xc2\xa6\x92\xb0\xf1\xb2\xc5\x82\xc0\xf1\xb2\xd5"
+            "\x72\xc0\xa2\xe6\x52\xd0\xf1\xa2\xe0\x15\x52\xd0\xa2"
+            "\xe0\x25\x42\xe0\x82\xe0\x35\x32\xe0\x92\xe0\x36\x22"
+            "\xe0\xf1\x92\xe0\x45\x22\xe0\xf2\x82\xe0\x67\xe0\x10"
+            "\x82\xe0\x76\xe0\x82\xe0\x85\xe0\x92\xe0\x94\xe0\x84"
+            "\xe0\x84\xe0\x67\xe0\x74\xe0\x2f\x1e\x01\xe0\x42\xe0"
+            "\x34" }  },
+      /* --- pixel bitmap for cmmi450 char#79 O --- */
+      {  79,18893,                      /* character number, location */
+         44, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 43,   45, 3,263, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x98\xe0\xe0\x34\x74\xe0\xc4\xb4\xe0\x84\xe0\x13"
+            "\xe0\x54\xe0\x43\xe0\x34\xe0\x54\xe0\x14\xe0\x74\xd4"
+            "\xe0\x85\xa5\xe0\xa4\xa4\xe0\xb5\x84\xe0\xc5\x75\xe0"
+            "\xc5\x65\xe0\xe5\x46\xe0\xe5\x45\xe0\xe0\x15\x36\xe0"
+            "\xe0\x15\x35\xe0\xe0\x25\xf1\x26\xe0\xe0\x16\xf2\x16"
+            "\xe0\xe0\x26\x0f\x26\xe0\xe0\x26\x1f\x26\xe0\xe0\x16"
+            "\x2f\x15\xe0\xe0\x16\x35\xe0\xe6\x45\xe0\xe5\x55\xe0"
+            "\xd6\x56\xe0\xc5\x75\xe0\xb5\x85\xe0\xa5\x95\xe0\x95"
+            "\xb5\xe0\x84\xd4\xe0\x74\xe5\xe0\x54\xe0\x24\xe0\x35"
+            "\xe0\x44\xe0\x14\xe0\x84\xb4\xe0\xc4\x65\xe0\xe0\x29"
+            "\xe0\x94" }  },
+      /* --- pixel bitmap for cmmi450 char#80 P --- */
+      {  80,20186,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   43, 3,191, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0c\xe0\x4e\x0e\x01\xe0\x75\xd6\xe0\x65\xe0\x16"
+            "\xe0\x45\xe0\x26\xe0\x25\xe0\x45\x10\xf2\xe0\x15\xe0"
+            "\x46\xf3\xe5\xe0\x56\xf1\xd5\xe0\x56\x10\xd5\xe0\x46"
+            "\xe0\x15\xe0\x45\xe0\x15\xe0\x45\xe0\x25\xe0\x35\xe0"
+            "\x35\xe0\x15\xe0\x55\xc6\xe0\x6e\x08\xb0\xf2\xb5\xe0"
+            "\xe0\xf3\xa5\xe0\xe0\x10\xf3\x95\xe0\xe0\x20\xf3\x85"
+            "\xe0\xe0\x30\xf2\x75\xe0\xe0\x40\x66\xe0\xe0\x4e\x04"
+            "\xe0\xce\x03\xe0\xd5" }  },
+      /* --- pixel bitmap for cmmi450 char#81 Q --- */
+      {  81,21325,                      /* character number, location */
+         44, 3,  -12, 3,      /* topleft row,col, and botleft row,col */
+          { 43,   56, 3,355, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x98\xe0\xe0\x34\x74\xe0\xc4\xb4\xe0\x84\xe4\xe0"
+            "\x54\xe0\x34\xe0\x34\xe0\x54\xe0\x14\xe0\x74\xd4\xe0"
+            "\x85\xa5\xe0\xa4\xa4\xe0\xb5\x85\xe0\xb5\x75\xe0\xc5"
+            "\x65\xe0\xd6\x46\xe0\xd6\x45\xe0\xe6\x36\xe0\xe6\x35"
+            "\xe0\xe0\x16\xf1\x26\xe0\xe0\x16\xf2\x16\xe0\xe0\x26"
+            "\x0f\x26\xe0\xe0\x26\x16\xe0\xe0\x25\x26\xe0\xe0\x16"
+            "\x25\xe0\xe0\x26\x2f\x15\xe0\xe0\x16\x35\xe0\xe0\x15"
+            "\x45\xe0\xe5\x55\xe0\xd6\x55\xe0\xd5\x75\xe0\xb5\x85"
+            "\xa4\xa5\x95\x82\x42\x84\xb4\x71\x71\x74\xd4\x61\x81"
+            "\x54\xe5\x41\x91\x44\xe0\x24\x41\x91\x25\xe0\x44\x31"
+            "\x96\xe0\x84\x11\x94\xe0\xc5\x64\xc1\xe0\x39\x22\xc1"
+            "\xe0\xe2\xb2\xe0\xe2\xb1\xe0\xe0\x13\x92\xe0\xe0\x13"
+            "\x82\xe0\xe0\x24\x54\x80\xf1\xe0\x8c\x90\xe0\x8b\xe0"
+            "\xe0\x4a\xe0\xe0\x68\xe0\xe0\x85\xe0" }  },
+      /* --- pixel bitmap for cmmi450 char#82 R --- */
+      {  82,22878,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   44, 3,233, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0a\xe0\x6e\x0d\xe0\x95\xc6\xe0\x75\xe5\xe0\x65"
+            "\xe0\x15\xe0\x45\xe0\x35\x20\xf2\xe0\x15\xe0\x36\x10"
+            "\xf3\xe5\xe0\x46\x10\xd5\xe0\x46\xe0\x15\xe0\x45\xe0"
+            "\x25\xe0\x36\xe0\x25\xe0\x35\xe0\x25\xe0\x34\xe0\x45"
+            "\xe0\x15\xe0\x55\xe4\xe0\x75\xb5\xe0\x8e\x04\xe0\xc5"
+            "\xb4\xe0\xa5\xd3\xe0\x95\xe3\xe0\x75\xe0\x14\xe0\x65"
+            "\xe0\x15\x90\xf1\xa5\xe0\x24\x90\xf3\x95\xe0\x25\x90"
+            "\xf3\x85\xe0\x26\x90\xf2\x75\xe0\x36\x72\x66\xe0\x36"
+            "\x62\x1e\x04\xc5\x52\x2e\x04\xd5\x32\xe0\xe0\x87\x41" }  },
+      /* --- pixel bitmap for cmmi450 char#83 S --- */
+      {  83,24097,                      /* character number, location */
+         44, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 37,   45, 3,229, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x58\x91\xe0\x3c\x62\xe0\x14\x74\x42\xe0\x13\xb3"
+            "\x23\xe3\xe6\xd3\xe0\x16\xc3\xe0\x34\xc4\xe0\x34\x20"
+            "\xf1\x94\xe0\x53\x20\xf3\x84\xe0\x62\x30\xf1\x85\xe0"
+            "\xa0\x86\xe0\xe0\x37\xe0\xe0\x39\xe0\xed\xe0\xbe\x01"
+            "\xe0\x9e\x02\xe0\x8e\x02\xe0\xae\xe0\xda\xe0\xe0\x28"
+            "\xe0\xe0\x36\x70\xf1\xe0\xb5\x70\xf1\xe0\xc4\x70\xf2"
+            "\x32\xe0\x74\x70\xf1\x23\xe0\x64\x80\x23\xe0\x63\xb3"
+            "\xe0\x54\xa4\xe0\x44\xb5\xe0\x33\xc6\xe0\x13\xd3\x13"
+            "\xc4\xd3\x35\x75\xe2\x6d\xe0\x21\xa7\xe0\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#84 T --- */
+      {  84,25271,                      /* character number, location */
+         43, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 44,   43, 3,185, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x5e\x0e\x0b\x4e\x0e\x0b\x56\xb5\xb6\x54\xd5\xd4\x43"
+            "\xe0\x15\xe3\x43\xe5\xe0\x13\x42\xe0\x15\xe0\x13\x33"
+            "\xe0\x15\xe0\x12\x42\xe0\x25\xe0\x12\x42\xe0\x15\xe0"
+            "\x22\x20\xf2\x12\xe0\x25\xe0\x22\x22\xe0\x25\xe0\x22"
+            "\x30\xf2\xe0\x45\xe0\x70\xf3\xe0\x35\xe0\x80\xf3\xe0"
+            "\x25\xe0\x90\xf3\xe0\x15\xe0\xa0\xf3\xe5\xe0\xb0\xf3"
+            "\xd5\xe0\xc0\xf2\xc5\xe0\xd0\xb6\xe0\xd0\xf1\x2e\x09"
+            "\xe0\x54" }  },
+      /* --- pixel bitmap for cmmi450 char#85 U --- */
+      {  85,26381,                      /* character number, location */
+         43, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 43,   44, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x1e\x04\x9e\x01\x76\xe0\x56\xc5\xe0\x74\xd5\xe0"
+            "\x73\x70\xf3\x65\xe0\x82\x80\xf3\x55\xe0\x82\x90\xf3"
+            "\x45\xe0\x82\xa0\xf3\x35\xe0\x82\xb0\xf3\x25\xe0\x82"
+            "\xc0\xf3\x15\xe0\x82\xdf\x25\xe0\x82\xef\x15\xe0\x72"
+            "\xe0\x15\xe0\x62\xe0\x20\xf1\x14\xe0\x52\xe0\x30\x14"
+            "\xe0\x42\xe0\x64\xe0\x22\xe0\x83\xe3\xe0\x94\xc3\xe0"
+            "\xc4\x74\xe0\xe0\x1c\xe0\xe0\x58\xe0\xd0" }  },
+      /* --- pixel bitmap for cmmi450 char#86 V --- */
+      {  86,27445,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   44, 3,297, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1e\x02\xe0\x1e\x0e\x03\xe0\x1d\x76\xe0\x97\xa5\xe0"
+            "\xb3\xd5\xe0\xb2\xe5\xe0\xa3\xe5\xe0\xa2\xe0\x16\xe0"
+            "\x82\xe0\x35\xe0\x82\xe0\x35\xe0\x72\xb0\xf1\x75\xe0"
+            "\x62\xc0\x75\xe0\x52\xe0\x65\xe0\x43\xe0\x65\xe0\x42"
+            "\xe0\x76\xe0\x22\xe0\x95\xe0\x22\xe0\x95\xe0\x12\xe0"
+            "\x20\xf1\x85\xe2\xe0\x30\x85\xd2\xe0\xc5\xc3\xe0\xc6"
+            "\xb2\xe0\xd6\xa2\xe0\xe0\x15\x93\xe0\xe0\x15\x92\xe0"
+            "\x70\xf1\x95\x82\xe0\x80\x95\x72\xe0\xe0\x45\x62\xe0"
+            "\xe0\x56\x52\xe0\xe0\x65\x42\xe0\xe0\x75\x33\xe0\xe0"
+            "\x75\x32\xe0\xc0\xf1\xa5\x22\xe0\xd0\xa5\x12\xe0\xe0"
+            "\xf1\xa7\xe0\xe0\x10\xf1\xb5\xe0\xe0\x20\xb4\xe0\xe0"
+            "\x30\xf1\xb3\xe0\xe0\x41" }  },
+      /* --- pixel bitmap for cmmi450 char#87 W --- */
+      {  87,28940,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 63,   44, 3,441, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1e\x02\x8e\x02\x8e\x0e\x02\x9e\x02\x8d\x67\xe0\x37"
+            "\xe0\x27\x95\xe0\x65\xe0\x44\xb5\xe0\x65\xe0\x52\xc5"
+            "\xe0\x56\xe0\x42\xd6\xe0\x37\xe0\x42\xd6\xe0\x37\xe0"
+            "\x32\xe0\x15\xe0\x22\x15\xe0\x32\xe0\x15\xe0\x22\x15"
+            "\xe0\x22\xe0\x25\xe0\x12\x25\xe0\x13\xe0\x25\xe0\x12"
+            "\x25\xe0\x12\xb0\xf1\x65\xe2\x35\xe2\xc0\x65\xd2\x45"
+            "\xd2\xe0\x55\xc3\x45\xd2\xe0\x55\xc2\x55\xc2\xe0\x65"
+            "\xb2\x65\xc2\xe0\x65\xb2\x65\xb2\xe0\x75\xa2\x76\x93"
+            "\xe0\x75\xa2\x76\x92\xe0\x20\xf1\x65\x92\x95\x82\xe0"
+            "\x30\x65\x82\xa5\x72\xe0\xa6\x63\xa5\x72\xe0\xb5\x62"
+            "\xb5\x62\xe0\xc5\x52\xc5\x62\xe0\xc5\x52\xc5\x52\xe0"
+            "\xd5\x42\xd5\x43\xe0\xd5\x42\xd5\x42\xe0\x70\xf1\x75"
+            "\x32\xe5\x32\xe0\x80\x75\x22\xe0\x15\x22\xe0\xe0\x25"
+            "\x13\xe0\x15\x22\xe0\xe0\x25\x12\xe0\x25\x12\xe0\xe0"
+            "\x37\xe0\x35\x12\xe0\xe0\x37\xe0\x37\xe0\xe0\x46\xe0"
+            "\x47\xe0\xe0\x46\xe0\x55\xe0\xc0\xf1\x75\xe0\x64\xe0"
+            "\xd0\xf1\x74\xe0\x73\xe0\xe0\x82\xe0\x82\xe0\xe0\x10" }  },
+      /* --- pixel bitmap for cmmi450 char#88 X --- */
+      {  88,30377,                      /* character number, location */
+         43, 1,    0, 1,      /* topleft row,col, and botleft row,col */
+          { 53,   43, 2,165, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0c\x10\x0a\x0f\x0c\x10\x0a\x0e\x12\x08\x0f\x08\x17"
+            "\x05\x12\x04\x1a\x06\x11\x03\x1c\x05\x10\x03\x1d\x06"
+            "\x0e\x03\x1e\x06\x0d\x03\x20\x06\x0b\x03\x21\x06\x0b"
+            "\x02\x23\x05\x0a\x02\x24\x06\x08\x02\x26\x05\x07\x02"
+            "\x27\x06\x05\x02\x28\x06\x04\x02\x2a\x06\x02\x02\x2b"
+            "\x06\x01\x02\x2d\x08\x2d\x07\x2f\x05\x17\x00\xff\x01"
+            "\x19\x06\x16\x00\xff\x01\x18\x08\x15\x00\x17\x02\x02"
+            "\x05\x2b\x02\x03\x06\x29\x02\x05\x05\x28\x02\x06\x06"
+            "\x26\x02\x07\x06\x25\x02\x09\x06\x23\x02\x0a\x06\x22"
+            "\x02\x0c\x05\x21\x03\x0c\x06\x1f\x03\x0e\x05\x1e\x03"
+            "\x0f\x06\x1c\x03\x10\x06\x1b\x03\x12\x06\x19\x03\x13"
+            "\x06\x18\x03\x15\x05\x17\x04\x15\x06\x13\x08\x13\x08"
+            "\x0e\x0e\x0d\x11\x08\x0f\x0d\x11\x08" }  },
+      /* --- pixel bitmap for cmmi450 char#89 Y --- */
+      {  89,31585,                      /* character number, location */
+         43, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 46,   43, 3,261, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x03\xe0\x2e\x0e\x02\xe0\x1e\x57\xe0\x97\xa6\xe0"
+            "\xa3\xd6\xe0\x93\xe0\x15\xe0\x92\xe0\x26\xe0\x72\xe0"
+            "\x45\xe0\x62\xe0\x56\xe0\x42\xe0\x66\xe0\x32\xe0\x85"
+            "\xe0\x23\xe0\x86\xe3\xe0\x96\xd3\xe0\xb5\xd2\xe0\xc6"
+            "\xb2\xe0\xd6\xa2\xe0\xe0\x16\x82\xe0\xe0\x26\x72\xe0"
+            "\xe0\x45\x63\xe0\xe0\x46\x43\xe0\xe0\x56\x33\xe0\xe0"
+            "\x75\x32\xe0\xe0\x86\x12\xe0\xe0\x98\xe0\xe0\xb6\xe0"
+            "\xc0\xf2\xe5\xe0\xd0\xe4\xe0\xe0\xf2\xd5\xe0\xe0\xd4"
+            "\xe0\xe0\x10\xf2\xc5\xe0\xe0\x10\xc4\xe0\xe0\x20\xf2"
+            "\xb5\xe0\xe0\x20\xa6\xe0\xe0\x6e\x04\xe0\xee\x03\xe0"
+            "\xb3" }  },
+      /* --- pixel bitmap for cmmi450 char#90 Z --- */
+      {  90,32788,                      /* character number, location */
+         43, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 43,   43, 2,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0d\x1e\x0c\x1e\x0d\x09\x0f\x05\x0e\x06\x11\x05\x0e"
+            "\x05\x12\x06\x0e\x04\x12\x06\x0f\x03\x12\x06\x0f\x03"
+            "\x12\x06\x10\x03\x12\x05\x11\x02\x12\x05\x11\x03\x11"
+            "\x05\x12\x02\x11\x05\x13\x02\x10\x05\x13\x02\x10\x05"
+            "\x25\x05\x25\x06\x24\x06\x24\x06\x24\x06\x25\x05\x25"
+            "\x05\x25\x05\x25\x05\x25\x05\x25\x05\x25\x05\x25\x05"
+            "\x0f\x02\x14\x06\x0f\x02\x13\x06\x0f\x02\x13\x06\x10"
+            "\x02\x13\x05\x11\x02\x12\x05\x11\x03\x11\x05\x12\x02"
+            "\x11\x05\x13\x02\x10\x05\x13\x03\x0f\x05\x13\x03\x0f"
+            "\x05\x14\x03\x0e\x05\x14\x04\x0d\x06\x12\x05\x0d\x06"
+            "\x12\x06\x0c\x06\x10\x09\x0b\xff\x01\x1f\x0c" }  },
+      /* --- pixel bitmap for cmmi450 char#91 \flat --- */
+      {  91,130976,                     /* character number, location */
+         47, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 18,   48, 3,105, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xfe\x02\xe0\x2f\x22\xe0\x22\x54\x72\x2a\x4e\x01\x35"
+            "\x65\x23\x95\x12\xa5\x1f\x62\xb5\x0f\x12\xa5\x12\xa4"
+            "\x22\x95\x22\x94\x32\x85\x32\x84\x42\x74\x52\x64\x62"
+            "\x54\x72\x44\x82\x34\x92\x24\xa2\x14\xb5\xd4\xe2\xe0"
+            "\x20" }  },
+      /* --- pixel bitmap for cmmi450 char#92 \natural --- */
+      {  92,131831,                     /* character number, location */
+         45, 4,  -13, 4,      /* topleft row,col, and botleft row,col */
+          { 16,   58, 3,68, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xfc\x02\xe2\xc4\x97\x6a\x3b\x0f\x1e\x02\x0b\x3a\x67"
+            "\x92\x0f\xe2\xc2\x0f\x32\xc2\x02\x97\x6a\x3b\x0f\x1e"
+            "\x02\x0b\x3a\x67\x94\xc2\xf7\xe2" }  },
+      /* --- pixel bitmap for cmmi450 char#93 \sharp --- */
+      {  93,132812,                     /* character number, location */
+         44, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 18,   57, 3,131, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xd2\x30\xf8\x32\x82\x30\x32\x82\x12\x32\x76\x32"
+            "\x49\x32\x1c\x2e\x0e\x04\x2c\x12\x39\x42\x36\x72\x32"
+            "\x12\x82\x30\xfe\x32\x82\x30\xf1\x32\x82\x30\x32\x82"
+            "\x12\x32\x76\x32\x49\x32\x1c\x2e\x0e\x04\x2c\x12\x39"
+            "\x42\x36\x72\x32\x12\x82\x30\xf4\x32\x82\x30\xf2\x32"
+            "\xd0" }  },
+      /* --- pixel bitmap for cmmi450 char#94 \smile --- */
+      {  94,133878,                     /* character number, location */
+         23, 3,    9, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   14, 2,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x02\x34\x05\x32\x03\x01\x02\x32\x02\x03\x03\x2e"
+            "\x03\x05\x03\x2c\x03\x07\x03\x2a\x03\x09\x04\x26\x04"
+            "\x0c\x04\x22\x04\x0f\x05\x1e\x05\x12\x06\x18\x06\x16"
+            "\x09\x0e\x09\x1a\x1c\x1f\x16\x27\x0c\x16" }  },
+      /* --- pixel bitmap for cmmi450 char#95 \frown --- */
+      {  95,134778,                     /* character number, location */
+         24, 3,    8, 3,      /* topleft row,col, and botleft row,col */
+          { 56,   16, 2,56, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x16\x0c\x28\x14\x21\x1a\x1c\x09\x0c\x09\x18\x06\x16"
+            "\x06\x14\x05\x1c\x05\x11\x04\x20\x04\x0f\x03\x24\x03"
+            "\x0d\x03\x26\x03\x0a\x03\x2a\x03\x07\x03\x2c\x03\x06"
+            "\x02\x2e\x02\x05\x02\x30\x02\x03\x02\x32\x02\x01\xff"
+            "\x01\x02\x34\x02" }  },
+      /* --- pixel bitmap for cmmi450 char#96 \ell --- */
+      {  96,105902,                     /* character number, location */
+         44, 0,   -1, 0,      /* topleft row,col, and botleft row,col */
+          { 25,   45, 3,207, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x54\xe0\x62\x31\xe0\x42\x42\xe0\x22\x61\xe0\x13"
+            "\x61\xe0\x12\x62\xe3\x62\xf1\xd3\x72\xc3\x82\xc3\x72"
+            "\xc4\x72\xc3\x82\x10\xf1\xa4\x72\x20\xa3\x72\xc4\x72"
+            "\xc4\x62\xc4\x72\xc4\x62\xd4\x52\xe4\x43\xd4\x52\xe4"
+            "\x42\xe0\x14\x32\xe0\x24\x22\xe0\x33\x22\xe0\x34\x13"
+            "\xe0\x37\xe0\x46\xe0\x55\xe0\x64\xe0\x73\xe0\x74\xe0"
+            "\x65\xe0\x56\xe0\x43\x13\xe0\x33\x23\xe0\x32\x42\xd2"
+            "\x83\xb2\x93\xa2\xb2\x92\xd1\x73\xe2\x43\xe0\x45\x94" }  },
+      /* --- pixel bitmap for cmmi450 char#97 a --- */
+      {  97,33842,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 28,   29, 3,125, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc5\xe0\x73\x41\xe0\x43\x71\x22\xc3\x86\xa3\xa5\x94"
+            "\xa5\x84\xb4\x85\xb4\x84\xc4\x75\xc4\x74\xc4\x60\xf2"
+            "\x15\xc4\x6f\x35\xc4\x74\xc4\x71\x0f\x24\xc4\x62\x04"
+            "\xb4\x62\x23\xa5\x62\x23\xa1\x13\x61\x43\x81\x23\x52"
+            "\x43\x71\x33\x51\x63\x42\x53\x31\x95\x94\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#98 b --- */
+      {  98,34802,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   44, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xb0\xf1\x29\xc0\x65\xe0\x54\xc0\xf3\x64\xd0\xf3"
+            "\x54\xe0\xf1\x44\xe0\x10\x44\x45\xa4\x22\x52\x74\x22"
+            "\x72\x64\x11\x93\x55\xa4\x45\xb3\x35\xc3\x10\xf1\x24"
+            "\xd4\x24\xc5\xf3\x14\xd5\x0f\x24\xd5\x14\xd4\x24\xc5"
+            "\x2f\x13\xd4\x33\xc4\x43\xc3\x62\xb4\x63\x94\x82\x93"
+            "\x93\x63\xc3\x43\xe0\x16\xc0" }  },
+      /* --- pixel bitmap for cmmi450 char#99 c --- */
+      {  99,35735,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   29, 3,101, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd7\xe3\x52\xb3\x91\x93\xa2\x73\x94\x54\x95\x53\x96"
+            "\x44\x96\x34\xa5\x35\xb3\x45\xe0\x20\xf2\x15\xe0\x3f"
+            "\x45\xe0\x44\xe0\x54\xe0\x45\xe0\x32\x13\xe0\x32\x14"
+            "\xe0\x12\x33\xe2\x43\xc3\x63\xa2\x93\x63\xe7\x94" }  },
+      /* --- pixel bitmap for cmmi450 char#100 d --- */
+      { 100,36763,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   44, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xa5\xf1\xe0\x59\x10\xe0\x95\xe0\xb4\x10\xf3\xe0"
+            "\x94\x20\xf3\xe0\x84\x30\xf1\xe0\x74\x40\xc5\x44\xe3"
+            "\x41\x34\xc3\x71\x14\xc3\x86\xb3\xa5\xa4\xa5\x94\xb4"
+            "\x95\xb4\x94\xc4\x85\xc4\x84\xc4\x70\xf2\x15\xc4\x7f"
+            "\x35\xc4\x84\xc4\x71\x1f\x24\xc4\x62\x14\xb4\x62\x33"
+            "\xa5\x62\x33\xa1\x13\x61\x53\x81\x23\x52\x53\x71\x33"
+            "\x51\x73\x42\x53\x31\xa5\x94\x65" }  },
+      /* --- pixel bitmap for cmmi450 char#101 e --- */
+      { 101,37724,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   29, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xd7\xd4\x52\xb3\x91\x84\xa2\x64\xb2\x54\xc2\x44\xd2"
+            "\x35\xd2\x34\xe2\x25\xd2\x34\xc3\x35\xa4\x4e\x02\x75"
+            "\xe0\x3f\x55\xe0\x45\xe0\x31\xf1\x14\xe0\x22\x14\xe0"
+            "\x12\x33\xe2\x53\xb3\x72\xa2\xa2\x63\xe7\x95" }  },
+      /* --- pixel bitmap for cmmi450 char#102 f --- */
+      { 102,38934,                      /* character number, location */
+         44, 3,  -13, 3,      /* topleft row,col, and botleft row,col */
+          { 31,   57, 3,175, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x95\xe0\xa3\x32\xe0\x83\x52\xe0\x63\x44\xe0\x63"
+            "\x36\xe0\x44\x36\xe0\x44\x26\xe0\x53\x45\xe0\x44\x44"
+            "\x20\xf2\xe0\x34\xa0\xf4\xe0\x24\xb0\xf1\xae\x02\x50"
+            "\xf3\xe0\x14\xc0\xf4\xe4\xd0\xf4\xd4\xe0\xf4\xc4\xe0"
+            "\x10\xf4\xb4\xe0\x20\xf3\xa4\xe0\x30\xa3\xe0\x63\x44"
+            "\xe0\x55\x34\xe0\x4f\x16\x33\xe0\x55\x33\xe0\x64\x42"
+            "\xe0\x81\x53\xe0\x91\x42\xe0\xb4\xe0\xa0" }  },
+      /* --- pixel bitmap for cmmi450 char#103 g --- */
+      { 103,40015,                      /* character number, location */
+         28, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   41, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x25\xe0\x83\x42\xe0\x43\x72\x22\xc3\x96\xa3\xa6"
+            "\x94\xb5\x84\xc4\x85\xc4\x84\xd4\x75\xd4\x74\xd4\x20"
+            "\xf2\x55\xd4\x20\xf3\x45\xd4\x30\x45\xc4\x40\xf1\x44"
+            "\xd4\x40\x44\xc5\x93\xc4\xa4\xa5\xb3\x91\x14\xc2\x81"
+            "\x24\xd2\x52\x24\xe0\x25\x44\x60\xf1\xe0\x54\x60\xf2"
+            "\xe0\x44\x70\x23\xd3\x95\xb4\x86\xa4\x96\xa3\xa5\xa3"
+            "\xb4\xa3\xd4\x73\xe0\x49\xe0\x24" }  },
+      /* --- pixel bitmap for cmmi450 char#104 h --- */
+      { 104,41074,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 31,   44, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa5\xe0\x20\xf1\x59\xe0\x30\x95\xe0\xd4\xe0\x30\xf3"
+            "\x94\xe0\x40\xf3\x84\xe0\x50\xf1\x74\xe0\x60\x74\x56"
+            "\xe0\x24\x32\x53\xd4\x22\x83\xc4\x12\x93\xc6\xa4\xb5"
+            "\xb4\x50\xf1\x55\xc4\x50\xf1\x54\xd4\x50\xf3\x44\xd4"
+            "\x60\xf2\x34\xd4\x70\x34\xc4\xa4\xd4\x71\xf1\x24\xc4"
+            "\x72\x24\xc4\x71\x24\xc4\x72\x24\xc4\x71\x34\xc4\x62"
+            "\x34\xd3\x61\x34\xe3\x51\x44\xe0\x12\x32\x62\xe0\x35"
+            "\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#105 i --- */
+      { 105,42056,                      /* character number, location */
+         42, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 17,   43, 3,123, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd3\xd5\xf1\xb6\xb5\xd3\x20\xf7\xe0\x30\x74\xb2\x32"
+            "\x92\x43\x72\x54\x61\x64\x30\xf1\x22\x64\x30\x12\x74"
+            "\x30\xf1\x12\x64\x40\xf2\x84\x50\xf1\x74\x60\xf2\x64"
+            "\x70\x54\x71\xf1\x54\x62\x44\x71\x10\xf1\x44\x62\x10"
+            "\x43\x62\x63\x61\x82\x51\x93\x31\xc4\x61" }  },
+      /* --- pixel bitmap for cmmi450 char#106 j --- */
+      { 106,43075,                      /* character number, location */
+         42,-1,  -13,-1,      /* topleft row,col, and botleft row,col */
+          { 26,   55, 3,161, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x83\xe0\x85\xe0\x66\xf1\xe0\x65\x10\xe0\x73\x20"
+            "\xf7\xe0\xc0\xe0\x15\xe0\x62\x32\xe0\x32\x62\xe0\x12"
+            "\x73\xe1\x83\xd2\x83\x30\xf1\x92\x84\x30\xf1\x82\x94"
+            "\x30\xf3\xe0\x44\x40\xf3\xe0\x34\x50\xf3\xe0\x24\x60"
+            "\xf3\xe0\x14\x70\xf3\xe4\x80\xf2\xd4\x90\x23\x74\xb5"
+            "\x64\xa6\x63\xb6\x53\xc5\x53\xd4\x53\xe0\x12\x53\xe0"
+            "\x45\xe0\x41" }  },
+      /* --- pixel bitmap for cmmi450 char#107 k --- */
+      { 107,44172,                      /* character number, location */
+         43, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   44, 3,203, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa5\xe0\xf1\x59\xe0\x10\x95\xe0\xb4\xe0\x10\xf3\x94"
+            "\xe0\x20\xf3\x84\xe0\x30\xf1\x74\xe0\x40\x74\xb5\x94"
+            "\x92\x42\x74\x91\x54\x64\x81\x55\x64\x71\x56\x64\x61"
+            "\x66\x54\x61\x75\x64\x51\x93\x74\x41\xe0\x64\x31\xe0"
+            "\x64\x31\xe0\x74\x12\xe0\x85\xe0\xaa\xe0\x44\x54\xe0"
+            "\x24\x64\xe0\x14\x74\xe4\x84\xc4\x94\x81\x10\xf2\x24"
+            "\x94\x72\x10\xf1\x14\xa3\x72\x20\x14\xa3\x71\x44\xa3"
+            "\x62\x34\xc3\x51\x44\xd2\x41\x62\xe0\x15\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#108 l --- */
+      { 108,45018,                      /* character number, location */
+         43, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 14,   44, 3,95, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x95\xf1\x49\x10\x85\xa4\x10\xf3\x84\x20\xf3\x74\x30"
+            "\xf3\x64\x40\xf3\x54\x50\xf3\x44\x60\xf3\x34\x70\xf3"
+            "\x24\x80\x14\x71\x10\xf2\x14\x62\x1f\x14\x62\x20\x13"
+            "\x61\x43\x52\x43\x51\x63\x31\x94\x61" }  },
+      /* --- pixel bitmap for cmmi450 char#109 m --- */
+      { 109,46339,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 52,   29, 3,203, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\xa6\xb6\xd2\x32\x72\x53\x72\x53\xb1\x52\x42\x83"
+            "\x42\x83\x92\x53\x22\x93\x32\x93\x82\x63\x12\xa4\x12"
+            "\xa4\x72\x65\xb6\xb4\x71\x65\xc5\xc4\x62\x65\xc5\xc4"
+            "\x50\xf1\x12\x64\xd4\xd4\x50\xf3\x84\xd4\xd4\x60\xf2"
+            "\x74\xd4\xd4\x70\x74\xd4\xc4\xe4\xd4\xd4\x71\xf1\x64"
+            "\xd4\xc4\x72\x64\xd4\xc4\x71\x10\xf1\x54\xd4\xc4\x72"
+            "\x10\x54\xd4\xc4\x62\x74\xd4\xd3\x61\x74\xd4\xe3\x51"
+            "\x84\xd4\xe0\x12\x32\xa2\xe0\x12\xe0\x35\x60" }  },
+      /* --- pixel bitmap for cmmi450 char#110 n --- */
+      { 110,47530,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 35,   29, 3,151, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\xa6\xd2\x32\x72\x53\xb1\x43\x42\x83\x92\x53\x22"
+            "\x93\x82\x63\x12\xa4\x72\x65\xb4\x71\x65\xc4\x62\x65"
+            "\xc4\x50\xf1\x12\x64\xd4\x50\xf3\x84\xd4\x60\xf2\x74"
+            "\xd4\x70\x74\xc4\xe4\xd4\x71\xf1\x64\xc4\x72\x64\xc4"
+            "\x71\x10\xf1\x54\xc4\x72\x10\x54\xc4\x62\x74\xd3\x61"
+            "\x74\xe3\x51\x84\xe0\x12\x32\xa2\xe0\x35\x64" }  },
+      /* --- pixel bitmap for cmmi450 char#111 o --- */
+      { 111,48392,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 26,   29, 3,111, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd6\xe0\x43\x52\xe3\x83\xb3\xa3\x84\xb3\x74\xc4\x63"
+            "\xd4\x54\xd5\x34\xe5\xf1\x25\xe5\xf2\x15\xe0\x15\x0f"
+            "\x25\xe0\x15\x15\xe0\x14\x25\xe5\x24\xe0\x14\x34\xe5"
+            "\x34\xe4\x53\xd4\x64\xc3\x74\xb3\x93\xa3\xb3\x83\xd3"
+            "\x53\xe0\x37\xd4" }  },
+      /* --- pixel bitmap for cmmi450 char#112 p --- */
+      { 112,49456,                      /* character number, location */
+         28,-2,  -12,-2,      /* topleft row,col, and botleft row,col */
+          { 32,   40, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x94\x95\xc2\x32\x62\x42\xb1\x52\x41\x72\x92\x53\x12"
+            "\x83\x72\x63\x11\x94\x62\x64\xb3\x61\x65\xb4\xf1\x42"
+            "\x64\xc4\x42\x64\xb5\xf3\xb4\xc5\xf2\xa4\xc5\x10\xa4"
+            "\xc4\xb4\xc5\x20\xf1\x94\xc4\x30\x94\xb4\xc5\xb4\xc5"
+            "\xa4\xd5\x94\xe6\x83\xe4\x21\x73\xe0\x14\x31\x43\xe0"
+            "\x34\x45\xe0\x54\xe0\x70\xf3\x64\xe0\x80\xf2\x54\xe0"
+            "\x90\x45\xe0\x9e\xe0\x4d\xe0\x53" }  },
+      /* --- pixel bitmap for cmmi450 char#113 q --- */
+      { 113,50497,                      /* character number, location */
+         28, 3,  -12, 3,      /* topleft row,col, and botleft row,col */
+          { 26,   40, 3,135, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc5\x81\xa3\x42\x52\x83\x72\x32\x83\x92\x13\x73\xa6"
+            "\x64\xb5\x10\xf1\x44\xc4\x20\x34\xd4\x45\xd4\x44\xd4"
+            "\x30\xf2\x15\xd4\x3f\x35\xd4\x4f\x34\xd4\x54\xc4\x73"
+            "\xb5\x73\xa6\x83\x82\x14\x92\x72\x14\xb2\x43\x24\xc6"
+            "\x44\xe0\x84\x70\xf3\xe4\x80\xf2\xd4\x90\xc5\xe0\x2e"
+            "\x01\xbe\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#114 r --- */
+      { 114,51488,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 26,   29, 3,107, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x64\x85\x72\x32\x62\x42\x51\x52\x32\x54\x32\x53\x12"
+            "\x55\x22\x63\x11\x56\x22\x65\x56\x21\x65\x65\x22\x64"
+            "\x83\x20\xf1\x12\x64\xd0\xf3\x84\xe0\xf3\x74\xe0\x10"
+            "\xf3\x64\xe0\x20\xf3\x54\xe0\x30\xf1\x44\xe0\x40\x52"
+            "\xe0\x50" }  },
+      /* --- pixel bitmap for cmmi450 char#115 s --- */
+      { 115,52520,                      /* character number, location */
+         28, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 23,   29, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xc7\xe3\x62\xa3\x92\x83\xb2\x72\xc2\x63\xa4\xf1\x53"
+            "\xa5\x54\xa3\x64\xe0\x56\xe0\x3a\xec\xcc\xcc\xe0\x19"
+            "\xe0\x36\xe0\x54\x52\xc4\x44\xc3\x20\xf1\x16\xb3\x26"
+            "\xb3\x44\xc3\x42\xd3\x52\xd2\x72\xb2\x93\x63\xd8\xa2" }  },
+      /* --- pixel bitmap for cmmi450 char#116 t --- */
+      { 116,53330,                      /* character number, location */
+         39, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 20,   40, 3,99, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xc3\x50\xf3\xb4\x50\xf3\xa4\x60\xf2\x94\x70\x1e\x0e"
+            "\x0a\x10\xf2\x84\x80\xf3\x74\x90\xf3\x64\xa0\xf3\x54"
+            "\xb0\x44\xa1\x10\xf1\x44\x92\x10\x44\x82\x54\x92\x54"
+            "\x82\x73\x81\x83\x71\x93\x61\xb3\x32\xe5\x83" }  },
+      /* --- pixel bitmap for cmmi450 char#117 u --- */
+      { 117,54438,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 33,   29, 3,143, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe0\xd1\x42\xd3\x82\x53\xb4\x81\x63\xb4\x72\x63"
+            "\xb4\x62\x73\xb4\x62\x64\xa4\x50\xf1\x12\x74\xa4\x50"
+            "\x12\x64\xb4\x50\xf1\x94\xa4\x60\xf1\x84\xb4\x60\xf3"
+            "\x74\xb4\x70\x64\xb4\x71\xf2\x64\xb4\x62\xf1\x64\xa4"
+            "\x62\x10\x64\x95\x61\x93\x91\x13\x52\xa3\x71\x23\x51"
+            "\xc2\x52\x43\x31\xe6\x84\x53" }  },
+      /* --- pixel bitmap for cmmi450 char#118 v --- */
+      { 118,55437,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 28,   29, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xc3\x71\x42\xa5\x42\x53\x95\x41\x63\x95\x32\x63"
+            "\xa4\x22\x73\xa4\x22\x64\xb3\xf1\x12\x74\xb3\x12\x64"
+            "\xc3\xf1\x94\xc2\x10\xf1\x84\xd2\x10\xf2\x74\xd2\x20"
+            "\x74\xc2\x30\xf1\x64\xd2\x30\xf1\x64\xc2\x40\x64\xb2"
+            "\xb4\xb1\xd3\xa2\xd3\x92\xe0\x13\x72\xe0\x33\x52\xe0"
+            "\x66\xb2" }  },
+      /* --- pixel bitmap for cmmi450 char#119 w --- */
+      { 119,56731,                      /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 42,   29, 3,183, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe0\xc3\x71\x42\xd3\x85\x42\x53\xb4\x85\x41\x63"
+            "\xb4\x85\x32\x63\xb4\x94\x22\x73\xb4\x94\x22\x64\xa4"
+            "\xb3\xf1\x12\x74\xa4\xb3\x12\x64\xb4\xb3\xf1\x94\xa4"
+            "\xc2\x10\xf1\x84\xb4\xc2\x10\xf2\x74\xb4\xc2\x20\x74"
+            "\xb4\xc1\x30\xf1\x64\xb4\xc2\x30\x64\xb4\xc1\xa4\xb4"
+            "\xb2\xa4\xb4\xb1\xb4\xa5\xa2\xc3\xa5\xa1\xd4\x82\x13"
+            "\x92\xe3\x81\x33\x72\xe0\x24\x42\x53\x52\xe0\x66\x86"
+            "\xa4" }  },
+      /* --- pixel bitmap for cmmi450 char#120 x --- */
+      { 120,58119,                      /* character number, location */
+         28, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 31,   29, 3,141, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x95\x95\xa2\x52\x52\x42\x82\x72\x32\x53\x62\x83\x12"
+            "\x55\x42\x95\x56\x32\xa5\x56\x32\xa4\x65\x32\xb4\x73"
+            "\x20\xf1\x22\xb4\xc0\xf3\xe4\xd0\xf3\xd4\xe0\xc4\xc1"
+            "\x20\xf1\xc4\xb2\x20\x23\x74\xa2\x45\x55\xa2\x36\x55"
+            "\x92\x46\x46\x92\x45\x52\x13\x82\x54\x52\x32\x72\x72"
+            "\x52\x52\x42\xb5\x85\xa5" }  },
+      /* --- pixel bitmap for cmmi450 char#121 y --- */
+      { 121,59317,                      /* character number, location */
+         28, 1,  -13, 1,      /* topleft row,col, and botleft row,col */
+          { 29,   41, 3,181, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe0\x91\x42\xd3\x51\x53\xb4\x41\x63\xb4\x32\x63"
+            "\xb4\x22\x73\xb4\x22\x64\xa4\x10\xf1\x12\x74\xa4\x10"
+            "\x12\x64\xb4\x10\xf1\x94\xa4\x20\xf1\x84\xb4\x20\xf3"
+            "\x74\xb4\x30\xf3\x64\xb4\x40\xf1\x64\xa4\x50\x64\x95"
+            "\xc3\x95\xd3\x75\xe0\x12\x52\x14\xe0\x26\x34\xe0\xb4"
+            "\xe0\xa4\xa4\xb4\x95\xa4\xa6\x94\x96\x94\xa6\x93\xb5"
+            "\x93\xd2\xa3\xe0\x11\x93\xe0\x32\x53\xe0\x67\xe0\x36" }  },
+      /* --- pixel bitmap for cmmi450 char#122 z --- */
+      { 122,60367,                      /* character number, location */
+         28, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 27,   29, 3,129, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb4\xa2\x97\x82\x99\x72\x8b\x52\x84\x54\x32\x92\xa5"
+            "\x93\xd2\x92\xd2\xe0\xa2\xe0\xa2\xe0\xa2\xe0\xa2\xe0"
+            "\xa2\xe0\x93\xe0\x92\xe0\xa2\xe0\xa2\xe0\xa2\xe0\xa2"
+            "\xe0\xa2\xe2\x82\xe0\x12\x72\xe0\x12\x72\xe0\x13\x68"
+            "\x93\x72\x53\x55\x62\x7b\x62\x8a\x62\xa7\x82\xb5\x94" }  },
+      /* --- pixel bitmap for cmmi450 char#123 \imath --- */
+      { 123,106788,                     /* character number, location */
+         28, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 17,   29, 3,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x74\xb2\x32\x92\x43\x72\x54\x61\x64\x30\xf1\x22\x64"
+            "\x30\x12\x74\x30\xf1\x12\x64\x40\xf2\x84\x50\xf1\x74"
+            "\x60\xf2\x64\x70\x54\x71\xf1\x54\x62\x44\x71\x10\xf1"
+            "\x44\x62\x10\x43\x62\x63\x61\x82\x51\x93\x31\xc4\x64" }  },
+      /* --- pixel bitmap for cmmi450 char#124 \jmath --- */
+      { 124,107655,                     /* character number, location */
+         28,-1,  -13,-1,      /* topleft row,col, and botleft row,col */
+          { 23,   41, 3,113, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x15\xe0\x22\x42\xe2\x62\xc2\x73\xf1\xa2\x83\xf1"
+            "\x92\x84\xf1\x82\x94\xf3\xe0\x44\x10\xf3\xe0\x34\x20"
+            "\xf3\xe0\x24\x30\xf3\xe0\x14\x40\xf3\xe4\x50\xf2\xd4"
+            "\x60\x23\x83\x85\x64\x76\x63\x86\x53\x95\x54\x94\x62"
+            "\xc3\x43\xe0\x16\xe0" }  },
+      /* --- pixel bitmap for cmmi450 char#125 \wp --- */
+      { 125,108880,                     /* character number, location */
+         28, 5,  -13, 5,      /* topleft row,col, and botleft row,col */
+          { 33,   41, 3,255, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x92\xe0\xe0\x12\xe0\xe0\x21\xe0\xe0\x32\xe7\x92\xc3"
+            "\x63\x71\xc2\xa2\x52\xa2\xc3\x41\xa1\xe0\x12\x32\x82"
+            "\xe0\x23\x22\x72\xe0\x33\x12\x72\xe0\x43\x12\x62\xe0"
+            "\x53\x12\x61\xe0\x63\x12\x52\xe0\x63\x12\x42\xe0\x64"
+            "\x0f\x13\x32\xe0\x74\x12\x22\xe0\x84\x13\x12\xe0\x74"
+            "\x25\xe0\x84\x25\x91\xc3\x44\x83\xa4\x54\x63\xb3\x55"
+            "\x62\xb3\x66\x52\xa3\x72\x14\x52\x83\x72\x34\x42\x73"
+            "\x82\x44\x42\x43\xa2\x53\x65\xc2\x54\xe0\x7f\x12\x73"
+            "\xe0\x7f\x12\x82\xe0\x7f\x12\x72\xe0\x81\x81\xe0\x92"
+            "\x62\xe0\x92\x52\xe0\xb1\x42\xe0\xd4\xe0\xd2" }  },
+      /* --- pixel bitmap for cmmi450 char#126 \vec --- */
+      { 126,109654,                     /* character number, location */
+         45,12,   32,12,      /* topleft row,col, and botleft row,col */
+          { 27,   13, 3,55, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x71\x50\xf1\xe0\x63\x40\xe0\x64\xe0\xa4\x2e\x0c"
+            "\x1e\x0e\x0e\x0b\xe0\x75\xe0\x74\xe0\x84\xe0\x84\xe0"
+            "\xa2\x73" }  },
+      /* --- pixel bitmap for cmmi450 char#127 (noname) --- */
+      { 127,110210,                     /* character number, location */
+         41,17,   34,17,      /* topleft row,col, and botleft row,col */
+          { 24,    7, 3,30, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x8a\xbe\x01\x75\x95\x43\xe0\x13\x22\xe0\x42\x1f\x12"
+            "\xe0\x62" }  },
+      /* --- trailer  --- */
+      { -99, -999,  0,0,0,0, { 0,0,0,0, (pixbyte *)"\0" }  }
+   } ;
+
+
+/* --- size=10 for .600gf ---
+ * mf '\mode=preview; mag=magstep(-8.04680493988053835544); input cmmi10'
+ * --------------------------------------------------------------------- */
+/* --- fontdef for cmmi600 --- */
+static	chardef  cmmi600[] =
+   {
+      /* --- pixel bitmap for cmmi600 char#0 \Gamma --- */
+      {   0,64212,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 58,   57, 3,335, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xde\x0e\x0e\x03\xe0\x78\xe0\x69\xe0\x77\xe0\xa6"
+            "\xe0\x77\xe0\xb4\xe0\x78\xe0\xb4\xe0\x78\xe0\xc3\x10"
+            "\xf1\xe0\x67\xe0\xd3\x10\xf1\xe0\x58\xe0\xd3\x10\xe0"
+            "\x57\xe0\xe3\xe0\x67\xe0\xe2\x20\xf1\xe0\x48\xe0\xe2"
+            "\x20\xf1\xe0\x47\xe0\xe0\x12\x20\xe0\x38\xe0\xe0\x12"
+            "\xe0\x58\xe0\xe0\x50\xf1\xe0\x37\xe0\xe0\x60\xf1\xe0"
+            "\x28\xe0\xe0\x60\xf1\xe0\x27\xe0\xe0\x70\xf1\xe0\x18"
+            "\xe0\xe0\x70\xf1\xe0\x17\xe0\xe0\x80\xf1\xe8\xe0\xe0"
+            "\x80\xf1\xe7\xe0\xe0\x90\xf1\xd8\xe0\xe0\x90\xf1\xd7"
+            "\xe0\xe0\xa0\xf1\xc8\xe0\xe0\xa0\xf1\xc7\xe0\xe0\xb0"
+            "\xf1\xb8\xe0\xe0\xb0\xf1\xb7\xe0\xe0\xc0\xf1\xa8\xe0"
+            "\xe0\xc0\xf1\xa7\xe0\xe0\xd0\xf1\x98\xe0\xe0\xd0\x97"
+            "\xe0\xe0\xe0\x89\xe0\xe0\xdf\x2e\x0c\xe0\xe0\x40" }  },
+      /* --- pixel bitmap for cmmi600 char#1 \Delta --- */
+      {   1,65225,                      /* character number, location */
+         60, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 61,   60, 2,220, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x2c\x03\x0e\x00\xff\x01\x2b\x04\x0e\x00\x2a\x05\x37"
+            "\x07\x0d\x00\xff\x01\x28\x08\x0d\x00\x27\x09\x33\x02"
+            "\x01\x08\x31\x03\x01\x08\x31\x02\x02\x08\x30\x02\x04"
+            "\x07\x2f\x02\x05\x08\x2d\x03\x05\x08\x2d\x02\x06\x08"
+            "\x2c\x02\x08\x07\x2b\x02\x09\x08\x29\x03\x09\x08\x29"
+            "\x02\x0a\x08\x28\x02\x0c\x07\x27\x02\x0d\x08\x25\x03"
+            "\x0d\x08\x25\x02\x0e\x08\x24\x02\x10\x07\x23\x02\x11"
+            "\x08\x21\x03\x11\x08\x21\x02\x12\x08\x20\x02\x14\x07"
+            "\x1f\x02\x15\x08\x1d\x03\x15\x08\x1d\x02\x16\x08\x1c"
+            "\x02\x18\x07\x1b\x02\x19\x08\x19\x03\x19\x08\x19\x02"
+            "\x1a\x08\x18\x02\x1c\x07\x17\x02\x1d\x08\x15\x03\x1d"
+            "\x08\x15\x02\x1e\x08\x14\x02\x20\x07\x13\x02\x21\x08"
+            "\x11\x03\x21\x08\x11\x02\x22\x08\x10\x02\x24\x07\x0f"
+            "\x02\x25\x08\x0d\x03\x25\x08\x0d\x02\x26\x08\x0c\x02"
+            "\x28\x07\x0b\x02\x29\x08\x09\x03\x29\x08\x09\x02\x2a"
+            "\x08\x08\x02\x2c\x07\x07\x02\x2d\x08\x05\x03\x2d\x08"
+            "\x05\x38\x04\x39\x03\x3b\xff\x01\x01\x3c\x00\x3d" }  },
+      /* --- pixel bitmap for cmmi600 char#2 \Theta --- */
+      {   2,66558,                      /* character number, location */
+         59, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 57,   61, 3,477, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x3a\xe0\xe0\xe0\x1e\x03\xe0\xe0\xa7\x77\xe0"
+            "\xe0\x66\xd6\xe0\xe0\x26\xe0\x26\xe0\xd6\xe0\x66\xe0"
+            "\xa6\xe0\x86\xe0\x76\xe0\xa6\xe0\x66\xe0\xc6\xe0\x46"
+            "\xe0\xe6\xe0\x26\xe0\xe0\x16\xe0\x16\xe0\xe0\x27\xd7"
+            "\xe0\xe0\x36\xc7\xe0\xe0\x47\xa7\xe0\xe0\x57\x97\xe0"
+            "\xe0\x67\x97\xe0\xe0\x68\x77\xe0\xe0\x87\x68\xe0\xe0"
+            "\x87\x67\xe0\xe0\x97\x58\xe0\xe0\x97\x57\xe0\xe0\xa7"
+            "\x48\xe0\xe0\xa7\x47\xe0\xe0\xa8\x38\xe0\xe0\xa8\x38"
+            "\x52\xe0\x92\x68\x28\x62\xe0\x92\x68\xf1\x28\x6e\x0d"
+            "\x68\x18\x6e\x0e\x58\x10\xf2\x18\x6e\x0d\x68\x18\x6e"
+            "\x0e\x58\x2f\x18\x62\xe0\x92\x68\x2f\x18\xe0\xe0\xa8"
+            "\x38\xe0\xe0\xa7\x48\xe0\xe0\x98\x48\xe0\xe0\x97\x58"
+            "\xe0\xe0\x88\x58\xe0\xe0\x87\x68\xe0\xe0\x77\x87\xe0"
+            "\xe0\x77\x87\xe0\xe0\x67\x97\xe0\xe0\x57\xa7\xe0\xe0"
+            "\x56\xc6\xe0\xe0\x46\xd7\xe0\xe0\x26\xe0\x16\xe0\xe0"
+            "\x16\xe0\x27\xe0\xd6\xe0\x46\xe0\xc6\xe0\x66\xe0\xa6"
+            "\xe0\x86\xe0\x86\xe0\xa6\xe0\x56\xe0\xd6\xe0\x36\xe0"
+            "\xe0\x16\xd7\xe0\xe0\x57\x78\xe0\xe0\x9e\x03\xe0\xe0"
+            "\xe0\x1a\xe0\xe0\x30" }  },
+      /* --- pixel bitmap for cmmi600 char#3 \Lambda --- */
+      {   3,67752,                      /* character number, location */
+         60, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 53,   60, 3,384, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\xc2\xb0\xf1\xe0\xe0\xb3\xb0\xe0\xe0\xa4\xb0"
+            "\xf1\xe0\xe0\x95\xb0\xf1\xe0\xe0\x87\xa0\xe0\xe0\x78"
+            "\xa0\xf1\xe0\xe0\x69\xa0\xf1\xe0\xe0\x52\x17\xa0\xf1"
+            "\xe0\xe0\x42\x27\xa0\xe0\xe0\x32\x37\xe0\xe0\xc3\x37"
+            "\xe0\xe0\xc2\x47\xe0\xe0\xb2\x57\xe0\xe0\xb2\x58\x90"
+            "\xf1\xe0\xe2\x68\x90\xe0\xd2\x78\xe0\xe0\x73\x78\xe0"
+            "\xe0\x72\x97\x90\xf1\xe0\xb2\xa7\x90\xf1\xe0\xa2\xb7"
+            "\x90\xe0\x92\xc7\x90\xf1\xe0\x82\xd7\x90\xf1\xe0\x72"
+            "\xe8\x80\xe0\x62\xe0\x18\xe0\xd3\xe0\x18\xe0\xd2\xe0"
+            "\x28\x80\xf1\xe0\x42\xe0\x47\x80\xf1\xe0\x32\xe0\x57"
+            "\x80\xe0\x22\xe0\x67\xe0\x93\xe0\x67\xe0\x92\xe0\x77"
+            "\xe0\x82\xe0\x87\xe0\x82\xe0\x88\x70\xf1\xd2\xe0\x98"
+            "\x70\xc2\xe0\xa8\xe0\x43\xe0\xa8\xe0\x42\xe0\xc7\xe0"
+            "\x32\xe0\xd7\x70\xf1\x93\xe0\xd7\x70\x83\xe0\xe7\xe5"
+            "\xe0\xc8\xc8\xe0\xaa\x6f\x2e\x03\xee\x08" }  },
+      /* --- pixel bitmap for cmmi600 char#4 \Xi --- */
+      {   4,69369,                      /* character number, location */
+         57, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 60,   57, 2,149, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x01\x0f\x2d\xff\x02\x0e\x2e\x0d\x2e\x0e\x03\x29"
+            "\x02\x0e\x02\x2a\x02\x0d\x03\x2a\x02\x0d\x02\x2b\x02"
+            "\x0d\x02\x2a\x03\x0c\x03\x2a\x02\x0d\x02\x2b\x02\x02"
+            "\x00\xff\x06\x3c\x00\xff\x01\x10\x02\x1d\x02\x0b\x00"
+            "\x0f\x03\x1c\x03\x1a\x03\x1c\x02\x0c\x00\xff\x01\x0f"
+            "\x21\x0c\x00\xff\x01\x0e\x22\x0c\x00\xff\x01\x0e\x21"
+            "\x0d\x00\x0d\x03\x1c\x03\x1a\x03\x1c\x02\x0e\x00\xff"
+            "\x01\x0d\x02\x1d\x02\x0e\x00\xff\x08\x3c\x00\xff\x02"
+            "\x02\x02\x2d\x02\x09\x00\x02\x02\x2c\x03\x0b\x02\x2c"
+            "\x02\x0a\x00\xff\x01\x01\x03\x2b\x03\x0a\x00\x01\x03"
+            "\x2a\x03\x0b\x00\xff\x01\x01\x30\x0b\x00\x01\x2f\x0c"
+            "\xff\x01\x30\x0c\x2f\x0d" }  },
+      /* --- pixel bitmap for cmmi600 char#5 \Pi --- */
+      {   5,70736,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 71,   57, 3,453, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xde\x0e\x0e\x0e\x02\xde\x0e\x0e\x0e\x01\xe0\x88"
+            "\xe0\xb8\x90\xf1\xe0\x77\xe0\xc7\xa0\xe0\x68\xe0\xb8"
+            "\xe0\xe0\x28\xe0\xb7\xb0\xf1\xe0\x67\xe0\xc7\xb0\xe0"
+            "\x58\xe0\xb8\xe0\xe0\x28\xe0\xb7\xc0\xf1\xe0\x57\xe0"
+            "\xc7\xc0\xe0\x48\xe0\xb8\xe0\xe0\x28\xe0\xb7\xd0\xf1"
+            "\xe0\x47\xe0\xc7\xd0\xe0\x38\xe0\xb8\xe0\xe0\x28\xe0"
+            "\xb7\xe0\xf1\xe0\x37\xe0\xc7\xe0\xe0\x28\xe0\xb8\xe0"
+            "\xe0\x28\xe0\xb7\xe0\x10\xf1\xe0\x27\xe0\xc7\xe0\x10"
+            "\xe0\x18\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0\x20\xf1\xe0"
+            "\x17\xe0\xc7\xe0\x20\xe8\xe0\xb8\xe0\xe0\x28\xe0\xb7"
+            "\xe0\x30\xf1\xe7\xe0\xc7\xe0\x30\xd8\xe0\xb8\xe0\xe0"
+            "\x28\xe0\xb7\xe0\x40\xf1\xd7\xe0\xc7\xe0\x40\xc8\xe0"
+            "\xb8\xe0\xe0\x28\xe0\xb7\xe0\x50\xf1\xc7\xe0\xc7\xe0"
+            "\x50\xb8\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0\x60\xf1\xb7"
+            "\xe0\xc7\xe0\x60\xa8\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0"
+            "\x70\xf1\xa7\xe0\xc7\xe0\x70\x98\xe0\xb8\xe0\xe0\x28"
+            "\xe0\xb7\xe0\xe0\x37\xe0\xc7\xe0\xe0\x29\xe0\xa9\xe0"
+            "\x7f\x2e\x0a\x9e\x0a\xe7" }  },
+      /* --- pixel bitmap for cmmi600 char#6 \Sigma --- */
+      {   6,72079,                      /* character number, location */
+         57, 5,    0, 5,      /* topleft row,col, and botleft row,col */
+          { 62,   57, 2,185, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xff\x02\x0e\x30\x0e\x09\x1b\x0c\x0f\x08\x1f\x08\x0f"
+            "\x09\x20\x05\x11\x08\x20\x05\x01\x00\xff\x01\x10\x09"
+            "\x20\x04\x01\x00\x11\x08\x21\x03\x12\x09\x20\x03\x13"
+            "\x08\x20\x03\x13\x09\x1f\x03\x14\x08\x1f\x02\x15\x09"
+            "\x1e\x02\x16\x08\x1e\x02\x02\x00\xff\x01\x14\x09\x1d"
+            "\x02\x02\x00\x15\x08\x1d\x02\x17\x09\x36\x08\x36\x09"
+            "\x36\x08\x36\x09\x36\x08\x1e\x00\xff\x01\x18\x09\x1d"
+            "\x00\x19\x08\x36\x09\x36\x07\x37\x06\x39\x04\x3a\x03"
+            "\x39\x04\x39\x03\x3a\x03\x3a\x03\x3a\x03\x1d\x02\x1b"
+            "\x03\x1d\x03\x1a\x03\x1e\x02\x19\x04\x1f\x02\x18\x03"
+            "\x20\x03\x17\x03\x21\x02\x17\x03\x21\x03\x16\x03\x22"
+            "\x03\x15\x03\x22\x03\x15\x03\x22\x04\x13\x04\x22\x04"
+            "\x13\x03\x23\x05\x12\x03\x23\x06\x11\x03\x23\x06\x11"
+            "\x03\x22\x08\x10\x03\x1e\x0d\x0e\x2f\x0e\x30\x0d\x31"
+            "\x0d\x30\x0e" }  },
+      /* --- pixel bitmap for cmmi600 char#7 \Upsilon --- */
+      {   7,73269,                      /* character number, location */
+         59, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 56,   59, 3,385, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xb7\xe0\xc7\xeb\xe0\x8b\xae\x01\xe0\x4e\x8e\x03\xe0"
+            "\x1e\x03\x6e\x04\xee\x04\x5e\x06\xce\x05\x55\x78\xb8"
+            "\x76\x34\xb7\x97\xb4\x24\xd6\x86\xe3\x23\xe0\x15\x76"
+            "\xe0\x13\x13\xe0\x26\x65\xe0\x23\x12\xe0\x45\x55\xe0"
+            "\x42\x12\xe0\x45\x45\xe0\x54\xe0\x55\x44\xe0\x52\xe0"
+            "\x85\x35\xe0\xe0\xe0\x24\x34\xe0\xe0\xe0\x34\x25\xe0"
+            "\xe0\xe0\x34\x24\xe0\xa0\xf1\xe0\x84\x14\xe0\xb0\xe0"
+            "\x89\xe0\xb0\xf1\xe0\x88\xe0\xc0\xf2\xe0\x78\xe0\xd0"
+            "\xf2\xe0\x77\xe0\xe0\xf2\xe0\x67\xe0\xe0\x10\xf1\xe0"
+            "\x58\xe0\xe0\x10\xf1\xe0\x57\xe0\xe0\x20\xf1\xe0\x48"
+            "\xe0\xe0\x20\xf1\xe0\x47\xe0\xe0\x30\xf1\xe0\x38\xe0"
+            "\xe0\x30\xf1\xe0\x37\xe0\xe0\x40\xf1\xe0\x28\xe0\xe0"
+            "\x40\xf1\xe0\x27\xe0\xe0\x50\xf1\xe0\x18\xe0\xe0\x50"
+            "\xf1\xe0\x17\xe0\xe0\x60\xf1\xe8\xe0\xe0\x60\xe7\xe0"
+            "\xe0\xe0\x5a\xe0\xe0\x60\xf2\x3e\x0e\xe0\xb0" }  },
+      /* --- pixel bitmap for cmmi600 char#8 \Phi --- */
+      {   8,74463,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 50,   57, 3,337, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x4e\x0e\x01\x30\xe0\x4e\x0e\xe0\xe0\x3a\xe0"
+            "\xe0\xd8\xe0\xe0\xe7\xe0\x10\xf1\xe0\xd8\xe0\x10\xf1"
+            "\xe0\xd7\xe0\x20\xf1\xe0\xc8\xe0\x20\xe0\x9c\xe0\xe0"
+            "\x5e\x07\xe0\xc8\x28\x18\xe0\x77\x58\x47\xe0\x36\x87"
+            "\x76\xe7\x97\x87\xb6\xa8\x97\x87\xb8\xa6\x77\xc7\xb7"
+            "\x57\xd7\xb8\x38\xc8\xc7\x37\xd8\xc7\x28\xd7\xd7\x18"
+            "\xe7\xd7\x18\xd8\xde\x01\xe8\xc8\x0f\x18\xe7\xd8\x08"
+            "\xd8\xd7\x18\xd8\xc8\x18\xd7\xd7\x28\xd7\xc8\x28\xc8"
+            "\xc7\x47\xc8\xb7\x57\xc7\xb7\x76\xc7\xa7\x96\xa8\x97"
+            "\xb6\x98\x86\xe6\x87\x76\xe0\x37\x67\x56\xe0\x78\x28"
+            "\x18\xe0\xce\x07\xe0\xe0\x5c\xe0\xe0\xd7\xe0\xb0\xf1"
+            "\xe0\x38\xe0\xb0\xf1\xe0\x37\xe0\xc0\xf1\xe0\x28\xe0"
+            "\xc0\xe0\x27\xe0\xe0\xe9\xe0\xc0\xf2\x5e\x0e\xe0\x30" }  },
+      /* --- pixel bitmap for cmmi600 char#9 \Psi --- */
+      {   9,75718,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 55,   57, 3,365, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xe0\x2e\x0e\x01\xa0\xe0\x2e\x0e\xe0\xe0\x8a\xe0"
+            "\xe0\xe0\x48\xe0\xe0\xe0\x57\xe0\x80\xf1\xe0\xb8\xe0"
+            "\x80\xf1\xe0\xb7\xe0\x90\xe0\xa8\xe0\x98\xe0\x28\xe0"
+            "\x1e\x04\xe7\xea\x37\xe7\xd8\x67\xd8\xd7\x78\xc8\xc8"
+            "\x87\xc7\xc8\x88\xc7\xc7\x97\xc8\xc7\x97\xc8\xb8\x60"
+            "\xf1\x37\xc7\xc7\x70\x37\xb8\xb8\x98\xb8\xb7\x80\xf1"
+            "\x27\xc7\xc7\x80\x27\xb8\xb8\xa7\xb8\xb7\xb7\xb7\xc7"
+            "\xb6\xc7\xb7\xc6\xb8\xb7\xc6\xb8\xa7\xd6\xb7\xb7\xd7"
+            "\xa7\xa7\xc0\xf1\x27\x98\x97\xd0\x36\x97\x97\xe0\x37"
+            "\x87\x87\xe0\x56\x78\x77\xe0\x76\x68\x66\xe0\xa6\x57"
+            "\x57\xe0\xc6\x47\x37\xe0\xe0\x2e\x09\xe0\xe0\x6e\x04"
+            "\xe0\xe0\xcb\xe0\xe0\xe0\x47\xe0\xe0\x40\xf1\xe0\x18"
+            "\xe0\xe0\x40\xf1\xe0\x17\xe0\xe0\x50\xf1\xe8\xe0\xe0"
+            "\x50\xe7\xe0\xe0\xe0\x4a\xe0\xe0\x50\xf2\x3e\x0e\xe0"
+            "\xa0" }  },
+      /* --- pixel bitmap for cmmi600 char#10 \Omega --- */
+      {  10,77109,                      /* character number, location */
+         59, 7,    0, 7,      /* topleft row,col, and botleft row,col */
+          { 58,   59, 3,475, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x4b\xe0\xe0\xe0\x1e\x04\xe0\xe0\x98\x97\xe0"
+            "\xe0\x47\xe6\xe0\xe0\x17\xe0\x46\xe0\xb7\xe0\x76\xe0"
+            "\x97\xe0\x96\xe0\x77\xe0\xa7\xe0\x48\xe0\xc7\xe0\x28"
+            "\xe0\xd7\xe0\x18\xe0\xe0\x17\xd8\xe0\xe0\x27\xd7\xe0"
+            "\xe0\x37\xc8\xe0\xe0\x38\xf1\xa8\xe0\xe0\x48\xf1\x98"
+            "\xe0\xe0\x58\xf1\x88\xe0\xe0\x68\x88\xe0\xe0\x59\x79"
+            "\xe0\xe0\x59\xf1\x78\xe0\xe0\x68\x10\x78\xe0\xe0\x59"
+            "\x88\xe0\xe0\x58\x98\xe0\xe0\x49\x98\xe0\xe0\x48\x30"
+            "\xf1\x78\xe0\xe0\x38\x40\x78\xe0\xe0\x28\xd7\xe0\xe0"
+            "\x27\xe7\xe0\xe0\x18\xe7\xe0\xe0\x17\xe0\x17\xe0\xe7"
+            "\xe0\x36\xe0\xe6\xe0\x46\xe0\xd6\xe0\x56\xe0\xc7\xe0"
+            "\x65\xe0\xc6\xe0\x75\xe0\xb6\xe0\x95\xe0\x96\xe0\xa5"
+            "\xe0\x95\xe0\xb5\xe0\x85\xe0\xd4\xe0\x84\xe0\xe4\xe0"
+            "\x74\xe0\xe0\x14\xe0\x65\xe0\x32\xb3\xe0\x64\xa2\x62"
+            "\xb3\xe0\x54\xa3\x62\xb3\xe0\x53\xb2\x72\xb3\xe0\x44"
+            "\xa3\x72\xc2\xe0\x43\xb2\x82\xc2\xe0\x33\xb3\x82\xc2"
+            "\xe0\x33\xb2\x93\xb2\xe0\x32\xb3\x9f\x1e\x02\xe0\x2e"
+            "\x02\xae\x02\xe0\x2e\x01\xbe\x01\xe0\x2e\x02\xbe\x01"
+            "\xe0\x2e\x01\xce" }  },
+      /* --- pixel bitmap for cmmi600 char#11 \alpha --- */
+      {  11,78371,                      /* character number, location */
+         37, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 47,   38, 3,263, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x58\xe0\xe0\x8d\xe0\xe0\x46\x65\xe0\xe5\xa5\xe0"
+            "\xb6\xc5\xc2\x96\xe5\xb2\x86\xe0\x16\x93\x76\xe0\x35"
+            "\x92\x76\xe0\x46\x82\x66\xe0\x56\x73\x57\xe0\x56\x72"
+            "\x66\xe0\x76\x62\x57\xe0\x76\x53\x47\xe0\x86\x52\x57"
+            "\xe0\x86\x43\x48\xe0\x86\x42\x57\xe0\x96\x33\x57\xe0"
+            "\x96\x32\x67\xe0\x96\x23\x58\xe0\x96\x22\x67\xe0\xa6"
+            "\x13\x67\xe0\xa9\x7f\x17\xe0\xa8\x87\xe0\xa7\x9f\x26"
+            "\xe0\xb6\xa0\x15\xe0\xb6\xb6\xe0\x97\xb6\xe0\x88\xc5"
+            "\xe0\x64\x15\x72\x36\xe0\x43\x36\x62\x46\xe0\x14\x46"
+            "\x53\x55\xd4\x75\x52\x85\x85\xa5\x24\xae\xd8\xe9\xe0"
+            "\x45\x56" }  },
+      /* --- pixel bitmap for cmmi600 char#12 \beta --- */
+      {  12,79572,                      /* character number, location */
+         59, 2,  -16, 2,      /* topleft row,col, and botleft row,col */
+          { 46,   75, 3,487, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x27\xe0\xe0\x8d\xe0\xe0\x44\x65\xe0\xe0\x14"
+            "\xa5\xe0\xc3\xd5\xe0\xa3\xe0\x14\xe0\x93\xe0\x25\xe0"
+            "\x73\xe0\x35\xe0\x63\xe0\x54\xe0\x62\xe0\x65\xe0\x43"
+            "\xe0\x65\xe0\x33\xe0\x66\xe0\x32\xe0\x76\xe0\x23\xe0"
+            "\x75\xe0\x32\xe0\x85\xe0\x23\xe0\x76\xe0\x22\xe0\x86"
+            "\xe0\x22\xe0\x85\xe0\x23\xe0\x76\xe0\x22\xe0\x85\xe0"
+            "\x32\xe0\x75\xe0\x33\xe0\x65\xe0\x42\xe0\x65\xe0\x52"
+            "\x79\x35\xe0\x53\x6e\x03\xe0\x62\x63\x76\xe0\x82\x6e"
+            "\x03\xe0\x72\x89\x25\xe0\x53\xe0\x65\x70\xf1\xb2\xe0"
+            "\x85\x60\xb2\xe0\x86\xe0\x13\xe0\x95\x50\xf2\xa2\xe0"
+            "\xa5\x50\x93\xe0\xa6\x40\xf2\x92\xe0\xb6\x40\x83\xe0"
+            "\xa7\x40\xf2\x82\xe0\xb6\x50\x73\xe0\xa7\xc3\xe0\xa6"
+            "\xd2\xe0\xb6\xd2\xe0\xa7\xc3\xe0\xa6\x70\xf1\x64\xe0"
+            "\x86\x80\x64\xe0\x76\xe5\xe0\x66\xe0\x12\x13\xe0\x46"
+            "\xe0\x22\x23\xe0\x26\xe0\x32\x32\xe0\x15\xe0\x43\x34"
+            "\xb6\xe0\x52\x63\x77\xe0\x72\x7e\xe0\x92\x98\xe0\xc3"
+            "\xe0\xe0\xc0\xf2\x32\xe0\xe0\xd0\x23\xe0\xe0\xd0\xf2"
+            "\x22\xe0\xe0\xe0\x13\xe0\xe0\xe0\xf2\x12\xe0\xe0\xe0"
+            "\x13\xe0\xe0\xe0\x1f\x12\xe0\xe0\xe0\x2e" }  },
+      /* --- pixel bitmap for cmmi600 char#13 \gamma --- */
+      {  13,80727,                      /* character number, location */
+         37, 1,  -18, 1,      /* topleft row,col, and botleft row,col */
+          { 44,   55, 3,289, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd7\xe0\xe0\x7b\xe0\x62\x9e\x01\xe0\x33\x8e\x03\xe0"
+            "\x22\x8e\x05\xe3\x7e\x06\xe2\x78\x68\xc3\x65\xd5\xc2"
+            "\x65\xe0\x15\xb2\x63\xe0\x44\xa3\x53\xe0\x64\x92\x63"
+            "\xe0\x73\x83\x53\xe0\x92\x82\x62\xe0\xa3\x63\x62\xe0"
+            "\xa3\x62\x63\xe0\xb2\x62\xe0\xe0\x62\x53\xe0\xe0\x63"
+            "\x42\xe0\xe0\x82\x33\x70\xf1\xe0\xe0\x12\x32\x80\xe0"
+            "\xe0\x12\x23\xe0\xe0\x92\x22\xe0\xe0\xa2\x13\x90\xf1"
+            "\xe0\xe0\x12\x12\xa0\xe0\xe0\x15\xa0\xf2\xe0\xe0\x14"
+            "\xb0\xf2\xe0\xe0\x13\xc0\xf1\xe0\xe0\x12\xd0\xf2\xe0"
+            "\xe3\xd0\xe0\xe2\xe0\xf3\xe0\xd3\xe0\xf3\xe0\xc3\xe0"
+            "\x10\xf3\xe0\xb3\xe0\x20\xf2\xe0\xa3\xe0\x30\xe0\xa2"
+            "\xe0\x40" }  },
+      /* --- pixel bitmap for cmmi600 char#14 \delta --- */
+      {  14,81816,                      /* character number, location */
+         59, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 35,   60, 3,287, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x5b\xe0\x8e\x03\xe0\x33\x4c\xe0\x13\x89\xe0\x12"
+            "\xa8\xe3\xc5\x10\xf2\xe3\xe0\x40\xf1\xe4\xe0\x30\xf1"
+            "\xe5\xe0\x20\xe0\x15\xe0\x10\xf1\xe0\x16\xe0\xe0\x26"
+            "\xe0\xe0\x17\xc0\xf1\xe0\x37\xb0\xe0\x47\xe0\xe8\xe0"
+            "\xe8\xe0\xab\xe0\x85\x18\xe0\x55\x38\xe0\x36\x58\xe0"
+            "\x15\x78\xe5\x97\xd5\xa8\xb5\xc7\xa6\xc7\x50\xf1\x46"
+            "\xd7\x50\x36\xe0\x16\x77\xe0\x16\x76\xe0\x26\x67\xe0"
+            "\x26\x50\xf1\x16\xe0\x36\x57\xe0\x36\x57\xe0\x35\x6f"
+            "\x26\xe0\x36\x6f\x16\xe0\x35\x76\xe0\x26\x7f\x16\xe0"
+            "\x25\x86\xe0\x15\xa5\xe0\x15\xa5\xe5\xc5\xd5\xc5\xc5"
+            "\xe5\xa5\xe0\x25\x85\xe0\x55\x55\xe0\x7c\xe0\xc7\xe0"
+            "\x40" }  },
+      /* --- pixel bitmap for cmmi600 char#15 \epsilon --- */
+      {  15,82850,                      /* character number, location */
+         36, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 29,   37, 3,133, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x4a\xe0\x2e\xde\x01\xc8\xe0\x57\xe0\x77\xe0\x76"
+            "\xe0\x86\xe0\x87\xe0\x77\xe0\x40\xf1\x37\xe0\x50\xf1"
+            "\x27\xe0\x60\x1e\x09\x50\xf1\x1e\x0a\x40\x17\xe0\x78"
+            "\xe0\x7f\x47\xe0\x80\xf3\x16\xe0\x80\xf1\x26\xe0\x70"
+            "\x35\xe0\xb5\xe0\xb5\xe0\x12\x85\xc4\x96\x75\xde\xe0"
+            "\x48\x98" }  },
+      /* --- pixel bitmap for cmmi600 char#16 \zeta --- */
+      {  16,83814,                      /* character number, location */
+         58, 4,  -17, 4,      /* topleft row,col, and botleft row,col */
+          { 36,   75, 3,335, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf5\xe0\x72\xd0\xe0\x73\x1a\xe0\x9e\xe0\x74\x92\xe0"
+            "\x5e\x03\xe0\x44\x39\xe0\x54\xe0\xe0\x33\xe0\xe0\x43"
+            "\xe0\xe0\x43\xe0\xe0\x43\xe0\xe0\x44\xe0\xe0\x34\xe0"
+            "\xe0\x34\xe0\xe0\x34\xe0\xe0\x43\xe0\xe0\x44\xe0\xa0"
+            "\xf1\x74\xe0\xb0\x64\xe0\xc0\xf1\x54\xe0\xd0\x45\xe0"
+            "\xd0\xf1\x44\xe0\xe0\xf1\x34\xe0\xe0\x10\x25\xe0\xe0"
+            "\x10\xf2\x24\xe0\xe0\x20\x15\xe0\xe0\x20\xf3\x14\xe0"
+            "\xe0\x3f\x45\xe0\xe0\x36\xe0\xe0\x35\xe0\xe0\x20\xf1"
+            "\x16\xe0\xe0\x10\x17\xe0\xe0\x27\xe0\xe0\x18\xe0\xe0"
+            "\x19\xe0\xdc\xe0\xbe\xe0\x9e\x02\xe0\x8e\x03\xe0\x7e"
+            "\x03\xe0\x7e\x02\xe0\x9e\xe0\xbb\xe0\xe8\xe0\xe0\x27"
+            "\x70\xf1\xe0\x96\x70\xe0\xa5\x70\xf2\xe0\xa4\x80\xb2"
+            "\xa4\xe0\x64\x74\xe0\x93\x54\xe0\xba\xe0\xe6\xe4" }  },
+      /* --- pixel bitmap for cmmi600 char#17 \eta --- */
+      {  17,84849,                      /* character number, location */
+         37, 2,  -18, 2,      /* topleft row,col, and botleft row,col */
+          { 39,   55, 3,301, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x75\xe7\xb9\xac\x73\x35\x74\x65\x53\x55\x44\x95\x42"
+            "\x65\x33\xb6\x23\x66\x13\xc6\x22\x79\xe5\x13\x78\xe0"
+            "\x15\xf1\x12\x87\xe0\x25\x12\x86\xe0\x29\x77\xe0\x26"
+            "\x0f\x12\x86\xe0\x36\xa6\xe0\x27\x97\xe0\x27\xf1\x96"
+            "\xe0\x36\x10\x96\xe0\x27\x97\xe0\x27\x10\xf1\x86\xe0"
+            "\x36\x20\x86\xe0\x27\x97\xe0\x27\x20\xf1\x76\xe0\x36"
+            "\x30\x76\xe0\x27\x97\xe0\x27\x30\xf1\x66\xe0\x36\x40"
+            "\x66\xe0\x27\x97\xe0\x27\x40\xf1\x56\xe0\x36\x50\x56"
+            "\xe0\x27\x97\xe0\x27\x96\xe0\x36\xc3\xe0\x46\x60\xf1"
+            "\xe0\xc7\x60\xf1\xe0\xc6\x70\xf1\xe0\xb7\x70\xf1\xe0"
+            "\xb6\x80\xf1\xe0\xa7\x80\xf1\xe0\xa6\x90\xf1\xe0\x97"
+            "\x90\xf1\xe0\x96\xa0\xe0\xa3\xc0" }  },
+      /* --- pixel bitmap for cmmi600 char#18 \theta --- */
+      {  18,85773,                      /* character number, location */
+         59, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 35,   60, 3,289, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x85\xe0\xda\xe0\x95\x45\xe0\x65\x64\xe0\x55\x84"
+            "\xe0\x35\x95\xe0\x15\xa5\xe5\xc5\xc6\xc5\xb6\xd5\xb5"
+            "\xe5\xa6\xe6\xf1\x86\xe0\x16\xf1\x76\xe0\x26\x67\xe0"
+            "\x26\x66\xe0\x36\x57\xe0\x36\x56\xe0\x37\xf1\x47\xe0"
+            "\x37\xf1\x37\xe0\x47\x37\xe0\x37\x38\xe0\x37\x10\xf1"
+            "\x27\xe0\x47\x10\x2e\x0e\x04\x10\xf2\x1e\x0e\x04\x20"
+            "\x17\xe0\x38\x28\xe0\x37\x3f\x17\xe0\x47\x3f\x17\xe0"
+            "\x37\x46\xe0\x47\x4f\x16\xe0\x37\x56\xe0\x36\x66\xe0"
+            "\x27\x6f\x16\xe0\x26\x7f\x15\xe0\x26\x8f\x15\xe0\x16"
+            "\x95\xe6\xa6\xc6\xc5\xc5\xd5\xb6\xd5\xa6\xe0\x14\xa5"
+            "\xe0\x25\x85\xe0\x44\x74\xe0\x74\x45\xe0\x9a\xe0\xd6"
+            "\xe0\x81" }  },
+      /* --- pixel bitmap for cmmi600 char#19 \iota --- */
+      {  19,86610,                      /* character number, location */
+         37, 5,   -1, 5,      /* topleft row,col, and botleft row,col */
+          { 22,   38, 3,119, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x93\xe0\x46\x80\xf1\x77\x80\xf1\x76\x90\x67\x90\xf2"
+            "\x66\xa0\x57\xa0\xf2\x56\xb0\x47\xb0\xf1\x46\xc0\x37"
+            "\xc0\xf2\x36\xd0\x27\xd0\xf1\x26\xe0\x17\xc2\x16\xd9"
+            "\xc9\xd2\x16\xc3\x16\xc2\x25\xc3\x25\xb3\x35\xa3\x45"
+            "\x93\x55\x74\x74\x54\xab\xd6\xc7" }  },
+      /* --- pixel bitmap for cmmi600 char#20 \kappa --- */
+      {  20,87616,                      /* character number, location */
+         37, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 42,   38, 3,241, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa3\xe0\xe0\xa6\xe0\x45\xc7\xe0\x19\xb7\xea\xb6\xd4"
+            "\x17\xb6\xb4\x37\xa7\xa3\x56\xb7\x93\x74\xc6\x93\xe0"
+            "\xa6\x74\xe0\xa7\x63\xe0\xc7\x53\xe0\xd6\x53\xe0\xe6"
+            "\x34\xe0\xe7\x23\xe0\xe0\x2b\xe0\xe0\x3e\x01\xe0\xde"
+            "\x05\xe0\x87\x5b\xe0\x57\x98\xe0\x46\xc7\xe0\x36\xd7"
+            "\xc0\xf1\x37\xe7\xb0\xf1\x36\xe0\x26\x92\x27\xe0\x26"
+            "\x83\x27\xe0\x17\x82\x36\xe0\x26\x92\x36\xe0\x26\x83"
+            "\x10\xf1\x17\xe0\x26\x82\x20\x16\xe0\x45\x73\x36\xe0"
+            "\x45\x63\x37\xe0\x45\x62\x47\xe0\x55\x43\x46\xe0\x89"
+            "\x73\xe0\xb5\x76" }  },
+      /* --- pixel bitmap for cmmi600 char#21 \lambda --- */
+      {  21,88605,                      /* character number, location */
+         58, 4,   -1, 4,      /* topleft row,col, and botleft row,col */
+          { 41,   59, 3,276, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xa6\xe0\xe0\x78\xe0\xe0\x87\xe0\xe0\x77\xe0\x60\xf2"
+            "\xe0\x17\xe0\x50\xf1\xe0\x27\xe0\x40\xf2\xe0\x37\xe0"
+            "\x30\xf2\xe0\x47\xe0\x20\xf2\xe0\x57\xe0\x10\xf2\xe0"
+            "\x67\xe0\xf1\xe0\x77\xd0\xf2\xe0\x87\xc0\xf2\xe0\x97"
+            "\xb0\xf2\xe0\xa7\xa0\xe0\x99\xe0\xe0\x3a\xe0\xe0\x2b"
+            "\xe0\xe0\x14\x27\xe0\xd4\x37\xe0\xc4\x48\xe0\xa5\x57"
+            "\xe0\x95\x67\xe0\x85\x87\xe0\x65\x97\xe0\x55\xa7\xe0"
+            "\x45\xc7\xe0\x26\xc7\xe0\x16\xd7\xe6\xe0\x17\xc6\xe0"
+            "\x27\xb6\xe0\x37\xa6\xe0\x57\x87\xe0\x57\x77\xe0\x68"
+            "\x57\xe0\x87\x47\xe0\x97\x37\xe0\xb7\x17\xe0\xc7\x17"
+            "\xe0\xce\xe0\xe7\x14\xe0\xe0\x26" }  },
+      /* --- pixel bitmap for cmmi600 char#22 \mu --- */
+      {  22,89761,                      /* character number, location */
+         37, 2,  -18, 2,      /* topleft row,col, and botleft row,col */
+          { 46,   55, 3,313, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe3\xe0\xe0\xe6\xe0\x43\xe0\x47\xe0\x35\xe0\x37\xe0"
+            "\x26\x50\xf1\xc6\xe0\x36\x50\xf1\xb7\xe0\x27\x50\xf1"
+            "\xb6\xe0\x36\x60\xf1\xa7\xe0\x27\x60\xf1\xa6\xe0\x36"
+            "\x70\xf1\x97\xe0\x27\x70\xf1\x96\xe0\x36\x80\xf1\x87"
+            "\xe0\x27\x80\xf1\x86\xe0\x36\x90\xf1\x77\xe0\x27\x90"
+            "\xf1\x76\xe0\x36\x82\x67\xe0\x27\x73\x67\xe0\x27\x72"
+            "\x77\xe0\x26\x82\x77\xe0\x17\x82\x68\xe0\x17\x73\x68"
+            "\xe8\x72\x78\xd9\x63\x79\xb3\x25\x62\x7b\x93\x35\x53"
+            "\x7c\x64\x55\x33\x86\x2c\x89\x96\x48\xc5\x70\xf1\x37"
+            "\xe0\xe0\x80\xf1\x36\xe0\xe0\x90\xf1\x27\xe0\xe0\x90"
+            "\xf1\x26\xe0\xe0\xa0\xf1\x17\xe0\xe0\xa0\xf1\x16\xe0"
+            "\xe0\xbf\x17\xe0\xe0\xbf\x16\xe0\xe0\xc0\x13\xe0\xe0"
+            "\xe4" }  },
+      /* --- pixel bitmap for cmmi600 char#23 \nu --- */
+      {  23,90716,                      /* character number, location */
+         37, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 40,   37, 3,213, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x87\xe0\x63\x4d\xe0\x56\xf1\x2d\xe0\x47\x77\xe0\x56"
+            "\x96\xe0\x56\x87\xe0\x47\x87\xe0\x46\x96\xe0\x56\x96"
+            "\xe0\x46\x97\xe0\x46\x97\xe0\x37\x96\xe0\x46\xa6\xe0"
+            "\x36\xa7\xe0\x36\xa7\xe0\x26\xb6\xe0\x36\xb6\xe0\x26"
+            "\xb7\xe0\x16\xc7\xe6\xd6\xe0\x16\xd6\xe6\xd7\xd6\xe7"
+            "\xc6\xe0\x16\xc6\xe0\x26\xb6\xe0\x27\xa6\xe0\x37\x95"
+            "\xe0\x56\x95\xe0\x66\x85\xe0\x67\x65\xe0\x87\x45\xe0"
+            "\xa6\x44\xe0\xc6\x15\xe0\xdb\xe0\xe0\x19\xe0\xe0\x35"
+            "\xe0\xe0\x75" }  },
+      /* --- pixel bitmap for cmmi600 char#24 \xi --- */
+      {  24,91940,                      /* character number, location */
+         58, 2,  -17, 2,      /* topleft row,col, and botleft row,col */
+          { 35,   75, 3,327, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf5\xe0\x72\xc0\xe0\x7d\xe0\x7e\x01\xe0\x47\x82\xe0"
+            "\x26\x1c\xe7\x48\xe0\x17\xe0\xd7\xe0\xd7\xe0\xd7\xe0"
+            "\xd8\xe0\xd7\xe0\xd8\xe0\xd7\xe0\x60\xf1\x78\xe0\x60"
+            "\xf4\x77\xe0\x70\x86\xe0\xe0\x17\xe0\xe0\x16\xe0\xe0"
+            "\x26\x2a\xe0\x4e\x05\xe0\x36\x93\xe0\x2e\x04\xe0\x24"
+            "\x3a\xe0\x24\xe0\xe0\x24\xe0\xe0\x24\xe0\xb0\xf1\x54"
+            "\xe0\xc0\x44\xe0\xd0\xf1\x34\xe0\xe0\xf1\x24\xe0\xe0"
+            "\x10\x15\xe0\xe0\x10\xf2\x14\xe0\xe0\x25\xe0\xe0\x2f"
+            "\x16\xe0\xe0\x10\x16\xe0\xe0\x17\xe0\xe8\xe0\xea\xe0"
+            "\xbc\xe0\xae\xe0\x8e\x01\xe0\x8e\x02\xe0\x7e\x03\xe0"
+            "\x6e\x03\xe0\x6e\x02\xe0\x8e\xe0\xac\xe0\xba\xe0\xe7"
+            "\xe0\xe0\x16\x50\xf2\xe0\xb5\x50\xc2\xb4\xe0\x44\x84"
+            "\xe0\x74\x54\xe0\x9b\xe0\xd6\xb0" }  },
+      /* --- pixel bitmap for cmmi600 char#25 \pi --- */
+      {  25,93004,                      /* character number, location */
+         36, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 45,   37, 3,213, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0e\x06\x9e\x0e\x09\x7e\x0e\x0a\x6e\x0e\x0b\x5e"
+            "\x0e\x0b\x55\x92\x92\xe0\x34\xa3\x92\xe0\x24\xb2\xa2"
+            "\xe0\x23\xc2\x93\xe0\x13\xc3\x93\xe3\xd3\x93\xe2\xe2"
+            "\xa2\xe0\x10\xf2\xe0\x13\x93\xe0\x10\xf1\xe3\xa3\xe0"
+            "\x10\xd4\xa3\xe0\xe4\x94\xe0\xe3\xa4\xe0\x10\xf1\xc4"
+            "\xa4\xe0\x10\xb5\xa4\xe0\xc4\xb4\xe0\x10\xf2\xa5\xb5"
+            "\xe0\x95\xc5\xe0\x95\xc6\xe0\x76\xc6\xe0\x75\xd6\xd0"
+            "\xf1\x76\xd7\xc0\x67\xd7\xc0\xf1\x66\xe0\x16\xc0\x73"
+            "\xe0\x43\xe0" }  },
+      /* --- pixel bitmap for cmmi600 char#26 \rho --- */
+      {  26,93954,                      /* character number, location */
+         37, 2,  -18, 2,      /* topleft row,col, and botleft row,col */
+          { 40,   55, 3,301, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xb7\xe0\xe0\x2c\xe0\xc6\x54\xe0\xa5\x85\xe0\x65"
+            "\xa6\xe0\x45\xc5\xe0\x35\xd6\xe0\x16\xe5\xe6\xe0\x16"
+            "\xd5\xe0\x26\xc6\xe0\x26\xf1\xb6\xe0\x36\xa6\xe0\x46"
+            "\xa6\xe0\x37\x97\xe0\x37\xf1\x96\xe0\x47\x96\xe0\x38"
+            "\x87\xe0\x38\xf1\x86\xe0\x47\x10\x77\xe0\x38\x87\xe0"
+            "\x37\x96\xe0\x47\x96\xe0\x37\x97\xe0\x37\x97\xe0\x27"
+            "\xa6\xe0\x36\xb6\xe0\x27\xa8\xe0\x16\xb8\xe6\xc9\xc6"
+            "\xd6\x12\xb6\xd7\x13\x95\xe0\x17\x24\x55\xe0\x36\x4b"
+            "\xe0\x56\x76\xe0\x30\xf1\x37\xe0\xe0\x20\xf1\x36\xe0"
+            "\xe0\x30\xf1\x27\xe0\xe0\x30\xf1\x26\xe0\xe0\x40\xf1"
+            "\x17\xe0\xe0\x40\xf1\x16\xe0\xe0\x5f\x17\xe0\xe0\x5f"
+            "\x16\xe0\xe0\x60\x13\xe0\xe0\x80" }  },
+      /* --- pixel bitmap for cmmi600 char#27 \sigma --- */
+      {  27,94994,                      /* character number, location */
+         36, 3,   -1, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   37, 3,229, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x4e\x0b\xe0\x2e\x0e\x01\xde\x0e\x03\xbe\x0e\x05"
+            "\xae\x0e\x05\x99\x78\xe0\x58\xa7\xe0\x47\xd7\xe0\x27"
+            "\xe0\x16\xe0\x26\xe0\x26\xe0\x16\xe0\x46\xd7\xe0\x46"
+            "\xd6\xe0\x56\xa0\xf1\x26\xe0\x66\xa0\x17\xe0\x66\xb6"
+            "\xe0\x76\xb6\xe0\x67\xa7\xe0\x66\xbf\x16\xe0\x76\xb6"
+            "\xe0\x67\xb6\xe0\x66\xc5\xe0\x76\xcf\x15\xe0\x66\xd5"
+            "\xe0\x56\xe5\xe0\x55\xe0\x15\xe0\x46\xe0\x25\xe0\x26"
+            "\xe0\x35\xe0\x16\xe0\x55\xd6\xe0\x65\xc6\xe0\x85\xa5"
+            "\xe0\xc5\x65\xe0\xe0\x1d\xe0\xe0\x67\xe0\xe1" }  },
+      /* --- pixel bitmap for cmmi600 char#28 \tau --- */
+      {  28,95879,                      /* character number, location */
+         36, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 41,   37, 3,171, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0e\x02\x9e\x0e\x05\x7e\x0e\x06\x6e\x0e\x07\x5e"
+            "\x0e\x06\x65\xb3\xe0\x74\xd3\xe0\x64\xe3\xe0\x63\xe3"
+            "\xe0\x63\xe0\x13\xe0\x53\xe0\x23\xe0\x52\xe0\x24\xe0"
+            "\xe0\x94\xe0\xe0\x93\xe0\x60\xf3\xe0\x34\xe0\x60\xf2"
+            "\xe0\x24\xe0\x70\xf2\xe0\x15\xe0\x70\xf2\xe5\xe0\x80"
+            "\xf1\xd6\xe0\x80\xd5\xe0\x90\xf2\xc6\xe0\x90\xf1\xb7"
+            "\xe0\x90\xb6\xe0\xe0\x84\xe0\xb0" }  },
+      /* --- pixel bitmap for cmmi600 char#29 \upsilon --- */
+      {  29,96868,                      /* character number, location */
+         37, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 42,   38, 3,257, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x95\xe0\x83\xa9\xe0\x56\x64\x35\xe0\x37\x53\x65\xe0"
+            "\x28\x42\x75\xe0\x28\x33\x75\xe0\x28\x23\x85\xe0\x37"
+            "\x22\x95\xe0\x46\x13\x86\xe0\x55\x12\x96\xe0\x55\x12"
+            "\x96\xe0\x67\x87\xe0\x63\x12\x96\xe0\x73\x12\x87\xe0"
+            "\x73\xb6\xe0\x83\xb6\xe0\x82\xb7\xe0\x82\xb6\xe0\x92"
+            "\xb6\xe0\x83\xa7\xe0\x82\xb6\xe0\x92\xb6\xe0\x83\xb6"
+            "\xe0\x82\xb7\xe0\x73\xb6\xe0\x82\xc6\xe0\x73\xc6\xe0"
+            "\x72\xd6\xe0\x63\xd6\xe0\x53\xe6\xe0\x52\xe0\x16\xe0"
+            "\x43\xe0\x25\xe0\x33\xe0\x36\xe0\x13\xe0\x56\xd3\xe0"
+            "\x75\xb4\xe0\x96\x74\xe0\xdd\xe0\xe0\x48\xe0\x40" }  },
+      /* --- pixel bitmap for cmmi600 char#30 \phi --- */
+      {  30,97890,                      /* character number, location */
+         58, 4,  -17, 4,      /* topleft row,col, and botleft row,col */
+          { 44,   75, 3,395, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x32\xb0\xf1\xe0\xe0\x23\xb0\xf1\xe0\xe0\x22"
+            "\xc0\xf1\xe0\xe0\x13\xc0\xf1\xe0\xe0\x12\xd0\xf1\xe0"
+            "\xe3\xd0\xf1\xe0\xe2\xe0\xf1\xe0\xd3\xe0\xf1\xe0\xd2"
+            "\xe0\x10\xf1\xe0\xc3\xe0\x10\xf1\xe0\xc2\xe0\x20\xe0"
+            "\x89\xe0\xe0\x3e\x02\xe0\xb7\x32\x36\xe0\x76\x62\x65"
+            "\xe0\x45\x73\x75\xe0\x16\x83\x85\xd5\xa2\xa5\xb5\xb2"
+            "\xb5\x86\xb3\xb6\x75\xc3\xc5\x66\xc2\xd5\x56\xd2\xd6"
+            "\xf1\x36\xd3\xd6\xf1\x26\xe2\xe6\xf1\x16\xe3\xe6\x16"
+            "\xe2\xee\xe2\xe7\x0f\x16\xe3\xe6\x1f\x16\xe2\xe6\x2f"
+            "\x16\xd3\xd6\x36\xd2\xd6\x55\xd2\xc6\x65\xc3\xc5\x76"
+            "\xb3\xb6\x85\xb2\xb5\xb5\xa2\xa5\xd5\x83\x86\xe0\x15"
+            "\x73\x75\xe0\x45\x62\x66\xe0\x76\x32\x37\xe0\xbe\x02"
+            "\xe0\xe0\x39\xe0\x80\xf1\xe0\x22\xe0\xc0\xf1\xe0\x13"
+            "\xe0\xc0\xf1\xe0\x12\xe0\xd0\xf1\xe3\xe0\xd0\xf1\xe2"
+            "\xe0\xe0\xf1\xd3\xe0\xe0\xf1\xd2\xe0\xe0\x10\xf1\xc3"
+            "\xe0\xe0\x12" }  },
+      /* --- pixel bitmap for cmmi600 char#31 \chi --- */
+      {  31,99167,                      /* character number, location */
+         37, 3,  -17, 3,      /* topleft row,col, and botleft row,col */
+          { 46,   54, 3,387, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x67\xe0\xe0\x9b\xe0\xe0\x12\x33\x47\xe0\xd2\x32\x67"
+            "\xe0\xb3\x23\x68\xe0\x93\x32\x87\xe0\x83\xe8\xe0\x63"
+            "\xe0\x27\xe0\x53\xe0\x37\xe0\x43\xe0\x57\xe0\x23\xe0"
+            "\x67\xe0\x13\xe0\x78\xd3\xe0\x97\xd2\xe0\xa7\xc3\xe0"
+            "\xb7\xa3\xe0\xc7\x93\xe0\xd7\x83\xe0\xe0\x17\x63\xe0"
+            "\xe0\x27\x53\xe0\xe0\x37\x43\xe0\xe0\x57\x23\xe0\xe0"
+            "\x67\x13\xe0\xe0\x77\x12\xe0\xe0\x99\xe0\xe0\x98\xe0"
+            "\x50\xf1\xe0\x57\xe0\x60\xf1\xe0\x67\xe0\x50\xe0\x58"
+            "\xe0\xe0\x99\xe0\xe0\x92\x17\xe0\xe0\x73\x17\xe0\xe0"
+            "\x63\x27\xe0\xe0\x53\x47\xe0\xe0\x33\x57\xe0\xe0\x23"
+            "\x67\xe0\xe0\x13\x87\xe0\xd3\x97\xe0\xc3\xa7\xe0\xb3"
+            "\xc7\xe0\xa2\xd7\xe0\x93\xd8\xe0\x73\xe0\x17\xe0\x63"
+            "\xe0\x27\xe0\x53\xe0\x47\xe0\x33\xe0\x57\xe0\x23\xe0"
+            "\x68\xe3\xe0\x87\x82\x33\xe0\x98\x63\x23\xe0\xb7\x62"
+            "\x32\xe0\xd7\x43\x32\xe0\xe0\x1b\xe0\xe0\x97\x61" }  },
+      /* --- pixel bitmap for cmmi600 char#32 \psi --- */
+      {  32,100422,                     /* character number, location */
+         58, 2,  -17, 2,      /* topleft row,col, and botleft row,col */
+          { 51,   75, 3,503, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\xe0\x82\xd0\xe0\xe0\x73\xd0\xf2\xe0\xe0\x72"
+            "\xe0\xe0\xe0\x63\xe0\xf2\xe0\xe0\x62\xe0\x10\xe0\xe0"
+            "\x53\xe0\x10\xf2\xe0\xe0\x52\xe0\x20\xe0\xe0\x43\xe0"
+            "\x20\xf2\xe0\xe0\x42\xe0\x30\xe0\xe0\x33\xe0\xe0\xe0"
+            "\x62\xe0\xd5\xe0\x32\xc3\xa9\xe0\x12\xb6\x64\x44\xd3"
+            "\xa7\x53\x65\xc2\xb8\x42\x75\xc2\xb8\x33\x75\xc2\xb8"
+            "\x23\x85\xb3\xc7\x22\x95\xb2\xe6\x13\x86\xb2\xe0\x15"
+            "\x12\x96\xb2\xe0\x15\x12\x96\xa3\xe0\x27\x87\xa2\xe0"
+            "\x33\x12\x96\xb2\xe0\x33\x12\x87\xb2\xe0\x33\xb6\xb3"
+            "\xe0\x33\xb6\xb2\xe0\x42\xb7\xb2\xe0\x42\xb6\xc2\xe0"
+            "\x42\xb6\xb3\xe0\x33\xa7\xb2\xe0\x42\xb6\xc2\xe0\x42"
+            "\xb6\xc2\xe0\x33\xb6\xb3\xe0\x23\xb7\xb2\xe0\x32\xc6"
+            "\xc2\xe0\x23\xc6\xc2\xe0\x22\xd6\xb3\xe0\x13\xd6\xb2"
+            "\xe0\x13\xe6\xb2\xe3\xe0\x25\xb2\xd3\xe0\x36\x93\xc3"
+            "\xe0\x46\x92\xc3\xe0\x66\x82\xa4\xe0\x86\x72\x93\xe0"
+            "\xb6\x53\x74\xe0\xe7\x22\x55\xe0\xe0\x4e\x03\xe0\xe0"
+            "\xaa\xe0\xe0\xe0\x13\xe0\xd0\xf2\xe0\x72\xe0\xe0\xe0"
+            "\x63\xe0\xe0\xf2\xe0\x62\xe0\xe0\x10\xe0\x53\xe0\xe0"
+            "\x10\xf2\xe0\x52\xe0\xe0\x20\xe0\x43\xe0\xe0\x20\xf2"
+            "\xe0\x42\xe0\xe0\x3e" }  },
+      /* --- pixel bitmap for cmmi600 char#33 \omega --- */
+      {  33,101759,                     /* character number, location */
+         37, 1,   -1, 1,      /* topleft row,col, and botleft row,col */
+          { 50,   38, 3,319, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x91\xe0\xe0\x63\xb3\xe0\xe0\x46\x84\xe0\xe0\x37\x74"
+            "\xe0\xe0\x48\x63\xe0\xe0\x58\x54\xe0\xe0\x58\x53\xe0"
+            "\xe0\x77\x43\xe0\xe0\x96\x43\xe0\xe0\xa5\x33\xe0\xe0"
+            "\xb5\x33\xe0\xe0\xc4\xf1\x23\xe0\xe0\xd3\x10\x22\xe0"
+            "\x72\xe0\x53\x32\xe0\x63\xe0\x53\x23\xe0\x54\xe0\x52"
+            "\x20\xf1\x12\xe0\x64\xe0\x52\x20\x12\xe0\x64\xe0\x43"
+            "\x23\xe0\x54\xe0\x52\x32\xe0\x64\xe0\x52\x32\xe0\x64"
+            "\xe0\x43\x32\xe0\x63\xe0\x53\x32\xe0\x63\xe0\x43\x43"
+            "\xe0\x44\xe0\x43\x43\xe0\x44\xe0\x33\x53\xe0\x35\xe0"
+            "\x24\x53\xe0\x27\xe0\x14\x54\xe8\xe4\x65\xca\xc5\x66"
+            "\x96\x16\x96\x77\x68\x27\x57\x9e\x05\x3e\x05\x9e\x04"
+            "\x5e\x03\xbe\x02\x6e\x02\xdd\x9e\xe0\x1b\xbb\xe0\x56"
+            "\xe0\x36\xe0\x16" }  },
+      /* --- pixel bitmap for cmmi600 char#34 \varepsilon --- */
+      {  34,102878,                     /* character number, location */
+         38, 2,   -2, 2,      /* topleft row,col, and botleft row,col */
+          { 33,   40, 3,195, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x49\xe0\x7e\xe0\x3e\x04\xde\x08\x98\x97\x85\xe0"
+            "\x15\x74\xe0\x44\x63\xe0\xa0\xf1\x53\xe0\xb0\xf4\x52"
+            "\xe0\xc0\x53\x83\xe0\x63\x2c\xe0\x39\x34\xe0\x3e\x02"
+            "\xe0\x23\x2b\xe0\x23\xe0\xe0\x13\xe0\xe0\x13\xe0\xe0"
+            "\x13\xe0\xe0\x22\xe0\xe0\x23\xe0\xe0\x10\xf1\x12\xe0"
+            "\xe0\x2f\x13\xe0\xe0\x23\xe0\xb1\x52\xe0\xa3\x43\xe0"
+            "\x92\x54\xe0\x73\x64\xe0\x44\x77\xc6\x9e\x08\xde\x05"
+            "\xe0\x2e\x01\xe0\x69\xe0\x13" }  },
+      /* --- pixel bitmap for cmmi600 char#35 \vartheta --- */
+      {  35,103959,                     /* character number, location */
+         59, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 45,   60, 3,381, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x25\xe0\xe0\xa9\xe0\xe0\x64\x44\xe0\xe0\x43"
+            "\x74\xe0\xe0\x23\x94\xe0\xe0\x12\xa4\xe0\xe3\xa5\xe0"
+            "\xc3\xb5\xe0\xc2\xc5\xe0\xb3\xc5\x40\xf2\xe0\x72\xd6"
+            "\x30\xe0\x63\xd6\x30\xf2\xe0\x62\xe6\x30\xe0\x63\xd6"
+            "\x30\xf1\xe0\x72\xd6\x30\xe0\x73\xb7\xe0\xb3\xa7\xa5"
+            "\xb2\xa7\x89\x94\x87\x73\x35\xa3\x67\x73\x55\xa3\x57"
+            "\x72\x65\xb5\x27\x63\x66\xcc\x62\x76\xe0\x19\x53\x76"
+            "\xe0\x29\x42\x86\xe0\x2c\x12\x86\xe0\x27\x23\x12\x77"
+            "\xe0\x18\x53\x77\xe0\x17\x6f\x12\x86\xe0\x27\x60\xf1"
+            "\x97\xe0\x17\x70\x96\xe0\x27\xe0\x26\xe0\x26\x80\xf1"
+            "\x87\xe0\x17\x80\x86\xe0\x26\xe0\x36\xe0\x17\xe0\x36"
+            "\xe0\x16\xe0\x37\xe7\xe0\x36\xe0\x16\xb0\xf1\x76\xe6"
+            "\xc0\x76\xd6\xe0\x66\xd5\xe0\x75\xd6\xe0\x76\xc5\xe0"
+            "\x86\xb5\xe0\x96\xa5\xe0\xb5\xa4\xe0\xc6\x84\xe0\xe6"
+            "\x55\xe0\xe0\x3c\xe0\xe0\x87\xe0\xa0" }  },
+      /* --- pixel bitmap for cmmi600 char#36 \varpi --- */
+      {  36,105402,                     /* character number, location */
+         36, 2,   -1, 2,      /* topleft row,col, and botleft row,col */
+          { 66,   37, 3,411, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xae\x0e\x0e\x0d\x9e\x0e\x0e\x0e\x02\x7e\x0e\x0e\x0e"
+            "\x03\x6e\x0e\x0e\x0e\x04\x5e\x0e\x0e\x0e\x04\x55\x63"
+            "\xe0\xe0\xc2\x94\x73\xe0\xe0\xd2\x84\x82\xe0\xe0\xe2"
+            "\x83\x83\xe0\xe0\xe2\x73\x83\xe0\xe0\xe0\x13\x53\x92"
+            "\xe0\xe0\xe0\x32\x52\x93\xe0\xe0\xe0\x32\xe0\x22\xe0"
+            "\x82\xe0\x82\xe0\x13\xe0\x73\xe0\x73\xe0\x12\xe0\x83"
+            "\xe0\x72\xe0\x13\xe0\x82\xe0\x82\xe0\x12\xe0\x83\xe0"
+            "\x82\xe0\x12\xe0\x83\xe0\x73\xe3\xe0\x74\xe0\x72\xe0"
+            "\x12\xe0\x84\xe0\x72\xe0\x12\xe0\x75\xe0\x63\xe0\x12"
+            "\xe0\x74\xe0\x72\xe0\x13\xe0\x65\xe0\x63\xe0\x13\xe0"
+            "\x56\xe0\x63\xe0\x12\xe0\x63\x13\xe0\x43\xe0\x23\xe0"
+            "\x44\x13\xe0\x34\xe0\x23\xe0\x34\x23\xe0\x24\xe0\x33"
+            "\xe0\x24\x33\xe0\x14\xe0\x43\xe0\x14\x44\xd5\xe0\x44"
+            "\xc6\x44\xc5\xe0\x54\xb6\x55\xa5\xe0\x65\x78\x66\x67"
+            "\xe0\x8e\x04\x8e\x03\xe0\x9e\x02\xae\x02\xe0\xbe\xce"
+            "\xe0\xdb\xe0\x1b\xe0\xe0\x36\xe0\x67\xe0\x73" }  },
+      /* --- pixel bitmap for cmmi600 char#37 \varrho --- */
+      {  37,106463,                     /* character number, location */
+         37, 6,  -16, 6,      /* topleft row,col, and botleft row,col */
+          { 36,   53, 3,263, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x77\xe0\xcc\xe0\x86\x54\xe0\x65\x85\xe0\x25\xa6"
+            "\xe5\xc5\xd5\xd6\xb6\xe5\xa6\xe0\x16\x95\xe0\x26\x86"
+            "\xe0\x26\xf1\x76\xe0\x36\x66\xe0\x46\x66\xe0\x37\x57"
+            "\xe0\x37\xf1\x56\xe0\x47\x56\xe0\x38\x47\xe0\x38\xf1"
+            "\x46\xe0\x47\x10\x46\xe0\x38\x47\xe0\x37\x56\xe0\x47"
+            "\x20\xf1\x36\xe0\x37\x30\x27\xe0\x27\x67\xe0\x26\x77"
+            "\xe0\x17\x72\x15\xe6\x73\x15\xd6\x83\x24\xc6\x92\x35"
+            "\xa6\xa2\x45\x85\xc2\x55\x55\xe2\x7b\xe0\x13\x97\xe0"
+            "\x3f\x53\xe0\xe0\x54\xe0\xe0\x46\xe0\xe0\x3e\x07\xe0"
+            "\x1e\x0a\xde\x09\xe0\x1e\x08\xe0\x2e\x06\xa0\xf1\xe0"
+            "\x92\xb0" }  },
+      /* --- pixel bitmap for cmmi600 char#38 \varsigma --- */
+      {  38,107426,                     /* character number, location */
+         37, 3,   -9, 3,      /* topleft row,col, and botleft row,col */
+          { 31,   46, 3,167, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x49\xe0\x4e\x02\xd6\x76\xa5\xd2\x95\xe0\xb4\xe0"
+            "\xc4\xe0\xc4\xe0\xc4\xe0\xc4\xe0\xa0\xf1\x24\xe0\xb0"
+            "\xf2\x14\xe0\xc5\xe0\xc4\xe0\xdf\x35\xe0\xc6\xe0\xb7"
+            "\xe0\xa8\xe0\xa8\xe0\x9a\xe0\x8b\xe0\x7c\xe0\x6d\xe0"
+            "\x5d\xe0\x6d\xe0\x6d\xe0\x6c\xe0\x7b\xe0\x7a\xe0\x98"
+            "\xe0\xb6\x70\xf3\xe0\x55\x70\xe0\x54\xe0\xc4\xe0\x53"
+            "\x44\xe0\x6a\xe0\xa5\xd3" }  },
+      /* --- pixel bitmap for cmmi600 char#39 \varphi --- */
+      {  39,108455,                     /* character number, location */
+         37, 3,  -18, 3,      /* topleft row,col, and botleft row,col */
+          { 49,   55, 3,385, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x86\xe0\x12\xe0\x9b\xc3\xe0\x8e\xa2\xe0\x7e"
+            "\x02\x93\xe0\x6e\x04\x73\xe0\x67\x67\x62\xe0\x65\xb5"
+            "\x53\xe0\x64\xd4\x52\xe0\x64\xe0\x13\x43\xe0\x54\xe0"
+            "\x24\x32\xe0\x63\xe0\x43\x23\xe0\x53\xe0\x53\x22\xe0"
+            "\x62\xe0\x63\x22\xe0\x53\xe0\x63\x22\xe0\x52\xe0\x73"
+            "\x13\xe0\x42\xe0\x82\x22\xe0\x52\xe0\x82\x22\xe0\x42"
+            "\xe0\x92\x22\xe0\x42\xe0\x83\x22\xe0\x42\xe0\x82\x2f"
+            "\x13\xe0\x32\xe0\x83\x23\xe0\x32\xe0\x73\x42\xe0\x22"
+            "\xe0\x83\x43\xe0\x12\xe0\x73\x53\xe0\x12\xe0\x63\x64"
+            "\xd3\xe0\x54\x74\xc3\xe0\x44\x85\xb2\xe0\x35\xa5\x93"
+            "\xe0\x25\xc6\x73\xe6\xd8\x53\xb8\xe0\x2e\x89\xe0\x5e"
+            "\x0e\x01\xe0\x7e\x0c\xe0\xbe\x08\xe0\xe0\x2e\x03\xe0"
+            "\xe0\x6b\xe0\x90\xf1\xe5\xe0\xe0\x20\xe4\xe0\xe0\x30"
+            "\xf3\xd5\xe0\xe0\x30\xf2\xc5\xe0\xe0\x40\xf2\xb6\xe0"
+            "\xe0\x40\xf2\xa6\xe0\xe0\x50\xb4\xe0\xe0\x60" }  },
+      /* --- pixel bitmap for cmmi600 char#40 \leftharpoonup --- */
+      {  40,126395,                     /* character number, location */
+         43, 5,   19, 5,      /* topleft row,col, and botleft row,col */
+          { 73,   24, 2,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x12\x03\x34\x00\xff\x01\x11\x04\x34\x00\x10\x05\x44"
+            "\x04\x35\x00\xff\x01\x0f\x05\x35\x00\xff\x01\x0e\x05"
+            "\x36\x00\x0d\x05\x37\x00\xff\x01\x0c\x05\x38\x00\x0b"
+            "\x05\x43\x05\x43\x06\x42\x06\x42\x06\x42\x06\x42\x06"
+            "\x41\x07\x41\x46\x01\xff\x01\x49\x00\x48\x01" }  },
+      /* --- pixel bitmap for cmmi600 char#41 \leftharpoondown --- */
+      {  41,127461,                     /* character number, location */
+         23, 5,   -1, 5,      /* topleft row,col, and botleft row,col */
+          { 73,   24, 2,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x00\x48\x01\xff\x01\x49\x02\x46\x04\x07\x44\x06\x44"
+            "\x06\x44\x06\x44\x06\x44\x06\x44\x05\x45\x05\x39\x00"
+            "\xff\x01\x0c\x05\x38\x00\x0d\x05\x37\x00\xff\x01\x0e"
+            "\x05\x36\x00\xff\x01\x0f\x05\x35\x00\x10\x04\x45\x05"
+            "\x34\x00\xff\x01\x11\x04\x34\x00\x12\x03\x34" }  },
+      /* --- pixel bitmap for cmmi600 char#42 \rightharpoonup --- */
+      {  42,128525,                     /* character number, location */
+         43, 5,   19, 5,      /* topleft row,col, and botleft row,col */
+          { 73,   24, 2,62, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x34\x03\x12\x00\xff\x01\x34\x04\x11\x00\x34\x05\x45"
+            "\x04\x10\x00\xff\x01\x35\x05\x0f\x00\xff\x01\x36\x05"
+            "\x0e\x00\x37\x05\x0d\x00\xff\x01\x38\x05\x0c\x00\x39"
+            "\x05\x45\x05\x44\x06\x44\x06\x44\x06\x44\x06\x44\x06"
+            "\x44\x07\x04\x46\x02\xff\x01\x49\x01\x48" }  },
+      /* --- pixel bitmap for cmmi600 char#43 \rightharpoondown --- */
+      {  43,129592,                     /* character number, location */
+         23, 5,   -1, 5,      /* topleft row,col, and botleft row,col */
+          { 73,   24, 2,63, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x01\x48\x00\xff\x01\x49\x01\x46\x41\x07\x41\x06\x42"
+            "\x06\x42\x06\x42\x06\x42\x06\x43\x05\x43\x05\x0b\x00"
+            "\xff\x01\x38\x05\x0c\x00\x37\x05\x0d\x00\xff\x01\x36"
+            "\x05\x0e\x00\xff\x01\x35\x05\x0f\x00\x35\x04\x44\x05"
+            "\x10\x00\xff\x01\x34\x04\x11\x00\x34\x03\x12" }  },
+      /* --- pixel bitmap for cmmi600 char#44 ` --- */
+      {  44,130051,                     /* character number, location */
+         41, 5,   19, 5,      /* topleft row,col, and botleft row,col */
+          { 13,   22, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x84\x77\x49\x39\x37\x56\x75\x7f\x15\x8f\x34\x9f\x15"
+            "\x80\x15\x86\x87\x79\x59\x67\x84\x10" }  },
+      /* --- pixel bitmap for cmmi600 char#45 ' --- */
+      {  45,130503,                     /* character number, location */
+         41, 5,   19, 5,      /* topleft row,col, and botleft row,col */
+          { 13,   22, 3,43, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x14\x87\x69\x59\x77\x86\x85\x10\xf1\x85\xf3\x94\xf1"
+            "\x85\x75\x76\x57\x39\x39\x47\x74\x80" }  },
+      /* --- pixel bitmap for cmmi600 char#46 \triangleright --- */
+      {  46,131072,                     /* character number, location */
+         42, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   42, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x12\xe0\xe0\x55\xe0\xe0\x37\xe0\xe0\x18\xe0\xea\xe0"
+            "\xcc\xe0\xa4\x27\xe0\x94\x38\xe0\x74\x58\xe0\x54\x77"
+            "\xe0\x44\x88\xe0\x24\xa8\xe4\xc8\xc4\xd8\xb4\xe0\x18"
+            "\x94\xe0\x38\x74\xe0\x57\x64\xe0\x68\x44\xe0\x88\x24"
+            "\xe0\xa7\x1f\x14\xe0\xb7\x04\xe0\xa7\x14\xe0\x88\x24"
+            "\xe0\x68\x44\xe0\x57\x64\xe0\x38\x74\xe0\x18\x94\xe7"
+            "\xb4\xc8\xc4\xa8\xe4\x88\xe0\x24\x78\xe0\x34\x58\xe0"
+            "\x54\x38\xe0\x74\x27\xe0\x9c\xe0\xaa\xe0\xc8\xe0\xe7"
+            "\xe0\xe0\x15\xe0\xe0\x42\xe0\xe0\x56" }  },
+      /* --- pixel bitmap for cmmi600 char#47 \triangleleft --- */
+      {  47,131740,                     /* character number, location */
+         42, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   42, 3,225, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x52\xe0\xe0\x45\xe0\xe0\x17\xe0\xe8\xe0\xca"
+            "\xe0\xac\xe0\x97\x24\xe0\x78\x34\xe0\x58\x54\xe0\x47"
+            "\x74\xe0\x28\x84\xe8\xa4\xc8\xc4\xb8\xd4\x98\xe0\x14"
+            "\x78\xe0\x34\x67\xe0\x54\x48\xe0\x64\x28\xe0\x84\x17"
+            "\xe0\xa4\x0f\x17\xe0\xb4\x17\xe0\xa4\x28\xe0\x84\x48"
+            "\xe0\x64\x67\xe0\x54\x78\xe0\x34\x98\xe0\x14\xb7\xe4"
+            "\xc8\xc4\xe8\xa4\xe0\x28\x84\xe0\x38\x74\xe0\x58\x54"
+            "\xe0\x78\x34\xe0\x97\x24\xe0\xac\xe0\xca\xe0\xe8\xe0"
+            "\xe0\x17\xe0\xe0\x35\xe0\xe0\x52\x16" }  },
+      /* --- pixel bitmap for cmmi600 char#48 \0 --- */
+      {  48,115808,                     /* character number, location */
+         38, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 36,   40, 3,139, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xda\xe0\x9e\x02\xe0\x46\x86\xe6\xc6\xb5\xe0\x25\x95"
+            "\xe0\x45\x76\xe0\x46\x65\xe0\x65\x30\xf1\x26\xe0\x66"
+            "\x20\xf3\x16\xe0\x86\x1f\xb7\xe0\x87\xf2\x16\xe0\x86"
+            "\x10\x17\xe0\x67\x10\xf1\x26\xe0\x66\x20\x35\xe0\x65"
+            "\x66\xe0\x46\x76\xe0\x26\x96\xe6\xb6\xc6\xe6\x86\xe0"
+            "\x4e\x02\xe0\x9a\xd3" }  },
+      /* --- pixel bitmap for cmmi600 char#49 \1 --- */
+      {  49,116687,                     /* character number, location */
+         38, 8,    0, 8,      /* topleft row,col, and botleft row,col */
+          { 28,   38, 3,50, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\xe0\x12\xe0\xa4\xe0\x86\xe0\x2c\xbf\x1e\x03\xb0\x14"
+            "\x66\xb0\xfe\xb6\xb0\xfb\xb6\xb0\xa8\xaf\x2e\x0e" }  },
+      /* --- pixel bitmap for cmmi600 char#50 \2 --- */
+      {  50,117711,                     /* character number, location */
+         38, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   38, 3,181, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xbb\xe0\x6e\x03\xe0\x1e\x08\xb5\x9a\x93\xe0\x19\x63"
+            "\xe0\x39\x43\xe0\x59\x32\xe0\x78\x25\xe0\x68\xf1\x16"
+            "\xe0\x58\xf1\x16\xe0\x67\x24\xe0\x68\xe0\xc8\xe0\xc7"
+            "\xe0\xc8\xe0\xc7\xe0\xc8\xe0\xb7\xe0\xc7\xe0\xc7\xe0"
+            "\xb7\xe0\xc6\xe0\xc6\xe0\xd5\xe0\xd5\xe0\xe4\xe0\x22"
+            "\xa5\xe0\x32\x94\xe0\x52\x74\xe0\x63\x64\xe0\x72\x5e"
+            "\x0e\x01\x4e\x0e\x02\x2e\x0e\x04\x1f\x2e\x0e\x04\x20" }  },
+      /* --- pixel bitmap for cmmi600 char#51 \3 --- */
+      {  51,118814,                     /* character number, location */
+         38, 4,  -18, 4,      /* topleft row,col, and botleft row,col */
+          { 35,   56, 3,273, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd8\xe0\xae\xe0\x4e\x05\xe0\x16\x88\xc4\xd7\xa3\xe0"
+            "\x27\x83\xe0\x38\x72\xe0\x57\x66\xe0\x28\x57\xe0\x18"
+            "\x57\xe0\x27\x58\xe0\x17\x57\xe0\x27\x66\xe0\x18\x73"
+            "\xe0\x38\xe0\xd8\x30\xf1\xe0\xa7\x40\xf1\xe0\x97\x50"
+            "\xe0\x87\xe0\xd7\xe0\xe6\xe0\xd6\xe0\xd6\xe0\x8c\xe0"
+            "\x9e\x01\xe0\xe0\x27\xe0\xe0\x27\xe0\xe0\x17\xe0\xe0"
+            "\x17\xe0\xe0\x17\xe0\xe8\xe0\xe7\x20\xf1\xe0\xc8\x10"
+            "\xf1\xe0\xd8\x32\xe0\x88\x16\xe0\x68\x0f\x38\xe0\x58"
+            "\x08\xe0\x48\x17\xe0\x58\x22\xe0\x98\x23\xe0\x78\x43"
+            "\xe0\x67\x54\xe0\x48\x64\xe0\x28\x85\xd8\xb6\x88\xee"
+            "\x05\xe0\x4e\x01\xe0\x99\xe7" }  },
+      /* --- pixel bitmap for cmmi600 char#52 \4 --- */
+      {  52,119863,                     /* character number, location */
+         39, 2,  -16, 2,      /* topleft row,col, and botleft row,col */
+          { 38,   55, 3,241, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xc3\x90\xf1\xe0\xb4\x90\xe0\xa5\xe0\xe0\x46\x90"
+            "\xf1\xe0\x87\x90\xe0\x78\xe0\xe0\x19\xe0\xe0\x12\x16"
+            "\xe0\xe2\x26\xe0\xd3\x26\xe0\xc3\x36\xe0\xc2\x46\xe0"
+            "\xb2\x56\xe0\xa3\x56\xe0\x93\x66\xe0\x92\x76\xe0\x82"
+            "\x86\xe0\x73\x86\xe0\x63\x96\xe0\x62\xa6\xe0\x52\xb6"
+            "\xe0\x43\xb6\xe0\x33\xc6\xe0\x32\xd6\xe0\x22\xe6\xe0"
+            "\x13\xe6\xe0\x12\xe0\x16\xe2\xe0\x26\xd3\xe0\x26\xc3"
+            "\xe0\x36\xc2\xe0\x46\xb2\xe0\x56\xa3\xe0\x56\x93\xe0"
+            "\x66\x9f\x2e\x0e\x0a\xfb\xe0\x96\x90\xe0\x88\x80\xf2"
+            "\xe0\x1e\x08\x10" }  },
+      /* --- pixel bitmap for cmmi600 char#53 \5 --- */
+      {  53,121022,                     /* character number, location */
+         38, 4,  -18, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   56, 3,227, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x52\xe0\x82\x84\xe0\x44\x88\xa7\x9e\x0a\xae\x09\xbe"
+            "\x08\xce\x07\xde\x05\xe0\x12\x2c\xe0\x42\x73\xe0\x30"
+            "\xf9\x52\xe0\xd0\x52\x78\xe0\x32\x4d\xe0\x12\x25\x75"
+            "\xd2\x13\xb6\xb5\xd6\xa3\xe0\x26\x93\xe0\x36\x82\xe0"
+            "\x46\x30\xf1\xe0\xc6\x20\xe0\xc7\x10\xf1\xe0\xd6\x10"
+            "\xf3\xe0\xd7\x24\xe0\x77\x0f\x37\xe0\x67\x07\xe0\x66"
+            "\x16\xe0\x67\x13\xe0\x97\x22\xe0\x96\x33\xe0\x77\x42"
+            "\xe0\x76\x53\xe0\x57\x63\xe0\x37\x83\xe0\x17\xa4\xc7"
+            "\xc6\x77\xe0\x1e\x04\xe0\x4e\xe0\x98\xe0" }  },
+      /* --- pixel bitmap for cmmi600 char#54 \6 --- */
+      {  54,122047,                     /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,253, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x47\xe0\xad\xe0\x5e\x02\xe0\x27\x84\xe6\xc3\xc6"
+            "\xd3\xb5\xd6\x96\xc7\x86\xd7\x76\xe7\x75\xe0\x17\x66"
+            "\xe0\x25\x75\xe0\xb0\xf1\x36\xe0\xb0\xf2\x26\xe0\xc0"
+            "\xf1\x17\xe0\xc0\x16\x78\xd6\x5c\xa7\x43\x75\x87\x33"
+            "\x95\x77\x23\xb5\x67\x13\xd5\x5a\xe0\x15\x49\xe0\x26"
+            "\x39\xe0\x36\x28\xe0\x46\x28\xe0\x47\x1f\x18\xe0\x56"
+            "\x1f\x47\xe0\x67\xf2\x16\xe0\x67\xf1\x17\xe0\x57\x26"
+            "\xe0\x57\x26\xe0\x56\x36\xe0\x47\x46\xe0\x37\x46\xe0"
+            "\x36\x65\xe0\x26\x76\xe0\x16\x86\xd6\xa5\xc6\xc5\xa6"
+            "\xe6\x67\xe0\x2e\x03\xe0\x5d\xe0\xa7\xd8" }  },
+      /* --- pixel bitmap for cmmi600 char#55 \7 --- */
+      {  55,123108,                     /* character number, location */
+         39, 5,  -18, 5,      /* topleft row,col, and botleft row,col */
+          { 36,   57, 3,239, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x23\xe0\xe0\x30\x24\xe0\xe0\x20\xf2\x2e\x0e\x06"
+            "\x2e\x0e\x05\x10\xf1\x1e\x0e\x05\x20\x13\xe0\xc3\x42"
+            "\xe0\xc3\x52\xe0\xc2\x62\xe0\xb3\x53\xe0\xa3\x62\xe0"
+            "\xa3\x72\xe0\xa2\x82\xe0\x93\xe0\xe0\x43\xe0\xe0\x43"
+            "\xe0\xe0\x52\xe0\xe0\x53\xe0\xe0\x43\xe0\xe0\x52\xe0"
+            "\xe0\x53\xd0\xf1\xe0\x53\xe0\xe0\x43\xe0\xe0\x44\xe0"
+            "\xe0\x43\xe0\x20\xf1\xe0\x24\xe0\x20\xf1\xe0\x14\xe0"
+            "\x30\xe5\xe0\xe0\x34\xe0\x40\xf2\xd5\xe0\x40\xf2\xc6"
+            "\xe0\x40\xc5\xe0\x50\xf3\xb6\xe0\x50\xf9\xa7\xe0\x50"
+            "\xc3\xe0\x70" }  },
+      /* --- pixel bitmap for cmmi600 char#56 \8 --- */
+      {  56,124123,                     /* character number, location */
+         55, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   57, 3,267, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd8\xe0\x9e\xe0\x4e\x04\xe0\x16\x86\xd4\xd6\xa4\xe0"
+            "\x16\x84\xe0\x35\x74\xe0\x55\x64\xe0\x64\x63\xe0\x75"
+            "\x20\xf3\x24\xe0\x84\x20\x25\xe0\x74\x46\xe0\x55\x46"
+            "\xe0\x54\x58\xe0\x34\x68\xe0\x14\x7a\xc5\x8a\xa5\x9c"
+            "\x75\xbc\x54\xed\x24\xe0\x3e\x01\xe0\x6d\xe0\x9d\xe0"
+            "\x8d\xe0\x5e\x03\xe0\x14\x3d\xd4\x6c\xa5\x9b\x85\xbb"
+            "\x65\xea\x45\xe0\x29\x44\xe0\x58\x25\xe0\x67\x24\xe0"
+            "\x8c\xe0\x96\x0f\x14\xe0\xb5\x0f\x34\xe0\xc4\x05\xe0"
+            "\xb3\x10\xf1\x14\xe0\xa4\x10\x15\xe0\x84\x45\xe0\x74"
+            "\x55\xe0\x54\x75\xe0\x34\x95\xe5\xb7\x87\xee\x04\xe0"
+            "\x4e\xe0\x98\xd1" }  },
+      /* --- pixel bitmap for cmmi600 char#57 \9 --- */
+      {  57,125180,                     /* character number, location */
+         38, 4,  -18, 4,      /* topleft row,col, and botleft row,col */
+          { 34,   56, 3,251, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xd8\xe0\x9d\xe0\x6e\x02\xe0\x27\x67\xd6\xa6\xb6\xc5"
+            "\xa6\xe5\x86\xe0\x16\x67\xe0\x25\x66\xe0\x36\x47\xe0"
+            "\x45\x47\xe0\x46\x36\xe0\x56\x27\xe0\x56\x27\xe0\x57"
+            "\x1f\x37\xe0\x66\x1f\x37\xe0\x67\xf1\x16\xe0\x58\x17"
+            "\xe0\x48\x26\xe0\x48\x26\xe0\x39\x36\xe0\x29\x45\xe0"
+            "\x1a\x46\xd3\x17\x56\xb3\x27\x75\x93\x37\x85\x73\x47"
+            "\xac\x57\xc8\x76\xe0\xe6\x10\xf1\xe0\xc7\x10\xf2\xe0"
+            "\xc6\x20\xf1\xe0\xb6\x30\x35\xe0\x26\x67\xe0\x16\x67"
+            "\xe6\x77\xe5\x87\xd6\x86\xd6\xa3\xe6\xb3\xd6\xd5\x86"
+            "\xe0\x2e\x03\xe0\x5d\xe0\x98\xe0\x37" }  },
+      /* --- pixel bitmap for cmmi600 char#58 . --- */
+      {  58,132337,                     /* character number, location */
+          9, 7,    0, 7,      /* topleft row,col, and botleft row,col */
+          {  9,    9, 3,13, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x47\x1f\x49\x17\x43\x30" }  },
+      /* --- pixel bitmap for cmmi600 char#59 , --- */
+      {  59,132910,                     /* character number, location */
+          9, 7,  -16, 7,      /* topleft row,col, and botleft row,col */
+          { 10,   25, 3,49, (pixbyte *) /* width,ht, fmt,pixsz,map... */
+            "\x33\x57\x2f\x19\x1f\x2a\x19\x33\x22\xf3\x82\x73\xf1"
+            "\x72\x10\x63\x72\x73\x72\x73\x63\x63\x63\x72\x70" }  },
+      /* --- pixel bitmap for cmmi600 char#60 < --- */
+      {  60,133608,                     /* character number, location */
+         46, 7,   -4, 7,      /* topleft row,col, and botleft row,col */
+          { 51,   50, 2,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x2f\x03\x2e\x06\x2b\x08\x29\x09\x28\x09\x28\x09\x28"
+            "\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09"
+            "\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28"
+            "\x09\x28\x09\x28\x09\x28\x09\x28\x09\x29\xff\x01\x08"
+            "\x2b\x00\x01\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c"
+            "\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09"
+            "\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c"
+            "\x09\x2c\x09\x2c\x09\x2c\x08\x2d\x06\x2f\x03\x01" }  },
+      /* --- pixel bitmap for cmmi600 char#61 / --- */
+      {  61,134210,                     /* character number, location */
+         62, 5,  -21, 5,      /* topleft row,col, and botleft row,col */
+          { 32,   83, 3,375, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x12\xe0\xe0\x14\xf1\xe0\xd5\xe0\xd4\x10\xf1"
+            "\xe0\xc5\x10\xe0\xc4\x20\xf1\xe0\xb5\x20\xe0\xb4\x30"
+            "\xf1\xe0\xa5\x30\xe0\xa4\x40\xf1\xe0\x95\x40\xe0\x94"
+            "\x50\xf1\xe0\x85\x50\xf1\xe0\x75\x60\xe0\x74\x70\xf1"
+            "\xe0\x65\x70\xe0\x64\x80\xf1\xe0\x55\x80\xe0\x54\x90"
+            "\xf1\xe0\x45\x90\xe0\x44\xa0\xf1\xe0\x35\xa0\xf1\xe0"
+            "\x25\xb0\xe0\x24\xc0\xf1\xe0\x15\xc0\xe0\x14\xd0\xf1"
+            "\xe5\xd0\xe4\xe0\xf1\xd5\xe0\xd4\xe0\x10\xf1\xc5\xe0"
+            "\x10\xc4\xe0\x20\xf1\xb5\xe0\x20\xf1\xa5\xe0\x30\xa4"
+            "\xe0\x40\xf1\x95\xe0\x40\x94\xe0\x50\xf1\x85\xe0\x50"
+            "\x84\xe0\x60\xf1\x75\xe0\x60\x74\xe0\x70\xf1\x65\xe0"
+            "\x70\xf1\x55\xe0\x80\x54\xe0\x90\xf1\x45\xe0\x90\x44"
+            "\xe0\xa0\xf1\x35\xe0\xa0\x34\xe0\xb0\xf1\x25\xe0\xb0"
+            "\x24\xe0\xc0\xf1\x15\xe0\xc0\x14\xe0\xdf\x15\xe0\xd4"
+            "\xe0\xe0\x12\xe0\xe0\x13" }  },
+      /* --- pixel bitmap for cmmi600 char#62 > --- */
+      {  62,135025,                     /* character number, location */
+         46, 7,   -4, 7,      /* topleft row,col, and botleft row,col */
+          { 51,   50, 2,103, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x01\x03\x2f\x06\x2d\x08\x2c\x09\x2c\x09\x2c\x09\x2c"
+            "\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09"
+            "\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x2c"
+            "\x09\x2c\x09\x2c\x09\x2c\x09\x2c\x09\x01\x00\xff\x01"
+            "\x2b\x08\x29\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28"
+            "\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09"
+            "\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28\x09\x28"
+            "\x09\x28\x09\x28\x09\x29\x08\x2b\x06\x2e\x03\x2f" }  },
+      /* --- pixel bitmap for cmmi600 char#63 \star --- */
+      {  63,135802,                     /* character number, location */
+         41, 0,    1, 0,      /* topleft row,col, and botleft row,col */
+          { 42,   40, 3,179, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf4\xe0\x62\xe0\x60\xf7\xe0\x54\xe0\x50\xf1\xe0\x46"
+            "\xe0\x46\xc6\xc6\x1b\x66\x6b\x4e\x16\x1e\x9e\x0e\x02"
+            "\xee\x0c\xe0\x4e\x08\xe0\x8e\x04\xe0\xce\xe0\xe0\x2a"
+            "\xe0\x20\xf1\xe0\x1c\xe0\x10\xf1\xee\xe0\xd7\x27\xe0"
+            "\xc6\x46\xe0\xb6\x66\xe0\xa5\x85\xe0\x95\xa5\xe0\x75"
+            "\xc5\xe0\x64\xe4\xe0\x54\xe0\x24\xe0\x43\xe0\x43\xe0"
+            "\x33\xe0\x63\xe0\x22\xe0\x82\xe0\x21\xe0\xa1\x80" }  },
+      /* --- pixel bitmap for cmmi600 char#64 \partial --- */
+      {  64,109633,                     /* character number, location */
+         60, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 44,   62, 3,353, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\x88\xe0\xe0\x5e\xe0\xe0\x1e\x03\xe0\xb6\x87\xe0"
+            "\x84\xd6\xe0\x63\xe0\x26\xe0\x43\xe0\x46\xe0\x32\xe0"
+            "\x66\xe0\x13\xe0\x75\xe0\x16\xe0\x46\xd7\xe0\x55\x20"
+            "\xf1\xb7\xe0\x56\x10\xb7\xe0\x65\xc6\xe0\x76\xf6\xe0"
+            "\xe0\xa6\xe0\x68\xa6\xe0\x3e\x76\xe0\x16\x74\x66\xd5"
+            "\xc3\x47\xb6\xe3\x37\xa6\xe0\x23\x27\x95\xe0\x52\x27"
+            "\x85\xe0\x6b\x76\xe0\x79\x76\xe0\x89\x66\xe0\x99\x57"
+            "\xe0\x99\x10\xf1\x37\xe0\xa8\x20\xf1\x27\xe0\xb8\x20"
+            "\x18\xe0\xb7\x47\xe0\xc7\x47\xe0\xc6\x57\xe0\xb7\x48"
+            "\xe0\xb7\x4f\x17\xe0\xb7\x57\xe0\xb6\x67\xe0\xa7\x66"
+            "\xe0\xb6\x76\xe0\xa7\x76\xe0\xa6\x86\xe0\x96\x96\xe0"
+            "\x95\xb6\xe0\x76\xb6\xe0\x66\xd6\xe0\x46\xe6\xe0\x36"
+            "\xe0\x26\xe0\x16\xe0\x46\xc6\xe0\x77\x78\xe0\x9e\x05"
+            "\xe0\xde\x01\xe0\xe0\x49\xe0\xa0" }  },
+      /* --- pixel bitmap for cmmi600 char#65 A --- */
+      {  65, 1092,                      /* character number, location */
+         60, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 57,   60, 3,450, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\xe2\xe0\xe0\xe0\xc3\xd0\xf1\xe0\xe0\xc4\xd0"
+            "\xe0\xe0\xb5\xe0\xe0\xe0\xa6\xe0\xe0\xe0\x87\xc0\xf1"
+            "\xe0\xe0\x98\xc0\xf1\xe0\xe0\x89\xc0\xe0\xe0\x72\x17"
+            "\xe0\xe0\xe0\x43\x17\xe0\xe0\xe0\x42\x27\xe0\xe0\xe0"
+            "\x32\x37\xe0\xe0\xe0\x32\x38\xe0\xe0\xe0\x12\x48\xe0"
+            "\xe0\xe3\x57\xe0\xe0\xe2\x67\xb0\xf1\xe0\xe0\x22\x77"
+            "\xb0\xf1\xe0\xe0\x12\x87\xb0\xe0\xe2\x97\xe0\xe0\xa2"
+            "\xa7\xe0\xe0\xa2\xa8\xe0\xe0\x82\xb8\xe0\xe0\x82\xc7"
+            "\xe0\xe0\x72\xd7\xa0\xf1\xe0\xa2\xe7\xa0\xf1\xe0\x92"
+            "\xe0\x17\xa0\xe0\x82\xe0\x27\xa0\xf1\xe0\x72\xe0\x37"
+            "\xa0\xe0\x62\xe0\x48\xe0\xe0\x12\xe0\x57\xe0\xee\x0e"
+            "\x01\x90\xf1\xe0\x4e\x0e\x02\x90\xf1\xe0\x32\xe0\x87"
+            "\x90\xe0\x22\xe0\x97\xe0\xa3\xe0\x97\xe0\xa2\xe0\xa7"
+            "\x90\xf1\xe2\xe0\xb8\x80\xd2\xe0\xd7\xe0\x63\xe0\xd7"
+            "\xe0\x62\xe0\xe7\xe0\x52\xe0\xe0\x17\xe0\x43\xe0\xe0"
+            "\x17\xe0\x42\xe0\xe0\x27\xe0\x33\xe0\xe0\x27\xe0\x16"
+            "\xe0\xe0\x18\xc9\xe0\xca\x7f\x1e\x04\xe0\x2e\x09\x0e"
+            "\x03\xe0\x3e\x09" }  },
+      /* --- pixel bitmap for cmmi600 char#66 B --- */
+      {  66, 2670,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 60,   57, 2,211, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0d\x24\x18\x28\x14\x29\x1b\x08\x12\x09\x19\x07\x15"
+            "\x08\x18\x07\x16\x08\x16\x08\x17\x08\x15\x08\x18\x07"
+            "\x15\x07\x19\x07\x15\x07\x19\x08\xff\x01\x13\x08\x19"
+            "\x08\xff\x01\x13\x07\x1a\x08\x12\x08\x1a\x08\x12\x08"
+            "\x1a\x07\x13\x07\x1a\x08\x13\x07\x1a\x07\x13\x08\x19"
+            "\x08\x13\x08\x19\x07\x14\x07\x19\x07\x15\x07\x18\x07"
+            "\x15\x08\x17\x07\x16\x08\x15\x08\x17\x07\x14\x08\x19"
+            "\x07\x12\x08\x1a\x20\x1c\x1f\x1d\x07\x12\x09\x1a\x07"
+            "\x15\x07\x18\x08\x17\x07\x16\x08\x17\x08\x15\x07\x19"
+            "\x07\x15\x07\x1a\x07\x13\x08\x1a\x07\x13\x08\x1a\x08"
+            "\x12\x07\x1b\x08\x12\x07\x1c\x07\x11\x08\x1c\x07\x11"
+            "\x08\x1b\x08\x05\x00\xff\x01\x0c\x07\x1c\x08\x05\x00"
+            "\x0b\x08\x1c\x08\x10\x08\x1b\x08\x11\x07\x1c\x08\x11"
+            "\x07\x1b\x08\x11\x08\x1b\x08\x11\x08\x1a\x08\x12\x07"
+            "\x1a\x08\x13\x07\x19\x08\x13\x08\x18\x08\x14\x08\x16"
+            "\x09\x15\x07\x16\x09\x15\x08\x13\x0a\x0f\x2b\x11\x29"
+            "\x13\x25\x17" }  },
+      /* --- pixel bitmap for cmmi600 char#67 C --- */
+      {  67, 3819,                      /* character number, location */
+         59, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 59,   61, 2,217, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x20\x09\x0f\x03\x1c\x10\x0c\x03\x19\x15\x09\x03\x18"
+            "\x0a\x09\x05\x07\x04\x16\x09\x0e\x04\x05\x05\x15\x07"
+            "\x13\x03\x03\x06\x13\x08\x15\x03\x01\x06\x13\x07\x18"
+            "\x09\x11\x08\x19\x09\x10\x07\x1c\x08\x0f\x07\x1e\x06"
+            "\x0f\x07\x1f\x06\x0e\x07\x20\x06\x0d\x07\x22\x05\x0c"
+            "\x08\x22\x04\x0c\x08\x23\x04\x0c\x07\x24\x04\x0b\x08"
+            "\x24\x04\x0a\x08\x25\x03\x0b\x07\x26\x03\x0a\x08\x26"
+            "\x03\x09\x08\x27\x03\x09\x08\x27\x02\x09\x09\x27\x02"
+            "\x06\x00\xff\x01\x03\x08\x30\x00\xff\x02\x02\x08\x31"
+            "\x00\x01\x09\x31\x00\xff\x02\x01\x08\x32\x09\x32\xff"
+            "\x03\x08\x33\xff\x01\x08\x27\x02\x0a\x08\x26\x03\x0a"
+            "\xff\x01\x08\x26\x02\x0b\x00\x01\x07\x25\x03\x0c\x07"
+            "\x25\x02\x0d\x07\x24\x03\x0d\x07\x23\x03\x0f\x07\x22"
+            "\x02\x10\x07\x21\x03\x11\x07\x1f\x03\x12\x07\x1e\x03"
+            "\x14\x07\x1c\x03\x15\x07\x1b\x03\x17\x07\x19\x03\x19"
+            "\x07\x16\x04\x1b\x08\x13\x04\x1e\x07\x0f\x05\x21\x09"
+            "\x09\x07\x24\x15\x28\x10\x2f\x09\x20" }  },
+      /* --- pixel bitmap for cmmi600 char#68 D --- */
+      {  68, 5185,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 63,   57, 2,217, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0e\x23\x1b\x27\x18\x29\x1e\x08\x11\x09\x1d\x07\x15"
+            "\x08\x1b\x07\x16\x08\x19\x08\x18\x06\x19\x08\x19\x06"
+            "\x18\x07\x1a\x07\x17\x07\x1b\x06\x16\x08\x1b\x07\x15"
+            "\x08\x1c\x06\x02\x00\xff\x01\x13\x07\x1d\x07\x01\x00"
+            "\x12\x08\x1e\x06\x13\x08\x1e\x07\xff\x01\x12\x07\x1f"
+            "\x07\xff\x01\x11\x08\x1f\x07\xff\x01\x11\x07\x20\x07"
+            "\x10\x08\x20\x07\x10\x08\x1f\x08\xff\x01\x10\x07\x20"
+            "\x08\x0f\x08\x20\x08\x0f\x08\x20\x07\x01\x00\xff\x01"
+            "\x0f\x07\x20\x08\x01\x00\x0e\x08\x20\x08\x0f\x08\x20"
+            "\x07\x02\x00\xff\x01\x0e\x07\x20\x08\x02\x00\x0d\x08"
+            "\x20\x07\x10\x08\x1f\x08\x10\x07\x20\x07\x11\x07\x1f"
+            "\x08\x04\x00\xff\x01\x0c\x08\x1f\x07\x05\x00\x0c\x07"
+            "\x1f\x07\x12\x07\x1e\x07\x12\x08\x1e\x07\x12\x08\x1d"
+            "\x07\x13\x07\x1d\x07\x14\x07\x1d\x06\x14\x08\x1c\x06"
+            "\x15\x08\x1b\x06\x16\x07\x1b\x06\x17\x07\x19\x07\x17"
+            "\x08\x18\x07\x18\x08\x16\x07\x1a\x07\x15\x08\x1a\x08"
+            "\x11\x0a\x14\x29\x16\x27\x18\x23\x1c" }  },
+      /* --- pixel bitmap for cmmi600 char#69 E --- */
+      {  69, 6830,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 60,   57, 3,467, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xee\x0e\x0e\x04\xf1\xde\x0e\x0e\x05\xe0\x78\xe0\x7a"
+            "\xe0\x77\xe0\xb7\xe0\x77\xe0\xc5\xe0\x78\xe0\xd4\xe0"
+            "\x78\xe0\xe3\x10\xf1\xe0\x67\xe0\xe0\x13\x10\xf1\xe0"
+            "\x58\xe0\xe0\x13\x10\xe0\x57\xe0\xe0\x23\xe0\x67\xe0"
+            "\xe0\x22\x20\xf1\xe0\x48\xe0\xe0\x22\x20\xf1\xe0\x47"
+            "\xe0\x32\xc2\x20\xe0\x38\xe0\x23\xc2\xe0\x58\xe0\x23"
+            "\xe0\xe0\x57\xe0\x32\xe0\xe0\x67\xe0\x23\xe0\xe0\x58"
+            "\xe0\x23\xe0\xe0\x58\xe0\x14\xe0\xe0\x57\xe0\x14\xe0"
+            "\xe0\x67\xd6\xe0\x40\xf1\xe0\x1e\x0d\xe0\x40\xe0\x1e"
+            "\x0c\xe0\xe0\x67\xe5\xe0\x50\xf1\xe8\xe0\x14\xe0\x50"
+            "\xf1\xe7\xe0\x32\xe0\x60\xd8\xe0\x23\xe0\xe0\x58\xe0"
+            "\x23\xe2\xe0\x37\xe0\x32\xe0\x12\xe0\x37\xe0\x32\xe3"
+            "\xe0\x28\xe0\x32\xe2\xe0\x38\xe0\xe0\x52\xe0\x37\xe0"
+            "\xe0\x53\xe0\x37\xe0\xe0\x52\xe0\x38\xe0\xe0\x43\xe0"
+            "\x38\xe0\xe0\x42\x70\xf1\xb7\xe0\xe0\x43\x70\xa8\xe0"
+            "\xe0\x33\xe0\x48\xe0\xe0\x24\x80\xf1\xa7\xe0\xe0\x24"
+            "\x90\x98\xe0\xe6\xe0\x48\xe0\xd6\xe0\x57\xe0\xc8\xe0"
+            "\x48\xe0\x8b\xbf\x1e\x0e\x0e\x07\xbe\x0e\x0e\x06\xc7" }  },
+      /* --- pixel bitmap for cmmi600 char#70 F --- */
+      {  70, 8315,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 60,   57, 3,393, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xde\x0e\x0e\x05\xe0\x78\xe0\x7a\xe0\x77\xe0\xb7"
+            "\xe0\x77\xe0\xc5\xe0\x78\xe0\xd4\xe0\x78\xe0\xe3\x10"
+            "\xf1\xe0\x67\xe0\xe0\x13\x10\xf1\xe0\x58\xe0\xe0\x13"
+            "\x10\xe0\x57\xe0\xe0\x23\xe0\x67\xe0\xe0\x22\x20\xf1"
+            "\xe0\x48\xe0\xe0\x22\x20\xe0\x47\xe0\xe0\x32\xe0\x67"
+            "\xe0\x32\xc2\xe0\x58\xe0\x23\xc2\xe0\x58\xe0\x23\xe0"
+            "\x20\xf1\xe0\x37\xe0\x32\xe0\x30\xf1\xe0\x28\xe0\x23"
+            "\xe0\x30\xe0\x27\xe0\x23\xe0\xe0\x67\xe0\x14\xe0\xe0"
+            "\x58\xd6\xe0\xe0\x5e\x0d\xe0\x40\xf1\xe0\x1e\x0c\xe0"
+            "\x50\xe8\xd6\xe0\xe0\x58\xe0\x14\xe0\x50\xf1\xe7\xe0"
+            "\x23\xe0\x60\xf1\xd8\xe0\x23\xe0\x60\xf1\xd7\xe0\x32"
+            "\xe0\x70\xf1\xc8\xe0\x23\xe0\x70\xf1\xc7\xe0\xe0\xd0"
+            "\xf1\xb8\xe0\xe0\xd0\xf1\xb7\xe0\xe0\xe0\xf1\xa8\xe0"
+            "\xe0\xe0\xf1\xa7\xe0\xe0\xe0\x10\xf1\x98\xe0\xe0\xe0"
+            "\x10\x97\xe0\xe0\xe0\xa9\xe0\xe0\xe0\x1f\x2e\x0c\xe0"
+            "\xe0\x63" }  },
+      /* --- pixel bitmap for cmmi600 char#71 G --- */
+      {  71, 9658,                      /* character number, location */
+         59, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 59,   61, 3,467, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x49\xe0\x13\xe0\xee\x02\xc3\xe0\xbe\x07\x93"
+            "\xe0\xaa\x95\x74\xe0\x89\xe4\x55\xe0\x77\xe0\x53\x36"
+            "\xe0\x58\xe0\x73\x16\xe0\x57\xe0\xa9\xe0\x38\xe0\xb9"
+            "\xe0\x27\xe0\xe8\xe0\x17\xe0\xe0\x26\xe0\x17\xe0\xe0"
+            "\x36\xe7\xe0\xe0\x46\xd7\xe0\xe0\x65\xc8\xe0\xe0\x64"
+            "\xc8\xe0\xe0\x74\xc7\xe0\xe0\x84\xb8\xe0\xe0\x84\xa8"
+            "\xe0\xe0\x93\xb7\xe0\xe0\xa3\xa8\xe0\xe0\xa3\x98\xe0"
+            "\xe0\xb3\x98\xe0\xe0\xb2\x99\xe0\xe0\xb2\x60\xf1\x38"
+            "\xe0\xe0\xe0\x60\xf2\x28\xe0\xe0\xe0\x70\x19\xe0\xe0"
+            "\xe0\x70\xf2\x18\xe0\xe0\xe0\x89\xe0\xe0\xe0\x88\xe0"
+            "\xe0\xe0\x9f\x28\xe0\xae\x09\x48\xe0\xe0\x59\x98\xe0"
+            "\xe0\x67\xa8\xe0\xe0\x58\xaf\x18\xe0\xe0\x57\xb0\x17"
+            "\xe0\xe0\x57\xb0\xf1\x17\xe0\xe0\x48\xb0\x18\xe0\xe0"
+            "\x37\xe7\xe0\xe0\x37\xe7\xe0\xe0\x28\xe0\x17\xe0\xe0"
+            "\x18\xe0\x17\xe0\xe0\x17\xe0\x37\xe0\xd8\xe0\x38\xe0"
+            "\xb9\xe0\x47\xe0\xb9\xe0\x58\xe0\x74\x15\xe0\x78\xe0"
+            "\x54\x25\xe0\x98\xe0\x14\x54\xe0\xaa\x96\x64\xe0\xce"
+            "\x07\x92\xe0\xe0\x1e\x03\xe0\xe0\xe0\x49\xe0\xe0\x47" }  },
+      /* --- pixel bitmap for cmmi600 char#72 H --- */
+      {  72,11121,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 71,   57, 3,451, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xde\x0b\x8e\x0b\xde\x0a\x9e\x0a\xe0\x88\xe0\xb8"
+            "\x90\xf1\xe0\x77\xe0\xc7\xa0\xe0\x68\xe0\xb8\xe0\xe0"
+            "\x28\xe0\xb7\xb0\xf1\xe0\x67\xe0\xc7\xb0\xe0\x58\xe0"
+            "\xb8\xe0\xe0\x28\xe0\xb7\xc0\xf1\xe0\x57\xe0\xc7\xc0"
+            "\xe0\x48\xe0\xb8\xe0\xe0\x28\xe0\xb7\xd0\xf1\xe0\x47"
+            "\xe0\xc7\xd0\xe0\x38\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0"
+            "\xf1\xe0\x37\xe0\xc7\xe0\xe0\x28\xe0\xb8\xe0\xe0\x28"
+            "\xe0\xb7\xe0\x10\xf1\xe0\x27\xe0\xc7\xe0\x10\xe0\x1e"
+            "\x0e\x0d\xe0\x10\xf1\xe0\x1e\x0e\x0c\xe0\x20\xe0\x17"
+            "\xe0\xc7\xe0\xe0\x28\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0"
+            "\x30\xf1\xe7\xe0\xc7\xe0\x30\xd8\xe0\xb8\xe0\xe0\x28"
+            "\xe0\xb7\xe0\x40\xf1\xd7\xe0\xc7\xe0\x40\xc8\xe0\xb8"
+            "\xe0\xe0\x28\xe0\xb7\xe0\x50\xf1\xc7\xe0\xc7\xe0\x50"
+            "\xb8\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0\x60\xf1\xb7\xe0"
+            "\xc7\xe0\x60\xa8\xe0\xb8\xe0\xe0\x28\xe0\xb7\xe0\x70"
+            "\xf1\xa7\xe0\xc7\xe0\x70\x98\xe0\xb8\xe0\xe0\x28\xe0"
+            "\xb7\xe0\xe0\x37\xe0\xc7\xe0\xe0\x29\xe0\xa9\xe0\x7f"
+            "\x2e\x0a\x9e\x0a\xee" }  },
+      /* --- pixel bitmap for cmmi600 char#73 I --- */
+      {  73,12074,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 39,   57, 3,235, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xee\x0b\xf1\xe0\x88\x90\xe0\x87\xa0\xf1\xe0\x78"
+            "\xa0\xf1\xe0\x77\xb0\xf1\xe0\x68\xb0\xf1\xe0\x67\xc0"
+            "\xf1\xe0\x58\xc0\xf1\xe0\x57\xd0\xf1\xe0\x48\xd0\xf1"
+            "\xe0\x47\xe0\xf1\xe0\x38\xe0\xf1\xe0\x37\xe0\x10\xf1"
+            "\xe0\x28\xe0\x10\xf1\xe0\x27\xe0\x20\xf1\xe0\x18\xe0"
+            "\x20\xf1\xe0\x17\xe0\x30\xf1\xe8\xe0\x30\xf1\xe7\xe0"
+            "\x40\xf1\xd8\xe0\x40\xf1\xd7\xe0\x50\xf1\xc8\xe0\x50"
+            "\xf1\xc7\xe0\x60\xf1\xb8\xe0\x60\xf1\xb7\xe0\x70\xf1"
+            "\xa8\xe0\x70\xa7\xe0\xe0\x39\xe0\x7f\x1e\x0c\xde\x0b"
+            "\xe0" }  },
+      /* --- pixel bitmap for cmmi600 char#74 J --- */
+      {  74,13008,                      /* character number, location */
+         57, 7,   -2, 7,      /* topleft row,col, and botleft row,col */
+          { 46,   59, 3,275, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf2\xe0\x8e\x0a\xe0\xe0\x39\x60\xf1\xe0\xe0\x47\x70"
+            "\xe0\xe0\x38\x70\xf2\xe0\xe0\x37\x80\xe0\xe0\x28\x80"
+            "\xf2\xe0\xe0\x27\x90\xe0\xe0\x18\x90\xf2\xe0\xe0\x17"
+            "\xa0\xe0\xe8\xa0\xf2\xe0\xe7\xb0\xe0\xd8\xb0\xf2\xe0"
+            "\xd7\xc0\xe0\xc8\xc0\xf2\xe0\xc7\xd0\xe0\xb8\xd0\xf2"
+            "\xe0\xb7\xe0\xe0\xa8\xe0\xf2\xe0\xa7\xe0\x10\xf1\xe0"
+            "\x98\xe0\x10\xf1\xe0\x97\xe0\x20\xf1\xe0\x88\xe0\x20"
+            "\x26\xe7\xe0\x47\xe7\xe0\x47\xd8\xe0\x3f\x18\xd7\xe0"
+            "\x48\xc7\xe0\x56\xd8\xe0\x52\xe0\x37\xe0\x63\xe0\x17"
+            "\xe0\x82\xe7\xe0\x93\xc7\xe0\xb3\xa6\xe0\xe4\x67\xe0"
+            "\xe0\x3d\xe0\xe0\x78\xe0\xe0\x38" }  },
+      /* --- pixel bitmap for cmmi600 char#75 K --- */
+      {  75,14381,                      /* character number, location */
+         57, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 70,   57, 2,243, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x0d\x19\x0f\x11\x0d\x19\x0e\x12\x0d\x18\x0f\x12\x15"
+            "\x08\x1a\x0a\x1a\x07\x1c\x06\x1d\x07\x1c\x04\x1e\x08"
+            "\x1b\x04\x1f\x08\x1a\x03\x21\x07\x1a\x03\x22\x07\x19"
+            "\x03\x22\x08\x17\x03\x24\x08\x16\x03\x25\x07\x16\x03"
+            "\x26\x07\x14\x03\x27\x08\x13\x03\x28\x08\x12\x03\x29"
+            "\x07\x11\x04\x2a\x07\x10\x03\x2b\x08\x0f\x03\x2c\x08"
+            "\x0e\x03\x2d\x07\x0d\x03\x2f\x07\x0c\x03\x2f\x08\x0b"
+            "\x03\x30\x08\x09\x06\x2f\x07\x09\x07\x2f\x07\x08\x09"
+            "\x2d\x08\x07\x0a\x2d\x08\x05\x03\x02\x08\x2c\x07\x05"
+            "\x03\x03\x08\x2c\x07\x04\x03\x05\x07\x2b\x08\x02\x03"
+            "\x07\x08\x2a\x08\x01\x03\x08\x08\x2a\x07\x01\x03\x0a"
+            "\x08\x29\x0a\x0b\x08\x28\x09\x0e\x08\x27\x08\x0f\x08"
+            "\x27\x07\x11\x07\x27\x07\x11\x08\x25\x08\x11\x08\x25"
+            "\x08\x12\x08\x24\x07\x13\x08\x24\x07\x14\x07\x18\x00"
+            "\xff\x01\x0b\x08\x14\x08\x17\x00\xff\x01\x0b\x07\x16"
+            "\x08\x16\x00\xff\x01\x0a\x08\x17\x08\x15\x00\x0a\x07"
+            "\x19\x07\x1f\x07\x19\x08\x1d\x08\x19\x08\x1d\x08\x1a"
+            "\x08\x1c\x07\x1a\x09\x1b\x09\x18\x0b\x12\x18\x0d\x15"
+            "\x0c\x18\x0c\x16\x0c\x18\x0c\x15\x0d" }  },
+      /* --- pixel bitmap for cmmi600 char#76 L --- */
+      {  76,15572,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 51,   57, 3,319, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\xde\x0d\xb0\xde\x0c\xe0\xe0\x59\xe0\xe0\xe8\xe0"
+            "\xe0\xe0\x17\xe0\x90\xf1\xe0\x68\xe0\x90\xf1\xe0\x67"
+            "\xe0\xa0\xf1\xe0\x58\xe0\xa0\xf1\xe0\x57\xe0\xb0\xf1"
+            "\xe0\x48\xe0\xb0\xf1\xe0\x47\xe0\xc0\xf1\xe0\x38\xe0"
+            "\xc0\xf1\xe0\x37\xe0\xd0\xf1\xe0\x28\xe0\xd0\xf1\xe0"
+            "\x27\xe0\xe0\xf1\xe0\x18\xe0\xe0\xf1\xe0\x17\xe0\xe0"
+            "\x10\xf1\xe8\xe0\xe0\x10\xf1\xe7\xe0\xe0\x20\xd8\xe0"
+            "\xe0\xe0\x18\xe0\xe0\x11\xf1\xd7\xe0\xe0\x12\xc8\xe0"
+            "\xe3\xc8\xe0\xe2\x10\xf1\xc7\xe0\xe3\x10\xb8\xe0\xe2"
+            "\xd8\xe0\xd3\x20\xf1\xb7\xe0\xd3\x30\xa8\xe0\xc4\xd8"
+            "\xe0\xb4\xe7\xe0\xc4\xe7\xe0\xb5\xd8\xe0\x96\xe8\xe0"
+            "\x87\xe7\xe0\x79\xd8\xe0\x3c\x6f\x1e\x0e\x0e\x03\x6e"
+            "\x0e\x0e\x02\x78" }  },
+      /* --- pixel bitmap for cmmi600 char#77 M --- */
+      {  77,17076,                      /* character number, location */
+         57, 4,    0, 4,      /* topleft row,col, and botleft row,col */
+          { 83,   57, 3,727, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xde\x02\xe0\xe0\xae\x02\xde\x02\xe0\xe0\x9e\x03\xde"
+            "\x03\xe0\xe0\x8e\x02\xe0\x89\xe0\xe0\x79\x90\xf1\xe0"
+            "\x72\x16\xe0\xe0\x62\x16\xa0\xe0\x63\x16\xe0\xe0\x52"
+            "\x17\xe0\xe0\x23\x16\xe0\xe0\x42\x26\xe0\xe0\x32\x26"
+            "\xe0\xe0\x42\x26\xe0\xe0\x32\x36\xe0\xe0\x22\x36\xe0"
+            "\xe0\x23\x36\xe0\xe0\x22\x27\xe0\xe0\x23\x36\xe0\xe0"
+            "\x12\x36\xc0\xf1\xe0\x52\x46\xe0\xe2\x46\xc0\xe0\x43"
+            "\x46\xe0\xd2\x47\xe0\xe0\x23\x46\xe0\xc2\x56\xe0\xe0"
+            "\x32\x56\xe0\xc2\x56\xe0\xe0\x32\x66\xe0\xa2\x66\xe0"
+            "\xe0\x23\x66\xe0\x92\x67\xe0\xe0\x23\x66\xe0\x92\x66"
+            "\xe0\xf1\xe0\x32\x76\xe0\x82\x76\xe0\xe0\x23\x76\xe0"
+            "\x72\x77\xe0\xe0\x23\x76\xe0\x62\x86\xe0\xe0\x32\x96"
+            "\xe0\x52\x86\xe0\xe0\x32\x96\xe0\x42\x96\xe0\xe0\x23"
+            "\x96\xe0\x32\x97\xe0\xe0\x23\x96\xe0\x32\x96\xe0\xe0"
+            "\x32\xa6\xe0\x22\xa6\xe0\xe0\x32\xa6\xe0\x12\xb6\xe0"
+            "\xe0\x23\xa6\xe0\x12\xa7\xe0\xe0\x23\xb6\xd2\xb6\xe0"
+            "\xe0\x32\xc6\xd2\xb6\xe0\xe0\x32\xc6\xc2\xc6\xe0\xe0"
+            "\x23\xc6\xb2\xc7\xe0\xe0\x23\xc6\xb2\xc6\xe0\xe0\x32"
+            "\xd6\xa2\xd6\xe0\xe0\x32\xd6\x92\xe6\xe0\xe0\x23\xd6"
+            "\x92\xd7\xe0\xe0\x23\xe6\x72\xe6\xe0\x50\xf1\xc2\xe0"
+            "\x16\x62\xe0\x16\xe0\x50\xb3\xe0\x16\x52\xe0\x17\xe0"
+            "\xe0\x23\xe0\x16\x52\xe0\x16\xe0\xe0\x32\xe0\x26\x42"
+            "\xe0\x26\xe0\xe0\x32\xe0\x26\x32\xe0\x36\xe0\xe0\x23"
+            "\xe0\x36\x22\xe0\x27\xe0\xe0\x23\xe0\x36\x12\xe0\x36"
+            "\xe0\x70\xf1\xa2\xe0\x48\xe0\x46\xe0\x70\x93\xe0\x47"
+            "\xe0\x47\xe0\xe0\x23\xe0\x46\xe0\x56\xe0\xe0\x16\xe0"
+            "\x36\xe0\x56\xe0\xd9\xe0\x34\xe0\x58\xe0\x7e\x05\xc4"
+            "\xbe\x09\xee\x05\xc3\xce\x09\xee\x05\xc2\xde\x09\xe0" }  },
+      /* --- pixel bitmap for cmmi600 char#78 N --- */
+      {  78,18646,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 71,   57, 3,615, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xde\x02\xe0\x8e\x06\xde\x03\xe0\x7e\x06\xde\x03\xe0"
+            "\x7e\x05\xe0\x8a\xe0\xb9\xe0\xda\xe0\xd5\xe0\xe0\x12"
+            "\x17\xe0\xd4\xe0\xe0\x13\x18\xe0\xc3\xe0\xe0\x23\x27"
+            "\xe0\xc3\xe0\xe0\x22\x38\xe0\xb2\xe0\xe0\x32\x47\xe0"
+            "\xb2\xe0\xe0\x23\x48\xe0\x93\xe0\xe0\x23\x48\xe0\x92"
+            "\xc0\xf1\xe0\x52\x68\xe0\x82\xc0\xe0\x43\x77\xe0\x73"
+            "\xe0\xe0\x23\x78\xe0\x62\xe0\xe0\x32\x97\xe0\x62\xe0"
+            "\xe0\x32\x98\xe0\x52\xe0\xe0\x23\x98\xe0\x43\xe0\xe0"
+            "\x23\xa8\xe0\x32\xe0\xe0\x32\xb8\xe0\x32\xe0\xe0\x32"
+            "\xc7\xe0\x32\xe0\xe0\x23\xc8\xe0\x13\xe0\xe0\x23\xd7"
+            "\xe0\x12\xe0\xe0\x32\xe8\xe2\xe0\xe0\x32\xe0\x17\xe2"
+            "\xe0\xe0\x23\xe0\x18\xc3\xe0\xe0\x23\xe0\x18\xc2\xe0"
+            "\x20\xf1\xe0\x12\xe0\x38\xb2\xe0\x20\xe3\xe0\x47\xa3"
+            "\xe0\xe0\x23\xe0\x48\x92\xe0\xe0\x32\xe0\x67\x92\xe0"
+            "\xe0\x32\xe0\x68\x82\xe0\xe0\x23\xe0\x77\x73\xe0\xe0"
+            "\x23\xe0\x78\x62\xe0\xe0\x32\xe0\x88\x62\xe0\xe0\x32"
+            "\xe0\x98\x52\xe0\xe0\x23\xe0\x98\x43\xe0\xe0\x23\xe0"
+            "\xa7\x42\xe0\xe0\x32\xe0\xb8\x32\xe0\xe0\x32\xe0\xc7"
+            "\x32\xe0\xe0\x23\xe0\xc8\x13\xe0\xe0\x23\xe0\xd7\x12"
+            "\xe0\x60\xf1\xb2\xe0\xea\xe0\x60\xa3\xe0\xe0\x19\xe0"
+            "\xe0\x23\xe0\xe0\x18\xe0\x70\xf1\xa2\xe0\xe0\x37\xe0"
+            "\x70\x93\xe0\xe0\x46\xe0\xe0\x23\xe0\xe0\x45\xe0\xe0"
+            "\x16\xe0\xe0\x35\xe0\xd9\xe0\xe0\x34\xe0\x8e\x05\xe0"
+            "\xc4\xe0\x8f\x1e\x05\xe0\xd2\xe0\x90" }  },
+      /* --- pixel bitmap for cmmi600 char#79 O --- */
+      {  79,19779,                      /* character number, location */
+         59, 4,   -2, 4,      /* topleft row,col, and botleft row,col */
+          { 57,   61, 2,209, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\x1f\x0a\x2b\x11\x26\x07\x08\x06\x22\x06\x0d\x06\x1e"
+            "\x06\x11\x05\x1b\x06\x14\x06\x18\x05\x17\x06\x15\x06"
+            "\x19\x05\x14\x06\x1a\x06\x12\x06\x1c\x06\x10\x06\x1d"
+            "\x06\x0f\x06\x1f\x06\x0d\x06\x20\x06\x0c\x07\x20\x07"
+            "\x0a\x07\x21\x07\x09\x07\x23\x06\x09\x07\x23\x07\x07"
+            "\x07\x24\x07\xff\x01\x06\x07\x25\x07\xff\x01\x05\x07"
+            "\x26\x07\x04\x08\x26\x07\x04\x07\x27\x07\xff\x01\x03"
+            "\x08\x26\x08\xff\x02\x02\x08\x27\x08\xff\x03\x01\x08"
+            "\x27\x08\x01\x09\x26\x08\x02\xff\x01\x08\x27\x08\x02"
+            "\xff\x01\x08\x26\x08\x03\xff\x01\x08\x25\x08\x04\x08"
+            "\x25\x07\x05\x08\x24\x08\x05\x08\x23\x08\x06\x08\x23"
+            "\x07\x08\x07\x22\x08\x08\x07\x22\x07\x09\x07\x21\x07"
+            "\x0a\x07\x20\x07\x0c\x07\x1f\x06\x0d\x07\x1e\x06\x0f"
+            "\x06\x1d\x06\x10\x07\x1b\x06\x12\x06\x1a\x06\x14\x06"
+            "\x18\x06\x16\x06\x15\x07\x18\x06\x13\x06\x1b\x06\x10"
+            "\x07\x1d\x06\x0d\x07\x21\x07\x07\x08\x25\x11\x2b\x0a"
+            "\x1f" }  },
+      /* --- pixel bitmap for cmmi600 char#80 P --- */
+      {  80,21132,                      /* character number, location */
+         57, 3,    0, 3,      /* topleft row,col, and botleft row,col */
+          { 59,   57, 3,355, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xee\x0e\x06\xe0\xae\x0e\x0a\xe0\x7e\x0e\x0c\xe0\xd8"
+            "\xe0\x29\xe0\xc7\xe0\x67\xe0\xb7\xe0\x77\xe0\x98\xe0"
+            "\x87\xe0\x88\xe0\x97\x10\xf1\xe0\x67\xe0\xa7\x10\xf1"
+            "\xe0\x58\xe0\xa8\xf1\xe0\x57\xe0\xb8\xe0\x48\xe0\xb8"
+            "\xe0\x48\xe0\xa8\x10\xf1\xe0\x47\xe0\xb8\x10\xf1\xe0"
+            "\x38\xe0\xa8\x20\xe0\x37\xe0\xb7\xe0\x67\xe0\xa7\xe0"
+            "\x68\xe0\x97\xe0\x78\xe0\x96\xe0\x87\xe0\x87\xe0\x97"
+            "\xe0\x77\xe0\x98\xe0\x58\xe0\xa8\xe0\x29\xe0\xce\x0e"
+            "\x03\xe0\xee\x0e\xe0\x20\xf1\xe8\xe0\xe0\x90\xf1\xe7"
+            "\xe0\xe0\xa0\xf1\xd8\xe0\xe0\xa0\xf1\xd7\xe0\xe0\xb0"
+            "\xf1\xc8\xe0\xe0\xb0\xf1\xc7\xe0\xe0\xc0\xf1\xb8\xe0"
+            "\xe0\xc0\xf1\xb7\xe0\xe0\xd0\xf1\xa8\xe0\xe0\xd0\xf1"
+            "\xa7\xe0\xe0\xe0\xf1\x98\xe0\xe0\xe0\x97\xe0\xe0\xe0"
+            "\x99\xe0\xe0\xef\x2e\x0a\xe0\xe0\x76" }  },
+      /* --- pixel bitmap for cmmi600 char#81 Q --- */
+      {  81,22311,                      /* character number, location */
+         59, 4,  -16, 4,      /* topleft row,col, and botleft row,col */
+          { 57,   75, 3,555, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xe0\x3a\xe0\xe0\xe0\x1e\x03\xe0\xe0\xa7\x77\xe0"
+            "\xe0\x66\xd6\xe0\xe0\x26\xe0\x26\xe0\xd6\xe0\x66\xe0"
+            "\xa6\xe0\x86\xe0\x76\xe0\xa6\xe0\x66\xe0\xc6\xe0\x46"
+            "\xe0\xe6\xe0\x26\xe0\xe0\x16\xe0\x16\xe0\xe0\x27\xd7"
+            "\xe0\xe0\x36\xc7\xe0\xe0\x47\xa7\xe0\xe0\x57\x97\xe0"
+            "\xe0\x67\x97\xe0\xe0\x68\x77\xe0\xe0\x87\x68\xe0\xe0"
+            "\x87\x67\xe0\xe0\x97\x58\xe0\xe0\x97\x57\xe0\xe0\xa7"
+            "\x48\xe0\xe0\xa7\x47\xe0\xe0\xa8\xf1\x38\xe0\xe0\xa8"
+            "\xf2\x28\xe0\xe0\xb8\xf3\x18\xe0\xe0\xb8\x1f\x28\xe0"
+            "\xe0\xb8\x2f\x18\xe0\xe0\xa8\x38\xe0\xe0\xa7\x48\xe0"
+            "\xe0\x98\x48\xe0\xe0\x97\x58\xe0\xe0\x88\x58\xe0\xe0"
+            "\x87\x68\xe0\xe0\x77\x87\xe0\xe0\x77\x87\xe0\xe0\x67"
+            "\x97\xe0\xe0\x57\xa7\xe5\xe6\xc6\xc9\xb6\xd7\xa3\x53"
+            "\x96\xe0\x16\x93\x72\x86\xe0\x27\x73\x83\x66\xe0\x46"
+            "\x72\xa2\x56\xe0\x66\x53\xa2\x46\xe0\x86\x42\xb2\x36"
+            "\xe0\xa6\x32\xb9\xe0\xd6\x22\xb8\xe0\xe0\x16\x13\x97"
+            "\xe0\xe0\x58\x68\xe2\xe0\x7e\x05\xe0\x12\xe0\xaa\x33"
+            "\xe3\xe0\xe0\x93\xe2\xe0\xe0\xa4\xc3\xe0\xe0\xa4\xb4"
+            "\xe0\xe0\xa4\xa4\xe0\xe0\xb5\x85\xe0\xe0\xb6\x56\xe0"
+            "\xe0\xce\x03\xb0\xf1\xe0\xe0\x1e\x02\xc0\xe0\xe0\x1e"
+            "\x01\xe0\xe0\xee\xe0\xe0\xe0\x2c\xe0\xe0\xe0\x49\xe0"
+            "\xe0\xe0\x85\xe0\x56" }  },
+      /* --- pixel bitmap for cmmi600 char#82 R --- */
+      {  82,23942,                      /* character number, location */
+         57, 3,   -2, 3,      /* topleft row,col, and botleft row,col */
+          { 60,   59, 3,445, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xde\x0e\x05\xe0\xde\x0e\x08\xe0\xae\x0e\x0b\xe0\xe0"
+            "\x18\xe0\x19\xe0\xe7\xe0\x58\xe0\xc7\xe0\x68\x40\xf1"
+            "\xe0\x68\xe0\x87\x30\xf1\xe0\x67\xe0\xa7\x20\xf1\xe0"
+            "\x58\xe0\xa8\x10\xf1\xe0\x57\xe0\xb8\x10\xe0\x48\xe0"
+            "\xb8\xe0\x58\xe0\xa8\x20\xf1\xe0\x47\xe0\xb8\x20\xe0"
+            "\x38\xe0\xa8\xe0\x68\xe0\xa7\xe0\x77\xe0\xa7\xe0\x87"
+            "\xe0\x97\xe0\x88\xe0\x87\xe0\x98\xe0\x77\xe0\xa7\xe0"
+            "\x76\xe0\xc7\xe0\x47\xe0\xd8\xe0\x18\xe0\xe0\x1e\x0e"
+            "\xe0\xe0\x4e\x0c\xe0\xe0\x67\xe7\xe0\xe0\x38\xe0\x27"
+            "\xe0\xe0\x18\xe0\x46\xe0\xe7\xe0\x57\xe0\xd7\xe0\x67"
+            "\xe0\xb8\xe0\x67\xe0\xb8\xe0\x76\xe0\xb7\xe0\x86\xe0"
+            "\xb7\xe0\x87\xe0\x98\xe0\x78\xe0\x98\xe0\x77\xc0\xf1"
+            "\xc7\xe0\x87\xc0\xf1\xb8\xe0\x78\xc0\xf1\xb7\xe0\x88"
+            "\xc0\xa8\xe0\x88\xe0\x88\xe0\x79\xc0\xf1\xa7\xe0\x88"
+            "\xb2\x98\xe0\x88\xa3\x98\xe0\x88\xa2\xa7\xe0\x98\x93"
+            "\x99\xe0\x97\x92\x2e\x0a\xe0\x27\x83\x2e\x0a\xe0\x37"
+            "\x63\x3e\x0a\xe0\x46\x53\xe0\xe0\xe0\x6b\xe0\xe0\xe0"
+            "\x97\x70" }  },
+      /* --- pixel bitmap for cmmi600 char#83 S --- */
+      {  83,25221,                      /* character number, location */
+         59, 5,   -2, 5,      /* topleft row,col, and botleft row,col */
+          { 49,   61, 3,381, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xe0\xc9\xb3\xe0\x9e\x92\xe0\x8e\x04\x63\xe0\x76\x86"
+            "\x44\xe0\x56\xd4\x25\xe0\x45\xe0\x29\xe0\x45\xe0\x48"
+            "\xe0\x35\xe0\x67\xe0\x25\xe0\x86\xe0\x24\xe0\x95\xe0"
+            "\x25\xe0\xa4\x30\xf1\xc5\xe0\xb4\x30\xb6\xe0\xb3\x40"
+            "\xf2\xb5\xe0\xc3\x40\xf1\xa6\xe0\xc2\x50\xa7\xe0\xb2"
+            "\xe0\x17\xe0\xe0\x40\xf1\xa8\xe0\xe0\x30\xb9\xe0\xe0"
+            "\xcc\xe0\xe0\x9e\x01\xe0\xe0\x7e\x04\xe0\xe0\x3e\x07"
+            "\xe0\xe0\x1e\x08\xe0\xee\x09\xe0\xee\x08\xe0\xe0\x1e"
+            "\x06\xe0\xe0\x5e\x03\xe0\xe0\x7e\xe0\xe0\xbb\xe0\xe0"
+            "\xc9\xe0\xe0\xd8\xe0\xe0\xe7\x90\xf2\xe0\xe0\x66\x90"
+            "\xf2\x42\xe0\xe0\x15\x90\x33\xe0\xe6\x90\xf2\x33\xe0"
+            "\xe5\xa0\xf1\x24\xe0\xd5\xb0\x24\xe0\xc5\xe5\xe0\xa5"
+            "\xe6\xe0\xa5\xe7\xe0\x85\xe0\x18\xe0\x65\xe0\x29\xe0"
+            "\x45\xe0\x25\x25\xe6\xe0\x34\x47\x96\xe0\x53\x7e\x05"
+            "\xe0\x63\x9e\x01\xe0\x82\xd9\xe0\xb2" }  },
+      /* --- pixel bitmap for cmmi600 char#84 T --- */
+      {  84,26451,                      /* character number, location */
+         57, 2,    0, 2,      /* topleft row,col, and botleft row,col */
+          { 56,   57, 3,383, (pixbyte *)/* width,ht, fmt,pixsz,map... */
+            "\xf1\x6e\x0e\x0e\x08\x5e\x0e\x0e\x09\x58\xe8\xd8\x55"
+            "\xe0\x37\xe0\x26\x45\xe0\x47\xe0\x34\x54\xe0\x48\xe0"
+            "\x43\x44\xe0\x58\xe0\x43\x10\xf1\x33\xe0\x67\xe0\x53"
+            "\x10\xf1\x23\xe0\x68\xe0\x53\x10\x22\xe0\x77\xe0\x63"
+            "\x23\xe0\x77\xe0\x62\x32\xe0\x78\xe0\x62\x23\xe0\x78"
+            "\xe0\x62\x2f\x12\xe0\x87\xe0\x72\x22\xe0\x78\xe0\x72"
+            "\xe0\xb8\xe0\xb0\xf1\xe0\x97\xe0\xc0\xf1\xe0\x88\xe0"
+            "\xc0\xf1\xe0\x87\xe0\xd0\xf1\xe0\x78\xe0\xd0\xf1\xe0"
+            "\x77\xe0\xe0\xf1\xe0\x68\xe0\xe0\xf1\xe0\x67\xe0\xe0"
+            "\x10\xf1\xe0\x58\xe0\xe0\x10\xf1\xe0\x57\xe0\xe0\x20"
+            "\xf1\xe0\x48\xe0\xe0\x20\xf1\xe0\x47\xe0\xe0\x30\xf1"
+            "\xe0\x38\xe0\xe0\x30\xf1\xe0\x37\xe0\xe0\x40\xf1\xe0"
+            "\x28\xe0\xe0\x40\xf1\xe0\x27\xe0\xe0\x50\xf1\xe0\x18"
+            "\xe0