summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-06-26 14:47:32 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-06-26 14:47:32 +0000
commit6d16dca0348a36c830a6514b5b13d271f5e0c2eb (patch)
tree6691c178aa5decbbf891d3c26ed4217c88f91884 /Build
parentdf0bc6e55838187cf085c4aac843f3f368d53aed (diff)
add test cases for 'make check'
git-svn-id: svn://tug.org/texlive/trunk@13968 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/libs/teckit/ChangeLog6
-rw-r--r--Build/source/libs/teckit/Makefile.am15
-rw-r--r--Build/source/libs/teckit/Makefile.in114
-rw-r--r--Build/source/texk/web2c/otps/ChangeLog6
-rw-r--r--Build/source/texk/web2c/otps/Makefile.am17
-rw-r--r--Build/source/texk/web2c/otps/Makefile.in125
-rwxr-xr-xBuild/source/texk/web2c/otps/otp2ocp.test7
-rwxr-xr-xBuild/source/texk/web2c/otps/outocp.test7
-rw-r--r--Build/source/texk/web2c/otps/uni2lat.ocpbin0 -> 2264 bytes
-rw-r--r--Build/source/texk/web2c/otps/uni2lat.otp89
-rw-r--r--Build/source/texk/web2c/otps/uni2lat.out572
11 files changed, 937 insertions, 21 deletions
diff --git a/Build/source/libs/teckit/ChangeLog b/Build/source/libs/teckit/ChangeLog
index f714ced14d7..e444d6f6f60 100644
--- a/Build/source/libs/teckit/ChangeLog
+++ b/Build/source/libs/teckit/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * teckit.test, tex-text.map, tex-text.tec (all new):
+ Shell script and data for test case.
+ * Makefile.am: add test case.
+
2009-06-25 Peter Breitenlohner <peb@mppmu.mpg.de>
* source/Compiler.h: change type of Compiler::Pass.passType
diff --git a/Build/source/libs/teckit/Makefile.am b/Build/source/libs/teckit/Makefile.am
index faf0661bcb2..505b75d0832 100644
--- a/Build/source/libs/teckit/Makefile.am
+++ b/Build/source/libs/teckit/Makefile.am
@@ -53,6 +53,21 @@ noinst_HEADERS = \
## Rebuild zlib
@ZLIB_RULE@
+## Tests
+##
+if build
+TESTS = teckit.test
+endif build
+
+EXTRA_DIST += \
+ teckit.test \
+ tex-text.map \
+ tex-text.tec
+
+## Files generated by TESTS
+##
+CLEANFILES = xtex-text.tec
+
## Not used
##
EXTRA_DIST += \
diff --git a/Build/source/libs/teckit/Makefile.in b/Build/source/libs/teckit/Makefile.in
index 0f5e8414deb..2fd00538ee8 100644
--- a/Build/source/libs/teckit/Makefile.in
+++ b/Build/source/libs/teckit/Makefile.in
@@ -94,6 +94,8 @@ DIST_SOURCES = $(libTECkit_a_SOURCES) $(libTECkit_Compiler_a_SOURCES) \
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -225,10 +227,10 @@ libTECkit_Compiler_a_DEPENDENCIES = $(ZLIB_DEPEND)
libTECkit_a_SOURCES = \
source/Engine.cpp
-EXTRA_DIST = source/NormalizationData.c SFconv autogen.sh ax_misc.m4 \
- ax_prog_rc.m4 bin docs/Calling_TECkit_from_VB.doc \
- docs/Makefile.am docs/Makefile.in \
- docs/TECkit_Binary_Format.doc \
+EXTRA_DIST = source/NormalizationData.c teckit.test tex-text.map \
+ tex-text.tec SFconv autogen.sh ax_misc.m4 ax_prog_rc.m4 bin \
+ docs/Calling_TECkit_from_VB.doc docs/Makefile.am \
+ docs/Makefile.in docs/TECkit_Binary_Format.doc \
docs/TECkit_Binary_Format.doc.pdf docs/TECkit_Language_2.1.doc \
docs/TECkit_Language_2.1.doc.pdf docs/TECkit_version_2.1.doc \
docs/TECkit_version_2.1.doc.pdf lib license/LICENSING.txt \
@@ -254,6 +256,8 @@ noinst_HEADERS = \
source/TECkit_Format.h \
source/ulong_chartraits.h
+@build_TRUE@TESTS = teckit.test
+CLEANFILES = xtex-text.tec
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -497,6 +501,98 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@@ -647,6 +743,7 @@ distcleancheck: distclean
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) config.h
installdirs:
@@ -670,6 +767,7 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -751,11 +849,11 @@ ps-am:
uninstall-am: uninstall-binPROGRAMS
-.MAKE: all install-am install-strip
+.MAKE: all check-am install-am install-strip
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
- clean-binPROGRAMS clean-generic clean-noinstLIBRARIES ctags \
- dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzma \
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \
+ clean clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
+ ctags dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzma \
dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
distclean-compile distclean-generic distclean-hdr \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
diff --git a/Build/source/texk/web2c/otps/ChangeLog b/Build/source/texk/web2c/otps/ChangeLog
index 44691d2a593..16695d687e8 100644
--- a/Build/source/texk/web2c/otps/ChangeLog
+++ b/Build/source/texk/web2c/otps/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * otp2ocp.test, outocp.test, uni2lat.ocp, uni2lat.otp,
+ uni2lat.out (all new): Shell scripts and data for test cases.
+ * Makefile.am: add test cases.
+
2009-06-25 Peter Breitenlohner <peb@mppmu.mpg.de>
* otp2ocp.c, outocp.c, routines.c:
diff --git a/Build/source/texk/web2c/otps/Makefile.am b/Build/source/texk/web2c/otps/Makefile.am
index 4fbb75903e2..1ed55c05a32 100644
--- a/Build/source/texk/web2c/otps/Makefile.am
+++ b/Build/source/texk/web2c/otps/Makefile.am
@@ -46,6 +46,23 @@ outocp_SOURCES = \
LDADD = $(proglib) $(KPATHSEA_LIBS)
+## Tests
+##
+if OTANGLE
+TESTS = otp2ocp.test outocp.test
+endif OTANGLE
+
+EXTRA_DIST += \
+ otp2ocp.test \
+ outocp.test \
+ uni2lat.ocp \
+ uni2lat.otp \
+ uni2lat.out
+
+## Files generated by TESTS
+##
+CLEANFILES = xuni2lat.ocp xuni2lat.out
+
## Not used
##
EXTRA_DIST += bugs.txt
diff --git a/Build/source/texk/web2c/otps/Makefile.in b/Build/source/texk/web2c/otps/Makefile.in
index 4fd7a95e43c..efd8686134a 100644
--- a/Build/source/texk/web2c/otps/Makefile.in
+++ b/Build/source/texk/web2c/otps/Makefile.in
@@ -137,6 +137,8 @@ DIST_SOURCES = $(otp2ocp_SOURCES) $(outocp_SOURCES)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -324,7 +326,8 @@ otps_programs = otp2ocp outocp
otps_scripts = mkocp mkofm
noinst_HEADERS = otp.h routines.h yystype.h
@OTANGLE_TRUE@bin_SCRIPTS = $(otps_scripts)
-EXTRA_DIST = $(otps_scripts) bugs.txt
+EXTRA_DIST = $(otps_scripts) otp2ocp.test outocp.test uni2lat.ocp \
+ uni2lat.otp uni2lat.out bugs.txt
otp2ocp_SOURCES = \
otp-parser.y \
otp-lexer.l \
@@ -336,6 +339,8 @@ outocp_SOURCES = \
outocp.c
LDADD = $(proglib) $(KPATHSEA_LIBS)
+@OTANGLE_TRUE@TESTS = otp2ocp.test outocp.test
+CLEANFILES = xuni2lat.ocp xuni2lat.out
all: all-am
.SUFFIXES:
@@ -556,6 +561,98 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -587,6 +684,7 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(HEADERS)
installdirs:
@@ -610,6 +708,7 @@ install-strip:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
@@ -692,18 +791,18 @@ ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-binSCRIPTS install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-binSCRIPTS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-binPROGRAMS \
diff --git a/Build/source/texk/web2c/otps/otp2ocp.test b/Build/source/texk/web2c/otps/otp2ocp.test
new file mode 100755
index 00000000000..1a4af9b1ef1
--- /dev/null
+++ b/Build/source/texk/web2c/otps/otp2ocp.test
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+TEXMFCNF=$srcdir/../../kpathsea \
+ ./otp2ocp $srcdir/uni2lat xuni2lat.ocp || exit 1
+
+cmp $srcdir/uni2lat.ocp xuni2lat.ocp || exit 1
+
diff --git a/Build/source/texk/web2c/otps/outocp.test b/Build/source/texk/web2c/otps/outocp.test
new file mode 100755
index 00000000000..537f4ac6b51
--- /dev/null
+++ b/Build/source/texk/web2c/otps/outocp.test
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+TEXMFCNF=$srcdir/../../kpathsea \
+ ./outocp $srcdir/uni2lat.ocp >xuni2lat.out || exit 1
+
+diff $srcdir/uni2lat.out xuni2lat.out || exit 1
+
diff --git a/Build/source/texk/web2c/otps/uni2lat.ocp b/Build/source/texk/web2c/otps/uni2lat.ocp
new file mode 100644
index 00000000000..b4bc37ea0b7
--- /dev/null
+++ b/Build/source/texk/web2c/otps/uni2lat.ocp
Binary files differ
diff --git a/Build/source/texk/web2c/otps/uni2lat.otp b/Build/source/texk/web2c/otps/uni2lat.otp
new file mode 100644
index 00000000000..f7597733251
--- /dev/null
+++ b/Build/source/texk/web2c/otps/uni2lat.otp
@@ -0,0 +1,89 @@
+input: 2;
+output: 2;
+
+expressions:
+
+%`f'`f'`i'`j' => @"022C; % for Dutch only
+`f'`f'`i' => @"0223;
+`f'`f'`l' => @"0224;
+`f'`f'`j' => @"022A;
+`f'`f'@"012F => @"0226;
+`f'`f'@"0142 => @"0228;
+`f'`f'@"013A => @"022E;
+`f'`f'@"013C => @"0230;
+`f'`f'@"013E => @"0232;
+`f'`f'@"0140 => @"0234;
+`f'`f' => @"0220;
+%`f'`i'`j' => @"022B; % for Dutch only
+`f'`i' => @"0221;
+`f'`l' => @"0222;
+`f'`j' => @"0229;
+`f'@"012F => @"0225;
+`f'@"0142 => @"0227;
+`f'@"013A => @"022D;
+`f'@"013C => @"022F;
+`f'@"013E => @"0231;
+`f'@"0140 => @"0233;
+%
+% s-long ligatures
+%
+@"017F@"017F`i' => @"0238;
+@"017F@"017F`l' => @"0239;
+@"017F@"017F => @"0235;
+@"017F`i' => @"0236;
+@"017F`l' => @"0237;
+% French calligraphic ones
+%`s'`t' => @"023A;
+%`c'`t' => @"023B;
+
+%
+% Tifinagh ligatures
+%
+% slanted l and n
+(@"0C4E|@"0C4C)(@"0C45|@"0C4F)@"0C4E => #(\1) @"0C82 ;
+(@"0C4E|@"0C4C)@"0C4E => #(\1) @"0C82 ;
+(@"0C4E|@"0C4C)(@"0C45|@"0C4F)@"0C4C => #(\1) @"0C81 ;
+(@"0C4E|@"0C4C)@"0C4C => #(\1) @"0C81 ;
+% ng
+@"0C4E(@"0C45|@"0C4F)@"0C47 => @"0C80 ;
+@"0C4E@"0C47 => @"0C80 ;
+% bt, ct, etc.
+@"0C42(@"0C45|@"0C4F)@"0C54 => @"0C83 ;
+@"0C42@"0C54 => @"0C83 ;
+@"0C43(@"0C45|@"0C4F)@"0C54 => @"0C84 ;
+@"0C43@"0C54 => @"0C84 ;
+@"0C47(@"0C45|@"0C4F)@"0C54 => @"0C86 ;
+@"0C47@"0C54 => @"0C86 ;
+@"0C4D(@"0C45|@"0C4F)@"0C54 => @"0C87 ;
+@"0C4D@"0C54 => @"0C87 ;
+@"0C52(@"0C45|@"0C4F)@"0C54 => @"0C88 ;
+@"0C52@"0C54 => @"0C88 ;
+@"0C53(@"0C45|@"0C4F)@"0C54 => @"0C89 ;
+@"0C53@"0C54 => @"0C89 ;
+@"0C7A(@"0C45|@"0C4F)@"0C54 => @"0C8A ;
+@"0C7A@"0C54 => @"0C8A ;
+
+@"2010-@"2046 => #(\1 - @"1000);
+
+%
+% Latin extended additional (0600-06FF)
+%
+@"1E00-@"1EFF => #(\1 - @"1800);
+
+%
+% Verbatim mode
+@"F023 => @"0083;
+@"F024 => @"0084;
+@"F025 => @"0085;
+@"F026 => @"0086;
+@"F07B => @"008B;
+@"F05C => @"008C;
+@"F07D => @"008D;
+@"F05E => @"008E;
+@"F05F => @"008F;
+@"F07E => @"0080;
+@"F000-@"F07F => "\string" #(\1 - @"F000) ;
+
+. => \1;
+
+
diff --git a/Build/source/texk/web2c/otps/uni2lat.out b/Build/source/texk/web2c/otps/uni2lat.out
new file mode 100644
index 00000000000..525f4355f78
--- /dev/null
+++ b/Build/source/texk/web2c/otps/uni2lat.out
@@ -0,0 +1,572 @@
+ctp_length : 236(566)
+real_ctp_length: 22f(559)
+ctp_input : 2( 2)
+ctp_output : 2( 2)
+ctp_no_tables : 0( 0)
+ctp_room_tables: 0( 0)
+ctp_no_states : 1( 1)
+ctp_room_states: 22e(558)
+
+State 0( 0): 22e(558) entries
+
+State 0( 0), entry 0( 0): OTP_LEFT_START 0( 0)
+State 0( 0), entry 1( 1): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 2( 2): b( 11)
+State 0( 0), entry 3( 3): OTP_GOTO_NO_ADVANCE b( 11)
+State 0( 0), entry 4( 4): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 5( 5): b( 11)
+State 0( 0), entry 6( 6): OTP_GOTO_NO_ADVANCE b( 11)
+State 0( 0), entry 7( 7): OTP_GOTO_NE 69(105,`i')
+State 0( 0), entry 8( 8): b( 11)
+State 0( 0), entry 9( 9): OTP_RIGHT_NUM 223(547)
+State 0( 0), entry a( 10): OTP_STOP 0( 0)
+State 0( 0), entry b( 11): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry c( 12): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry d( 13): 16( 22)
+State 0( 0), entry e( 14): OTP_GOTO_NO_ADVANCE 16( 22)
+State 0( 0), entry f( 15): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 10( 16): 16( 22)
+State 0( 0), entry 11( 17): OTP_GOTO_NO_ADVANCE 16( 22)
+State 0( 0), entry 12( 18): OTP_GOTO_NE 6c(108,`l')
+State 0( 0), entry 13( 19): 16( 22)
+State 0( 0), entry 14( 20): OTP_RIGHT_NUM 224(548)
+State 0( 0), entry 15( 21): OTP_STOP 0( 0)
+State 0( 0), entry 16( 22): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 17( 23): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 18( 24): 21( 33,`!')
+State 0( 0), entry 19( 25): OTP_GOTO_NO_ADVANCE 21( 33,`!')
+State 0( 0), entry 1a( 26): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 1b( 27): 21( 33,`!')
+State 0( 0), entry 1c( 28): OTP_GOTO_NO_ADVANCE 21( 33,`!')
+State 0( 0), entry 1d( 29): OTP_GOTO_NE 6a(106,`j')
+State 0( 0), entry 1e( 30): 21( 33,`!')
+State 0( 0), entry 1f( 31): OTP_RIGHT_NUM 22a(554)
+State 0( 0), entry 20( 32): OTP_STOP 0( 0)
+State 0( 0), entry 21( 33): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 22( 34): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 23( 35): 2c( 44,`,')
+State 0( 0), entry 24( 36): OTP_GOTO_NO_ADVANCE 2c( 44,`,')
+State 0( 0), entry 25( 37): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 26( 38): 2c( 44,`,')
+State 0( 0), entry 27( 39): OTP_GOTO_NO_ADVANCE 2c( 44,`,')
+State 0( 0), entry 28( 40): OTP_GOTO_NE 12f(303)
+State 0( 0), entry 29( 41): 2c( 44,`,')
+State 0( 0), entry 2a( 42): OTP_RIGHT_NUM 226(550)
+State 0( 0), entry 2b( 43): OTP_STOP 0( 0)
+State 0( 0), entry 2c( 44): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 2d( 45): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 2e( 46): 37( 55,`7')
+State 0( 0), entry 2f( 47): OTP_GOTO_NO_ADVANCE 37( 55,`7')
+State 0( 0), entry 30( 48): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 31( 49): 37( 55,`7')
+State 0( 0), entry 32( 50): OTP_GOTO_NO_ADVANCE 37( 55,`7')
+State 0( 0), entry 33( 51): OTP_GOTO_NE 142(322)
+State 0( 0), entry 34( 52): 37( 55,`7')
+State 0( 0), entry 35( 53): OTP_RIGHT_NUM 228(552)
+State 0( 0), entry 36( 54): OTP_STOP 0( 0)
+State 0( 0), entry 37( 55): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 38( 56): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 39( 57): 42( 66,`B')
+State 0( 0), entry 3a( 58): OTP_GOTO_NO_ADVANCE 42( 66,`B')
+State 0( 0), entry 3b( 59): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 3c( 60): 42( 66,`B')
+State 0( 0), entry 3d( 61): OTP_GOTO_NO_ADVANCE 42( 66,`B')
+State 0( 0), entry 3e( 62): OTP_GOTO_NE 13a(314)
+State 0( 0), entry 3f( 63): 42( 66,`B')
+State 0( 0), entry 40( 64): OTP_RIGHT_NUM 22e(558)
+State 0( 0), entry 41( 65): OTP_STOP 0( 0)
+State 0( 0), entry 42( 66): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 43( 67): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 44( 68): 4d( 77,`M')
+State 0( 0), entry 45( 69): OTP_GOTO_NO_ADVANCE 4d( 77,`M')
+State 0( 0), entry 46( 70): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 47( 71): 4d( 77,`M')
+State 0( 0), entry 48( 72): OTP_GOTO_NO_ADVANCE 4d( 77,`M')
+State 0( 0), entry 49( 73): OTP_GOTO_NE 13c(316)
+State 0( 0), entry 4a( 74): 4d( 77,`M')
+State 0( 0), entry 4b( 75): OTP_RIGHT_NUM 230(560)
+State 0( 0), entry 4c( 76): OTP_STOP 0( 0)
+State 0( 0), entry 4d( 77): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 4e( 78): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 4f( 79): 58( 88,`X')
+State 0( 0), entry 50( 80): OTP_GOTO_NO_ADVANCE 58( 88,`X')
+State 0( 0), entry 51( 81): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 52( 82): 58( 88,`X')
+State 0( 0), entry 53( 83): OTP_GOTO_NO_ADVANCE 58( 88,`X')
+State 0( 0), entry 54( 84): OTP_GOTO_NE 13e(318)
+State 0( 0), entry 55( 85): 58( 88,`X')
+State 0( 0), entry 56( 86): OTP_RIGHT_NUM 232(562)
+State 0( 0), entry 57( 87): OTP_STOP 0( 0)
+State 0( 0), entry 58( 88): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 59( 89): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 5a( 90): 63( 99,`c')
+State 0( 0), entry 5b( 91): OTP_GOTO_NO_ADVANCE 63( 99,`c')
+State 0( 0), entry 5c( 92): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 5d( 93): 63( 99,`c')
+State 0( 0), entry 5e( 94): OTP_GOTO_NO_ADVANCE 63( 99,`c')
+State 0( 0), entry 5f( 95): OTP_GOTO_NE 140(320)
+State 0( 0), entry 60( 96): 63( 99,`c')
+State 0( 0), entry 61( 97): OTP_RIGHT_NUM 234(564)
+State 0( 0), entry 62( 98): OTP_STOP 0( 0)
+State 0( 0), entry 63( 99): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 64(100): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 65(101): 6b(107,`k')
+State 0( 0), entry 66(102): OTP_GOTO_NO_ADVANCE 6b(107,`k')
+State 0( 0), entry 67(103): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 68(104): 6b(107,`k')
+State 0( 0), entry 69(105): OTP_RIGHT_NUM 220(544)
+State 0( 0), entry 6a(106): OTP_STOP 0( 0)
+State 0( 0), entry 6b(107): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 6c(108): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 6d(109): 73(115,`s')
+State 0( 0), entry 6e(110): OTP_GOTO_NO_ADVANCE 73(115,`s')
+State 0( 0), entry 6f(111): OTP_GOTO_NE 69(105,`i')
+State 0( 0), entry 70(112): 73(115,`s')
+State 0( 0), entry 71(113): OTP_RIGHT_NUM 221(545)
+State 0( 0), entry 72(114): OTP_STOP 0( 0)
+State 0( 0), entry 73(115): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 74(116): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 75(117): 7b(123,`{')
+State 0( 0), entry 76(118): OTP_GOTO_NO_ADVANCE 7b(123,`{')
+State 0( 0), entry 77(119): OTP_GOTO_NE 6c(108,`l')
+State 0( 0), entry 78(120): 7b(123,`{')
+State 0( 0), entry 79(121): OTP_RIGHT_NUM 222(546)
+State 0( 0), entry 7a(122): OTP_STOP 0( 0)
+State 0( 0), entry 7b(123): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 7c(124): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 7d(125): 83(131)
+State 0( 0), entry 7e(126): OTP_GOTO_NO_ADVANCE 83(131)
+State 0( 0), entry 7f(127): OTP_GOTO_NE 6a(106,`j')
+State 0( 0), entry 80(128): 83(131)
+State 0( 0), entry 81(129): OTP_RIGHT_NUM 229(553)
+State 0( 0), entry 82(130): OTP_STOP 0( 0)
+State 0( 0), entry 83(131): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 84(132): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 85(133): 8b(139)
+State 0( 0), entry 86(134): OTP_GOTO_NO_ADVANCE 8b(139)
+State 0( 0), entry 87(135): OTP_GOTO_NE 12f(303)
+State 0( 0), entry 88(136): 8b(139)
+State 0( 0), entry 89(137): OTP_RIGHT_NUM 225(549)
+State 0( 0), entry 8a(138): OTP_STOP 0( 0)
+State 0( 0), entry 8b(139): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 8c(140): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 8d(141): 93(147)
+State 0( 0), entry 8e(142): OTP_GOTO_NO_ADVANCE 93(147)
+State 0( 0), entry 8f(143): OTP_GOTO_NE 142(322)
+State 0( 0), entry 90(144): 93(147)
+State 0( 0), entry 91(145): OTP_RIGHT_NUM 227(551)
+State 0( 0), entry 92(146): OTP_STOP 0( 0)
+State 0( 0), entry 93(147): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 94(148): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 95(149): 9b(155)
+State 0( 0), entry 96(150): OTP_GOTO_NO_ADVANCE 9b(155)
+State 0( 0), entry 97(151): OTP_GOTO_NE 13a(314)
+State 0( 0), entry 98(152): 9b(155)
+State 0( 0), entry 99(153): OTP_RIGHT_NUM 22d(557)
+State 0( 0), entry 9a(154): OTP_STOP 0( 0)
+State 0( 0), entry 9b(155): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 9c(156): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry 9d(157): a3(163)
+State 0( 0), entry 9e(158): OTP_GOTO_NO_ADVANCE a3(163)
+State 0( 0), entry 9f(159): OTP_GOTO_NE 13c(316)
+State 0( 0), entry a0(160): a3(163)
+State 0( 0), entry a1(161): OTP_RIGHT_NUM 22f(559)
+State 0( 0), entry a2(162): OTP_STOP 0( 0)
+State 0( 0), entry a3(163): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry a4(164): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry a5(165): ab(171)
+State 0( 0), entry a6(166): OTP_GOTO_NO_ADVANCE ab(171)
+State 0( 0), entry a7(167): OTP_GOTO_NE 13e(318)
+State 0( 0), entry a8(168): ab(171)
+State 0( 0), entry a9(169): OTP_RIGHT_NUM 231(561)
+State 0( 0), entry aa(170): OTP_STOP 0( 0)
+State 0( 0), entry ab(171): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry ac(172): OTP_GOTO_NE 66(102,`f')
+State 0( 0), entry ad(173): b3(179)
+State 0( 0), entry ae(174): OTP_GOTO_NO_ADVANCE b3(179)
+State 0( 0), entry af(175): OTP_GOTO_NE 140(320)
+State 0( 0), entry b0(176): b3(179)
+State 0( 0), entry b1(177): OTP_RIGHT_NUM 233(563)
+State 0( 0), entry b2(178): OTP_STOP 0( 0)
+State 0( 0), entry b3(179): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry b4(180): OTP_GOTO_NE 17f(383)
+State 0( 0), entry b5(181): be(190)
+State 0( 0), entry b6(182): OTP_GOTO_NO_ADVANCE be(190)
+State 0( 0), entry b7(183): OTP_GOTO_NE 17f(383)
+State 0( 0), entry b8(184): be(190)
+State 0( 0), entry b9(185): OTP_GOTO_NO_ADVANCE be(190)
+State 0( 0), entry ba(186): OTP_GOTO_NE 69(105,`i')
+State 0( 0), entry bb(187): be(190)
+State 0( 0), entry bc(188): OTP_RIGHT_NUM 238(568)
+State 0( 0), entry bd(189): OTP_STOP 0( 0)
+State 0( 0), entry be(190): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry bf(191): OTP_GOTO_NE 17f(383)
+State 0( 0), entry c0(192): c9(201)
+State 0( 0), entry c1(193): OTP_GOTO_NO_ADVANCE c9(201)
+State 0( 0), entry c2(194): OTP_GOTO_NE 17f(383)
+State 0( 0), entry c3(195): c9(201)
+State 0( 0), entry c4(196): OTP_GOTO_NO_ADVANCE c9(201)
+State 0( 0), entry c5(197): OTP_GOTO_NE 6c(108,`l')
+State 0( 0), entry c6(198): c9(201)
+State 0( 0), entry c7(199): OTP_RIGHT_NUM 239(569)
+State 0( 0), entry c8(200): OTP_STOP 0( 0)
+State 0( 0), entry c9(201): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry ca(202): OTP_GOTO_NE 17f(383)
+State 0( 0), entry cb(203): d1(209)
+State 0( 0), entry cc(204): OTP_GOTO_NO_ADVANCE d1(209)
+State 0( 0), entry cd(205): OTP_GOTO_NE 17f(383)
+State 0( 0), entry ce(206): d1(209)
+State 0( 0), entry cf(207): OTP_RIGHT_NUM 235(565)
+State 0( 0), entry d0(208): OTP_STOP 0( 0)
+State 0( 0), entry d1(209): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry d2(210): OTP_GOTO_NE 17f(383)
+State 0( 0), entry d3(211): d9(217)
+State 0( 0), entry d4(212): OTP_GOTO_NO_ADVANCE d9(217)
+State 0( 0), entry d5(213): OTP_GOTO_NE 69(105,`i')
+State 0( 0), entry d6(214): d9(217)
+State 0( 0), entry d7(215): OTP_RIGHT_NUM 236(566)
+State 0( 0), entry d8(216): OTP_STOP 0( 0)
+State 0( 0), entry d9(217): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry da(218): OTP_GOTO_NE 17f(383)
+State 0( 0), entry db(219): e1(225)
+State 0( 0), entry dc(220): OTP_GOTO_NO_ADVANCE e1(225)
+State 0( 0), entry dd(221): OTP_GOTO_NE 6c(108,`l')
+State 0( 0), entry de(222): e1(225)
+State 0( 0), entry df(223): OTP_RIGHT_NUM 237(567)
+State 0( 0), entry e0(224): OTP_STOP 0( 0)
+State 0( 0), entry e1(225): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry e2(226): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry e3(227): e5(229)
+State 0( 0), entry e4(228): OTP_GOTO e7(231)
+State 0( 0), entry e5(229): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry e6(230): f4(244)
+State 0( 0), entry e7(231): OTP_GOTO_NO_ADVANCE f4(244)
+State 0( 0), entry e8(232): OTP_GOTO_NE c45(3141)
+State 0( 0), entry e9(233): eb(235)
+State 0( 0), entry ea(234): OTP_GOTO ed(237)
+State 0( 0), entry eb(235): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry ec(236): f4(244)
+State 0( 0), entry ed(237): OTP_GOTO_NO_ADVANCE f4(244)
+State 0( 0), entry ee(238): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry ef(239): f4(244)
+State 0( 0), entry f0(240): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry f1(241): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry f2(242): OTP_RIGHT_NUM c82(3202)
+State 0( 0), entry f3(243): OTP_STOP 0( 0)
+State 0( 0), entry f4(244): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry f5(245): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry f6(246): f8(248)
+State 0( 0), entry f7(247): OTP_GOTO fa(250)
+State 0( 0), entry f8(248): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry f9(249): 101(257)
+State 0( 0), entry fa(250): OTP_GOTO_NO_ADVANCE 101(257)
+State 0( 0), entry fb(251): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry fc(252): 101(257)
+State 0( 0), entry fd(253): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry fe(254): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry ff(255): OTP_RIGHT_NUM c82(3202)
+State 0( 0), entry 100(256): OTP_STOP 0( 0)
+State 0( 0), entry 101(257): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 102(258): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry 103(259): 105(261)
+State 0( 0), entry 104(260): OTP_GOTO 107(263)
+State 0( 0), entry 105(261): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry 106(262): 114(276)
+State 0( 0), entry 107(263): OTP_GOTO_NO_ADVANCE 114(276)
+State 0( 0), entry 108(264): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 109(265): 10b(267)
+State 0( 0), entry 10a(266): OTP_GOTO 10d(269)
+State 0( 0), entry 10b(267): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 10c(268): 114(276)
+State 0( 0), entry 10d(269): OTP_GOTO_NO_ADVANCE 114(276)
+State 0( 0), entry 10e(270): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry 10f(271): 114(276)
+State 0( 0), entry 110(272): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry 111(273): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry 112(274): OTP_RIGHT_NUM c81(3201)
+State 0( 0), entry 113(275): OTP_STOP 0( 0)
+State 0( 0), entry 114(276): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 115(277): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry 116(278): 118(280)
+State 0( 0), entry 117(279): OTP_GOTO 11a(282)
+State 0( 0), entry 118(280): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry 119(281): 121(289)
+State 0( 0), entry 11a(282): OTP_GOTO_NO_ADVANCE 121(289)
+State 0( 0), entry 11b(283): OTP_GOTO_NE c4c(3148)
+State 0( 0), entry 11c(284): 121(289)
+State 0( 0), entry 11d(285): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry 11e(286): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry 11f(287): OTP_RIGHT_NUM c81(3201)
+State 0( 0), entry 120(288): OTP_STOP 0( 0)
+State 0( 0), entry 121(289): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 122(290): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry 123(291): 12f(303)
+State 0( 0), entry 124(292): OTP_GOTO_NO_ADVANCE 12f(303)
+State 0( 0), entry 125(293): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 126(294): 128(296)
+State 0( 0), entry 127(295): OTP_GOTO 12a(298)
+State 0( 0), entry 128(296): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 129(297): 12f(303)
+State 0( 0), entry 12a(298): OTP_GOTO_NO_ADVANCE 12f(303)
+State 0( 0), entry 12b(299): OTP_GOTO_NE c47(3143)
+State 0( 0), entry 12c(300): 12f(303)
+State 0( 0), entry 12d(301): OTP_RIGHT_NUM c80(3200)
+State 0( 0), entry 12e(302): OTP_STOP 0( 0)
+State 0( 0), entry 12f(303): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 130(304): OTP_GOTO_NE c4e(3150)
+State 0( 0), entry 131(305): 137(311)
+State 0( 0), entry 132(306): OTP_GOTO_NO_ADVANCE 137(311)
+State 0( 0), entry 133(307): OTP_GOTO_NE c47(3143)
+State 0( 0), entry 134(308): 137(311)
+State 0( 0), entry 135(309): OTP_RIGHT_NUM c80(3200)
+State 0( 0), entry 136(310): OTP_STOP 0( 0)
+State 0( 0), entry 137(311): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 138(312): OTP_GOTO_NE c42(3138)
+State 0( 0), entry 139(313): 145(325)
+State 0( 0), entry 13a(314): OTP_GOTO_NO_ADVANCE 145(325)
+State 0( 0), entry 13b(315): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 13c(316): 13e(318)
+State 0( 0), entry 13d(317): OTP_GOTO 140(320)
+State 0( 0), entry 13e(318): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 13f(319): 145(325)
+State 0( 0), entry 140(320): OTP_GOTO_NO_ADVANCE 145(325)
+State 0( 0), entry 141(321): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 142(322): 145(325)
+State 0( 0), entry 143(323): OTP_RIGHT_NUM c83(3203)
+State 0( 0), entry 144(324): OTP_STOP 0( 0)
+State 0( 0), entry 145(325): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 146(326): OTP_GOTO_NE c42(3138)
+State 0( 0), entry 147(327): 14d(333)
+State 0( 0), entry 148(328): OTP_GOTO_NO_ADVANCE 14d(333)
+State 0( 0), entry 149(329): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 14a(330): 14d(333)
+State 0( 0), entry 14b(331): OTP_RIGHT_NUM c83(3203)
+State 0( 0), entry 14c(332): OTP_STOP 0( 0)
+State 0( 0), entry 14d(333): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 14e(334): OTP_GOTO_NE c43(3139)
+State 0( 0), entry 14f(335): 15b(347)
+State 0( 0), entry 150(336): OTP_GOTO_NO_ADVANCE 15b(347)
+State 0( 0), entry 151(337): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 152(338): 154(340)
+State 0( 0), entry 153(339): OTP_GOTO 156(342)
+State 0( 0), entry 154(340): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 155(341): 15b(347)
+State 0( 0), entry 156(342): OTP_GOTO_NO_ADVANCE 15b(347)
+State 0( 0), entry 157(343): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 158(344): 15b(347)
+State 0( 0), entry 159(345): OTP_RIGHT_NUM c84(3204)
+State 0( 0), entry 15a(346): OTP_STOP 0( 0)
+State 0( 0), entry 15b(347): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 15c(348): OTP_GOTO_NE c43(3139)
+State 0( 0), entry 15d(349): 163(355)
+State 0( 0), entry 15e(350): OTP_GOTO_NO_ADVANCE 163(355)
+State 0( 0), entry 15f(351): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 160(352): 163(355)
+State 0( 0), entry 161(353): OTP_RIGHT_NUM c84(3204)
+State 0( 0), entry 162(354): OTP_STOP 0( 0)
+State 0( 0), entry 163(355): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 164(356): OTP_GOTO_NE c47(3143)
+State 0( 0), entry 165(357): 171(369)
+State 0( 0), entry 166(358): OTP_GOTO_NO_ADVANCE 171(369)
+State 0( 0), entry 167(359): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 168(360): 16a(362)
+State 0( 0), entry 169(361): OTP_GOTO 16c(364)
+State 0( 0), entry 16a(362): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 16b(363): 171(369)
+State 0( 0), entry 16c(364): OTP_GOTO_NO_ADVANCE 171(369)
+State 0( 0), entry 16d(365): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 16e(366): 171(369)
+State 0( 0), entry 16f(367): OTP_RIGHT_NUM c86(3206)
+State 0( 0), entry 170(368): OTP_STOP 0( 0)
+State 0( 0), entry 171(369): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 172(370): OTP_GOTO_NE c47(3143)
+State 0( 0), entry 173(371): 179(377)
+State 0( 0), entry 174(372): OTP_GOTO_NO_ADVANCE 179(377)
+State 0( 0), entry 175(373): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 176(374): 179(377)
+State 0( 0), entry 177(375): OTP_RIGHT_NUM c86(3206)
+State 0( 0), entry 178(376): OTP_STOP 0( 0)
+State 0( 0), entry 179(377): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 17a(378): OTP_GOTO_NE c4d(3149)
+State 0( 0), entry 17b(379): 187(391)
+State 0( 0), entry 17c(380): OTP_GOTO_NO_ADVANCE 187(391)
+State 0( 0), entry 17d(381): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 17e(382): 180(384)
+State 0( 0), entry 17f(383): OTP_GOTO 182(386)
+State 0( 0), entry 180(384): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 181(385): 187(391)
+State 0( 0), entry 182(386): OTP_GOTO_NO_ADVANCE 187(391)
+State 0( 0), entry 183(387): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 184(388): 187(391)
+State 0( 0), entry 185(389): OTP_RIGHT_NUM c87(3207)
+State 0( 0), entry 186(390): OTP_STOP 0( 0)
+State 0( 0), entry 187(391): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 188(392): OTP_GOTO_NE c4d(3149)
+State 0( 0), entry 189(393): 18f(399)
+State 0( 0), entry 18a(394): OTP_GOTO_NO_ADVANCE 18f(399)
+State 0( 0), entry 18b(395): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 18c(396): 18f(399)
+State 0( 0), entry 18d(397): OTP_RIGHT_NUM c87(3207)
+State 0( 0), entry 18e(398): OTP_STOP 0( 0)
+State 0( 0), entry 18f(399): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 190(400): OTP_GOTO_NE c52(3154)
+State 0( 0), entry 191(401): 19d(413)
+State 0( 0), entry 192(402): OTP_GOTO_NO_ADVANCE 19d(413)
+State 0( 0), entry 193(403): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 194(404): 196(406)
+State 0( 0), entry 195(405): OTP_GOTO 198(408)
+State 0( 0), entry 196(406): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 197(407): 19d(413)
+State 0( 0), entry 198(408): OTP_GOTO_NO_ADVANCE 19d(413)
+State 0( 0), entry 199(409): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 19a(410): 19d(413)
+State 0( 0), entry 19b(411): OTP_RIGHT_NUM c88(3208)
+State 0( 0), entry 19c(412): OTP_STOP 0( 0)
+State 0( 0), entry 19d(413): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 19e(414): OTP_GOTO_NE c52(3154)
+State 0( 0), entry 19f(415): 1a5(421)
+State 0( 0), entry 1a0(416): OTP_GOTO_NO_ADVANCE 1a5(421)
+State 0( 0), entry 1a1(417): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 1a2(418): 1a5(421)
+State 0( 0), entry 1a3(419): OTP_RIGHT_NUM c88(3208)
+State 0( 0), entry 1a4(420): OTP_STOP 0( 0)
+State 0( 0), entry 1a5(421): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1a6(422): OTP_GOTO_NE c53(3155)
+State 0( 0), entry 1a7(423): 1b3(435)
+State 0( 0), entry 1a8(424): OTP_GOTO_NO_ADVANCE 1b3(435)
+State 0( 0), entry 1a9(425): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 1aa(426): 1ac(428)
+State 0( 0), entry 1ab(427): OTP_GOTO 1ae(430)
+State 0( 0), entry 1ac(428): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 1ad(429): 1b3(435)
+State 0( 0), entry 1ae(430): OTP_GOTO_NO_ADVANCE 1b3(435)
+State 0( 0), entry 1af(431): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 1b0(432): 1b3(435)
+State 0( 0), entry 1b1(433): OTP_RIGHT_NUM c89(3209)
+State 0( 0), entry 1b2(434): OTP_STOP 0( 0)
+State 0( 0), entry 1b3(435): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1b4(436): OTP_GOTO_NE c53(3155)
+State 0( 0), entry 1b5(437): 1bb(443)
+State 0( 0), entry 1b6(438): OTP_GOTO_NO_ADVANCE 1bb(443)
+State 0( 0), entry 1b7(439): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 1b8(440): 1bb(443)
+State 0( 0), entry 1b9(441): OTP_RIGHT_NUM c89(3209)
+State 0( 0), entry 1ba(442): OTP_STOP 0( 0)
+State 0( 0), entry 1bb(443): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1bc(444): OTP_GOTO_NE c7a(3194)
+State 0( 0), entry 1bd(445): 1c9(457)
+State 0( 0), entry 1be(446): OTP_GOTO_NO_ADVANCE 1c9(457)
+State 0( 0), entry 1bf(447): OTP_GOTO_NE c45(3141)
+State 0( 0), entry 1c0(448): 1c2(450)
+State 0( 0), entry 1c1(449): OTP_GOTO 1c4(452)
+State 0( 0), entry 1c2(450): OTP_GOTO_NE c4f(3151)
+State 0( 0), entry 1c3(451): 1c9(457)
+State 0( 0), entry 1c4(452): OTP_GOTO_NO_ADVANCE 1c9(457)
+State 0( 0), entry 1c5(453): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 1c6(454): 1c9(457)
+State 0( 0), entry 1c7(455): OTP_RIGHT_NUM c8a(3210)
+State 0( 0), entry 1c8(456): OTP_STOP 0( 0)
+State 0( 0), entry 1c9(457): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1ca(458): OTP_GOTO_NE c7a(3194)
+State 0( 0), entry 1cb(459): 1d1(465)
+State 0( 0), entry 1cc(460): OTP_GOTO_NO_ADVANCE 1d1(465)
+State 0( 0), entry 1cd(461): OTP_GOTO_NE c54(3156)
+State 0( 0), entry 1ce(462): 1d1(465)
+State 0( 0), entry 1cf(463): OTP_RIGHT_NUM c8a(3210)
+State 0( 0), entry 1d0(464): OTP_STOP 0( 0)
+State 0( 0), entry 1d1(465): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1d2(466): OTP_GOTO_LT 2010(8208)
+State 0( 0), entry 1d3(467): 1db(475)
+State 0( 0), entry 1d4(468): OTP_GOTO_GT 2046(8262)
+State 0( 0), entry 1d5(469): 1db(475)
+State 0( 0), entry 1d6(470): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry 1d7(471): OTP_PUSH_NUM 1000(4096)
+State 0( 0), entry 1d8(472): OTP_SUB 0( 0)
+State 0( 0), entry 1d9(473): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry 1da(474): OTP_STOP 0( 0)
+State 0( 0), entry 1db(475): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1dc(476): OTP_GOTO_LT 1e00(7680)
+State 0( 0), entry 1dd(477): 1e5(485)
+State 0( 0), entry 1de(478): OTP_GOTO_GT 1eff(7935)
+State 0( 0), entry 1df(479): 1e5(485)
+State 0( 0), entry 1e0(480): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry 1e1(481): OTP_PUSH_NUM 1800(6144)
+State 0( 0), entry 1e2(482): OTP_SUB 0( 0)
+State 0( 0), entry 1e3(483): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry 1e4(484): OTP_STOP 0( 0)
+State 0( 0), entry 1e5(485): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1e6(486): OTP_GOTO_NE f023(61475)
+State 0( 0), entry 1e7(487): 1ea(490)
+State 0( 0), entry 1e8(488): OTP_RIGHT_NUM 83(131)
+State 0( 0), entry 1e9(489): OTP_STOP 0( 0)
+State 0( 0), entry 1ea(490): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1eb(491): OTP_GOTO_NE f024(61476)
+State 0( 0), entry 1ec(492): 1ef(495)
+State 0( 0), entry 1ed(493): OTP_RIGHT_NUM 84(132)
+State 0( 0), entry 1ee(494): OTP_STOP 0( 0)
+State 0( 0), entry 1ef(495): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1f0(496): OTP_GOTO_NE f025(61477)
+State 0( 0), entry 1f1(497): 1f4(500)
+State 0( 0), entry 1f2(498): OTP_RIGHT_NUM 85(133)
+State 0( 0), entry 1f3(499): OTP_STOP 0( 0)
+State 0( 0), entry 1f4(500): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1f5(501): OTP_GOTO_NE f026(61478)
+State 0( 0), entry 1f6(502): 1f9(505)
+State 0( 0), entry 1f7(503): OTP_RIGHT_NUM 86(134)
+State 0( 0), entry 1f8(504): OTP_STOP 0( 0)
+State 0( 0), entry 1f9(505): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1fa(506): OTP_GOTO_NE f07b(61563)
+State 0( 0), entry 1fb(507): 1fe(510)
+State 0( 0), entry 1fc(508): OTP_RIGHT_NUM 8b(139)
+State 0( 0), entry 1fd(509): OTP_STOP 0( 0)
+State 0( 0), entry 1fe(510): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 1ff(511): OTP_GOTO_NE f05c(61532)
+State 0( 0), entry 200(512): 203(515)
+State 0( 0), entry 201(513): OTP_RIGHT_NUM 8c(140)
+State 0( 0), entry 202(514): OTP_STOP 0( 0)
+State 0( 0), entry 203(515): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 204(516): OTP_GOTO_NE f07d(61565)
+State 0( 0), entry 205(517): 208(520)
+State 0( 0), entry 206(518): OTP_RIGHT_NUM 8d(141)
+State 0( 0), entry 207(519): OTP_STOP 0( 0)
+State 0( 0), entry 208(520): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 209(521): OTP_GOTO_NE f05e(61534)
+State 0( 0), entry 20a(522): 20d(525)
+State 0( 0), entry 20b(523): OTP_RIGHT_NUM 8e(142)
+State 0( 0), entry 20c(524): OTP_STOP 0( 0)
+State 0( 0), entry 20d(525): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 20e(526): OTP_GOTO_NE f05f(61535)
+State 0( 0), entry 20f(527): 212(530)
+State 0( 0), entry 210(528): OTP_RIGHT_NUM 8f(143)
+State 0( 0), entry 211(529): OTP_STOP 0( 0)
+State 0( 0), entry 212(530): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 213(531): OTP_GOTO_NE f07e(61566)
+State 0( 0), entry 214(532): 217(535)
+State 0( 0), entry 215(533): OTP_RIGHT_NUM 80(128)
+State 0( 0), entry 216(534): OTP_STOP 0( 0)
+State 0( 0), entry 217(535): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 218(536): OTP_GOTO_LT f000(61440)
+State 0( 0), entry 219(537): 228(552)
+State 0( 0), entry 21a(538): OTP_GOTO_GT f07f(61567)
+State 0( 0), entry 21b(539): 228(552)
+State 0( 0), entry 21c(540): OTP_RIGHT_NUM 5c( 92,`\')
+State 0( 0), entry 21d(541): OTP_RIGHT_NUM 73(115,`s')
+State 0( 0), entry 21e(542): OTP_RIGHT_NUM 74(116,`t')
+State 0( 0), entry 21f(543): OTP_RIGHT_NUM 72(114,`r')
+State 0( 0), entry 220(544): OTP_RIGHT_NUM 69(105,`i')
+State 0( 0), entry 221(545): OTP_RIGHT_NUM 6e(110,`n')
+State 0( 0), entry 222(546): OTP_RIGHT_NUM 67(103,`g')
+State 0( 0), entry 223(547): OTP_PUSH_CHAR 1( 1)
+State 0( 0), entry 224(548): OTP_PUSH_NUM f000(61440)
+State 0( 0), entry 225(549): OTP_SUB 0( 0)
+State 0( 0), entry 226(550): OTP_RIGHT_OUTPUT 0( 0)
+State 0( 0), entry 227(551): OTP_STOP 0( 0)
+State 0( 0), entry 228(552): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 229(553): OTP_RIGHT_CHAR 1( 1)
+State 0( 0), entry 22a(554): OTP_STOP 0( 0)
+State 0( 0), entry 22b(555): OTP_LEFT_RETURN 0( 0)
+State 0( 0), entry 22c(556): OTP_RIGHT_CHAR 1( 1)
+State 0( 0), entry 22d(557): OTP_STOP 0( 0)
+
+file length should be: 236(566)
+number words read : 236(566)