diff --git a/Android.bp b/Android.bp
index ff6e739..26148b3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -37,9 +37,8 @@
     cflags: [
         "-DSASR",
         "-DWAV49",
-        "-Wno-unused-parameter",
-        "-Wno-shift-negative-value",
         "-Werror",
+        "-Wno-unused-parameter",
     ],
 
     export_include_dirs: ["inc"],
diff --git a/NOTICE b/COPYRIGHT
similarity index 100%
rename from NOTICE
rename to COPYRIGHT
diff --git a/ChangeLog b/ChangeLog
index a3e7cb6..f15352b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Tue Jun 27 17:59:30  2017
+
+	* Release 1.0 Patchlevel 17
+	New email addresses in the README.
+	Avoid left-shifting signed integers.
+	Don't print longwords using %d or %ld, cast them to (long) first.
+	Don't compare longwords as longs in addtest, we only care for the
+		lower 32 bits. (The math works, but the test failed.)
+
+Sat Sep 17 14:50:55  2016
+
+	* Release 1.0 Patchlevel 16
+	New email addresses in the manual pages (patch 16)
+	Removed a stray .orig file (in patch 15) 
+
 Sun Apr  5  04:53:07 2009       Jutta Degener (jutta@pobox.com)
 
 	* Release 1.0 Patchlevel 13
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..5850304
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,99 @@
+How to get started:
+
+   Edit the Makefile.
+
+	You should configure a few machine-dependencies and what
+	compiler you want to use.
+
+  	The code works both with ANSI and K&R-C.  Use
+	-DNeedFunctionPrototypes to compile with, or
+	-UNeedFunctionPrototypes to compile without, function
+	prototypes in the header files.
+ 
+   Make addtst
+
+	The "add" program that will be compiled and run checks whether
+	the basic math functions of the gsm library work with your
+	compiler.  If it prints anything to stderr, complain (to us).
+
+   Edit inc/config.h.
+
+   Make
+
+   	Local versions of the gsm library and the "compress"-like filters
+	toast, untoast and tcat will be generated.
+
+   	If the compilation aborts because of a missing function,
+	declaration, or header file, see if there's something in
+	inc/config.h to work around it.  If not, complain.
+
+   Try it
+
+	Grab an audio file from somewhere (raw u-law or Sun .au is fine, 
+    	linear 16-bit in host byte order will do), copy it, toast it,
+	untoast it, and listen to the result.
+    
+	The GSM-encoded and -decoded audio should have the quality
+	of a good phone line.  If the resulting audio is noisier than
+	your original, or if you hear compression artifacts, complain;
+	that's a bug in our software, not a bug in the GSM encoding
+	standard itself.
+
+Installation
+
+   You can install the gsm library interface, or the toast binaries,
+   or both.
+
+   Edit the Makefile
+	
+	Fill in the directories where you want to install the
+	library, header files, manual pages, and binaries.
+
+	Turn off the installation of one half of the distribution
+	(i.e., gsm library or toast binaries) by not setting the
+	corresponding directory root Makefile macro.
+
+   make install
+
+	will install the programs "toast" with two links named
+	"tcat" and "untoast", and the gsm library "libgsm.a" with
+	a "gsm.h" header file, and their respective manual pages.
+
+
+Optimizing
+
+   This code was developed on a machine without an integer
+   multiplication instruction, where we obtained the fastest result by
+   replacing some of the integer multiplications with floating point
+   multiplications.
+
+   If your machine does multiply integers fast enough,
+   leave USE_FLOAT_MUL undefined.  The results should be the
+   same in both cases.
+
+   On machines with fast floating point arithmetic, defining
+   both USE_FLOAT_MUL and FAST makes a run-time library
+   option available that will (in a few crucial places) use
+   ``native'' floating point operations rather than the bit-by-bit
+   defined ones of the GSM standard.  If you use this fast
+   option, the outcome will not be bitwise identical to the
+   results prescribed by the standard, but it is compatible with
+   the standard encoding, and a user is unlikely to notice a
+   difference.
+
+
+Bug Reports
+
+   Please direct bug reports, questions, and comments to
+   jutta@cs.tu-berlin.de and cabo@informatik.uni-bremen.de.
+
+
+Good luck,
+
+   Jutta Degener,
+   Carsten Bormann
+
+--
+Copyright 1992, 1993, 1994, by Jutta Degener and Carsten Bormann,
+Technische Universitaet Berlin.  See the accompanying file "COPYRIGHT"
+for details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
diff --git a/MACHINES b/MACHINES
new file mode 100644
index 0000000..9f9e69b
--- /dev/null
+++ b/MACHINES
@@ -0,0 +1,11 @@
+The gsm library has been tested successfully on the following platforms:
+
+- Various Sun4s running SunOS 4.1.2
+- SPARC1 (SunOS 4.1.1)
+- Integrated Solutions 68k Optimum running 4.3BSD UNIX with a Green Hills cc
+- NeXTstation running NeXT-OS/Mach 3.0
+- No-name AT/386 with Xenix 2.3.2 (using -DSTUPID_COMPILER)
+- RS/6000-350 running AIX 3.2.0
+- RS/6000-320 running AIX 3.1.5
+- Alliant FX80 (Concentrix 5.7)
+- SGI Indigo XS4000 (IRIX 4.0.5F)
diff --git a/MANIFEST b/MANIFEST
new file mode 100644
index 0000000..6db3b2a
--- /dev/null
+++ b/MANIFEST
@@ -0,0 +1,59 @@
+gsm-1.0/COPYRIGHT
+gsm-1.0/ChangeLog
+gsm-1.0/INSTALL
+gsm-1.0/MACHINES
+gsm-1.0/MANIFEST
+gsm-1.0/Makefile
+gsm-1.0/README
+gsm-1.0/add-test/add_test.c
+gsm-1.0/add-test/add_test.dta
+gsm-1.0/inc/gsm.h
+gsm-1.0/inc/proto.h
+gsm-1.0/inc/unproto.h
+gsm-1.0/inc/config.h
+gsm-1.0/inc/private.h
+gsm-1.0/inc/toast.h
+gsm-1.0/man/bitter.1
+gsm-1.0/man/gsm.3
+gsm-1.0/man/gsm_explode.3
+gsm-1.0/man/gsm_print.3
+gsm-1.0/man/gsm_option.3
+gsm-1.0/man/toast.1
+gsm-1.0/src/add.c
+gsm-1.0/src/code.c
+gsm-1.0/src/debug.c
+gsm-1.0/src/decode.c
+gsm-1.0/src/gsm_destroy.c
+gsm-1.0/src/gsm_decode.c
+gsm-1.0/src/gsm_encode.c
+gsm-1.0/src/gsm_explode.c
+gsm-1.0/src/gsm_implode.c
+gsm-1.0/src/gsm_create.c
+gsm-1.0/src/gsm_print.c
+gsm-1.0/src/gsm_option.c
+gsm-1.0/src/long_term.c
+gsm-1.0/src/lpc.c
+gsm-1.0/src/preprocess.c
+gsm-1.0/src/rpe.c
+gsm-1.0/src/short_term.c
+gsm-1.0/src/table.c
+gsm-1.0/src/toast.c
+gsm-1.0/src/toast_alaw.c
+gsm-1.0/src/toast_audio.c
+gsm-1.0/src/toast_lin.c
+gsm-1.0/src/toast_ulaw.c
+gsm-1.0/tls/bitter.c
+gsm-1.0/tls/bitter.dta
+gsm-1.0/tls/taste.c
+gsm-1.0/tls/taste.h
+gsm-1.0/tls/sweet.c
+gsm-1.0/tls/sour.c
+gsm-1.0/tls/sour1.dta
+gsm-1.0/tls/sour2.dta
+gsm-1.0/tls/ginger.c
+gsm-1.0/tst/cod2lin.c
+gsm-1.0/tst/cod2txt.c
+gsm-1.0/tst/gsm2cod.c
+gsm-1.0/tst/lin2cod.c
+gsm-1.0/tst/lin2txt.c
+gsm-1.0/tst/run
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d5c0c90
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,494 @@
+# Copyright 1992-1996 by Jutta Degener and Carsten Bormann, Technische
+# Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+# details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+
+# Machine- or installation dependent flags you should configure to port
+
+SASR	= -DSASR
+######### Define SASR if >> is a signed arithmetic shift (-1 >> 1 == -1)
+
+# MULHACK = -DUSE_FLOAT_MUL
+######### Define this if your host multiplies floats faster than integers,
+######### e.g. on a SPARCstation.
+
+# FAST	= -DFAST
+######### Define together with USE_FLOAT_MUL to enable the GSM library's
+######### approximation option for incorrect, but good-enough results.
+
+# LTP_CUT	= -DLTP_CUT
+LTP_CUT	=
+######### Define to enable the GSM library's long-term correlation 
+######### approximation option---faster, but worse; works for
+######### both integer and floating point multiplications.
+######### This flag is still in the experimental stage.
+
+WAV49	= -DWAV49
+# WAV49	=
+######### Define to enable the GSM library's option to pack GSM frames 
+######### in the style used by the WAV #49 format.  If you want to write
+######### a tool that produces .WAV files which contain GSM-encoded data,
+######### define this, and read about the GSM_OPT_WAV49 option in the
+######### manual page on gsm_option(3).
+
+# Choose a compiler.  The code works both with ANSI and K&R-C.
+# Use -DNeedFunctionPrototypes to compile with, -UNeedFunctionPrototypes to
+# compile without, function prototypes in the header files.
+#
+# You can use the -DSTUPID_COMPILER to circumvent some compilers'
+# static limits regarding the number of subexpressions in a statement.
+
+# CC		= cc
+# CCFLAGS 	= -c -DSTUPID_COMPILER
+
+# CC		= /usr/lang/acc
+# CCFLAGS 	= -c -O
+
+CC		= gcc -ansi -pedantic
+CCFLAGS 	= -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment
+
+LD 		= $(CC)
+
+# LD		= gcc
+# LDFLAGS 	=
+
+
+# If your compiler needs additional flags/libraries, regardless of
+# the source compiled, configure them here.
+
+# CCINC	= -I/usr/gnu/lib/gcc-2.1/gcc-lib/sparc-sun-sunos4.1.2/2.1/include
+######### Includes needed by $(CC)
+
+# LDINC	= -L/usr/gnu/lib/gcc-2.1/gcc-lib/sparc-sun-sunos4.1.2/2.1
+######### Library paths needed by $(LD)
+
+# LDLIB	= -lgcc
+######### Additional libraries needed by $(LD)
+
+
+# Where do you want to install libraries, binaries, a header file
+# and the manual pages?
+#
+# Leave INSTALL_ROOT empty (or just don't execute "make install") to
+# not install gsm and toast outside of this directory.
+
+INSTALL_ROOT	=
+
+# Where do you want to install the gsm library, header file, and manpages?
+#
+# Leave GSM_INSTALL_ROOT empty to not install the GSM library outside of
+# this directory.
+
+GSM_INSTALL_ROOT = $(INSTALL_ROOT)
+GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib
+GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc
+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
+
+
+# Where do you want to install the toast binaries and their manpage?
+#
+# Leave TOAST_INSTALL_ROOT empty to not install the toast binaries outside
+# of this directory.
+
+TOAST_INSTALL_ROOT	  = $(INSTALL_ROOT)
+TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin
+TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1
+
+#  Other tools
+
+SHELL		= /bin/sh
+LN		= ln
+BASENAME 	= basename
+AR		= ar
+ARFLAGS		= cr
+RMFLAGS		=
+FIND		= find
+COMPRESS 	= compress
+COMPRESSFLAGS 	= 
+# RANLIB 	= true
+RANLIB	 	= ranlib
+
+#
+#    You shouldn't have to configure below this line if you're porting.
+# 
+
+
+# Local Directories
+
+ROOT	= .
+ADDTST	= $(ROOT)/add-test
+TST	= $(ROOT)/tst
+MAN	= $(ROOT)/man
+BIN	= $(ROOT)/bin
+SRC	= $(ROOT)/src
+LIB	= $(ROOT)/lib
+TLS	= $(ROOT)/tls
+INC	= $(ROOT)/inc
+
+# Flags
+
+# DEBUG	= -DNDEBUG
+######### Remove -DNDEBUG to enable assertions.
+
+CFLAGS	= $(CCFLAGS) $(SASR) $(DEBUG) $(MULHACK) $(FAST) $(LTP_CUT) \
+	$(WAV49) $(CCINC) -I$(INC)
+######### It's $(CC) $(CFLAGS)
+
+LFLAGS	= $(LDFLAGS) $(LDINC)
+######### It's $(LD) $(LFLAGS)
+
+
+# Targets
+
+LIBGSM	= $(LIB)/libgsm.a
+
+TOAST	= $(BIN)/toast
+UNTOAST	= $(BIN)/untoast
+TCAT	= $(BIN)/tcat
+
+# Headers
+
+GSM_HEADERS =	$(INC)/gsm.h
+
+HEADERS	=	$(INC)/proto.h		\
+		$(INC)/unproto.h	\
+		$(INC)/config.h		\
+		$(INC)/private.h	\
+		$(INC)/gsm.h		\
+		$(INC)/toast.h		\
+		$(TLS)/taste.h
+
+# Sources
+
+GSM_SOURCES =	$(SRC)/add.c		\
+		$(SRC)/code.c		\
+		$(SRC)/debug.c		\
+		$(SRC)/decode.c		\
+		$(SRC)/long_term.c	\
+		$(SRC)/lpc.c		\
+		$(SRC)/preprocess.c	\
+		$(SRC)/rpe.c		\
+		$(SRC)/gsm_destroy.c	\
+		$(SRC)/gsm_decode.c	\
+		$(SRC)/gsm_encode.c	\
+		$(SRC)/gsm_explode.c	\
+		$(SRC)/gsm_implode.c	\
+		$(SRC)/gsm_create.c	\
+		$(SRC)/gsm_print.c	\
+		$(SRC)/gsm_option.c	\
+		$(SRC)/short_term.c	\
+		$(SRC)/table.c
+
+TOAST_SOURCES = $(SRC)/toast.c 		\
+		$(SRC)/toast_lin.c	\
+		$(SRC)/toast_ulaw.c	\
+		$(SRC)/toast_alaw.c	\
+		$(SRC)/toast_audio.c
+
+SOURCES	=	$(GSM_SOURCES)		\
+		$(TOAST_SOURCES)	\
+		$(ADDTST)/add_test.c	\
+		$(TLS)/sour.c		\
+		$(TLS)/ginger.c		\
+		$(TLS)/sour1.dta	\
+		$(TLS)/sour2.dta	\
+		$(TLS)/bitter.c		\
+		$(TLS)/bitter.dta	\
+		$(TLS)/taste.c		\
+		$(TLS)/sweet.c		\
+		$(TST)/cod2lin.c	\
+		$(TST)/cod2txt.c	\
+		$(TST)/gsm2cod.c	\
+		$(TST)/lin2cod.c	\
+		$(TST)/lin2txt.c
+
+# Object files
+
+GSM_OBJECTS =	$(SRC)/add.o		\
+		$(SRC)/code.o		\
+		$(SRC)/debug.o		\
+		$(SRC)/decode.o		\
+		$(SRC)/long_term.o	\
+		$(SRC)/lpc.o		\
+		$(SRC)/preprocess.o	\
+		$(SRC)/rpe.o		\
+		$(SRC)/gsm_destroy.o	\
+		$(SRC)/gsm_decode.o	\
+		$(SRC)/gsm_encode.o	\
+		$(SRC)/gsm_explode.o	\
+		$(SRC)/gsm_implode.o	\
+		$(SRC)/gsm_create.o	\
+		$(SRC)/gsm_print.o	\
+		$(SRC)/gsm_option.o	\
+		$(SRC)/short_term.o	\
+		$(SRC)/table.o
+
+TOAST_OBJECTS =	$(SRC)/toast.o 		\
+		$(SRC)/toast_lin.o	\
+		$(SRC)/toast_ulaw.o	\
+		$(SRC)/toast_alaw.o	\
+		$(SRC)/toast_audio.o
+
+OBJECTS =	 $(GSM_OBJECTS) $(TOAST_OBJECTS)
+
+# Manuals
+
+GSM_MANUALS =	$(MAN)/gsm.3		\
+		$(MAN)/gsm_explode.3	\
+		$(MAN)/gsm_option.3	\
+		$(MAN)/gsm_print.3
+
+TOAST_MANUALS =	$(MAN)/toast.1
+
+MANUALS	= 	$(GSM_MANUALS) $(TOAST_MANUALS) $(MAN)/bitter.1
+
+# Other stuff in the distribution
+
+STUFF = 	ChangeLog			\
+		INSTALL			\
+		MACHINES		\
+		MANIFEST		\
+		Makefile		\
+		README			\
+		$(ADDTST)/add_test.dta	\
+		$(TLS)/bitter.dta	\
+		$(TST)/run
+
+
+# Install targets
+
+GSM_INSTALL_TARGETS =	\
+		$(GSM_INSTALL_LIB)/libgsm.a		\
+		$(GSM_INSTALL_INC)/gsm.h		\
+		$(GSM_INSTALL_MAN)/gsm.3		\
+		$(GSM_INSTALL_MAN)/gsm_explode.3	\
+		$(GSM_INSTALL_MAN)/gsm_option.3		\
+		$(GSM_INSTALL_MAN)/gsm_print.3
+
+TOAST_INSTALL_TARGETS =	\
+		$(TOAST_INSTALL_BIN)/toast		\
+		$(TOAST_INSTALL_BIN)/tcat		\
+		$(TOAST_INSTALL_BIN)/untoast		\
+		$(TOAST_INSTALL_MAN)/toast.1
+
+
+# Default rules
+
+.c.o:
+		$(CC) $(CFLAGS) $?
+		@-mv `$(BASENAME) $@` $@ > /dev/null 2>&1
+
+# Target rules
+
+all:		$(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
+		@-echo $(ROOT): Done.
+
+tst:		$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
+		@-echo tst: Done.
+
+addtst:		$(ADDTST)/add $(ADDTST)/add_test.dta
+		$(ADDTST)/add < $(ADDTST)/add_test.dta > /dev/null
+		@-echo addtst: Done.
+
+misc:		$(TLS)/sweet $(TLS)/bitter $(TLS)/sour $(TLS)/ginger 	\
+			$(TST)/lin2txt $(TST)/cod2txt $(TST)/gsm2cod
+		@-echo misc: Done.
+
+install:	toastinstall gsminstall
+		@-echo install: Done.
+
+
+# The basic API: libgsm
+
+$(LIBGSM):	$(LIB) $(GSM_OBJECTS)
+		-rm $(RMFLAGS) $(LIBGSM)
+		$(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
+		$(RANLIB) $(LIBGSM)
+
+
+# Toast, Untoast and Tcat -- the compress-like frontends to gsm.
+
+$(TOAST):	$(BIN) $(TOAST_OBJECTS) $(LIBGSM)
+		$(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
+
+$(UNTOAST):	$(BIN) $(TOAST)
+		-rm $(RMFLAGS) $(UNTOAST)
+		$(LN) $(TOAST) $(UNTOAST)
+
+$(TCAT):	$(BIN) $(TOAST)
+		-rm $(RMFLAGS) $(TCAT)
+		$(LN) $(TOAST) $(TCAT)
+
+
+# The local bin and lib directories
+
+$(BIN):
+		if [ ! -d $(BIN) ] ; then mkdir $(BIN) ; fi
+
+$(LIB):
+		if [ ! -d $(LIB) ] ; then mkdir $(LIB) ; fi
+
+
+# Installation
+
+gsminstall:
+		-if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then	\
+			make $(GSM_INSTALL_TARGETS) ;	\
+		fi
+
+toastinstall:
+		-if [ x"$(TOAST_INSTALL_ROOT)" != x ]; then	\
+			make $(TOAST_INSTALL_TARGETS);	\
+		fi
+
+gsmuninstall:
+		-if [ x"$(GSM_INSTALL_ROOT)" != x ] ; then	\
+			rm $(RMFLAGS) $(GSM_INSTALL_TARGETS) ;	\
+		fi
+
+toastuninstall:
+		-if [ x"$(TOAST_INSTALL_ROOT)" != x ] ; then 	\
+			rm $(RMFLAGS) $(TOAST_INSTALL_TARGETS);	\
+		fi
+
+$(TOAST_INSTALL_BIN)/toast:	$(TOAST)
+		-rm $@
+		cp $(TOAST) $@
+		chmod 755 $@
+
+$(TOAST_INSTALL_BIN)/untoast:	$(TOAST_INSTALL_BIN)/toast
+		-rm $@
+		ln $? $@
+
+$(TOAST_INSTALL_BIN)/tcat:	$(TOAST_INSTALL_BIN)/toast
+		-rm $@
+		ln $? $@
+
+$(TOAST_INSTALL_MAN)/toast.1:	$(MAN)/toast.1
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_MAN)/gsm.3:	$(MAN)/gsm.3
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_MAN)/gsm_option.3:	$(MAN)/gsm_option.3
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_MAN)/gsm_explode.3:	$(MAN)/gsm_explode.3
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_MAN)/gsm_print.3:	$(MAN)/gsm_print.3
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_INC)/gsm.h:	$(INC)/gsm.h
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+$(GSM_INSTALL_LIB)/libgsm.a:	$(LIBGSM)
+		-rm $@
+		cp $? $@
+		chmod 444 $@
+
+
+# Distribution
+
+dist:		gsm-1.0.tar.Z
+		@echo dist: Done.
+
+gsm-1.0.tar.Z:	$(STUFF) $(SOURCES) $(HEADERS) $(MANUALS)
+		(	cd $(ROOT)/..;				\
+			tar cvf - `cat $(ROOT)/gsm-1.0/MANIFEST	\
+				| sed '/^#/d'`			\
+		) | $(COMPRESS) $(COMPRESSFLAGS) > $(ROOT)/gsm-1.0.tar.Z
+
+# Clean
+
+uninstall:	toastuninstall gsmuninstall
+		@-echo uninstall: Done.
+
+semi-clean:
+		-rm $(RMFLAGS)  */*.o			\
+			$(TST)/lin2cod $(TST)/lin2txt	\
+			$(TST)/cod2lin $(TST)/cod2txt	\
+			$(TST)/gsm2cod 			\
+			$(TST)/*.*.*
+		-$(FIND) . \( -name core -o -name foo \) \
+			-print | xargs rm $(RMFLAGS)
+
+clean:	semi-clean
+		-rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add		\
+			$(TOAST) $(TCAT) $(UNTOAST)	\
+			$(ROOT)/gsm-1.0.tar.Z
+
+
+# Two tools that helped me generate gsm_encode.c and gsm_decode.c,
+# but aren't generally needed to port this.
+
+$(TLS)/sweet:	$(TLS)/sweet.o $(TLS)/taste.o
+		$(LD) $(LFLAGS) -o $(TLS)/sweet \
+			$(TLS)/sweet.o $(TLS)/taste.o $(LDLIB)
+
+$(TLS)/bitter:	$(TLS)/bitter.o $(TLS)/taste.o
+		$(LD) $(LFLAGS) -o $(TLS)/bitter \
+			$(TLS)/bitter.o $(TLS)/taste.o $(LDLIB)
+
+# A version of the same family that Jeff Chilton used to implement
+# the WAV #49 GSM format.
+
+$(TLS)/ginger:	$(TLS)/ginger.o $(TLS)/taste.o
+		$(LD) $(LFLAGS) -o $(TLS)/ginger \
+			$(TLS)/ginger.o $(TLS)/taste.o $(LDLIB)
+
+$(TLS)/sour:	$(TLS)/sour.o $(TLS)/taste.o
+		$(LD) $(LFLAGS) -o $(TLS)/sour \
+			$(TLS)/sour.o $(TLS)/taste.o $(LDLIB)
+
+# Run $(ADDTST)/add < $(ADDTST)/add_test.dta to make sure the
+# basic arithmetic functions work as intended.
+
+$(ADDTST)/add:	$(ADDTST)/add_test.o
+		$(LD) $(LFLAGS) -o $(ADDTST)/add $(ADDTST)/add_test.o $(LDLIB)
+
+
+# Various conversion programs between linear, text, .gsm and the code
+# format used by the tests we ran (.cod).  We paid for the test data,
+# so I guess we can't just provide them with this package.  Still,
+# if you happen to have them lying around, here's the code.
+# 
+# You can use gsm2cod | cod2txt independently to look at what's
+# coded inside the compressed frames, although this shouldn't be
+# hard to roll on your own using the gsm_print() function from
+# the API.
+
+
+$(TST)/test-result:	$(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run
+			( cd $(TST); ./run ) 
+
+$(TST)/lin2txt:		$(TST)/lin2txt.o $(LIBGSM)
+			$(LD) $(LFLAGS) -o $(TST)/lin2txt \
+				$(TST)/lin2txt.o $(LIBGSM) $(LDLIB)
+
+$(TST)/lin2cod:		$(TST)/lin2cod.o $(LIBGSM)
+			$(LD) $(LFLAGS) -o $(TST)/lin2cod \
+				$(TST)/lin2cod.o $(LIBGSM) $(LDLIB)
+
+$(TST)/gsm2cod:		$(TST)/gsm2cod.o $(LIBGSM)
+			$(LD) $(LFLAGS) -o $(TST)/gsm2cod \
+				$(TST)/gsm2cod.o $(LIBGSM) $(LDLIB)
+
+$(TST)/cod2txt:		$(TST)/cod2txt.o $(LIBGSM)
+			$(LD) $(LFLAGS) -o $(TST)/cod2txt \
+				$(TST)/cod2txt.o $(LIBGSM) $(LDLIB)
+
+$(TST)/cod2lin:		$(TST)/cod2lin.o $(LIBGSM)
+			$(LD) $(LFLAGS) -o $(TST)/cod2lin \
+				$(TST)/cod2lin.o $(LIBGSM) $(LDLIB)
diff --git a/NOTICE b/NOTICE
new file mode 120000
index 0000000..cf3af40
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1 @@
+COPYRIGHT
\ No newline at end of file
diff --git a/README b/README
index cb6af85..82ec0bd 100644
--- a/README
+++ b/README
@@ -25,8 +25,8 @@
 on most SPARCstations.  The implementation has been verified against the
 ETSI standard test patterns.
 
-Jutta Degener (jutta@cs.tu-berlin.de)
-Carsten Bormann (cabo@cs.tu-berlin.de)
+Jutta Degener (then jutta@cs.tu-berlin.de, nowadays jutta@pobox.com)
+Carsten Bormann (then cabo@cs.tu-berlin.de, nowadays cabo@tzi.org)
 
 Communications and Operating Systems Research Group, TU Berlin
 Fax: +49.30.31425156, Phone: +49.30.31424315
diff --git a/README.version b/README.version
index 31a869c..5dc90fc 100644
--- a/README.version
+++ b/README.version
@@ -1,2 +1,2 @@
-URL: http://www.quut.com/gsm/gsm-1.0.13.tar.gz
-Version: 1.0.13
+URL: http://www.quut.com/gsm/gsm-1.0.17.tar.gz
+Version: 1.0.17
diff --git a/add-test/add_test.c b/add-test/add_test.c
new file mode 100644
index 0000000..5d128f6
--- /dev/null
+++ b/add-test/add_test.c
@@ -0,0 +1,353 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/add_test.c,v 1.2 1994/05/10 20:18:17 jutta Exp $ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "gsm.h"
+
+#include "../src/add.c"
+
+int		interactive = 1;
+
+char		* opname;
+longword	L_op1, L_op2, L_expect;
+word		op1, op2, expect;
+int		do_expect;
+
+word M_gsm_add P((word op1, word op2));
+word M_gsm_sub P((word op1, word op2));
+word M_gsm_mult P((word op1, word op2));
+word M_gsm_mult_r P((word op1, word op2));
+word M_gsm_abs P((word op1));
+longword M_gsm_L_mult P((word op1, word op2));
+longword M_gsm_L_add P((longword op1, longword op2));
+
+void help()
+{
+puts( "  add a b      sub a b     mult a b   div    a b" );
+puts( "L_add A B    L_sub A B   L_mult A B   mult_r a b" );
+puts( "" );
+puts( "abs   a      norm  a        >> a b      << a b" );
+puts( "                          L_>> A B    L_<< A B" );
+}
+
+char * strtek P2((str, sep), char * str, char * sep) {
+
+	static char     * S = (char *)0;
+	char		* c, * base;
+
+	if (str) S = str;
+
+	if (!S || !*S) return (char *)0;
+
+	/*  Skip delimiters.
+	 */
+	while (*S) {
+		for (c = sep; *c && *c != *S; c++) ;
+		if (*c) *S++ = 0;
+		else break;
+	}
+
+	base = S;
+
+	/*   Skip non-delimiters.
+	 */
+	for (base = S; *S; S++) {
+
+		for (c = sep; *c; c++)
+			if (*c == *S) {
+				*S++ = 0;
+				return base;
+			}
+	}
+
+	return base == S ? (char *)0 : base;
+}
+
+long value P1((s), char * s)
+{
+	switch (*s) {
+	case '-': switch (s[1]) {
+		  case '\0': return MIN_WORD;
+		  case '-':  return MIN_LONGWORD;
+		  default:   break;
+		  }
+		  break;
+
+	case '+': switch (s[1]) {
+		  case '\0': return MAX_WORD;
+		  case '+':  return MAX_LONGWORD;
+		  default:   break;
+		  }
+	default:  break;
+	}
+
+	return strtol(s, (char **)0, 0);
+}
+
+char * parse P1((buf), char * buf)
+{
+	char  * s, * a;
+
+	if ((a = strchr(buf, '=')) != 0) *a++ = 0;
+
+	opname = s = strtek(buf, " \t("); 
+	if (!s) return (char *)0;
+
+	op1 = op2 = L_op1 = L_op2 = 0;
+
+	if ((s = strtek( (char *)0, "( \t,")) != 0) {
+		op1 = L_op1 = value(s);
+		if ((s = strtek( (char *)0, ", \t)")) != 0)
+			op2 = L_op2 = value(s);
+	}
+
+	if (a) {
+		do_expect = 1;
+		while (*a == ' ' || *a == '\t') a++;
+		expect = L_expect = value(a);
+	}
+
+	return opname;
+}
+
+void fprint_word P2((f, w), FILE * f,  word w)
+{
+	if (!w) putc('0', f);
+	else fprintf(f, "0x%4.4x (%d%s)",
+		(unsigned int)w,
+		(int)w,
+		w == MIN_WORD? "/-" : (w == MAX_WORD ? "/+" : ""));
+}
+
+void print_word P1((w), word w)
+{
+	fprint_word( stdout, w );
+}
+
+void fprint_longword P2((f, w), FILE * f, longword w)
+{
+	if (!w) putc('0', f);
+	else fprintf(f, "0x%8.8lx (%ld%s)",
+		(unsigned long)w, (long)w, w == MIN_WORD ? "/-"
+		: (w == MAX_WORD ? "/+"
+		: (w == MIN_LONGWORD ? "/--" 
+		: (w == MAX_LONGWORD ? "/++" : ""))));
+}
+
+void print_longword P1((w),longword w)
+{
+	fprint_longword(stdout, w);
+}
+
+void do_longword P1((w), longword w)
+{
+	if (interactive) print_longword(w);
+	if (do_expect) {
+		if ((w & 0xfffffffful) != (L_expect & 0xfffffffful)) {
+			if (!interactive) fprint_longword(stderr, w);
+			fprintf(stderr, " != %s (%ld, %ld) -- expected ",
+				opname, (long)L_op1, (long)L_op2 );
+			fprint_longword(stderr, L_expect);
+			putc( '\n', stderr );
+		}
+	} else if (interactive) putchar('\n');
+}
+
+void do_word P1((w), word w )
+{
+	if (interactive) print_word(w);
+	if (do_expect) {
+		if (w != expect) {
+			if (!interactive) fprint_word(stderr, w);
+			fprintf(stderr, " != %s (%ld, %ld) -- expected ",
+				opname, (long)L_op1, (long)L_op2 );
+			fprint_word(stderr, expect);
+			putc('\n', stderr);
+		}
+	} else if (interactive) putchar('\n');
+}
+
+int main(ac, av) char ** av;
+{
+	char	buf[299];
+	char	* c;
+	FILE 	* in;
+
+	if (ac > 2) {
+		fprintf(stderr, "Usage: %s [filename]\n", av[0]);
+fail:
+#ifdef EXIT_FAILURE
+		exit(EXIT_FAILURE);
+#else
+		exit(1);
+#endif
+	}
+	if (ac < 2) in = stdin;
+	else if (!(in = fopen(av[1], "r"))) {
+		perror(av[1]);
+		fprintf(stderr, "%s: cannot open file \"%s\" for reading\n",
+			av[0], av[1]);
+		goto fail;
+	}
+
+	interactive = isatty(fileno(in));
+
+	for (;;) {
+		if (interactive) fprintf(stderr, "? ");
+
+		if (!fgets(buf, sizeof(buf), in)) exit(0);
+		if ((c = strchr(buf, '\n')) != 0) *c = 0;
+
+		if (*buf == ';' || *buf == '#') continue;
+		if (*buf == '\'') {
+			puts(buf + 1);
+			continue;
+		}
+		if (*buf == '\"') {
+			fprintf(stderr,  "%s\n", buf + 1);
+			continue;
+		}
+
+		c = parse(buf);
+
+		if (!c) continue;
+		if (!strcmp(c,   "add")) {
+			do_word(    gsm_add( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c,   "M_add")) {
+			do_word(    M_gsm_add( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c, "sub")) {
+			do_word(    gsm_sub( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c, "M_sub")) {
+			do_word(    M_gsm_sub( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c, "mult")) {
+			do_word(    gsm_mult( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c, "M_mult")) {
+			do_word(    M_gsm_mult( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c, "mult_r")) {
+			do_word(    gsm_mult_r(op1, op2));
+			continue;
+		}
+		if (!strcmp(c, "M_mult_r")) {
+			do_word(    M_gsm_mult_r(op1, op2));
+			continue;
+		}
+		if (!strcmp(c, "abs" )) {
+			do_word(    gsm_abs(op1) );
+			continue;
+		} 
+		if (!strcmp(c, "M_abs" )) {
+			do_word(    M_gsm_abs(op1) );
+			continue;
+		} 
+		if (!strcmp(c, "div" )) {
+			do_word(    gsm_div( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c,  "norm" )) {
+			do_word(	gsm_norm(L_op1));
+			continue;
+		} 
+		if (!strcmp(c,  "<<" )) {
+			do_word(    gsm_asl( op1, op2));
+			continue;
+		} 
+		if (!strcmp(c,  ">>" )) {
+			do_word(    gsm_asr( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c,  "L_mult")) {
+			do_longword( gsm_L_mult( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c,  "M_L_mult")) {
+			do_longword( M_gsm_L_mult( op1, op2 ));
+			continue;
+		}
+		if (!strcmp(c,  "L_add" )) {
+			do_longword( gsm_L_add( L_op1, L_op2 ));
+			continue;
+		} 
+		if (!strcmp(c,  "M_L_add" )) {
+			do_longword( M_gsm_L_add( L_op1, L_op2 ));
+			continue;
+		} 
+		if (!strcmp(c,  "L_sub" )) {
+			do_longword( gsm_L_sub( L_op1, L_op2 ));
+			continue;
+		} 
+		if (!strcmp(c,  "L_<<" )) {
+			do_longword(    gsm_L_asl( L_op1, L_op2 ));
+			continue;
+		} 
+		if (!strcmp(c,  "L_>>")) {
+			do_longword(    gsm_L_asr( L_op1, L_op2 ));
+			continue;
+		}
+		help();
+	}
+}
+
+#include "private.h"
+
+/*
+ * Function stubs for macro implementations of commonly used
+ * math functions
+ */
+word M_gsm_add P2((op1, op2),word op1, word op2)
+{
+	longword ltmp;
+	return GSM_ADD(op1, op2);
+}
+
+word M_gsm_sub P2((op1, op2), word op1, word op2)
+{
+	longword ltmp;
+	return GSM_SUB(op1, op2);
+}
+
+word M_gsm_mult P2((op1, op2), word op1, word op2)
+{
+	return GSM_MULT(op1, op2);
+}
+
+word M_gsm_mult_r P2((op1, op2), word op1, word op2)
+{
+	return GSM_MULT_R(op1, op2);
+}
+
+word M_gsm_abs P1((op1), word op1)
+{
+	return GSM_ABS(op1);
+}
+
+longword M_gsm_L_mult P2((op1, op2), word op1, word op2)
+{
+	return GSM_L_MULT(op1, op2);
+}
+
+longword M_gsm_L_add P2((op1, op2), longword op1, longword op2)
+{
+	ulongword utmp;
+	return GSM_L_ADD(op1, op2);
+}
diff --git a/add-test/add_test.dta b/add-test/add_test.dta
new file mode 100644
index 0000000..fe7402d
--- /dev/null
+++ b/add-test/add_test.dta
@@ -0,0 +1,683 @@
+;
+; Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+; Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+; details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+;
+;
+;	Lines starting with ' (in the first col) are echoed.
+;	Lines starting with " (in the first col) are echoed to stderr.
+;	Lines starting with ; or empty lines are ignored.
+;
+;	The part after (including) a trailing '=' is what you expect;
+;	there will be output if the result is different.
+;
+;	-  and +  by itself mean MIN_WORD and MAX_WORD, respectively;
+;	-- and ++ mean MIN_LONGWORD and MAX_LONGWORD.
+;
+
+'test the basic arithmetic operations used for the rpe-ltd filtering.
+'
+'add ================
+'  basic
+
+	add  0  0 	=  0
+	add  7  4	= 11
+	add  4  6 	= 10
+	add  1  1 	=  2
+
+'  negative operands
+
+	add  -7  4	= -3
+	add   4 -6 	= -2
+	add  -1 -3 	= -4
+	add   7 -4	=  3
+	add  -4  6 	=  2
+
+'  positive overflow
+; (max-word = 32767)
+	add  + 1	= +
+	add  + +	= +
+	add  -1 + 	= 32766
+	add  32766 2	= +
+	add  1 32766  	= +
+
+'  underflow
+; (min-word = 32768)
+
+	add  - -1	= -
+	add  - -	= -
+	add  1 -	= -32767  
+	add  -32767 -2	= -
+	add  -1 -32766 	= -32767
+	add  -32767 -1	= -
+	add  - +	= -1
+	add  + -	= -1
+	add  0 -	= -
+	add  0 +	= +
+'
+
+'L_add ================
+'  basic 
+
+	L_add  0  0 	=  0
+	L_add  7  4	= 11
+	L_add  4  6 	= 10
+	L_add  1  1 	=  2
+
+'  negative operands
+
+	L_add  -7  4	= -3
+	L_add   4 -6 	= -2
+	L_add  -1 -3 	= -4
+	L_add   7 -4	=  3
+	L_add  -4  6 	=  2
+	L_add   0 -1 	= -1
+
+'  positive overflow
+; (max-longword = 2147483647)
+	L_add  ++ 1	= ++
+	L_add  ++ ++	= ++
+	L_add  -1 ++ 	= 2147483646
+	L_add  2147483646 2 = ++
+	L_add  1 2147483645 = 2147483646
+
+'  underflow
+; (min-longword = -2147483648)
+
+	L_add  -- -1	= --
+	L_add  -- --	= --
+	L_add  1 --	= -2147483647
+	L_add  -2147483647 -2	= --
+	L_add  -1 -2147483646 	= -2147483647
+	L_add  -2147483647 -1	= --
+	L_add  -- ++	= -1
+	L_add  ++ --	= -1
+	L_add  0 --	= --
+	L_add  0 ++	= ++
+'
+
+'sub ================
+'  basic 
+
+	sub  0  0 	=  0
+	sub  7  4	=  3
+	sub  4  6 	= -2
+	sub  1  0 	=  1
+
+'  negative operands
+
+	sub  -7  4	= -11
+	sub   4 -6 	=  10
+	sub  -1 -3 	=  2
+	sub   7 -4	=  11
+	sub  -4  6 	= -10
+
+'  positive overflow
+; (max-word = 32767)
+	sub  1 -	= +
+	sub  + +	= 0
+	sub  + 0	= +
+	sub  + -1 	= +
+	sub  + 1 	= 32766
+	sub  1 + 	= -32766 
+	sub  0 +  	= -32767
+
+'  underflow
+; (min-word = 32768)
+
+	sub  - -1	= -32767
+	sub  - 1	= -
+	sub  - -	= 0
+	sub  - +	= -
+	sub  + -	= +
+	sub  1 -	= +
+	sub  -1 -	= +
+	sub  -32767 2	= -
+	sub  0 -	= +
+' 
+
+'L_sub ================
+'  basic 
+
+	L_sub  0  0 	=  0
+	L_sub  7  4	=  3
+	L_sub  4  6 	= -2
+	L_sub  1  0 	=  1
+
+'  negative operands
+
+	L_sub  -7  4	= -11
+	L_sub   4 -6 	=  10
+	L_sub  -1 -3 	=  2
+	L_sub   7 -4	=  11
+	L_sub  -4  6 	= -10
+
+'  positive overflow
+	L_sub  1 --	= ++
+	L_sub  ++ ++	= 0
+	L_sub  ++ 0	= ++
+	L_sub  ++ -1 	= ++
+	L_sub  ++ 1 	=  2147483646
+	L_sub  1 ++ 	= -2147483646
+	L_sub  0 ++  	= -2147483647
+
+'  underflow
+
+	L_sub  -- -1	= -2147483647
+	L_sub  -- 1	= --
+	L_sub  -- --	= 0
+	L_sub  -- ++	= --
+	L_sub  + --	= ++
+	L_sub  1 --	= ++
+	L_sub  -1 --	= ++
+	L_sub  -2147483647 2 = --
+	L_sub  0 --	= ++
+
+'
+'abs ================
+'  basic 
+
+	abs	   0	=   0
+	abs	   2	=   2
+	abs	-459	= 459
+
+'  overflow
+
+	abs	 +	=   +
+	abs	 -	=   +
+	abs 	-32767  =   +
+	abs 	 32766  = 32766
+	abs 	-32766  = 32766
+
+'
+'mult ================
+;  actually, a * b >> 15
+
+'  basic 
+	mult	0  0		= 0
+	mult	0x100 0x100	= 2
+	mult	4711 0x4000	= 2355
+
+'  negative operands
+	mult	-1  0		=  0
+
+	mult	-0x100   0x100	= -2
+	mult	 0x100  -0x100	= -2
+	mult	-0x100  -0x100	=  2
+
+	mult	-4711   0x4000	= -2356
+	mult	 4711  -0x4000	= -2356
+	mult	-4711  -0x4000	=  2355
+
+'  overflow
+	mult	+ + 	 = 32766
+	mult	+ 0x4000 = 0x3fff
+	mult	0x4000 + = 0x3fff
+	mult	+ 1	 = 0
+	mult	+ 2	 = 1
+	mult	+ 3	 = 2
+
+'  underflow
+	mult	- - 	 = +
+	mult	- + 	 = -32767
+	mult	+ - 	 = -32767
+	mult	- 1	 = -1
+	mult	- 2	 = -2
+	mult	- 3	 = -3
+
+'
+'mult_r ================
+;  actually, (a * b + 16384) >> 15
+
+'  basic 
+	mult_r	0  0		= 0
+	mult_r	0x100 0x100	= 2
+	mult_r	4711 0x4000	= 2356
+
+'  negative operands
+	mult_r	-1  0		=  0
+
+	mult_r	-0x100   0x100	= -2
+	mult_r	 0x100  -0x100	= -2
+	mult_r	-0x100  -0x100	=  2
+
+	mult_r	-4711   0x4000	= -2355
+	mult_r	 4711  -0x4000	= -2355
+	mult_r	-4711  -0x4000	=  2356
+
+'  overflow
+	mult_r	+ + 	 = 32766
+	mult_r	+ 32766	 = 32765
+	mult_r	32766 +	 = 32765
+	mult_r	+ 0x4000 = 0x4000
+	mult_r	0x4000 + = 0x4000
+	mult_r	+ 0x4001 = 0x4000
+	mult_r	0x4001 + = 0x4000
+	mult_r	+ 2	 = 2
+	mult_r	+ 1	 = 1
+	mult_r	1 +	 = 1
+	mult_r	+ 0	 = 0
+	mult_r	0 +	 = 0
+
+'  underflow
+	mult_r	- - 	 = +
+	mult_r	- + 	 = -32767
+	mult_r	+ - 	 = -32767
+	mult_r	- 1	 = -1
+	mult_r	- 2	 = -2
+	mult_r	- 3	 = -3
+
+'
+'L_mult ================
+;  actually, (a * b) << 1
+;  assert (a != MIN_WORD && b != MIN_WORD)
+
+'  basic 
+	L_mult	0  0	= 0
+	L_mult	2  3	= 12
+	L_mult	4711 5	= 47110
+
+'  negative operands
+
+	L_mult	-2  3	= -12
+	L_mult	 2 -3	= -12
+	L_mult	-2 -3	=  12
+	L_mult -4711  5	= -47110
+	L_mult	4711 -5	= -47110
+	L_mult -4711 -5	=  47110
+
+'  overflow
+	L_mult	+ + 	 = 2147352578
+	L_mult	+ -32767 = -2147352578
+	L_mult	-32767 + = -2147352578
+	L_mult	+ 2	 = 131068
+	L_mult	+ 1	 = 65534
+	L_mult	1 +	 = 65534
+	L_mult	+ 0	 = 0
+	L_mult	0 +	 = 0
+
+'
+'div ================
+;  actually, (32767 * a) / b
+;  assert (a > 0 && b >= a)
+
+'  basic 
+	div	1 1		= +
+	div	4711 4711 	= +
+	div	5 10		= 0x4000
+	div	5 20		= 0x2000
+	div	5 40		= 0x1000
+
+'  overflow
+	div	+ + 		= +
+	div	0x4000 +	= 0x4000
+	div	1 +		= 1
+	div	1 2		= 0x4000
+'
+'norm ================
+
+'  positive
+	norm	1		= 30
+	norm	2		= 29
+	norm	3		= 29
+	norm	4		= 28
+	norm	5		= 28
+; etc, etc...
+	norm	0x08000000	= 3
+	norm	0x10000000	= 2
+	norm	0x20000000	= 1
+	norm	0x20000001	= 1
+	norm	0x3fffffff	= 1
+	norm	0x40000000	= 0
+	norm	0x40000001	= 0
+	norm	0x4ffffffe	= 0
+	norm	++		= 0
+
+'  negative
+	norm	-1		= 31
+	norm	-2		= 30
+	norm	-3		= 29
+	norm	-4		= 29
+	norm	-5		= 28
+; etc, etc...
+	norm	0x4fffffff	= 0
+	norm	--		= 0
+'
+'>> ================
+
+'  basic 
+	>>	1 1		= 0
+	>>	4 2		= 1
+	>>	0x1100 5	= 0x88
+
+'  negative operand
+
+	>>	1 -1		= 2
+	>>	1 -2		= 4
+	>>	0x88 -5		= 0x1100
+
+'  overflow
+	>>	-1 4711		= -1
+	>>	1  4711		= 0
+	>>	-4711 4711 	= -1
+	>>	4711 4711 	= 0
+	>>	+ 1		=  16383
+	>>	- 1		= -16384
+'
+'L_>> ================
+
+'  basic 
+	L_>>	1 1		= 0
+	L_>>	4 2		= 1
+	L_>>	0x1100 5	= 0x88
+
+'  negative operand
+
+	L_>>	1 -1		= 2
+	L_>>	1 -2		= 4
+	L_>>	0x88 -5		= 0x1100
+
+'  overflow
+	L_>>	-1 4711		= -1
+	L_>>	1  4711		= 0
+	L_>>	-4711 4711 	= -1
+	L_>>	4711 4711 	= 0
+	L_>>	++ 1		=  1073741823
+	L_>>	-- 1		= -1073741824
+
+'
+'<< ================
+
+'  basic 
+	<<	1 1		= 2
+	<<	4 2		= 16
+	<<	0x0088 5	= 0x1100
+
+'  negative operand
+
+	<<	1 -1		= 0
+	<<	4 -2		= 1
+	<<	0x1100 -5	= 0x0088
+
+'  overflow
+	<<	-1 4711		= 0
+	<<	1  4711		= 0
+	<<	-4711 4711 	= 0
+	<<	4711 4711 	= 0
+	<<	4711 -4711 	= 0
+	<<	-4711 -4711 	= -1
+	<<	+ 1		= 0xfffe
+	<<	-1 1		= 0xfffe
+	<<	- 1		= 0
+'
+'L_<< ================
+
+'  basic 
+	L_<<	1 1		= 2
+	L_<<	4 2		= 16
+	L_<<	0x0088 5	= 0x1100
+
+'  negative operand
+
+	L_<<	1 -1		= 0
+	L_<<	4 -2		= 1
+	L_<<	0x1100 -5	= 0x0088
+
+'  overflow
+	L_<<	-1 4711		= 0
+	L_<<	1  4711		= 0
+	L_<<	-4711 4711 	= 0
+	L_<<	4711 4711 	= 0
+	L_<<	4711 -4711 	= 0
+	L_<<	-4711 -4711 	= -1
+	L_<<	++ 1		= -2
+	L_<<	-1 1		= -2
+	L_<<	-- 1		= 0
+
+'macros
+'
+'add ================
+'  basic
+
+	M_add  0  0 	=  0
+	M_add  7  4	= 11
+	M_add  4  6 	= 10
+	M_add  1  1 	=  2
+
+'  negative operands
+
+	M_add  -7  4	= -3
+	M_add   4 -6 	= -2
+	M_add  -1 -3 	= -4
+	M_add   7 -4	=  3
+	M_add  -4  6 	=  2
+
+'  positive overflow
+; (max-word = 32767)
+	M_add  + 1	= +
+	M_add  + +	= +
+	M_add  -1 + 	= 32766
+	M_add  32766 2	= +
+	M_add  1 32766  	= +
+
+'  underflow
+; (min-word = 32768)
+
+	M_add  - -1	= -
+	M_add  - -	= -
+	M_add  1 -	= -32767  
+	M_add  -32767 -2 = -
+	M_add  -1 -32766 = -32767
+	M_add  -32767 -1 = -
+	M_add  - +	= -1
+	M_add  + -	= -1
+	M_add  0 -	= -
+	M_add  0 +	= +
+'
+
+'L_add ================
+'  basic 
+
+	M_L_add  0  0 	=  0
+	M_L_add  7  4	= 11
+	M_L_add  4  6 	= 10
+	M_L_add  1  1 	=  2
+
+'  negative operands
+
+	M_L_add  -7  4	= -3
+	M_L_add   4 -6 	= -2
+	M_L_add  -1 -3 	= -4
+	M_L_add   7 -4	=  3
+	M_L_add  -4  6 	=  2
+	M_L_add   0 -1 	= -1
+
+'  positive overflow
+; (max-longword = 2147483647)
+	M_L_add  ++ 1	= ++
+	M_L_add  ++ ++	= ++
+	M_L_add  -1 ++ 	= 2147483646
+	M_L_add  2147483646 2 = ++
+	M_L_add  1 2147483645 = 2147483646
+
+'  underflow
+; (min-longword = -2147483648)
+
+	M_L_add  -- -1	= --
+	M_L_add  -- --	= --
+	M_L_add  1 --	= -2147483647
+	M_L_add  -2147483647 -2	= --
+	M_L_add  -1 -2147483646 	= -2147483647
+	M_L_add  -2147483647 -1	= --
+	M_L_add  -- ++	= -1
+	M_L_add  ++ --	= -1
+	M_L_add  0 --	= --
+	M_L_add  0 ++	= ++
+'
+
+'sub ================
+'  basic 
+
+	M_sub  0  0 	=  0
+	M_sub  7  4	=  3
+	M_sub  4  6 	= -2
+	M_sub  1  0 	=  1
+
+'  negative operands
+
+	M_sub  -7  4	= -11
+	M_sub   4 -6 	=  10
+	M_sub  -1 -3 	=  2
+	M_sub   7 -4	=  11
+	M_sub  -4  6 	= -10
+
+'  positive overflow
+; (max-word = 32767)
+	M_sub  1 -	= +
+	M_sub  + +	= 0
+	M_sub  + 0	= +
+	M_sub  + -1 	= +
+	M_sub  + 1 	= 32766
+	M_sub  1 + 	= -32766 
+	M_sub  0 +  	= -32767
+
+'  underflow
+; (min-word = 32768)
+
+	M_sub  - -1	= -32767
+	M_sub  - 1	= -
+	M_sub  - -	= 0
+	M_sub  - +	= -
+	M_sub  + -	= +
+	M_sub  1 -	= +
+	M_sub  -1 -	= +
+	M_sub  -32767 2	= -
+	M_sub  0 -	= +
+' 
+'
+'abs ================
+'  basic 
+
+	M_abs	   0	=   0
+	M_abs	   2	=   2
+	M_abs	-459	= 459
+
+'  overflow
+
+	M_abs	 +	=   +
+	M_abs	 -	=   +
+	M_abs 	-32767  =   +
+	M_abs 	 32766  = 32766
+	M_abs 	-32766  = 32766
+
+'
+'mult ================
+;  actually, a * b >> 15
+
+'  basic 
+	M_mult	0  0		= 0
+	M_mult	0x100 0x100	= 2
+	M_mult	4711 0x4000	= 2355
+
+'  negative operands
+	M_mult	-1  0		=  0
+
+	M_mult	-0x100   0x100	= -2
+	M_mult	 0x100  -0x100	= -2
+	M_mult	-0x100  -0x100	=  2
+
+	M_mult	-4711   0x4000	= -2356
+	M_mult	 4711  -0x4000	= -2356
+	M_mult	-4711  -0x4000	=  2355
+
+'  overflow
+	M_mult	+ + 	 = 32766
+	M_mult	+ 0x4000 = 0x3fff
+	M_mult	0x4000 + = 0x3fff
+	M_mult	+ 1	 = 0
+	M_mult	+ 2	 = 1
+	M_mult	+ 3	 = 2
+
+'  underflow
+;	M_mult - - 	= +			assert !(a == b && b == MIN_WORD)
+ 	M_mult - -32767	= +
+ 	M_mult -32767 -	= +
+	M_mult	- + 	= -32767
+	M_mult	+ - 	= -32767
+	M_mult	- 1	= -1
+	M_mult	- 2	= -2
+	M_mult	- 3	= -3
+
+'
+'mult_r ================
+;  actually, (a * b + 16384) >> 15
+
+'  basic 
+	M_mult_r 0  0		= 0
+	M_mult_r 0x100 0x100	= 2
+	M_mult_r 4711 0x4000	= 2356
+
+'  negative operands
+	M_mult_r -1  0		=  0
+
+	M_mult_r -0x100   0x100	= -2
+	M_mult_r  0x100  -0x100	= -2
+	M_mult_r -0x100  -0x100	=  2
+
+	M_mult_r -4711   0x4000	= -2355
+	M_mult_r  4711  -0x4000	= -2355
+	M_mult_r -4711  -0x4000	=  2356
+
+'  overflow
+	M_mult_r + + 	 = 32766
+	M_mult_r + 32766  = 32765
+	M_mult_r 32766 +  = 32765
+	M_mult_r + 0x4000 = 0x4000
+	M_mult_r 0x4000 + = 0x4000
+	M_mult_r + 0x4001 = 0x4000
+	M_mult_r 0x4001 + = 0x4000
+	M_mult_r + 2	 = 2
+	M_mult_r + 1	 = 1
+	M_mult_r 1 +	 = 1
+	M_mult_r + 0	 = 0
+	M_mult_r 0 +	 = 0
+
+'  underflow
+;	M_mult_r - - 	 = +			assert !(a == b && b == MIN_WORD)
+ 	M_mult_r - -32767 = +
+ 	M_mult_r -32767 - = +
+	M_mult_r - + 	 = -32767
+	M_mult_r + - 	 = -32767
+	M_mult_r - 1	 = -1
+	M_mult_r - 2	 = -2
+	M_mult_r - 3	 = -3
+
+'
+'L_mult ================
+;  actually, (a * b) << 1
+;  assert (a != MIN_WORD && b != MIN_WORD)
+
+'  basic 
+	M_L_mult	0  0	= 0
+	M_L_mult	2  3	= 12
+	M_L_mult	4711 5	= 47110
+
+'  negative operands
+
+	M_L_mult	-2  3	= -12
+	M_L_mult	 2 -3	= -12
+	M_L_mult	-2 -3	=  12
+	M_L_mult -4711  5	= -47110
+	M_L_mult	4711 -5	= -47110
+	M_L_mult -4711 -5	=  47110
+
+'  overflow
+ 	M_L_mult	+ + 	 = 2147352578
+	M_L_mult	+ -32767 = -2147352578
+	M_L_mult	-32767 + = -2147352578
+	M_L_mult	+ 2	 = 131068
+	M_L_mult	+ 1	 = 65534
+	M_L_mult	1 +	 = 65534
+	M_L_mult	+ 0	 = 0
+	M_L_mult	0 +	 = 0
+
diff --git a/inc/config.h b/inc/config.h
index db2fce9..6f7f667 100644
--- a/inc/config.h
+++ b/inc/config.h
@@ -9,6 +9,9 @@
 #ifndef	CONFIG_H
 #define	CONFIG_H
 
+//efine	SIGHANDLER_T	int 		/* signal handlers are void	*/
+//efine HAS_SYSV_SIGNAL	1		/* sigs not blocked/reset?	*/
+
 #define	HAS_STDLIB_H	1		/* /usr/include/stdlib.h	*/
 #define	HAS_LIMITS_H	1		/* /usr/include/limits.h	*/
 #define	HAS_FCNTL_H	1		/* /usr/include/fcntl.h		*/
@@ -19,12 +22,16 @@
 #define	HAS_CHMOD 	1		/* chmod syscall		*/
 #define	HAS_FCHOWN 	1		/* fchown syscall		*/
 #define	HAS_CHOWN 	1		/* chown syscall		*/
+//efine	HAS__FSETMODE 	1		/* _fsetmode -- set file mode	*/
 
 #define	HAS_STRING_H 	1		/* /usr/include/string.h 	*/
+#define	HAS_STRINGS_H	1		/* /usr/include/strings.h 	*/
 
 #define	HAS_UNISTD_H	1		/* /usr/include/unistd.h	*/
 #define	HAS_UTIME	1		/* POSIX utime(path, times)	*/
+//efine	HAS_UTIMES	1		/* use utimes()	syscall instead	*/
 #define	HAS_UTIME_H	1		/* UTIME header file		*/
 #define	HAS_UTIMBUF	1		/* struct utimbuf		*/
+//efine	HAS_UTIMEUSEC   1		/* microseconds in utimbuf?	*/
 
 #endif	/* CONFIG_H */
diff --git a/inc/gsm.h b/inc/gsm.h
index 4714ab6..dca1660 100644
--- a/inc/gsm.h
+++ b/inc/gsm.h
@@ -43,7 +43,7 @@
 
 #define	GSM_MAGIC		0xD		  	/* 13 kbit/s RPE-LTP */
 
-#define	GSM_PATCHLEVEL		10
+#define	GSM_PATCHLEVEL		16
 #define	GSM_MINOR		0
 #define	GSM_MAJOR		1
 
diff --git a/inc/toast.h b/inc/toast.h
new file mode 100644
index 0000000..b42d9ae
--- /dev/null
+++ b/inc/toast.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast.h,v 1.4 1995/03/07 21:26:16 jutta Exp $ */
+
+#ifndef	TOAST_H
+#define	TOAST_H				/* Guard against multiple includes */
+
+#include "config.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <stdio.h>
+#include <ctype.h>
+#include <signal.h>
+
+#include <errno.h>
+#ifndef	HAS_ERRNO_DECL
+	 extern int	errno;
+#endif
+
+#ifdef	HAS_LIMITS_H
+#include <limits.h>
+#endif
+
+#ifdef	HAS_FCNTL_H
+# include <fcntl.h>
+#endif
+
+#ifdef	HAS_UTIME
+# ifdef	HAS_UTIME_H
+#  include <utime.h>
+# endif
+#endif
+
+#include "gsm.h"
+
+#ifndef	S_ISREG
+#define	S_ISREG(x)	((x) & S_IFREG)
+#endif	/* S_ISREG */
+
+
+# define	READ	"rb"
+# define	WRITE	"wb"
+#ifdef  O_BINARY
+# define	O_WRITE_EXCL	O_WRONLY|O_CREAT|O_EXCL|O_BINARY
+#else
+# define	O_WRITE_EXCL	O_WRONLY|O_CREAT|O_EXCL
+#endif
+
+#ifndef SIGHANDLER_T
+#define SIGHANDLER_T	void	/* what does a signal handler return? */
+#endif
+
+
+#ifdef	HAS_STRING_H
+#include	<string.h>
+#else
+#	ifdef HAS_STRINGS_H
+#	include <strings.h>
+#	else
+#		include "proto.h"
+
+		extern int	strlen	P((char *));
+		extern char *	strcpy  P((char *, char *));
+		extern char *	strcat  P((char *,  char *));
+		extern char *	strrchr P((char *, int));
+
+#		include "unproto.h"
+#	endif
+#endif
+
+
+#ifdef	HAS_STDLIB_H
+#include	<stdlib.h>
+#else
+#	include "proto.h"
+#	ifdef	HAS_MALLOC_H
+#	include <malloc.h>
+#	else
+		extern char	* malloc P((unsigned));
+#	endif
+	extern int	exit P((int));
+#	include "unproto.h"
+#endif
+
+
+#ifdef	HAS_UNISTD_H
+#	include	<unistd.h>
+#endif
+
+/*
+ *	This suffix is tacked onto/removed from filenames
+ *	similar to the way freeze and compress do it.
+ */
+#define	SUFFIX_TOASTED		".gsm"
+
+#include	"proto.h"
+
+extern int 	audio_init_input P((void)), audio_init_output P((void));
+extern int	ulaw_input   P((gsm_signal*)), ulaw_output   P((gsm_signal *));
+extern int	alaw_input   P((gsm_signal*)), alaw_output   P((gsm_signal *));
+extern int	linear_input P((gsm_signal*)), linear_output P((gsm_signal *));
+
+#endif		/* TOAST_H */
diff --git a/man/bitter.1 b/man/bitter.1
new file mode 100644
index 0000000..72baba1
--- /dev/null
+++ b/man/bitter.1
@@ -0,0 +1,70 @@
+.\"
+.\" Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+.\" Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+.\" details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+.\"
+.PU
+.TH BITTER 1 
+.SH NAME
+bitter, sweet \(em code-generators for packing bits
+.SH SYNOPSIS
+bitter < input > output
+.br
+sweet < input > output
+.SH "DESCRIPTION"
+Bitter and sweet are two filters which turn a description of the
+form 
+.nf
+	name	number-of-bits
+	name 	number-of-bits
+	...
+.nf
+into code.
+.PP
+Bitter generates code that packs the specified bits from their
+variables into an array of unsigned char referenced by an
+advancing pointer c.
+.PP
+Sweet generates code that unpacks the specified bits from an array
+of unsigned char referenced by a mutable pointer c into the
+named variables.
+.\" .SH OPTIONS
+.\" .SH "RETURN VALUE"
+.\" .SH ERRORS
+.SH EXAMPLES
+.nf
+% cat in
+amaretto 1
+banana 2
+cherry 3
+strawberry 4
+vanilla 15
+walnut 15
+
+% bitter < in
+	*c++ =   ((amaretto & 0x1) << 7)
+	       | ((banana & 0x3) << 5)
+	       | ((cherry & 0x7) << 2)
+	       | ((strawberry >> 2) & 0x3);
+	*c++ =   ((strawberry & 0x3) << 6)
+	       | ((vanilla >> 9) & 0x3F);
+	*c++ =   ((vanilla >> 1) & 0xFF);
+	*c++ =   ((vanilla & 0x1) << 7)
+	       | ((walnut >> 8) & 0x7F);
+	*c++ =   walnut & 0xFF;
+
+% sweet < in
+	amaretto  = (*c >> 7) & 0x1;
+	banana  = (*c >> 5) & 0x3;
+	cherry  = (*c >> 2) & 0x7;
+	strawberry  = (*c++ & 0x3) << 2;
+	strawberry |= (*c >> 6) & 0x3;
+	vanilla  = (*c++ & 0x3F) << 9;
+	vanilla |= (*c++ & 0xFF) << 1;
+	vanilla |= (*c >> 7) & 0x1;
+	walnut  = (*c++ & 0x7F) << 8;
+	walnut |= *c++;
+.SH NOTES
+This is a quick hack for the gsm_encode() and gsm_decode() routines.
+.SH BUGS
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
diff --git a/man/gsm.3 b/man/gsm.3
index e465762..6f24861 100644
--- a/man/gsm.3
+++ b/man/gsm.3
@@ -100,6 +100,6 @@
 }
 .nf
 .SH BUGS
-Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de.
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
 .SH "SEE ALSO"
 toast(1), gsm_print(3), gsm_explode(3), gsm_option(3)
diff --git a/man/gsm_explode.3 b/man/gsm_explode.3
index ef89984..d6c1e45 100644
--- a/man/gsm_explode.3
+++ b/man/gsm_explode.3
@@ -42,6 +42,6 @@
 .SH "RETURN VALUE"
 gsm_explode() returns -1 if the passed frame is invalid, else 0.
 .SH BUGS
-Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de.
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
 .SH "SEE ALSO"
 gsm(3)
diff --git a/man/gsm_option.3 b/man/gsm_option.3
index 8df7da0..d50f81f 100644
--- a/man/gsm_option.3
+++ b/man/gsm_option.3
@@ -178,6 +178,6 @@
 gsm_option() returns -1 if an option is not supported, the
 previous value of the option otherwise.
 .SH BUGS
-Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de.
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
 .SH "SEE ALSO"
 toast(1), gsm(3), gsm_explode(3), gsm_print(3)
diff --git a/man/gsm_print.3 b/man/gsm_print.3
index 48d6883..4769641 100644
--- a/man/gsm_print.3
+++ b/man/gsm_print.3
@@ -47,6 +47,6 @@
         07 03 06 00 03 03 06 05 00 03 02 07 04
 .nf
 .SH BUGS
-Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de.
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
 .SH "SEE ALSO"
 gsm(3), gsm_explode(3) 
diff --git a/man/toast.1 b/man/toast.1
new file mode 100644
index 0000000..4a2a0f2
--- /dev/null
+++ b/man/toast.1
@@ -0,0 +1,156 @@
+.\"
+.\" Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+.\" Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+.\" details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+.\"
+.if n .ds mU u
+.if t .ds mU \(*m
+.\"
+.TH TOAST 1 local
+.SH NAME
+toast \(em GSM\ 06.10 lossy sound compression
+.SH SYNOPSIS
+.ll +8
+.B toast
+[
+.B \-cdfpvhualsFC
+] [
+.I "filename...\&"
+]
+.LP
+.B untoast
+[
+.B \-cfpvhuaslF
+] [
+.I "filename...\&"
+]
+.LP
+.B tcat
+[
+.B \-vhuaslF
+] [
+.I "filename...\&"
+]
+.ll -8
+.SH DESCRIPTION
+Toast compresses the sound files given on its command line.
+Each file is replaced by a file with the extension
+.I \&.gsm .
+If no files are specified, the compression is applied to the
+standard input, and its result is written to standard output.
+.PP
+Toasted files can be restored to something not quite unlike
+their original form by running toast
+.I "\-d"
+, or 
+.I untoast
+, on the \&.gsm-files or standard input.
+.PP
+The program 
+.I tcat
+(the same as running
+.I "untoast \-c"
+)  uncompresses its input on standard output,
+but leaves the compressed .gsm\-files alone.
+.PP
+When files are compressed or uncompressed into other files,
+the ownership (if run by root), modes, accessed and modified times
+are maintained between both versions.
+.SH OPTIONS
+.TP
+.B \-c
+(cat)
+Write to the standard output; no files are changed.
+.TP
+.B \-d
+(decode)
+Decode, rather than encode, the files.
+.TP
+.B \-f
+(force)
+Force replacement of output files if they exist.
+If \-f is omitted and toast (or untoast) is run interactively from
+a terminal, the user is prompted as to whether the file should be replaced.
+.TP
+.B \-p
+(precious)
+Do not delete the source files.
+Source files are implicitly left alone whenever \-c is
+specified or tcat is run.
+.TP
+.B \-C
+(LTP cut-off)
+Ignore most sample values when calculating the GSM long-term
+correlation lag during encoding.
+(The multiplications that do this are a bottleneck
+of the algorithm.)
+The resulting encoding process will not produce
+exactly the same results as GSM 06.10 would,
+but remains close enough to be compatible.
+.br
+The
+.B \-C
+option applies only to the encoder and is silently
+ignored by the decoder.
+.TP
+.B \-F
+(fast)
+On systems with a floating point processor, but without
+a multiplication instruction, \-F sacrifices standard conformance to
+performance and nearly doubles the speed of the algorithm.
+.br
+The resulting encoding and decoding process will not produce
+exactly the same results as GSM 06.10 would, but remains close
+enough to be compatible.
+.br
+The default is standard-conforming operation.
+.TP
+.B \-v
+(version)\ 
+outputs the version of toast (or untoast or tcat) to stdout and exits.
+.TP
+.B \-h
+(help)\ 
+prints a short overview of the options.
+.PP
+Toast, untoast and tcat try to guess the appropriate audio data 
+format from the file suffix.
+Command line options can also specify a format to be used for 
+all files.
+.br
+The following formats are supported:
+.TP
+.B "\-u"
+(\(*mU-law)
+8 kHz, 8 bit \(*mU-law encoding (file suffix .u)
+.TP
+.B "\-a"
+(A-law)
+8 kHz, 8 bit A-law encoding (file suffix .A)
+.TP
+.B "\-s"
+(Sun audio)
+8 kHz, 8 bit \(*mU-law encoding with audio header (file suffix .au)
+.TP
+.B "-l"
+(linear)
+8 kHz, 16 bit signed linear encoding in host byte order
+with 13 significant bits (file suffix .l)
+.PP
+In absence of options or suffixes to specify a format, 
+\(*mU-law encoding as forced by \-u is assumed.
+.PP
+.SH PECULIARITIES
+A four bit magic number is prefixed to each 32 1/2-byte GSM frame,
+mainly because 32 1/2-bytes are rather clumsy to handle.
+.SH WARNING
+The compression algorithm used is a lossy compression algorithm
+devised especially for speech; on no account should it be used
+for text, pictures or any other non-speech-data you consider
+valuable.
+.SH BUGS
+Please direct bug reports to jutta@pobox.com and cabo@tzi.org.
+.SH "SEE ALSO"
+gsm(3)
+.\"
+.\" Toast is dedicated to Bill Sienkiewicz, author of "Stray Toasters".
diff --git a/src/debug.c b/src/debug.c
index 04c3907..6e42842 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -49,7 +49,7 @@
 	fprintf( stderr, "%s [%d .. %d]: ", name, from, to );
 	while (from <= to) {
 
-		fprintf(stderr, "%d ", ptr[ from ] );
+		fprintf(stderr, "%ld ", (long)ptr[ from ] );
 		from++;
 		if (nprinted++ >= 7) {
 			nprinted = 0;
@@ -63,14 +63,14 @@
 	char		* name,
 	longword	  value	)
 {
-	fprintf(stderr, "%s: %d\n", name, (long)value );
+	fprintf(stderr, "%s: %ld\n", name, (long)value );
 }
 
 void gsm_debug_word P2(  (name, value),
 	char	* name,
 	word	  value	)
 {
-	fprintf(stderr, "%s: %d\n", name, (long)value);
+	fprintf(stderr, "%s: %ld\n", name, (long)value);
 }
 
 #endif
diff --git a/src/short_term.c b/src/short_term.c
index f7829ba..b93ed00 100644
--- a/src/short_term.c
+++ b/src/short_term.c
@@ -51,21 +51,21 @@
 	 */
 
 #undef	STEP
-#define	STEP( B, MIC, INVA )	\
+#define	STEP( B_TIMES_TWO, MIC, INVA )	\
 		temp1    = GSM_ADD( *LARc++, MIC ) << 10;	\
-		temp1    = GSM_SUB( temp1, B << 1 );		\
+		temp1    = GSM_SUB( temp1, B_TIMES_TWO );	\
 		temp1    = GSM_MULT_R( INVA, temp1 );		\
 		*LARpp++ = GSM_ADD( temp1, temp1 );
 
 	STEP(      0,  -32,  13107 );
 	STEP(      0,  -32,  13107 );
-	STEP(   2048,  -16,  13107 );
-	STEP(  -2560,  -16,  13107 );
+	STEP(   4096,  -16,  13107 );
+	STEP(  -5120,  -16,  13107 );
 
-	STEP(     94,   -8,  19223 );
-	STEP(  -1792,   -8,  17476 );
-	STEP(   -341,   -4,  31454 );
-	STEP(  -1144,   -4,  29708 );
+	STEP(    188,   -8,  19223 );
+	STEP(  -3584,   -8,  17476 );
+	STEP(   -682,   -4,  31454 );
+	STEP(  -2288,   -4,  29708 );
 
 	/* NOTE: the addition of *MIC is used to restore
 	 * 	 the sign of *LARc.
diff --git a/src/toast.c b/src/toast.c
new file mode 100644
index 0000000..c29baa7
--- /dev/null
+++ b/src/toast.c
@@ -0,0 +1,797 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast.c,v 1.8 1996/07/02 10:41:04 jutta Exp $ */
+
+#include	"toast.h"
+
+/*  toast -- lossy sound compression using the gsm library.
+ */
+
+char   * progname;
+
+int	f_decode   = 0;		/* decode rather than encode	 (-d) */
+int 	f_cat	   = 0;		/* write to stdout; implies -p   (-c) */
+int	f_force	   = 0;		/* don't ask about replacements  (-f) */
+int	f_precious = 0;		/* avoid deletion of original	 (-p) */
+int	f_fast	   = 0;		/* use faster fpt algorithm	 (-F) */
+int	f_verbose  = 0;		/* debugging			 (-V) */
+int	f_ltp_cut  = 0;		/* LTP cut-off margin	      	 (-C) */
+
+struct stat instat;		/* stat (inname) 		 */
+
+FILE	*in, 	 *out;
+char	*inname, *outname;
+
+/*
+ *  The function (*output)() writes a frame of 160 samples given as
+ *  160 signed 16 bit values (gsm_signals) to <out>.
+ *  The function (*input)() reads one such frame from <in>.
+ *  The function (*init_output)() begins output (e.g. writes a header).,
+ *  The function (*init_input)() begins input (e.g. skips a header).
+ *
+ *  There are different versions of input, output, init_input and init_output
+ *  for different formats understood by toast; which ones are used 
+ *  depends on the command line arguments and, in their absence, the
+ *  filename; the fallback is #defined in toast.h
+ *
+ *  The specific implementations of input, output, init_input and init_output
+ *  for a format `foo' live in toast_foo.c.
+ */
+
+int	(*output   ) P((gsm_signal *)),
+	(*input    ) P((gsm_signal *));
+int	(*init_input)  P((void)),
+	(*init_output) P((void));
+
+static int	generic_init P0() { return 0; }	/* NOP */
+
+struct fmtdesc {
+
+	char * name, * longname, * suffix;
+
+	int  (* init_input )  P((void)),
+	     (* init_output)  P((void));
+
+	int  (* input ) P((gsm_signal * )),
+	     (* output) P((gsm_signal * ));
+
+} f_audio = {
+		"audio",
+		"8 kHz, 8 bit u-law encoding with Sun audio header", ".au",
+		audio_init_input,
+		audio_init_output,
+		ulaw_input,
+		ulaw_output
+}, f_ulaw = {
+		"u-law", "plain 8 kHz, 8 bit u-law encoding", ".u",
+		generic_init,
+		generic_init,
+		ulaw_input,
+		ulaw_output 
+
+}, f_alaw = {
+		"A-law", "8 kHz, 8 bit A-law encoding", ".A",
+		generic_init,
+		generic_init,
+		alaw_input,
+		alaw_output
+
+}, f_linear = {
+		"linear",
+		"16 bit (13 significant) signed 8 kHz signal", ".l",
+		generic_init,
+		generic_init,
+		linear_input,
+		linear_output
+};
+
+struct fmtdesc * alldescs[] = {
+	&f_audio,
+	&f_alaw,
+	&f_ulaw,
+	&f_linear,
+	(struct fmtdesc *)NULL
+};
+
+#define	DEFAULT_FORMAT	f_ulaw		/* default audio format, others	*/
+					/* are: f_alaw,f_audio,f_linear */
+struct fmtdesc * f_format  = 0;
+
+/*
+ *  basename + suffix of a pathname
+ */
+static char * endname P1((name), char * name)
+{
+	if (name) {
+		char * s = strrchr(name, '/');
+		if (s && s[1]) name = s + 1;
+	}
+	return name;
+
+}
+
+/*
+ *  Try to figure out what we're supposed to do from the argv[0], if
+ *  any, and set the parameters accordingly.
+ */
+static void parse_argv0 P1((av0), char * av0 )
+{
+	int 	l;
+
+	progname = av0 = endname(av0 ? av0 : "toast");
+
+	/*  If the name starts with `un', we want to decode, not code.
+	 *  If the name ends in `cat', we want to write to stdout,
+	 *  and decode as well.
+	 */
+
+	if (!strncmp(av0, "un", 2)) f_decode = 1;
+	if (  (l = strlen(av0)) >= 3 /* strlen("cat") */
+	   && !strcmp( av0 + l - 3, "cat" )) f_cat = f_decode = 1;
+}
+
+
+/*
+ *  Check whether the name (possibly generated by appending
+ *  .gsm to something else) is short enough for this system.
+ */
+static int length_okay P1((name), char * name)
+{
+	long	max_filename_length = 0;
+	char	* end;
+
+	/* If our _pathname_ is too long, we'll usually not be
+	 * able to open the file at all -- don't worry about that.
+	 * 
+	 * But if the _filename_ is too long, there is danger of
+	 * silent truncation on some systems, which results
+	 * in the target replacing the source!
+	 */
+
+	if (!name) return 0;
+	end = endname(name);
+
+#ifdef	NAME_MAX
+	max_filename_length  = NAME_MAX;
+#else
+#ifdef	_PC_NAME_MAX
+#ifdef USE_PATHCONF
+	{	char * s, tmp; 
+		
+		/*  s = dirname(name)
+		 */
+		if ((s = end) > name) {
+			if (s > name + 1) s--;
+			tmp = s;
+			*s  = 0;
+		}
+
+		errno = 0;
+		max_filename_length = pathconf(s > name ? name : ".",
+			_PC_NAME_MAX);
+		if (max_filename_length == -1 && errno) {
+			perror( s > name ? name : "." );
+			fprintf(stderr,
+		"%s: cannot get dynamic filename length limit for %s.\n",
+				progname, s > name ? name : ".");
+			return 0;
+		}
+		if (s > name) *s = tmp;
+	}
+#endif /* USE_PATHCONF  */
+#endif /* _PC_NAME_MAX  */
+#endif /* !NAME_MAX 	*/
+
+	if (max_filename_length > 0 && strlen(end) > max_filename_length) {
+		fprintf(stderr,
+			"%s: filename \"%s\" is too long (maximum is %ld)\n",
+			progname, endname(name), max_filename_length );
+		return 0;
+	}
+
+	return 1;
+}
+
+/*
+ *  Return a pointer the suffix of a string, if any.
+ *  A suffix alone has no suffix, an empty suffix can not be had.
+ */
+static char * suffix P2((name, suf), char *name, char * suf) 
+{
+	size_t nlen = strlen(name);
+	size_t slen = strlen(suf);
+
+	if (!slen || nlen <= slen) return (char *)0;
+	name += nlen - slen;
+	return memcmp(name, suf, slen) ? (char *)0 : name;
+}
+
+
+static void catch_signals P1((fun), SIGHANDLER_T (*fun) ()) 
+{
+#ifdef	SIGHUP
+	signal( SIGHUP,   fun );
+#endif
+#ifdef	SIGINT
+	signal( SIGINT,   fun );
+#endif
+#ifdef	SIGPIPE
+	signal( SIGPIPE,  fun );
+#endif
+#ifdef	SIGTERM
+	signal( SIGTERM,  fun );
+#endif
+#ifdef	SIGXFSZ
+	signal( SIGXFSZ,  fun );
+#endif
+}
+
+static SIGHANDLER_T onintr P0()
+{
+	char * tmp = outname;
+
+#ifdef	HAS_SYSV_SIGNALS
+	catch_signals( SIG_IGN );
+#endif
+
+	outname = (char *)0;
+	if (tmp) (void)unlink(tmp);
+
+	exit(1);
+}
+
+/*
+ *  Allocate some memory and complain if it fails.
+ */
+static char * emalloc P1((len), size_t len)
+{
+	char * s;
+	if (!(s = malloc(len))) {
+		fprintf(stderr, "%s: failed to malloc %d bytes -- abort\n",
+			progname, (int)len);
+		onintr();
+		exit(1);
+	}
+	return s;
+}
+
+static char* normalname P3((name, want, cut), char *name, char *want,char *cut)
+{
+	size_t	maxlen;
+	char 	* s, * p;
+
+	p = (char *)0;
+	if (!name) return p;
+
+	maxlen = strlen(name) + 1 + strlen(want) + strlen(cut);
+	p = strcpy(emalloc(maxlen), name);
+
+	if ((s = suffix(p, cut)) != 0) strcpy(s, want);
+	else if (*want && !suffix(p, want)) strcat(p, want);
+
+	return p;
+}
+
+/*
+ *  Generate a `plain' (non-encoded) name from a given name.
+ */
+static char * plainname P1((name), char *name)
+{
+	return normalname(name, "", SUFFIX_TOASTED );
+}
+
+/*
+ *  Generate a `code' name from a given name.
+ */
+static char * codename P1((name), char *name)
+{
+	return normalname( name, SUFFIX_TOASTED, "" );
+}
+
+/*
+ *  If we're supposed to ask (fileno (stderr) is a tty, and f_force not
+ *  set), ask the user whether to overwrite a file or not.
+ */
+static int ok_to_replace P1(( name ), char * name)
+{
+	int reply, c;
+
+	if (f_force) return 1;			/* YES, do replace   */
+	if (!isatty(fileno(stderr))) return 0;	/* NO, don't replace */
+
+	fprintf(stderr,
+		"%s already exists; do you wish to overwrite %s (y or n)? ",
+		name, name);
+	fflush(stderr);
+
+	for (c = reply = getchar(); c != '\n' && c != EOF; c = getchar()) ;
+	if (reply == 'y') return 1;
+
+	fprintf(stderr, "\tnot overwritten\n");
+	return 0;
+}
+
+static void update_mode P0()
+{
+	if (!instat.st_nlink) return;		/* couldn't stat in */
+
+#ifdef HAS_FCHMOD
+	if (fchmod(fileno(out), instat.st_mode & 07777)) {
+		perror(outname);
+		fprintf(stderr, "%s: could not change file mode of \"%s\"\n",
+			progname, outname);
+	}
+#else 
+#ifdef HAS_CHMOD
+	if (outname && chmod(outname, instat.st_mode & 07777)) {
+		perror(outname);
+		fprintf(stderr, "%s: could not change file mode of \"%s\"\n",
+			progname, outname);
+	}
+#endif /* HAS_CHMOD  */
+#endif /* HAS_FCHMOD */
+}
+
+static void update_own P0()
+{
+	if (!instat.st_nlink) return; /* couldn't stat in */
+#ifdef HAS_FCHOWN
+	(void)fchown(fileno(out), instat.st_uid, instat.st_gid);
+#else 
+#ifdef HAS_CHOWN
+	(void)chown(outname, instat.st_uid, instat.st_gid);
+#endif /* HAS_CHOWN  */
+#endif /* HAS_FCHOWN */
+}
+
+static void update_times P0()
+{
+	if (!instat.st_nlink) return; 	/* couldn't stat in */
+
+#ifdef HAS_UTIMES
+	if (outname) {
+		struct timeval tv[2];
+
+		tv[0].tv_sec  = instat.st_atime;
+		tv[1].tv_sec  = instat.st_mtime;
+		tv[0].tv_usec = tv[1].tv_usec = 0;
+		(void) utimes(outname, tv);
+	}
+#else
+#ifdef HAS_UTIME
+
+	if (outname) {
+
+#ifdef	HAS_UTIMBUF
+		struct utimbuf ut;
+
+		ut.actime     = instat.st_atime;
+		ut.modtime    = instat.st_mtime;
+
+#	ifdef	HAS_UTIMEUSEC
+		ut.acusec     = instat.st_ausec;
+		ut.modusec    = instat.st_musec;
+#	endif 	/* HAS_UTIMEUSEC */
+
+		(void) utime(outname, &ut);
+
+#else /* UTIMBUF */
+
+		time_t ut[2];
+
+		ut[0] = instat.st_atime;
+		ut[1] = instat.st_mtime;
+
+		(void) utime(outname, ut);
+
+#endif	/* UTIMBUF */
+	}
+#endif /* HAS_UTIME */
+#endif /* HAS_UTIMES */
+}
+
+
+static int okay_as_input P3((name,f,st), char* name, FILE* f, struct stat * st)
+{
+# ifdef	HAS_FSTAT
+	if (fstat(fileno(f), st) < 0)
+# else
+	if (stat(name, st) < 0)
+# endif
+	{
+		perror(name);
+		fprintf(stderr, "%s: cannot stat \"%s\"\n", progname, name);
+		return 0;
+	}
+
+	if (!S_ISREG(st->st_mode)) {
+		fprintf(stderr,
+			"%s: \"%s\" is not a regular file -- unchanged.\n",
+			progname, name);
+		return 0;
+	}
+	if (st->st_nlink > 1 && !f_cat && !f_precious) {
+		fprintf(stderr, 
+		      "%s: \"%s\" has %d other link%s -- unchanged.\n",
+			progname, name, (int)(st->st_nlink - 1),
+			"s" + (st->st_nlink <= 2));
+		return 0;
+	}
+	return 1;
+}
+
+static void prepare_io P1(( desc), struct fmtdesc * desc)
+{
+	output      = desc->output;
+	input       = desc->input;
+
+	init_input  = desc->init_input;
+	init_output = desc->init_output;
+}
+
+static struct fmtdesc * grok_format P1((name), char * name)
+{
+	char * c;
+	struct fmtdesc ** f;
+
+	if (name) {
+		c = plainname(name);
+
+		for (f = alldescs; *f; f++) {
+			if (  (*f)->suffix
+			   && *(*f)->suffix
+			   && suffix(c, (*f)->suffix)) {
+
+				free(c);
+				return *f;
+			}
+		}
+
+		free(c);
+	}
+	return (struct fmtdesc *)0;
+}
+
+static int open_input P2((name, st), char * name, struct stat * st)
+{
+	struct fmtdesc * f = f_format;
+
+	st->st_nlink = 0;	/* indicates `undefined' value */
+	if (!name) {
+		inname = (char *)NULL;
+		in     = stdin;
+#ifdef	HAS__FSETMODE
+		_fsetmode(in, "b");
+#endif
+	}
+	else {
+		if (f_decode) inname = codename(name);
+		else {
+			if (!f_cat && suffix(name, SUFFIX_TOASTED)) {
+				fprintf(stderr,
+			"%s: %s already has \"%s\" suffix -- unchanged.\n",
+					progname, name, SUFFIX_TOASTED );
+				return 0;
+			}
+			inname = strcpy(emalloc(strlen(name)+1), name);
+		}
+		if (!(in = fopen(inname, READ))) {
+			perror(inname);	/* not guaranteed to be valid here */
+			fprintf(stderr, "%s: cannot open \"%s\" for reading\n",
+				progname, inname);
+			return 0;
+		}
+		if (!okay_as_input(inname, in, st)) return 0;
+		if (!f) f = grok_format(inname);
+	}
+	prepare_io( f ? f : & DEFAULT_FORMAT );
+	return 1;
+}
+
+static int open_output P1((name), char *name)
+{
+	if (!name || f_cat) {
+		out     = stdout;
+		outname = (char *)NULL;
+#ifdef	HAS__FSETMODE
+		_fsetmode(out, "b"); 
+#endif
+	}
+	else {
+		int outfd = -1;
+		char * o;
+
+		o = (*(f_decode ? plainname : codename))(name);
+		if (!length_okay(o)) return 0;
+		if ((outfd = open(o, O_WRITE_EXCL, 0666)) >= 0)
+			out = fdopen(outfd, WRITE);
+		else if (errno != EEXIST) out = (FILE *)NULL;
+		else if (ok_to_replace(o)) out = fopen(o, WRITE);
+		else return 0;
+
+		if (!out) {
+			perror(o);
+			fprintf(stderr,
+				"%s: can't open \"%s\" for writing\n",
+				progname, o);
+			if (outfd >= 0) (void)close(outfd);
+			return 0;
+		}
+
+		outname = o;
+	}
+	return 1;
+}
+
+static int process_encode P0()
+{
+	gsm      	r;
+	gsm_signal    	s[ 160 ];
+	gsm_frame	d;
+ 
+	int		cc;
+
+	if (!(r = gsm_create())) {
+		perror(progname);
+		return -1;
+	}
+	(void)gsm_option(r, GSM_OPT_FAST,       &f_fast);
+	(void)gsm_option(r, GSM_OPT_VERBOSE,    &f_verbose);
+	(void)gsm_option(r, GSM_OPT_LTP_CUT,	&f_ltp_cut);
+
+	while ((cc = (*input)(s)) > 0) {
+		if (cc < sizeof(s) / sizeof(*s))
+			memset((char *)(s+cc), 0, sizeof(s)-(cc * sizeof(*s)));
+		gsm_encode(r, s, d);
+		if (fwrite((char *)d, sizeof(d), 1, out) != 1) {
+			perror(outname ? outname : "stdout");
+			fprintf(stderr, "%s: error writing to %s\n",
+				progname, outname ? outname : "stdout");
+			gsm_destroy(r);
+			return -1;
+		}
+	}
+	if (cc < 0) {
+		perror(inname ? inname : "stdin");
+		fprintf(stderr, "%s: error reading from %s\n",
+			progname, inname ? inname : "stdin");
+		gsm_destroy(r);
+		return -1;
+	}
+	gsm_destroy(r);
+
+	return 0;
+}
+
+static int process_decode P0()
+{
+	gsm      	r;
+	gsm_frame	s;
+	gsm_signal	d[ 160 ];
+ 
+	int		cc;
+
+	if (!(r = gsm_create())) {	/* malloc failed */
+		perror(progname);
+		return -1;
+	}
+	(void)gsm_option(r, GSM_OPT_FAST,    &f_fast);
+	(void)gsm_option(r, GSM_OPT_VERBOSE, &f_verbose);
+
+	while ((cc = fread(s, 1, sizeof(s), in)) > 0) {
+
+		if (cc != sizeof(s)) {
+			if (cc >= 0) fprintf(stderr,
+			"%s: incomplete frame (%d byte%s missing) from %s\n",
+					progname, (int)(sizeof(s) - cc),
+					"s" + (sizeof(s) - cc == 1),
+					inname ? inname : "stdin" );
+			gsm_destroy(r);
+			errno = 0;
+			return -1;
+		}
+		if (gsm_decode(r, s, d)) {
+			fprintf(stderr, "%s: bad frame in %s\n", 
+				progname, inname ? inname : "stdin");
+			gsm_destroy(r);
+			errno = 0;
+			return -1;
+		}
+
+		if ((*output)(d) < 0) {
+			perror(outname);
+			fprintf(stderr, "%s: error writing to %s\n",
+					progname, outname);
+			gsm_destroy(r);
+			return -1;
+		}
+	}
+
+	if (cc < 0) {
+		perror(inname ? inname : "stdin" );
+		fprintf(stderr, "%s: error reading from %s\n", progname,
+			inname ? inname : "stdin");
+		gsm_destroy(r);
+		return -1;
+	}
+
+	gsm_destroy(r);
+	return 0;
+}
+
+static int process P1((name), char * name)
+{
+	out     = (FILE *)0;
+	in      = (FILE *)0;
+
+	outname = (char *)0;
+	inname  = (char *)0;
+
+	if (!open_input(name, &instat) || !open_output(name))
+		goto err;
+
+	if ((*(f_decode ? init_output    : init_input))()) {
+		fprintf(stderr, "%s: error %s %s\n",
+			progname,
+			f_decode ? "writing header to" : "reading header from",
+			f_decode ? (outname ? outname : "stdout")
+				 : (inname ? inname : "stdin"));
+		goto err;
+	}
+
+	if ((*(f_decode ? process_decode : process_encode))())
+		goto err;
+
+	if (fflush(out) < 0 || ferror(out)) {
+		perror(outname ? outname : "stdout");
+		fprintf(stderr, "%s: error writing \"%s\"\n", progname,
+				outname ? outname:"stdout");
+		goto err;
+	}
+
+	if (out != stdout) {
+
+		update_times();
+		update_mode ();
+		update_own  ();
+
+		if (fclose(out) < 0) {
+			perror(outname);
+			fprintf(stderr, "%s: error writing \"%s\"\n",
+				progname, outname);
+			goto err;
+		}
+		if (outname != name) free(outname);
+		outname = (char *)0;
+	}
+	out = (FILE *)0;
+	if (in  != stdin) {
+		(void)fclose(in), in = (FILE *)0;
+		if (!f_cat && !f_precious) {
+			if (unlink(inname) < 0) {
+				perror(inname);
+				fprintf(stderr,
+					"%s: source \"%s\" not deleted.\n",
+					progname, inname);
+			}
+			goto err;
+		}
+		if (inname != name) free(inname);
+		inname = (char *)0;
+	}
+	return 0;
+
+	/*
+	 *  Error handling and cleanup.
+	 */
+err:
+	if (out && out != stdout) {
+		(void)fclose(out), out = (FILE *)0;
+		if (unlink(outname) < 0 && errno != ENOENT && errno != EINTR) {
+			perror(outname);
+			fprintf(stderr, "%s: could not unlink \"%s\"\n",
+				progname, outname);
+		}
+	}
+	if (in && in != stdin) (void)fclose(in), in = (FILE *)0;
+
+	if (inname  && inname  != name) free(inname);
+	if (outname && outname != name) free(outname);
+
+	return -1;
+}
+
+static void version P0()
+{
+	printf( "%s 1.0, version %s\n",
+		progname,
+		"$Id: toast.c,v 1.8 1996/07/02 10:41:04 jutta Exp $" );
+}
+
+static void help P0()
+{
+	printf("Usage: %s [-fcpdhvaulsFC] [files...]\n", progname);
+	printf("\n");
+
+	printf(" -f  force     Replace existing files without asking\n");
+	printf(" -c  cat       Write to stdout, do not remove source files\n");
+	printf(" -d  decode    Decode data (default is encode)\n");
+	printf(" -p  precious  Do not delete the source\n");
+	printf("\n");
+
+	printf(" -u  u-law     Force 8 kHz/8 bit u-law in/output format\n");
+	printf(" -s  sun .au   Force Sun .au u-law in/output format\n");
+	printf(" -a  A-law     Force 8 kHz/8 bit A-law in/output format\n");
+	printf(" -l  linear    Force 16 bit linear in/output format\n");
+	printf("\n");
+
+	printf(" -F  fast      Sacrifice conformance to performance\n");
+	printf(" -C  cutoff    Ignore most samples during LTP\n");
+	printf(" -v  version   Show version information\n");
+	printf(" -h  help      Print this text\n");
+	printf("\n");
+}
+
+
+static void set_format P1((f), struct fmtdesc * f)
+{
+	if (f_format && f_format != f) {
+		fprintf( stderr,
+	"%s: only one of -[uals] is possible (%s -h for help)\n",
+			progname, progname);
+		exit(1);
+	}
+
+	f_format = f;
+}
+
+int main P2((ac, av), int ac, char **av)
+{
+	int  		opt;
+	extern int	optind;
+
+	parse_argv0(*av);
+
+	while ((opt = getopt(ac, av, "fcdpvhuaslVFC:")) != EOF) switch (opt) {
+
+	case 'd': f_decode   = 1; break;
+	case 'f': f_force    = 1; break;
+	case 'c': f_cat      = 1; break;
+	case 'p': f_precious = 1; break;
+	case 'F': f_fast     = 1; break;
+	case 'C': f_ltp_cut  = 100; break;
+#ifndef	NDEBUG
+	case 'V': f_verbose  = 1; break;	/* undocumented */
+#endif
+
+	case 'u': set_format( &f_ulaw   ); break;
+	case 'l': set_format( &f_linear ); break;
+	case 'a': set_format( &f_alaw	); break;
+	case 's': set_format( &f_audio  ); break;
+
+	case 'v': version(); exit(0);
+	case 'h': help();    exit(0);
+
+	default: 
+		fprintf(stderr,
+	"Usage: %s [-fcpdhvuaslFC] [files...] (-h for help)\n",
+			progname);
+		exit(1);
+	}
+
+	f_precious |= f_cat;
+
+	av += optind;
+	ac -= optind;
+
+	catch_signals(onintr);
+
+	if (ac <= 0) process( (char *)0 );
+	else while (ac--) process( *av++ );
+
+	exit(0);
+}
diff --git a/src/toast_alaw.c b/src/toast_alaw.c
new file mode 100644
index 0000000..7799342
--- /dev/null
+++ b/src/toast_alaw.c
@@ -0,0 +1,334 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /home/kbs/jutta/src/gsm/gsm-1.0/src/RCS/toast_alaw.c,v 1.2 1996/07/05 17:23:46 jutta Exp $ */
+
+#include	"toast.h"
+
+/*  toast_alaw.c -- manipulate A-law encoded sound.
+ */
+
+extern FILE	* in, * out;
+
+#define	A2S(x)	(a2s[  (unsigned char )(x)       ])
+#define	S2A(x)	(s2a[ ((unsigned short)(x)) >> 4 ])
+
+static unsigned short a2s[] = {
+
+ 60032, 60288, 59520, 59776, 61056, 61312, 60544, 60800,
+ 57984, 58240, 57472, 57728, 59008, 59264, 58496, 58752,
+ 62784, 62912, 62528, 62656, 63296, 63424, 63040, 63168,
+ 61760, 61888, 61504, 61632, 62272, 62400, 62016, 62144,
+ 43520, 44544, 41472, 42496, 47616, 48640, 45568, 46592,
+ 35328, 36352, 33280, 34304, 39424, 40448, 37376, 38400,
+ 54528, 55040, 53504, 54016, 56576, 57088, 55552, 56064,
+ 50432, 50944, 49408, 49920, 52480, 52992, 51456, 51968,
+ 65192, 65208, 65160, 65176, 65256, 65272, 65224, 65240,
+ 65064, 65080, 65032, 65048, 65128, 65144, 65096, 65112,
+ 65448, 65464, 65416, 65432, 65512, 65528, 65480, 65496,
+ 65320, 65336, 65288, 65304, 65384, 65400, 65352, 65368,
+ 64160, 64224, 64032, 64096, 64416, 64480, 64288, 64352,
+ 63648, 63712, 63520, 63584, 63904, 63968, 63776, 63840,
+ 64848, 64880, 64784, 64816, 64976, 65008, 64912, 64944,
+ 64592, 64624, 64528, 64560, 64720, 64752, 64656, 64688,
+  5504,  5248,  6016,  5760,  4480,  4224,  4992,  4736,
+  7552,  7296,  8064,  7808,  6528,  6272,  7040,  6784,
+  2752,  2624,  3008,  2880,  2240,  2112,  2496,  2368,
+  3776,  3648,  4032,  3904,  3264,  3136,  3520,  3392,
+ 22016, 20992, 24064, 23040, 17920, 16896, 19968, 18944,
+ 30208, 29184, 32256, 31232, 26112, 25088, 28160, 27136,
+ 11008, 10496, 12032, 11520,  8960,  8448,  9984,  9472,
+ 15104, 14592, 16128, 15616, 13056, 12544, 14080, 13568,
+   344,   328,   376,   360,   280,   264,   312,   296,
+   472,   456,   504,   488,   408,   392,   440,   424,
+    88,    72,   120,   104,    24,     8,    56,    40,
+   216,   200,   248,   232,   152,   136,   184,   168,
+  1376,  1312,  1504,  1440,  1120,  1056,  1248,  1184,
+  1888,  1824,  2016,  1952,  1632,  1568,  1760,  1696,
+   688,   656,   752,   720,   560,   528,   624,   592,
+   944,   912,  1008,   976,   816,   784,   880,   848
+
+};
+
+
+static unsigned char  s2a[] = {
+
+	213,212,215,214,209,208,211,210,221,220,223,222,217,216,219,218,
+	197,196,199,198,193,192,195,194,205,204,207,206,201,200,203,202,
+	245,245,244,244,247,247,246,246,241,241,240,240,243,243,242,242,
+	253,253,252,252,255,255,254,254,249,249,248,248,251,251,250,250,
+	229,229,229,229,228,228,228,228,231,231,231,231,230,230,230,230,
+	225,225,225,225,224,224,224,224,227,227,227,227,226,226,226,226,
+	237,237,237,237,236,236,236,236,239,239,239,239,238,238,238,238,
+	233,233,233,233,232,232,232,232,235,235,235,235,234,234,234,234,
+	149,149,149,149,149,149,149,149,148,148,148,148,148,148,148,148,
+	151,151,151,151,151,151,151,151,150,150,150,150,150,150,150,150,
+	145,145,145,145,145,145,145,145,144,144,144,144,144,144,144,144,
+	147,147,147,147,147,147,147,147,146,146,146,146,146,146,146,146,
+	157,157,157,157,157,157,157,157,156,156,156,156,156,156,156,156,
+	159,159,159,159,159,159,159,159,158,158,158,158,158,158,158,158,
+	153,153,153,153,153,153,153,153,152,152,152,152,152,152,152,152,
+	155,155,155,155,155,155,155,155,154,154,154,154,154,154,154,154,
+	133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,
+	132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,
+	135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,
+	134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
+	129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,
+	128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
+	131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,
+	130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
+	141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+	140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,
+	143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+	142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+	137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
+	136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
+	139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+	138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+	181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+	181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,
+	180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+	180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,
+	183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+	183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,
+	182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+	182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,
+	177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+	177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,
+	176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+	176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
+	179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+	179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,179,
+	178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+	178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,
+	189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+	189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,
+	188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+	188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
+	191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+	191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,
+	190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+	190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
+	185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+	185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,
+	184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+	184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,
+	187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+	187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,
+	186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+	186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
+	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+	165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,
+	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+	164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,
+	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+	167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,
+	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+	166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,
+	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+	161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,
+	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+	160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,
+	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+	163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,
+	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+	162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,
+	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+	173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,
+	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+	172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,
+	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+	175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,
+	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+	174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,
+	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+	169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,
+	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+	168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,
+	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+	171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,
+	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+	170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,
+	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+	 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
+	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
+	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
+	 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
+	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+	 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+	 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
+	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
+	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
+	 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
+	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+	 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+	 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
+	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+	 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+	 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
+	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+	 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+	 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+	 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
+	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
+	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
+	 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
+	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+	 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+	 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+	 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
+	 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+	 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+	 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+	 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+	 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+	 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+	 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
+	 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
+	 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+	 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+	 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+	 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+	 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+	 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+	 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+	 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+	 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+	 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+	 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+	 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
+	 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+	 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
+	 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+	 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
+	 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+	 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+	 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+	 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
+	 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+	 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
+	 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+	 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+	 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+	 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+	  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,
+	  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,
+	 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+	 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+	 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+	 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+	  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+	  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
+	  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+	  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
+	  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+	  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,
+	  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
+	  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
+	 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
+	 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25,
+	 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31,
+	 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29,
+	 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19,
+	 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17,
+	 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
+	 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21,
+	106,106,106,106,107,107,107,107,104,104,104,104,105,105,105,105,
+	110,110,110,110,111,111,111,111,108,108,108,108,109,109,109,109,
+	 98, 98, 98, 98, 99, 99, 99, 99, 96, 96, 96, 96, 97, 97, 97, 97,
+	102,102,102,102,103,103,103,103,100,100,100,100,101,101,101,101,
+	122,122,123,123,120,120,121,121,126,126,127,127,124,124,125,125,
+	114,114,115,115,112,112,113,113,118,118,119,119,116,116,117,117,
+	 74, 75, 72, 73, 78, 79, 76, 77, 66, 67, 64, 65, 70, 71, 68, 69,
+	 90, 91, 88, 89, 94, 95, 92, 93, 82, 83, 80, 81, 86, 87, 84, 85
+};
+
+int alaw_input P1((buf), gsm_signal * buf) 
+{
+	int  i, c;
+
+	for (i = 0; i < 160 && (c = fgetc(in)) != EOF; i++) buf[i] = A2S( c );
+	if (c == EOF && ferror(in)) return -1;
+	return i;
+}
+
+int alaw_output P1((buf), gsm_signal * buf) 
+{
+	int  i;
+
+	for (i = 0; i < 160; i++, buf++)
+		if (fputc( S2A( *buf ), out) == EOF) return -1;
+	return 0;
+}
+
diff --git a/src/toast_audio.c b/src/toast_audio.c
new file mode 100644
index 0000000..f090f23
--- /dev/null
+++ b/src/toast_audio.c
@@ -0,0 +1,113 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast_audio.c,v 1.6 1995/03/07 21:21:24 jutta Exp $ */
+
+#include	"toast.h"
+
+/*  toast_audio -- functions to manipulate SunOS audio files.
+ *
+ *  This is reverse engineered from our present soundfiles
+ *  and in no way portable, durable or aesthetically pleasing.
+ */
+
+extern FILE	* in, 	  * out;
+extern char	* inname;
+extern char	* progname;
+
+extern int	(*output) P((gsm_signal *)),
+		(*input ) P((gsm_signal *));
+
+extern int	alaw_input   P((gsm_signal *)),
+		ulaw_input   P((gsm_signal *)),
+		linear_input P((gsm_signal *));
+
+extern int	ulaw_output P((gsm_signal *));
+
+static int put_u32 P2((f, u), FILE * f, unsigned long u)
+{
+	/*  Write a 32-bit unsigned value msb first. 
+	 */
+	if (  putc( (char)((u>>24) & 0x0FF), f) == EOF
+	   || putc( (char)((u>>16) & 0x0FF), f) == EOF
+	   || putc( (char)((u>> 8) & 0x0FF), f) == EOF
+	   || putc( (char)( u      & 0x0FF), f) == EOF) return -1;
+
+	return 0;
+}
+
+static int get_u32 P2((f, up), FILE * f, unsigned long * up)
+{
+	/*  Read a 32-bit unsigned value msb first.
+	 */
+	int		i;
+	unsigned long 	u;
+
+	if (  				      (i = getc(f)) == EOF
+	   || ((u =        (unsigned char)i), (i = getc(f)) == EOF)
+	   || ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)
+	   || ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)) return -1;
+	*up = 	    (u<<8)|(unsigned char)i;
+	return 0;
+}
+
+int audio_init_input P0()
+{
+	unsigned long	len, enc;	/* unsigned 32 bits	*/
+
+	if (  fgetc(in) != '.' 
+	   || fgetc(in) != 's'
+	   || fgetc(in) != 'n'
+	   || fgetc(in) != 'd'
+	   || get_u32( in, &len )
+	   || get_u32( in, &enc )	/* skip this */
+	   || get_u32( in, &enc )) {
+		fprintf(stderr, 
+	"%s: bad (missing?) header in Sun audio file \"%s\";\n\
+	Try one of -u, -a, -l instead (%s -h for help).\n",
+			progname, inname ? inname : "stdin", progname);
+		return -1;
+	}
+
+	switch (enc) {
+	case 1:	input = ulaw_input;  	break;
+	case 2: input = alaw_input;  	break;
+	case 3: input = linear_input; 	break;
+	default:
+		fprintf(stderr,
+"%s: warning: file format #%lu for %s not implemented, defaulting to u-law.\n",
+			progname, enc, inname);
+		input = ulaw_input;
+		break;
+	}
+
+	while (len > 4*4)
+		if (getc(in) == EOF) {
+			fprintf(stderr, 
+			"%s: EOF in header of Sun audio file \"%s\";\n\
+			Try one of -u, -a, -l instead (%s -h for help).\n",
+				progname, inname ? inname : "stdin", progname);
+			return -1;
+		}
+		else len--;
+
+	return 0;
+}
+
+int audio_init_output P0()
+{
+	if (  fputs(".snd", out) == EOF
+	   || put_u32(out, 32)
+	   || put_u32(out, ~(unsigned long)0)
+	   || put_u32(out, 1)
+	   || put_u32(out, 8000)
+	   || put_u32(out, 1)
+	   || put_u32(out, 0)
+	   || put_u32(out, 0)) return -1;
+
+	return 0;
+}
+
diff --git a/src/toast_lin.c b/src/toast_lin.c
new file mode 100644
index 0000000..7b5f845
--- /dev/null
+++ b/src/toast_lin.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast_lin.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */
+
+#include	"toast.h"
+
+/*  toast_linear.c -- read and write 16 bit linear sound in host byte order.
+ */
+
+extern FILE	*in, *out;
+
+int linear_input (buf) gsm_signal * buf;
+{
+	return fread( (char *)buf, sizeof(*buf), 160, in );
+}
+
+int linear_output P1((buf), gsm_signal * buf) 
+{
+	return -( fwrite( (char *)buf, sizeof(*buf), 160, out ) != 160 );
+}
diff --git a/src/toast_ulaw.c b/src/toast_ulaw.c
new file mode 100644
index 0000000..14ef2d0
--- /dev/null
+++ b/src/toast_ulaw.c
@@ -0,0 +1,621 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast_ulaw.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */
+
+#include	"toast.h"
+
+/* toast_ulaw -- functions to manipulate u-law encoded sound.
+ */
+
+extern FILE	*in, *out;
+
+#define	U2S(x)	(u2s[  (unsigned  char)(x)       ])
+#define	S2U(x)	(s2u[ ((unsigned short)(x)) >> 3 ])
+
+static unsigned short u2s[] = {
+	33280, 34308, 35336, 36364, 37393, 38421, 39449, 40477,
+	41505, 42534, 43562, 44590, 45618, 46647, 47675, 48703,
+	49474, 49988, 50503, 51017, 51531, 52045, 52559, 53073,
+	53587, 54101, 54616, 55130, 55644, 56158, 56672, 57186,
+	57572, 57829, 58086, 58343, 58600, 58857, 59114, 59371,
+	59628, 59885, 60142, 60399, 60656, 60913, 61171, 61428,
+	61620, 61749, 61877, 62006, 62134, 62263, 62392, 62520,
+	62649, 62777, 62906, 63034, 63163, 63291, 63420, 63548,
+	63645, 63709, 63773, 63838, 63902, 63966, 64030, 64095,
+	64159, 64223, 64287, 64352, 64416, 64480, 64544, 64609,
+	64657, 64689, 64721, 64753, 64785, 64818, 64850, 64882,
+	64914, 64946, 64978, 65010, 65042, 65075, 65107, 65139,
+	65163, 65179, 65195, 65211, 65227, 65243, 65259, 65275,
+	65291, 65308, 65324, 65340, 65356, 65372, 65388, 65404,
+	65416, 65424, 65432, 65440, 65448, 65456, 65464, 65472,
+	65480, 65488, 65496, 65504, 65512, 65520, 65528,     0,
+	32256, 31228, 30200, 29172, 28143, 27115, 26087, 25059,
+	24031, 23002, 21974, 20946, 19918, 18889, 17861, 16833,
+	16062, 15548, 15033, 14519, 14005, 13491, 12977, 12463,
+	11949, 11435, 10920, 10406,  9892,  9378,  8864,  8350,
+	 7964,  7707,  7450,  7193,  6936,  6679,  6422,  6165, 
+	 5908,  5651,  5394,  5137,  4880,  4623,  4365,  4108, 
+	 3916,  3787,  3659,  3530,  3402,  3273,  3144,  3016, 
+	 2887,  2759,  2630,  2502,  2373,  2245,  2116,  1988, 
+	 1891,  1827,  1763,  1698,  1634,  1570,  1506,  1441, 
+	 1377,  1313,  1249,  1184,  1120,  1056,   992,   927, 
+	  879,   847,   815,   783,   751,   718,   686,   654,
+	  622,   590,   558,   526,   494,   461,   429,   397,
+	  373,   357,   341,   325,   309,   293,   277,   261,
+	  245,   228,   212,   196,   180,   164,   148,   132,
+	  120,   112,   104,    96,    88,    80,    72,    64,
+ 	   56,    48,    40,    32,    24,    16,    8,      0
+};
+
+static unsigned char s2u[] = {
+0377,0376,0375,0374,0373,0372,0371,0370,0367,0366,0365,0364,0363,0362,0361,
+0360,0357,0357,0356,0356,0355,0355,0354,0354,0353,0353,0352,0352,0351,0351,
+0350,0350,0347,0347,0346,0346,0345,0345,0344,0344,0343,0343,0342,0342,0341,
+0341,0340,0340,0337,0337,0337,0337,0336,0336,0336,0336,0335,0335,0335,0335,
+0334,0334,0334,0334,0333,0333,0333,0333,0332,0332,0332,0332,0331,0331,0331,
+0331,0330,0330,0330,0330,0327,0327,0327,0327,0326,0326,0326,0326,0325,0325,
+0325,0325,0324,0324,0324,0324,0323,0323,0323,0323,0322,0322,0322,0322,0321,
+0321,0321,0321,0320,0320,0320,0320,0317,0317,0317,0317,0317,0317,0317,0317,
+0316,0316,0316,0316,0316,0316,0316,0316,0315,0315,0315,0315,0315,0315,0315,
+0315,0314,0314,0314,0314,0314,0314,0314,0314,0313,0313,0313,0313,0313,0313,
+0313,0313,0312,0312,0312,0312,0312,0312,0312,0312,0311,0311,0311,0311,0311,
+0311,0311,0311,0310,0310,0310,0310,0310,0310,0310,0310,0307,0307,0307,0307,
+0307,0307,0307,0307,0306,0306,0306,0306,0306,0306,0306,0306,0305,0305,0305,
+0305,0305,0305,0305,0305,0304,0304,0304,0304,0304,0304,0304,0304,0303,0303,
+0303,0303,0303,0303,0303,0303,0303,0302,0302,0302,0302,0302,0302,0302,0302,
+0301,0301,0301,0301,0301,0301,0301,0301,0300,0300,0300,0300,0300,0300,0300,
+0300,0277,0277,0277,0277,0277,0277,0277,0277,0277,0277,0277,0277,0277,0277,
+0277,0277,0276,0276,0276,0276,0276,0276,0276,0276,0276,0276,0276,0276,0276,
+0276,0276,0276,0275,0275,0275,0275,0275,0275,0275,0275,0275,0275,0275,0275,
+0275,0275,0275,0275,0274,0274,0274,0274,0274,0274,0274,0274,0274,0274,0274,
+0274,0274,0274,0274,0274,0273,0273,0273,0273,0273,0273,0273,0273,0273,0273,
+0273,0273,0273,0273,0273,0273,0272,0272,0272,0272,0272,0272,0272,0272,0272,
+0272,0272,0272,0272,0272,0272,0272,0271,0271,0271,0271,0271,0271,0271,0271,
+0271,0271,0271,0271,0271,0271,0271,0271,0270,0270,0270,0270,0270,0270,0270,
+0270,0270,0270,0270,0270,0270,0270,0270,0270,0267,0267,0267,0267,0267,0267,
+0267,0267,0267,0267,0267,0267,0267,0267,0267,0267,0266,0266,0266,0266,0266,
+0266,0266,0266,0266,0266,0266,0266,0266,0266,0266,0266,0265,0265,0265,0265,
+0265,0265,0265,0265,0265,0265,0265,0265,0265,0265,0265,0265,0264,0264,0264,
+0264,0264,0264,0264,0264,0264,0264,0264,0264,0264,0264,0264,0264,0263,0263,
+0263,0263,0263,0263,0263,0263,0263,0263,0263,0263,0263,0263,0263,0263,0262,
+0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,0262,
+0262,0261,0261,0261,0261,0261,0261,0261,0261,0261,0261,0261,0261,0261,0261,
+0261,0261,0260,0260,0260,0260,0260,0260,0260,0260,0260,0260,0260,0260,0260,
+0260,0260,0260,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,
+0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,0257,
+0257,0257,0257,0257,0257,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,
+0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,0256,
+0256,0256,0256,0256,0256,0256,0256,0255,0255,0255,0255,0255,0255,0255,0255,
+0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,0255,
+0255,0255,0255,0255,0255,0255,0255,0255,0255,0254,0254,0254,0254,0254,0254,
+0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,
+0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0254,0253,0253,0253,0253,
+0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,
+0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0253,0252,0252,
+0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,
+0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,0252,
+0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,
+0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,0251,
+0251,0251,0251,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,
+0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,0250,
+0250,0250,0250,0250,0250,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,
+0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,0247,
+0247,0247,0247,0247,0247,0247,0247,0246,0246,0246,0246,0246,0246,0246,0246,
+0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,0246,
+0246,0246,0246,0246,0246,0246,0246,0246,0246,0245,0245,0245,0245,0245,0245,
+0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,
+0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0245,0244,0244,0244,0244,
+0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,
+0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0244,0243,0243,
+0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,
+0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,0243,
+0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,
+0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,0242,
+0242,0242,0242,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,
+0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,0241,
+0241,0241,0241,0241,0241,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,
+0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,0240,
+0240,0240,0240,0240,0240,0240,0240,0237,0237,0237,0237,0237,0237,0237,0237,
+0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,
+0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,
+0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,
+0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0237,0236,0236,0236,0236,
+0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,
+0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,
+0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,
+0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,0236,
+0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,
+0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,
+0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,
+0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,0235,
+0235,0235,0235,0235,0235,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,
+0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,
+0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,
+0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,0234,
+0234,0234,0234,0234,0234,0234,0234,0234,0234,0233,0233,0233,0233,0233,0233,
+0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,
+0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,
+0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,
+0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0233,0232,0232,
+0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,
+0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,
+0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,
+0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,0232,
+0232,0232,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,
+0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,
+0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,
+0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,0231,
+0231,0231,0231,0231,0231,0231,0231,0230,0230,0230,0230,0230,0230,0230,0230,
+0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,
+0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,
+0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,
+0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0230,0227,0227,0227,0227,
+0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,
+0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,
+0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,
+0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,0227,
+0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,
+0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,
+0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,
+0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,0226,
+0226,0226,0226,0226,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,
+0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,
+0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,
+0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,0225,
+0225,0225,0225,0225,0225,0225,0225,0225,0225,0224,0224,0224,0224,0224,0224,
+0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,
+0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,
+0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,
+0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0224,0223,0223,
+0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,
+0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,
+0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,
+0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,0223,
+0223,0223,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,
+0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,
+0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,
+0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,0222,
+0222,0222,0222,0222,0222,0222,0221,0221,0221,0221,0221,0221,0221,0221,0221,
+0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,
+0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,
+0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,
+0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0221,0220,0220,0220,0220,
+0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,
+0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,
+0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,
+0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,0220,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,0217,
+0217,0217,0217,0217,0217,0217,0217,0217,0217,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,0216,
+0216,0216,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,
+0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0215,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,0214,
+0214,0214,0214,0214,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,
+0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0213,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,0212,
+0212,0212,0212,0212,0212,0212,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,0211,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,0210,
+0210,0210,0210,0210,0210,0210,0210,0210,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,0207,
+0207,0207,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,
+0206,0206,0206,0206,0206,0206,0206,0206,0206,0206,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,0205,
+0205,0205,0205,0205,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,
+0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0204,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,0203,
+0203,0203,0203,0203,0203,0203,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,
+0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0202,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,0201,
+0201,0201,0201,0201,0201,0201,0201,0201,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,0200,
+0200,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,
+0000,0000,0000,0000,0000,0000,0000,0000,0000,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,
+0001,0001,0001,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,
+0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0002,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,0003,
+0003,0003,0003,0003,0003,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,
+0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0004,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,0005,
+0005,0005,0005,0005,0005,0005,0005,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,0006,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,0007,
+0007,0007,0007,0007,0007,0007,0007,0007,0007,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,0010,
+0010,0010,0010,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,
+0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0011,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,0012,
+0012,0012,0012,0012,0012,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,
+0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0013,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,0014,
+0014,0014,0014,0014,0014,0014,0014,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,0015,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,0016,
+0016,0016,0016,0016,0016,0016,0016,0016,0016,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,0017,
+0017,0017,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,
+0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,
+0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,
+0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,0020,
+0020,0020,0020,0020,0020,0020,0021,0021,0021,0021,0021,0021,0021,0021,0021,
+0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,
+0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,
+0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,
+0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0021,0022,0022,0022,0022,
+0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,
+0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,
+0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,
+0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,0022,
+0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,
+0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,
+0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,
+0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,0023,
+0023,0023,0023,0023,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,
+0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,
+0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,
+0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,0024,
+0024,0024,0024,0024,0024,0024,0024,0024,0024,0025,0025,0025,0025,0025,0025,
+0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,
+0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,
+0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,
+0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0025,0026,0026,
+0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,
+0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,
+0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,
+0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,0026,
+0026,0026,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,
+0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,
+0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,
+0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,0027,
+0027,0027,0027,0027,0027,0027,0030,0030,0030,0030,0030,0030,0030,0030,0030,
+0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,
+0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,
+0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,
+0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0030,0031,0031,0031,0031,
+0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,
+0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,
+0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,
+0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,0031,
+0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,
+0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,
+0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,
+0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,0032,
+0032,0032,0032,0032,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,
+0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,
+0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,
+0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,0033,
+0033,0033,0033,0033,0033,0033,0033,0033,0034,0034,0034,0034,0034,0034,0034,
+0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,
+0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,
+0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,
+0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0034,0035,0035,
+0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,
+0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,
+0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,
+0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,0035,
+0035,0035,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,
+0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,
+0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,
+0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,0036,
+0036,0036,0036,0036,0036,0036,0037,0037,0037,0037,0037,0037,0037,0037,0037,
+0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,
+0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,
+0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,
+0037,0037,0037,0037,0037,0037,0037,0037,0037,0037,0040,0040,0040,0040,0040,
+0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,
+0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0040,0041,0041,
+0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,
+0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,0041,
+0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,
+0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,0042,
+0042,0042,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,
+0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,0043,
+0043,0043,0043,0043,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,
+0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,0044,
+0044,0044,0044,0044,0044,0044,0045,0045,0045,0045,0045,0045,0045,0045,0045,
+0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,0045,
+0045,0045,0045,0045,0045,0045,0045,0045,0046,0046,0046,0046,0046,0046,0046,
+0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,
+0046,0046,0046,0046,0046,0046,0046,0046,0046,0046,0047,0047,0047,0047,0047,
+0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,
+0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0047,0050,0050,
+0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,
+0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,0050,
+0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,
+0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,0051,
+0051,0051,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,
+0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,0052,
+0052,0052,0052,0052,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,
+0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,0053,
+0053,0053,0053,0053,0053,0053,0054,0054,0054,0054,0054,0054,0054,0054,0054,
+0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,0054,
+0054,0054,0054,0054,0054,0054,0054,0054,0055,0055,0055,0055,0055,0055,0055,
+0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,
+0055,0055,0055,0055,0055,0055,0055,0055,0055,0055,0056,0056,0056,0056,0056,
+0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,
+0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0056,0057,0057,0057,
+0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,
+0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,0057,
+0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,0060,
+0060,0061,0061,0061,0061,0061,0061,0061,0061,0061,0061,0061,0061,0061,0061,
+0061,0061,0062,0062,0062,0062,0062,0062,0062,0062,0062,0062,0062,0062,0062,
+0062,0062,0062,0063,0063,0063,0063,0063,0063,0063,0063,0063,0063,0063,0063,
+0063,0063,0063,0063,0064,0064,0064,0064,0064,0064,0064,0064,0064,0064,0064,
+0064,0064,0064,0064,0064,0065,0065,0065,0065,0065,0065,0065,0065,0065,0065,
+0065,0065,0065,0065,0065,0065,0066,0066,0066,0066,0066,0066,0066,0066,0066,
+0066,0066,0066,0066,0066,0066,0066,0067,0067,0067,0067,0067,0067,0067,0067,
+0067,0067,0067,0067,0067,0067,0067,0067,0070,0070,0070,0070,0070,0070,0070,
+0070,0070,0070,0070,0070,0070,0070,0070,0070,0071,0071,0071,0071,0071,0071,
+0071,0071,0071,0071,0071,0071,0071,0071,0071,0071,0072,0072,0072,0072,0072,
+0072,0072,0072,0072,0072,0072,0072,0072,0072,0072,0072,0073,0073,0073,0073,
+0073,0073,0073,0073,0073,0073,0073,0073,0073,0073,0073,0073,0074,0074,0074,
+0074,0074,0074,0074,0074,0074,0074,0074,0074,0074,0074,0074,0074,0075,0075,
+0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,0075,
+0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,0076,
+0076,0077,0077,0077,0077,0077,0077,0077,0077,0077,0077,0077,0077,0077,0077,
+0077,0077,0100,0100,0100,0100,0100,0100,0100,0100,0101,0101,0101,0101,0101,
+0101,0101,0101,0102,0102,0102,0102,0102,0102,0102,0102,0103,0103,0103,0103,
+0103,0103,0103,0103,0104,0104,0104,0104,0104,0104,0104,0104,0105,0105,0105,
+0105,0105,0105,0105,0105,0106,0106,0106,0106,0106,0106,0106,0106,0107,0107,
+0107,0107,0107,0107,0107,0107,0110,0110,0110,0110,0110,0110,0110,0110,0111,
+0111,0111,0111,0111,0111,0111,0111,0112,0112,0112,0112,0112,0112,0112,0112,
+0113,0113,0113,0113,0113,0113,0113,0113,0114,0114,0114,0114,0114,0114,0114,
+0114,0115,0115,0115,0115,0115,0115,0115,0115,0116,0116,0116,0116,0116,0116,
+0116,0116,0117,0117,0117,0117,0117,0117,0117,0117,0120,0120,0120,0120,0121,
+0121,0121,0121,0122,0122,0122,0122,0123,0123,0123,0123,0124,0124,0124,0124,
+0125,0125,0125,0125,0126,0126,0126,0126,0127,0127,0127,0127,0130,0130,0130,
+0130,0131,0131,0131,0131,0132,0132,0132,0132,0133,0133,0133,0133,0134,0134,
+0134,0134,0135,0135,0135,0135,0136,0136,0136,0136,0137,0137,0137,0137,0140,
+0140,0141,0141,0142,0142,0143,0143,0144,0144,0145,0145,0146,0146,0147,0147,
+0150,0150,0150,0151,0151,0152,0152,0153,0153,0154,0154,0155,0155,0156,0156,
+0157,0157,0160,0161,0162,0163,0164,0165,0166,0167,0170,0171,0172,0173,0174,
+0175,0176
+};
+
+int ulaw_input P1((buf), gsm_signal * buf)
+{
+	int i, c;
+
+	for (i = 0; i < 160 && (c = fgetc(in)) != EOF; i++) buf[i] = U2S(c);
+	if (c == EOF && ferror(in)) return -1;
+	return i;
+}
+
+int ulaw_output P1((buf), gsm_signal * buf)
+{
+	int i;
+
+	for(i = 0; i < 160; i++, buf++)
+		if (fputc( (char)S2U( (unsigned short)*buf ), out) == EOF)
+			return -1;
+	return 0;
+}
diff --git a/tls/bitter.c b/tls/bitter.c
new file mode 100644
index 0000000..602d8d6
--- /dev/null
+++ b/tls/bitter.c
@@ -0,0 +1,66 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/bitter.c,v 1.1 1992/10/28 00:28:39 jutta Exp $*/
+
+/* Generate code to pack a bit array from a name:#bits description */
+
+#include	<stdio.h>
+#include	"taste.h"
+#include	"proto.h"
+
+void write_code P2((s_spex, n_spex), struct spex * s_spex, int n_spex)
+{
+	struct spex	* sp = s_spex;
+	int		bits = 8;
+	int		vars;
+
+	if (!n_spex) return;
+
+	vars = sp->varsize;
+
+	while (n_spex) {
+
+		if (bits == 8) printf("\t*c++ =   ");
+		else printf("\t       | ");
+
+		if (vars == bits) {
+	
+			printf( (bits==8? "%s & 0x%lX;\n" : "(%s & 0x%lX);\n"),
+				sp->var, 
+				~(0xfffffffe << (bits - 1)));
+			if (!-- n_spex) break;
+			sp++;
+
+			vars = sp->varsize;
+			bits = 8;
+
+		} else if (vars < bits) {
+
+			printf( "((%s & 0x%lX) << %d)",
+				sp->var,
+				~(0xfffffffe << (vars - 1)),
+				bits - vars);
+			bits -= vars;
+			if (!--n_spex) {
+				puts(";");
+				break;
+			}
+			else putchar('\n');
+			sp++;
+			vars = sp->varsize;
+
+		} else {
+			printf("((%s >> %d) & 0x%X);\n",
+				sp->var, 
+				vars - bits,
+				~(0xfffffffe << (bits - 1)));
+			
+			vars -= bits;
+			bits = 8;
+		}
+	}
+}
diff --git a/tls/bitter.dta b/tls/bitter.dta
new file mode 100644
index 0000000..d1c42e4
--- /dev/null
+++ b/tls/bitter.dta
@@ -0,0 +1,90 @@
+;
+; Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+; Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+; details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+;
+;
+; Variable     Size
+
+GSM_MAGIC	4
+
+LARc[0]		6
+LARc[1]		6
+LARc[2]		5
+LARc[3]		5
+LARc[4]		4
+LARc[5]		4
+LARc[6]		3
+LARc[7]		3
+
+Nc[0]		7
+bc[0]		2
+Mc[0]		2
+xmaxc[0]	6
+xmc[0]		3
+xmc[1]		3
+xmc[2]		3
+xmc[3]		3
+xmc[4]		3
+xmc[5]		3
+xmc[6]		3
+xmc[7]		3
+xmc[8]		3
+xmc[9]		3
+xmc[10]		3
+xmc[11]		3
+xmc[12]		3
+
+Nc[1]		7
+bc[1]		2
+Mc[1]		2
+xmaxc[1]	6
+xmc[13]		3
+xmc[14]		3
+xmc[15]		3
+xmc[16]		3
+xmc[17]		3
+xmc[18]		3
+xmc[19]		3
+xmc[20]		3
+xmc[21]		3
+xmc[22]		3
+xmc[23]		3
+xmc[24]		3
+xmc[25]		3
+
+Nc[2]		7
+bc[2]		2
+Mc[2]		2
+xmaxc[2]	6
+xmc[26]		3
+xmc[27]		3
+xmc[28]		3
+xmc[29]		3
+xmc[30]		3
+xmc[31]		3
+xmc[32]		3
+xmc[33]		3
+xmc[34]		3
+xmc[35]		3
+xmc[36]		3
+xmc[37]		3
+xmc[38]		3
+
+Nc[3]		7
+bc[3]		2
+Mc[3]		2
+xmaxc[3]	6
+xmc[39]		3
+xmc[40]		3
+xmc[41]		3
+xmc[42]		3
+xmc[43]		3
+xmc[44]		3
+xmc[45]		3
+xmc[46]		3
+xmc[47]		3
+xmc[48]		3
+xmc[49]		3
+xmc[50]		3
+xmc[51]		3
diff --git a/tls/ginger.c b/tls/ginger.c
new file mode 100644
index 0000000..d830e20
--- /dev/null
+++ b/tls/ginger.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright 1996 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header*/
+
+/* Generate code to pack a bit array from a name:#bits description */
+
+#include	<stdio.h>
+#include	"taste.h"
+#include	"proto.h"
+#include	<limits.h>
+
+/* This module is the opposite of sour.   Sweet was already taken,
+ * that's why it's called ginger.  (Add one point if that reminds
+ * you of Gary Larson.)
+ */
+
+#define WORD_BITS	16	/* sizeof(uword) * CHAR_BIT on the 
+				 * target architecture---if this isn't 16,
+				 * you're in trouble with this library anyway.
+				 */
+
+#define BYTE_BITS	 8	/* CHAR_BIT on the target architecture---
+				 * if this isn't 8, you're in *deep* trouble.
+				 */
+
+void write_code P2((s_spex, n_spex), struct spex * s_spex, int n_spex)
+{
+	struct spex	* sp = s_spex;
+	int		  n_in = 0;
+
+	printf("uword sr = 0;\n");
+
+	for (; n_spex > 0; n_spex--, sp++) {
+
+		while (n_in < sp->varsize) {
+			if (n_in) printf("sr |= (uword)*c++ << %d;\n", n_in);
+			else printf("sr = *c++;\n");
+			n_in += BYTE_BITS;
+		}
+
+		printf("%s = sr & %#x;  sr >>= %d;\n",
+			sp->var, ~(~0U << sp->varsize), sp->varsize);
+
+		n_in -= sp->varsize;
+	}
+
+	if (n_in > 0) {
+		fprintf(stderr, "%d bits left over\n", n_in);
+	}
+}
diff --git a/tls/sour.c b/tls/sour.c
new file mode 100644
index 0000000..b6932e6
--- /dev/null
+++ b/tls/sour.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright 1996 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header*/
+
+/* Generate code to pack a bit array from a name:#bits description,
+ * WAV #49 style.
+ */
+
+#include	<stdio.h>
+#include	"taste.h"
+#include	"proto.h"
+#include	<limits.h>
+
+/* This module goes back to one Jeff Chilton used for his implementation
+ * of the #49 WAV GSM format.  (In his original patch 8, it replaced
+ * bitter.c.)
+ *
+ * In Microsoft's WAV #49 version of the GSM format, two 32 1/2
+ * byte GSM frames are packed together to make one WAV frame, and
+ * the GSM parameters are packed into bytes right-to-left rather
+ * than left-to-right.
+ *
+ * That is, where toast's GSM format writes
+ *
+ * 	aaaaaabb bbbbcccc cdddddee ...
+ *	___1____ ___2____ ___3____
+ *
+ *  for parameters a (6 bits), b (6 bits), c (5 bits), d (5 bits), e ..
+ *  the WAV format has
+ *
+ * 	bbaaaaaa ccccbbbb eedddddc ...
+ *	___1____ ___2____ ___3____
+ *
+ *  (This format looks a lot prettier if one pictures octets coming
+ *  in through a fifo queue from the left, rather than waiting in the
+ *  right-hand remainder of a C array.)
+ */
+
+#define WORD_BITS	16	/* sizeof(uword) * CHAR_BIT on the 
+				 * target architecture---if this isn't 16,
+				 * you're in trouble with this library anyway.
+				 */
+
+#define BYTE_BITS	 8	/* CHAR_BIT on the target architecture---
+				 * if this isn't 8, you're in *deep* trouble.
+				 */
+
+void write_code P2((s_spex, n_spex), struct spex * s_spex, int n_spex)
+{
+	struct spex	* sp = s_spex;
+	int		  n_in = 0;
+
+	printf("uword sr = 0;\n");
+
+	for (; n_spex > 0; n_spex--, sp++) {
+
+		/*	insert       old 
+		 *	new var	     value     unused
+		 *	here  
+		 *
+		 *	[____________xxxxxx**********]
+		 *
+		 *	<----- n_in ------>
+		 */
+		printf("sr = sr >> %d | %s << %d;\n",
+			sp->varsize,
+			sp->var, 
+			WORD_BITS - sp->varsize);
+
+		n_in += sp->varsize;
+
+		while (n_in >= BYTE_BITS) {
+			printf("*c++ = sr >> %d;\n",
+				WORD_BITS - n_in);
+			n_in -= BYTE_BITS;
+		}
+	}
+
+	while (n_in >= BYTE_BITS) {
+		printf("*c++ = sr >> %d;\n", WORD_BITS - n_in);
+		n_in -= BYTE_BITS;
+	}
+
+	if (n_in > 0) {
+		fprintf(stderr, "warning: %d bits left over\n", n_in);
+	}
+}
diff --git a/tls/sour1.dta b/tls/sour1.dta
new file mode 100644
index 0000000..770b24c
--- /dev/null
+++ b/tls/sour1.dta
@@ -0,0 +1,88 @@
+;
+; Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+; Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+; details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+;
+;
+; Variable     Size
+
+LARc[0]		6
+LARc[1]		6
+LARc[2]		5
+LARc[3]		5
+LARc[4]		4
+LARc[5]		4
+LARc[6]		3
+LARc[7]		3
+
+Nc[0]		7
+bc[0]		2
+Mc[0]		2
+xmaxc[0]	6
+xmc[0]		3
+xmc[1]		3
+xmc[2]		3
+xmc[3]		3
+xmc[4]		3
+xmc[5]		3
+xmc[6]		3
+xmc[7]		3
+xmc[8]		3
+xmc[9]		3
+xmc[10]		3
+xmc[11]		3
+xmc[12]		3
+
+Nc[1]		7
+bc[1]		2
+Mc[1]		2
+xmaxc[1]	6
+xmc[13]		3
+xmc[14]		3
+xmc[15]		3
+xmc[16]		3
+xmc[17]		3
+xmc[18]		3
+xmc[19]		3
+xmc[20]		3
+xmc[21]		3
+xmc[22]		3
+xmc[23]		3
+xmc[24]		3
+xmc[25]		3
+
+Nc[2]		7
+bc[2]		2
+Mc[2]		2
+xmaxc[2]	6
+xmc[26]		3
+xmc[27]		3
+xmc[28]		3
+xmc[29]		3
+xmc[30]		3
+xmc[31]		3
+xmc[32]		3
+xmc[33]		3
+xmc[34]		3
+xmc[35]		3
+xmc[36]		3
+xmc[37]		3
+xmc[38]		3
+
+Nc[3]		7
+bc[3]		2
+Mc[3]		2
+xmaxc[3]	6
+xmc[39]		3
+xmc[40]		3
+xmc[41]		3
+xmc[42]		3
+xmc[43]		3
+xmc[44]		3
+xmc[45]		3
+xmc[46]		3
+xmc[47]		3
+xmc[48]		3
+xmc[49]		3
+xmc[50]		3
+xmc[51]		3
diff --git a/tls/sour2.dta b/tls/sour2.dta
new file mode 100644
index 0000000..f56545c
--- /dev/null
+++ b/tls/sour2.dta
@@ -0,0 +1,90 @@
+;
+; Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+; Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+; details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+;
+;
+; Variable     Size
+
+g->chain	4
+
+LARc[0]		6
+LARc[1]		6
+LARc[2]		5
+LARc[3]		5
+LARc[4]		4
+LARc[5]		4
+LARc[6]		3
+LARc[7]		3
+
+Nc[0]		7
+bc[0]		2
+Mc[0]		2
+xmaxc[0]	6
+xmc[0]		3
+xmc[1]		3
+xmc[2]		3
+xmc[3]		3
+xmc[4]		3
+xmc[5]		3
+xmc[6]		3
+xmc[7]		3
+xmc[8]		3
+xmc[9]		3
+xmc[10]		3
+xmc[11]		3
+xmc[12]		3
+
+Nc[1]		7
+bc[1]		2
+Mc[1]		2
+xmaxc[1]	6
+xmc[13]		3
+xmc[14]		3
+xmc[15]		3
+xmc[16]		3
+xmc[17]		3
+xmc[18]		3
+xmc[19]		3
+xmc[20]		3
+xmc[21]		3
+xmc[22]		3
+xmc[23]		3
+xmc[24]		3
+xmc[25]		3
+
+Nc[2]		7
+bc[2]		2
+Mc[2]		2
+xmaxc[2]	6
+xmc[26]		3
+xmc[27]		3
+xmc[28]		3
+xmc[29]		3
+xmc[30]		3
+xmc[31]		3
+xmc[32]		3
+xmc[33]		3
+xmc[34]		3
+xmc[35]		3
+xmc[36]		3
+xmc[37]		3
+xmc[38]		3
+
+Nc[3]		7
+bc[3]		2
+Mc[3]		2
+xmaxc[3]	6
+xmc[39]		3
+xmc[40]		3
+xmc[41]		3
+xmc[42]		3
+xmc[43]		3
+xmc[44]		3
+xmc[45]		3
+xmc[46]		3
+xmc[47]		3
+xmc[48]		3
+xmc[49]		3
+xmc[50]		3
+xmc[51]		3
diff --git a/tls/sweet.c b/tls/sweet.c
new file mode 100644
index 0000000..6a6fb29
--- /dev/null
+++ b/tls/sweet.c
@@ -0,0 +1,66 @@
+ /*
+  * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+  * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+  * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+  */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/sweet.c,v 1.2 1996/07/02 10:15:53 jutta Exp $*/
+ 
+/* Generate code to unpack a bit array from name:#bits description */
+
+#include	<stdio.h>
+#include	"taste.h"
+#include	"proto.h"
+
+void write_code P2((s_spex, n_spex), struct spex * s_spex, int n_spex)
+{
+	struct spex	* sp = s_spex;
+	int		bits = 8;
+	int		vars;
+
+	if (!n_spex) return;
+
+	vars = sp->varsize;
+
+	while (n_spex) {
+
+		if (vars == sp->varsize) {
+			printf("\t%s  = ", sp->var);
+		} else printf("\t%s |= ", sp->var);
+
+		if (vars == bits) {
+	
+			if (bits == 8) printf( "*c++;\n" );
+			else printf( "*c++ & 0x%lX;\n",
+				~(0xfffffffe << (bits - 1)) );
+
+			if (!-- n_spex) break;
+			sp++;
+			vars = sp->varsize;
+			bits = 8;
+
+		} else if (vars < bits) {
+
+			printf( "(*c >> %d) & 0x%lX;\n", 
+				bits - vars,
+				~(0xfffffffe << (vars - 1)));
+
+			bits -= vars;
+			if (!--n_spex) break;
+			sp++;
+			vars = sp->varsize;
+
+		} else {
+			/*   vars > bits.  We're eating lower-all of c,
+			 *   but we must shift it.
+			 */
+			printf(	"(*c++ & 0x%X) << %d;\n",
+				~(0xfffffffe << (bits - 1)),
+				vars - bits );
+
+			vars -= bits;
+			bits = 8;
+		}
+	}
+}
+
diff --git a/tls/taste.c b/tls/taste.c
new file mode 100644
index 0000000..4bc84ad
--- /dev/null
+++ b/tls/taste.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/taste.c,v 1.1 1992/10/28 00:28:39 jutta Exp $*/
+
+#include	<stdio.h>
+#include	<string.h>
+#include	<memory.h>
+
+#include	"config.h"
+
+#ifdef	HAS_STDLIB_H
+#	include	<stdlib.h>
+#else
+#include "proto.h"
+#	ifdef	HAS_MALLOC_H
+#	include <malloc.h>
+#	else
+		extern char	* malloc P((char *)), * realloc P((char *,int));
+#	endif
+	extern int exit P((int));
+#endif
+
+#include "proto.h"
+
+/*
+ * common code to sweet.c and bitter.c: read the name:#bits description.
+ */
+
+#include	"taste.h"
+
+static struct spex  * s_spex;
+static int n_spex, m_spex;
+
+extern void	write_code P((struct spex *, int));
+
+char * strsave P1((str), char * str)		/* strdup() + errors */
+{
+	int    n = strlen(str) + 1;
+	char * s = malloc(n);
+	if (!s) {
+		fprintf(stderr, "Failed to malloc %d bytes, abort\n",
+			strlen(str) + 1);
+		exit(1);
+	}
+	return memcpy(s, str, n);
+}
+
+struct spex * new_spex P0()
+{
+	if (n_spex >= m_spex) {
+		m_spex += 500;
+		if (!(s_spex = (struct spex *)(n_spex
+			? realloc((char *)s_spex, m_spex * sizeof(*s_spex))
+			: malloc( m_spex * sizeof(*s_spex))))) {
+			fprintf(stderr, "Failed to malloc %d bytes, abort\n",
+				m_spex * sizeof(*s_spex));
+			exit(1);
+		}
+	}
+	return s_spex + n_spex;
+}
+
+char * strtek P2((str, sep), char * str, char * sep) {
+
+	static char     * S = (char *)0;
+	char		* c, * base;
+
+	if (str) S = str;
+
+	if (!S || !*S) return (char *)0;
+
+	/*  Skip delimiters.
+	 */
+	while (*S) {
+		for (c = sep; *c && *c != *S; c++) ;
+		if (*c) *S++ = 0;
+		else break;
+	}
+
+	base = S;
+
+	/*   Skip non-delimiters.
+	 */
+	for (base = S; *S; S++) {
+
+		for (c = sep; *c; c++)
+			if (*c == *S) {
+				*S++ = 0;
+				return base;
+			}
+	}
+
+	return base == S ? (char *)0 : base;
+}
+
+int read_spex P0()
+{
+	char buf[200];
+	char * s, *t;
+	struct spex	* sp = s_spex;	
+
+	while (fgets(buf, sizeof buf, stdin)) {
+
+		char 	* nl;
+
+		if (nl = strchr(buf, '\n'))
+			*nl = '\0';
+
+		if (!*buf || *buf == ';') continue;
+		s = strtek(buf, " \t");
+		if (!s) {
+			fprintf(stderr, "? %s\n", buf);
+			continue;
+		}
+		sp = new_spex();
+		sp->var = strsave(s);
+		s = strtek((char*)0, " \t");
+		if (!s) {
+			fprintf(stderr, "varsize?\n");
+			continue;
+		}
+		sp->varsize = strtol(s, (char **)0, 0);
+		n_spex++;
+	}
+
+	return sp - s_spex;
+}
+
+int main P0()
+{
+	read_spex();
+	write_code(s_spex, n_spex);
+
+	exit(0);
+}
diff --git a/tls/taste.h b/tls/taste.h
new file mode 100644
index 0000000..2fc85ef
--- /dev/null
+++ b/tls/taste.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+ 
+/*
+ * common code to sweet.c and bitter.c
+ */
+
+#ifndef	TASTE_H
+#define	TASTE_H
+
+struct spex {
+
+	char	* var;
+	int	varsize;
+} ;
+
+#endif	/* TASTE_H */
diff --git a/tst/cod2lin.c b/tst/cod2lin.c
new file mode 100644
index 0000000..07a9510
--- /dev/null
+++ b/tst/cod2lin.c
@@ -0,0 +1,104 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/cod2lin.c,v 1.2 1996/07/02 14:33:10 jutta Exp jutta $*/
+
+#include <stdio.h>
+#include <assert.h>
+
+#include	"gsm.h"
+#include	"proto.h"
+
+char  * pname;
+
+int	debug      = 0;
+int	verbosity  = 0;
+int	fast       = 0;
+int	wav        = 0;
+int	error      = 0;
+
+usage P0()
+{
+	fprintf(stderr, "Usage: %s [-vwF] [files...]\n", pname);
+	exit(1);
+}
+
+void process P2((f, filename), FILE * f, char * filename)
+{
+	gsm_frame	buf;
+	gsm_signal	source[160];
+
+	int		cc;
+	gsm		r;
+
+	(void)memset(source, 0x00, sizeof(source));
+
+	if (!(r = gsm_create())) {
+		perror("gsm_create");
+		error = 1;
+		return ;
+	}
+	gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
+	gsm_option(r, GSM_OPT_FAST,    &fast);
+	gsm_option(r, GSM_OPT_WAV49,   &wav);
+	for (;;) {
+		cc = fread((char *)source, sizeof(*source), 76, f);
+		if (cc == 0) {
+			gsm_destroy(r);
+			return;
+		}
+		if (cc != 76) {
+			error = 1;
+			fprintf(stderr,
+				"%s: %s -- %d trailing bytes ignored\n",
+				pname, filename, cc);
+			gsm_destroy(r);
+			return;
+		}
+
+		gsm_implode(r, source, buf);
+		gsm_decode(r, buf, source);
+
+		if (write(1, source, sizeof(source)) != sizeof(source)) {
+			perror("write");
+			error = 1;
+			gsm_destroy(r);
+			return;
+		}
+	}
+}
+
+main P2((ac, av), int ac, char ** av)
+{
+	int 		opt;
+	extern char   * optarg;
+	extern int	optind;
+
+	FILE		* f;
+
+	if (!(pname = av[0])) pname = "cod2out";
+
+	while ((opt = getopt(ac, av, "vwF")) != EOF) switch (opt) {
+	case 'v': verbosity++; 	  break;
+	case 'w': wav++; 	  break;
+	case 'F': fast++;	  break;
+	default:  usage();
+	}
+
+	ac -= optind;
+	av += optind;
+
+	if (!ac) process(stdin, "*stdin*");
+	else for (; *av; av++) {
+		if (!(f = fopen(*av, "r"))) perror(*av);
+		else {
+			process(f, *av);
+			fclose(f);
+		}
+	}
+
+	exit(error);
+}
diff --git a/tst/cod2txt.c b/tst/cod2txt.c
new file mode 100644
index 0000000..71c362e
--- /dev/null
+++ b/tst/cod2txt.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/cod2txt.c,v 1.1 1994/10/21 20:52:11 jutta Exp $*/
+
+#include <stdio.h>
+#include <assert.h>
+
+#include	"gsm.h"
+#include	"proto.h"
+
+char  * pname;
+
+int	debug      = 0;
+int	verbosity  = 0;
+int	error      = 0;
+
+usage P0()
+{
+	fprintf(stderr, "Usage: %s [files...]\n", pname);
+	exit(1);
+}
+
+void process P2((f, filename), FILE * f, char * filename)
+{
+	gsm_frame	buf;
+	gsm_signal	source[160];
+
+	int		cc;
+	gsm		r;
+	int		nr=0;
+
+	(void)memset(source, 0, sizeof(source));
+
+	if (!(r = gsm_create())) {
+		perror("gsm_create");
+		error = 1;
+		return ;
+	}
+	gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
+	for (;;) {
+		cc = fread((char *)source, sizeof(*source), 76, f);
+		if (cc == 0) {
+			gsm_destroy(r);
+			return;
+		}
+		if (cc != 76) {
+			error = 1;
+			fprintf(stderr,
+				"%s: %s -- %d trailing bytes ignored\n",
+				pname, filename, cc);
+			gsm_destroy(r);
+			return;
+		}
+
+		gsm_implode(r, source, buf);
+		printf("[%d] ", ++nr);
+		if (gsm_print(stdout, r, buf)) {
+			fprintf(stderr,
+				"%s: %s: bad magic\n", pname, filename);
+			gsm_destroy(r);
+			return;
+
+		}
+	}
+}
+
+main P2((ac, av), int ac, char ** av)
+{
+	int 		opt;
+	extern char   * optarg;
+	extern int	optind;
+
+	FILE		* f;
+
+	if (!(pname = av[0])) pname = "cod2txt";
+
+	ac--;
+	av++;
+
+	if (!ac) process(stdin, "*stdin*");
+	else for (; *av; av++) {
+		if (!(f = fopen(*av, "r"))) perror(*av);
+		else {
+			process(f, *av);
+			fclose(f);
+		}
+	}
+
+	exit(error);
+}
diff --git a/tst/gsm2cod.c b/tst/gsm2cod.c
new file mode 100644
index 0000000..f2e7c2c
--- /dev/null
+++ b/tst/gsm2cod.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm2cod.c,v 1.1 1994/10/21 20:52:11 jutta Exp $*/
+
+#include <stdio.h>
+#include <assert.h>
+
+#include	"gsm.h"
+#include	"proto.h"
+
+char  * pname;
+
+int	debug      = 0;
+int	verbosity  = 0;
+int	error      = 0;
+
+usage P0()
+{
+	fprintf(stderr, "Usage: %s [files...]\n", pname);
+	exit(1);
+}
+
+void process P2((f, filename), FILE * f, char * filename)
+{
+	gsm_frame	buf;
+	gsm_signal	source[76];
+
+	int		cc;
+	gsm		r;
+	int		nr=0;
+
+	(void)memset(source, 0, sizeof(source));
+
+	if (!(r = gsm_create())) {
+		perror("gsm_create");
+		error = 1;
+		return ;
+	}
+	gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
+	for (;;) {
+		cc = fread((char *)buf, sizeof(buf), 1, f);
+		if (cc == 0) {
+			gsm_destroy(r);
+			return;
+		}
+		if (cc != 1) {
+			error = 1;
+			fprintf(stderr,
+				"%s: %s -- trailing bytes ignored\n",
+				pname, filename);
+			gsm_destroy(r);
+			return;
+		}
+
+		gsm_explode(r, buf, source);
+		if (write(1, (char *)source, sizeof(source))!= sizeof(source)) {
+
+			perror("write");
+			error = 1;
+			gsm_destroy(r);
+			return;
+		}
+	}
+}
+
+main P2((ac, av), int ac, char ** av)
+{
+	int 		opt;
+	extern char   * optarg;
+	extern int	optind;
+
+	FILE		* f;
+
+	if (!(pname = av[0])) pname = "gsm2cod";
+
+	ac--;
+	av++;
+
+	if (!ac) process(stdin, "*stdin*");
+	else for (; *av; av++) {
+		if (!(f = fopen(*av, "r"))) perror(*av);
+		else {
+			process(f, *av);
+			fclose(f);
+		}
+	}
+
+	exit(error);
+}
diff --git a/tst/lin2cod.c b/tst/lin2cod.c
new file mode 100644
index 0000000..2c42b10
--- /dev/null
+++ b/tst/lin2cod.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/lin2cod.c,v 1.2 1996/07/02 14:33:13 jutta Exp jutta $*/
+
+#include <stdio.h>
+
+#include "gsm.h"
+#include "proto.h"
+
+char  * pname;
+
+int	debug      = 0;
+int	verbosity  = 0;
+int	fast       = 0;
+int	wav        = 0;
+int	error      = 0;
+
+usage P0()
+{
+	fprintf(stderr, "Usage: %s [-vwF] [files...]\n", pname);
+	exit(1);
+}
+
+void process P2((f, filename), FILE * f, char * filename)
+{
+	gsm_frame	buf;
+	short		source[160];
+	int		cc;
+	gsm		r;
+
+	if (!(r = gsm_create())) {
+		perror("gsm_create");
+		error = 1;
+		return ;
+	}
+	gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
+	gsm_option(r, GSM_OPT_FAST,    &fast);
+	gsm_option(r, GSM_OPT_WAV49,   &wav);
+	for (;;) {
+
+		if ((cc = fread((char *)source, 1, sizeof(source), f)) == 0) {
+			gsm_destroy(r);
+#ifdef	COUNT_OVERFLOW
+			dump_overflow(stderr);
+#endif
+			return;
+		}
+
+		if (cc != sizeof(source)) {
+			error = 1;
+			perror(filename);
+			fprintf(stderr, "%s: cannot read input from %s\n",
+				pname, filename);
+			gsm_destroy(r);
+			return;
+		}
+
+		gsm_encode(r, source, buf);
+		gsm_explode(r, buf, source);	/* 76 shorts */
+		if (write(1, source, sizeof(*source) * 76)
+			!= sizeof(*source) * 76) {
+
+			perror("write");
+			error = 1;
+			gsm_destroy(r);
+			return;
+		}
+	}
+}
+
+main P2((ac, av), int ac, char ** av)
+{
+	int 		opt;
+	extern char   * optarg;
+	extern int	optind;
+
+	FILE		* f;
+
+	if (!(pname = av[0])) pname = "inp2cod";
+
+	while ((opt = getopt(ac, av, "vwF")) != EOF) switch (opt) {
+	case 'v': verbosity++;    break;
+	case 'w': wav++;    	  break;
+	case 'F': fast++;         break;
+	default:  usage();
+	}
+
+	ac -= optind;
+	av += optind;
+
+	if (!ac) process(stdin, "*stdin*");
+	else for (; *av; av++) {
+		if (!(f = fopen(*av, "r"))) perror(*av);
+		else {
+			process(f, *av);
+			fclose(f);
+		}
+	}
+
+	exit(error);
+}
diff --git a/tst/lin2txt.c b/tst/lin2txt.c
new file mode 100644
index 0000000..fb39504
--- /dev/null
+++ b/tst/lin2txt.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+ * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+ * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+ */
+
+/*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/lin2txt.c,v 1.1 1994/10/21 20:52:11 jutta Exp $*/
+
+#include <stdio.h>
+
+#include "gsm.h"
+#include "proto.h"
+
+char  * pname;
+
+int	debug      = 0;
+int	verbosity  = 0;
+int	error      = 0;
+
+usage P0()
+{
+	fprintf(stderr, "Usage: %s [-v] [files...]\n", pname);
+	exit(1);
+}
+
+void process P2((f, filename), FILE * f, char * filename)
+{
+	short		source[160];
+	int		cc, j, k;
+	gsm		r;
+
+	if (!(r = gsm_create())) {
+		perror("gsm_create");
+		error = 1;
+		return ;
+	}
+	gsm_option(r, GSM_OPT_VERBOSE, &verbosity);
+	for (;;) {
+
+		if ((cc = fread((char *)source, 1, sizeof(source), f)) == 0) {
+			gsm_destroy(r);
+#ifdef	COUNT_OVERFLOW
+			dump_overflow(stderr);
+#endif
+			return;
+		}
+		
+		printf("{\t");
+		for (j = 0; j < 4; j++) {
+			printf("{\t");
+			for (k = 0; k < 40; k++) {
+				printf("%d", (int)source[ j * 40 + k ]);
+				if (k < 39) {
+					printf(", ");
+					if (k % 4 == 3) printf("\n\t\t");
+				} else {
+					printf("\t}");
+					if (j == 3) printf("\t},\n");
+					else printf(",\n\t");
+				}
+			}
+		}
+	}
+}
+
+main P2((ac, av), int ac, char ** av)
+{
+	int 		opt;
+	extern char   * optarg;
+	extern int	optind;
+
+	FILE		* f;
+
+	if (!(pname = av[0])) pname = "inp2txt";
+
+	while ((opt = getopt(ac, av, "v")) != EOF) switch (opt) {
+	case 'v': verbosity++;    break;
+	default:  usage();
+	}
+
+	ac -= optind;
+	av += optind;
+
+	if (!ac) process(stdin, "*stdin*");
+	else for (; *av; av++) {
+		if (!(f = fopen(*av, "r"))) perror(*av);
+		else {
+			process(f, *av);
+			fclose(f);
+		}
+	}
+
+	exit(error);
+}
diff --git a/tst/run b/tst/run
new file mode 100755
index 0000000..5eec3b2
--- /dev/null
+++ b/tst/run
@@ -0,0 +1,34 @@
+:
+#
+# Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
+# Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
+# details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
+#
+if [ ! -f 1.inp ] ; then
+	echo Sorry, but we cannot provide the test data with this release.
+	exit
+fi
+
+echo -n 'Linear to code: '
+for i in 1 2 3 4
+do 
+	echo -n $i..
+ 	./lin2cod  < $i.inp | cmp - $i.cod
+done
+echo ""
+
+echo -n 'Code to linear: '
+for i in 1 2 3 4
+do 
+	echo -n $i..
+	./cod2lin < $i.cod | cmp - $i.out
+done
+echo ""
+
+echo -n 'Toast: '
+for i in 1 2 3 4
+do
+	echo -n $i..
+	../bin/toast -l < $i.inp | ../bin/toast -dl | cmp - $i.out
+done
+echo ""
