diff --git a/ncurses/Makefile b/ncurses/Makefile
new file mode 100644
index 0000000..cf9bbab
--- /dev/null
+++ b/ncurses/Makefile
@@ -0,0 +1,2022 @@
+# $Id: Makefile.in,v 1.113 2008/10/18 14:11:54 tom Exp $
+##############################################################################
+# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
+#                                                                            #
+# Permission is hereby granted, free of charge, to any person obtaining a    #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation  #
+# the rights to use, copy, modify, merge, publish, distribute, distribute    #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the  #
+# following conditions:                                                      #
+#                                                                            #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software.                        #
+#                                                                            #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
+# DEALINGS IN THE SOFTWARE.                                                  #
+#                                                                            #
+# Except as contained in this notice, the name(s) of the above copyright     #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written               #
+# authorization.                                                             #
+##############################################################################
+#
+# Author: Thomas E. Dickey 1996-on
+#
+# Makefile for ncurses source code.
+#
+# This makes the following:
+#	programs
+#	includes
+#	libraries (normal/debug/profile/shared)
+#
+# The variable 'srcdir' refers to the source-distribution, and can be set with
+# the configure script by "--srcdir=DIR".
+#
+# The rules are organized to produce the libraries for the configured models,
+# and the programs with the configured default model.
+
+# turn off _all_ suffix rules; we'll generate our own
+.SUFFIXES:
+
+SHELL		= /bin/sh
+THIS		= Makefile
+
+CF_MFLAGS 	= 
+
+
+x		= 
+o		= .o
+
+MODEL		= normal
+DESTDIR		= 
+top_srcdir	= ..
+srcdir		= .
+prefix		= /usr/local
+exec_prefix	= ${prefix}
+bindir		= ${exec_prefix}/bin
+libdir		= ${exec_prefix}/lib
+includedir	= ${prefix}/include/ncurses
+datadir		= ${prefix}/share
+
+LIBTOOL		= 
+LIBTOOL_CLEAN	= 
+LIBTOOL_COMPILE	= 
+LIBTOOL_LINK	= ${CC}
+LIBTOOL_INSTALL	= 
+LIBTOOL_UNINSTALL = 
+
+INSTALL		= /usr/bin/install -c
+INSTALL_LIB	= /usr/bin/install -c -m 644
+INSTALL_PROG	= ${INSTALL}
+INSTALL_DATA	= ${INSTALL} -m 644
+
+AR		= arm-eabi-ar
+AR_OPTS		= rv
+AWK		= mawk
+LD		= arm-eabi-ld
+LN_S		= ln -s
+
+CC		= agcc.pl
+CPP		= agcc.pl -E
+CFLAGS		= -O2 --param max-inline-insns-single=1200
+
+INCDIR		= $(srcdir)/../include
+CPPFLAGS	= -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I. -I../include  -U_XOPEN_SOURCE -D_XOPEN_SOURCE=500 -U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=199506L -DNDEBUG -I${includedir}
+
+CCFLAGS		= $(CPPFLAGS) $(CFLAGS)
+
+BUILD_CPPFLAGS	= -I../include 
+BUILD_CC	= gcc
+BUILD_CCFLAGS	= -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) 
+BUILD_LDFLAGS	= 
+BUILD_LIBS	= 
+
+# The executables built in this directory are used for generating source that
+# is compiled into the build, or are test-programs that are not installed.
+
+BUILD_EXEEXT	= 
+x		= 
+
+CFLAGS_LIBTOOL	= $(CCFLAGS)
+CFLAGS_NORMAL	= $(CCFLAGS)
+CFLAGS_DEBUG	= $(CCFLAGS) -g -DTRACE
+CFLAGS_PROFILE	= $(CCFLAGS) -pg
+CFLAGS_SHARED	= $(CCFLAGS) unknown
+
+CFLAGS_DEFAULT	= $(CFLAGS_NORMAL)
+
+LINK		= $(LIBTOOL)
+LDFLAGS		=   
+
+SHLIB_DIRS	= -L../lib
+SHLIB_LIST	= $(SHLIB_DIRS) 
+TINFO_LIST	= $(SHLIB_DIRS) 
+TICS_LIST	= $(SHLIB_DIRS) 
+
+MK_SHARED_LIB	= echo unknown
+
+NCURSES_MAJOR	= 5
+NCURSES_MINOR	= 7
+REL_VERSION	= 5.7
+ABI_VERSION	= 5
+
+RANLIB		= arm-eabi-ranlib
+
+LIBRARIES	=  ../lib/libncurses.a ../lib/libncurses_g.a
+
+LINT		= 
+LINT_OPTS	= 
+LINT_LIBS	= -lncurses 
+
+FALLBACK_LIST	= 
+
+USE_BIG_STRINGS	= 1
+TERMINFO_CAPS	= $(top_srcdir)/include/Caps
+
+AUTO_SRC = \
+	./codes.c \
+	./comp_captab.c \
+	./expanded.c \
+	./fallback.c \
+	./lib_gen.c \
+	./lib_keyname.c \
+	./link_test.c \
+	./names.c \
+	./unctrl.c \
+	init_keytry.h \
+	keys.list
+
+TEST_DEPS	= ../lib/libncurses.a
+TEST_ARGS	= -static -L../lib -lform -lmenu -lpanel -lncurses  -dynamic 
+TEST_LDFLAGS	=  $(TEST_ARGS)   
+
+TEST_PROGS = \
+	captoinfo$x \
+	hardscroll$x \
+	link_test$x \
+	hashmap$x \
+	lib_mvcur$x
+
+base	= $(srcdir)/base
+serial	= $(srcdir)/tty
+tinfo	= $(srcdir)/tinfo
+trace	= $(srcdir)/trace
+wide	= $(srcdir)/widechar
+
+################################################################################
+all \
+libs ::		$(AUTO_SRC) ../lib $(LIBRARIES)
+
+sources:	$(AUTO_SRC)
+
+$(DESTDIR)$(bindir) \
+$(DESTDIR)$(libdir) :
+	sh $(srcdir)/../mkdirs.sh $@
+
+../lib : ; mkdir $@
+
+./fallback.c : $(tinfo)/MKfallback.sh
+	sh -e $(tinfo)/MKfallback.sh /usr/local/share/terminfo ${top_srcdir}/misc/terminfo.src $(FALLBACK_LIST) >$@
+
+./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
+	sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
+
+init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
+	./make_keys$(BUILD_EXEEXT) keys.list > $@
+
+keys.list :	$(tinfo)/MKkeys_list.sh
+	AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@
+
+make_keys$(BUILD_EXEEXT) : \
+		$(tinfo)/make_keys.c \
+		names.c
+	$(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+make_hash$(BUILD_EXEEXT) : \
+		$(tinfo)/comp_hash.c \
+		../include/hashsize.h
+	$(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+./expanded.c : $(serial)/MKexpanded.sh
+	sh -e $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
+
+./comp_captab.c: \
+		make_hash$(BUILD_EXEEXT) \
+		../include/hashsize.h \
+		$(tinfo)/MKcaptab.sh \
+		$(tinfo)/MKcaptab.awk
+	sh -e $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/Caps > $@
+
+./lib_keyname.c: keys.list $(base)/MKkeyname.awk
+	$(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
+
+./codes.c: $(tinfo)/MKcodes.awk
+	$(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/Caps >$@
+
+./names.c: $(tinfo)/MKnames.awk
+	$(AWK) -f $(tinfo)/MKnames.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/Caps >$@
+
+./unctrl.c: $(base)/MKunctrl.awk
+	echo | $(AWK) -f $(base)/MKunctrl.awk bigstrings=$(USE_BIG_STRINGS) >$@
+
+tags:
+	ctags *.[ch] */*.[ch]
+
+TAGS:
+	etags *.[ch] */*.[ch]
+
+mostlyclean ::
+	-rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
+	-rm -f $(TEST_PROGS)
+
+clean :: mostlyclean
+	-rm -f $(AUTO_SRC)
+	-rm -f make_keys$(BUILD_EXEEXT)
+	-rm -f make_hash$(BUILD_EXEEXT)
+	-rm -rf .libs
+
+distclean :: clean
+	-rm -f Makefile
+
+realclean :: distclean
+
+# These rules are used to allow "make -n" to work on a clean directory-tree
+../include/hashsize.h \
+../include/parametrized.h \
+../include/term.h :
+	cd ../include; $(MAKE) $(CF_MFLAGS)
+
+# These rules build test-programs for the modules that have test-drivers
+test_progs : $(TEST_PROGS)
+
+./link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
+	sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
+
+captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
+	 $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
+
+hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
+	 $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
+
+hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
+	 $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
+
+lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
+		../objects/dump_entry$o
+	 $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../objects/dump_entry$o $(TEST_LDFLAGS)
+
+link_test$x : ./link_test.c $(TEST_DEPS) \
+		../objects/link_test$o
+	 $(CC) -o $@ $(CFLAGS_DEFAULT) ../objects/link_test$o $(TEST_LDFLAGS)
+
+../objects/dump_entry$o:
+	cd ../progs && $(MAKE) ../objects/dump_entry$o
+
+###############################################################################
+# The remainder of this file is automatically generated during configuration
+###############################################################################
+
+# generated by mk-0th.awk
+#   libname:    ncurses
+#   subsets:    ticlib+termlib+ext_tinfo+base+ext_funcs
+
+.SUFFIXES: .c .cc .h .i .ii
+.c.i :
+	$(CPP) $(CPPFLAGS) $< >$@
+.cc.ii :
+	$(CPP) $(CPPFLAGS) $< >$@
+.h.i :
+	$(CPP) $(CPPFLAGS) $< >$@
+
+C_SRC = \
+	$(serial)/hardscroll.c \
+	$(serial)/hashmap.c \
+	$(base)/lib_addch.c \
+	$(base)/lib_addstr.c \
+	$(base)/lib_beep.c \
+	$(base)/lib_bkgd.c \
+	$(base)/lib_box.c \
+	$(base)/lib_chgat.c \
+	$(base)/lib_clear.c \
+	$(base)/lib_clearok.c \
+	$(base)/lib_clrbot.c \
+	$(base)/lib_clreol.c \
+	$(base)/lib_color.c \
+	$(base)/lib_colorset.c \
+	$(base)/lib_delch.c \
+	$(base)/lib_delwin.c \
+	$(base)/lib_echo.c \
+	$(base)/lib_endwin.c \
+	$(base)/lib_erase.c \
+	$(base)/lib_flash.c \
+	./lib_gen.c \
+	$(base)/lib_getch.c \
+	$(base)/lib_getstr.c \
+	$(base)/lib_hline.c \
+	$(base)/lib_immedok.c \
+	$(base)/lib_inchstr.c \
+	$(base)/lib_initscr.c \
+	$(base)/lib_insch.c \
+	$(base)/lib_insdel.c \
+	$(base)/lib_insnstr.c \
+	$(base)/lib_instr.c \
+	$(base)/lib_isendwin.c \
+	$(base)/lib_leaveok.c \
+	$(base)/lib_mouse.c \
+	$(base)/lib_move.c \
+	$(serial)/lib_mvcur.c \
+	$(base)/lib_mvwin.c \
+	$(base)/lib_newterm.c \
+	$(base)/lib_newwin.c \
+	$(base)/lib_nl.c \
+	$(base)/lib_overlay.c \
+	$(base)/lib_pad.c \
+	$(base)/lib_printw.c \
+	$(base)/lib_redrawln.c \
+	$(base)/lib_refresh.c \
+	$(base)/lib_restart.c \
+	$(base)/lib_scanw.c \
+	$(base)/lib_screen.c \
+	$(base)/lib_scroll.c \
+	$(base)/lib_scrollok.c \
+	$(base)/lib_scrreg.c \
+	$(base)/lib_set_term.c \
+	$(base)/lib_slk.c \
+	$(base)/lib_slkatr_set.c \
+	$(base)/lib_slkatrof.c \
+	$(base)/lib_slkatron.c \
+	$(base)/lib_slkatrset.c \
+	$(base)/lib_slkattr.c \
+	$(base)/lib_slkclear.c \
+	$(base)/lib_slkcolor.c \
+	$(base)/lib_slkinit.c \
+	$(base)/lib_slklab.c \
+	$(base)/lib_slkrefr.c \
+	$(base)/lib_slkset.c \
+	$(base)/lib_slktouch.c \
+	$(base)/lib_touch.c \
+	$(trace)/lib_tracedmp.c \
+	$(trace)/lib_tracemse.c \
+	$(serial)/lib_tstp.c \
+	$(base)/lib_ungetch.c \
+	$(serial)/lib_vidattr.c \
+	$(base)/lib_vline.c \
+	$(base)/lib_wattroff.c \
+	$(base)/lib_wattron.c \
+	$(base)/lib_winch.c \
+	$(base)/lib_window.c \
+	$(base)/nc_panel.c \
+	$(base)/safe_sprintf.c \
+	$(serial)/tty_update.c \
+	$(trace)/varargs.c \
+	$(base)/memmove.c \
+	$(base)/vsscanf.c \
+	$(base)/lib_freeall.c \
+	./expanded.c \
+	$(base)/legacy_coding.c \
+	$(base)/lib_dft_fgbg.c \
+	$(tinfo)/lib_print.c \
+	$(base)/resizeterm.c \
+	$(trace)/trace_xnames.c \
+	$(tinfo)/use_screen.c \
+	$(base)/use_window.c \
+	$(base)/wresize.c \
+	$(tinfo)/access.c \
+	$(tinfo)/add_tries.c \
+	$(tinfo)/alloc_ttype.c \
+	./codes.c \
+	$(tinfo)/comp_error.c \
+	$(tinfo)/db_iterator.c \
+	$(tinfo)/doalloc.c \
+	$(tinfo)/entries.c \
+	./fallback.c \
+	$(tinfo)/free_ttype.c \
+	$(tinfo)/getenv_num.c \
+	$(tinfo)/home_terminfo.c \
+	$(tinfo)/init_keytry.c \
+	$(tinfo)/lib_acs.c \
+	$(tinfo)/lib_baudrate.c \
+	$(tinfo)/lib_cur_term.c \
+	$(tinfo)/lib_data.c \
+	$(tinfo)/lib_has_cap.c \
+	$(tinfo)/lib_kernel.c \
+	./lib_keyname.c \
+	$(tinfo)/lib_longname.c \
+	$(tinfo)/lib_napms.c \
+	$(tinfo)/lib_options.c \
+	$(tinfo)/lib_raw.c \
+	$(tinfo)/lib_setup.c \
+	$(tinfo)/lib_termcap.c \
+	$(tinfo)/lib_termname.c \
+	$(tinfo)/lib_tgoto.c \
+	$(tinfo)/lib_ti.c \
+	$(tinfo)/lib_tparm.c \
+	$(tinfo)/lib_tputs.c \
+	$(trace)/lib_trace.c \
+	$(trace)/lib_traceatr.c \
+	$(trace)/lib_tracebits.c \
+	$(trace)/lib_tracechr.c \
+	$(tinfo)/lib_ttyflags.c \
+	$(serial)/lib_twait.c \
+	$(tinfo)/name_match.c \
+	./names.c \
+	$(tinfo)/read_entry.c \
+	$(tinfo)/read_termcap.c \
+	$(tinfo)/setbuf.c \
+	$(tinfo)/strings.c \
+	$(trace)/trace_buf.c \
+	$(trace)/trace_tries.c \
+	$(base)/tries.c \
+	$(tinfo)/trim_sgr0.c \
+	./unctrl.c \
+	$(trace)/visbuf.c \
+	$(tinfo)/alloc_entry.c \
+	$(tinfo)/captoinfo.c \
+	./comp_captab.c \
+	$(tinfo)/comp_expand.c \
+	$(tinfo)/comp_hash.c \
+	$(tinfo)/comp_parse.c \
+	$(tinfo)/comp_scan.c \
+	$(tinfo)/parse_entry.c \
+	$(tinfo)/write_entry.c \
+	$(base)/define_key.c \
+	$(tinfo)/hashed_db.c \
+	$(base)/key_defined.c \
+	$(base)/keybound.c \
+	$(base)/keyok.c \
+	$(base)/version.c
+
+# Producing llib-lncurses is time-consuming, so there's no direct-dependency for
+# it in the lintlib rule.  We'll only remove in the cleanest setup.
+clean ::
+	rm -f llib-lncurses.*
+
+realclean ::
+	rm -f llib-lncurses
+
+llib-lncurses : $(C_SRC)
+	cproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@
+
+lintlib :
+	sh $(srcdir)/../misc/makellib ncurses $(CPPFLAGS)
+lint :
+	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)
+
+# generated by mk-1st.awk (subset=ticlib+termlib+ext_tinfo+base+ext_funcs)
+#  name:          ncurses
+#  traces:        DEBUG
+#  MODEL:         NORMAL
+#  model:         objects
+#  prefix:        lib
+#  suffix:        .a
+#  subset:        ticlib+termlib+ext_tinfo+base+ext_funcs
+#  ShlibVer:      auto
+#  ShlibVerInfix: no
+#  TermlibRoot:   ncurses
+#  TermlibSuffix: .a
+#  ReLink:        
+#  DoLinks:       no
+#  rmSoLocs:      no
+#  ldconfig:      :
+#  overwrite:     no
+#  depend:        ../include/ncurses_cfg.h ./curses.priv.h
+#  host:          arm-unknown-eabi
+
+NORMAL_OBJS = \
+	../objects/hardscroll$o \
+	../objects/hashmap$o \
+	../objects/lib_addch$o \
+	../objects/lib_addstr$o \
+	../objects/lib_beep$o \
+	../objects/lib_bkgd$o \
+	../objects/lib_box$o \
+	../objects/lib_chgat$o \
+	../objects/lib_clear$o \
+	../objects/lib_clearok$o \
+	../objects/lib_clrbot$o \
+	../objects/lib_clreol$o \
+	../objects/lib_color$o \
+	../objects/lib_colorset$o \
+	../objects/lib_delch$o \
+	../objects/lib_delwin$o \
+	../objects/lib_echo$o \
+	../objects/lib_endwin$o \
+	../objects/lib_erase$o \
+	../objects/lib_flash$o \
+	../objects/lib_gen$o \
+	../objects/lib_getch$o \
+	../objects/lib_getstr$o \
+	../objects/lib_hline$o \
+	../objects/lib_immedok$o \
+	../objects/lib_inchstr$o \
+	../objects/lib_initscr$o \
+	../objects/lib_insch$o \
+	../objects/lib_insdel$o \
+	../objects/lib_insnstr$o \
+	../objects/lib_instr$o \
+	../objects/lib_isendwin$o \
+	../objects/lib_leaveok$o \
+	../objects/lib_mouse$o \
+	../objects/lib_move$o \
+	../objects/lib_mvcur$o \
+	../objects/lib_mvwin$o \
+	../objects/lib_newterm$o \
+	../objects/lib_newwin$o \
+	../objects/lib_nl$o \
+	../objects/lib_overlay$o \
+	../objects/lib_pad$o \
+	../objects/lib_printw$o \
+	../objects/lib_redrawln$o \
+	../objects/lib_refresh$o \
+	../objects/lib_restart$o \
+	../objects/lib_scanw$o \
+	../objects/lib_screen$o \
+	../objects/lib_scroll$o \
+	../objects/lib_scrollok$o \
+	../objects/lib_scrreg$o \
+	../objects/lib_set_term$o \
+	../objects/lib_slk$o \
+	../objects/lib_slkatr_set$o \
+	../objects/lib_slkatrof$o \
+	../objects/lib_slkatron$o \
+	../objects/lib_slkatrset$o \
+	../objects/lib_slkattr$o \
+	../objects/lib_slkclear$o \
+	../objects/lib_slkcolor$o \
+	../objects/lib_slkinit$o \
+	../objects/lib_slklab$o \
+	../objects/lib_slkrefr$o \
+	../objects/lib_slkset$o \
+	../objects/lib_slktouch$o \
+	../objects/lib_touch$o \
+	../objects/lib_tstp$o \
+	../objects/lib_ungetch$o \
+	../objects/lib_vidattr$o \
+	../objects/lib_vline$o \
+	../objects/lib_wattroff$o \
+	../objects/lib_wattron$o \
+	../objects/lib_winch$o \
+	../objects/lib_window$o \
+	../objects/nc_panel$o \
+	../objects/safe_sprintf$o \
+	../objects/tty_update$o \
+	../objects/varargs$o \
+	../objects/memmove$o \
+	../objects/vsscanf$o \
+	../objects/lib_freeall$o \
+	../objects/expanded$o \
+	../objects/legacy_coding$o \
+	../objects/lib_dft_fgbg$o \
+	../objects/lib_print$o \
+	../objects/resizeterm$o \
+	../objects/use_screen$o \
+	../objects/use_window$o \
+	../objects/wresize$o \
+	../objects/access$o \
+	../objects/add_tries$o \
+	../objects/alloc_ttype$o \
+	../objects/codes$o \
+	../objects/comp_error$o \
+	../objects/db_iterator$o \
+	../objects/doalloc$o \
+	../objects/entries$o \
+	../objects/fallback$o \
+	../objects/free_ttype$o \
+	../objects/getenv_num$o \
+	../objects/home_terminfo$o \
+	../objects/init_keytry$o \
+	../objects/lib_acs$o \
+	../objects/lib_baudrate$o \
+	../objects/lib_cur_term$o \
+	../objects/lib_data$o \
+	../objects/lib_has_cap$o \
+	../objects/lib_kernel$o \
+	../objects/lib_keyname$o \
+	../objects/lib_longname$o \
+	../objects/lib_napms$o \
+	../objects/lib_options$o \
+	../objects/lib_raw$o \
+	../objects/lib_setup$o \
+	../objects/lib_termcap$o \
+	../objects/lib_termname$o \
+	../objects/lib_tgoto$o \
+	../objects/lib_ti$o \
+	../objects/lib_tparm$o \
+	../objects/lib_tputs$o \
+	../objects/lib_trace$o \
+	../objects/lib_ttyflags$o \
+	../objects/lib_twait$o \
+	../objects/name_match$o \
+	../objects/names$o \
+	../objects/read_entry$o \
+	../objects/read_termcap$o \
+	../objects/setbuf$o \
+	../objects/strings$o \
+	../objects/tries$o \
+	../objects/trim_sgr0$o \
+	../objects/unctrl$o \
+	../objects/visbuf$o \
+	../objects/alloc_entry$o \
+	../objects/captoinfo$o \
+	../objects/comp_captab$o \
+	../objects/comp_expand$o \
+	../objects/comp_hash$o \
+	../objects/comp_parse$o \
+	../objects/comp_scan$o \
+	../objects/parse_entry$o \
+	../objects/write_entry$o \
+	../objects/define_key$o \
+	../objects/hashed_db$o \
+	../objects/key_defined$o \
+	../objects/keybound$o \
+	../objects/keyok$o \
+	../objects/version$o
+
+$(NORMAL_OBJS) : ../include/ncurses_cfg.h ./curses.priv.h
+
+../lib/libncurses.a : $(NORMAL_OBJS)
+	$(AR) $(AR_OPTS) $@ $?
+	$(RANLIB) $@
+
+install \
+install.libs \
+install.ncurses :: $(DESTDIR)$(libdir) ../lib/libncurses.a
+	@echo installing ../lib/libncurses.a as $(DESTDIR)$(libdir)/libncurses.a
+	$(INSTALL_DATA) ../lib/libncurses.a $(DESTDIR)$(libdir)/libncurses.a
+	$(RANLIB) $(DESTDIR)$(libdir)/libncurses.a
+
+uninstall \
+uninstall.libs \
+uninstall.ncurses ::
+	@echo uninstalling $(DESTDIR)$(libdir)/libncurses.a
+	-@rm -f $(DESTDIR)$(libdir)/libncurses.a
+
+clean ::
+	-rm -f ../lib/libncurses.a
+
+mostlyclean::
+	-rm -f $(NORMAL_OBJS)
+
+# generated by mk-2nd.awk
+#   model:      objects
+#   MODEL:      NORMAL
+#   echo:       yes
+#   subset:     ticlib+termlib+ext_tinfo+base+ext_funcs
+#   crenames:   yes
+#   cxxrenames: no
+#   traces:     DEBUG
+#   srcdir:     .
+
+../objects/hardscroll$o :	$(serial)/hardscroll.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/hardscroll.c -o ../objects/hardscroll$o
+
+../objects/hashmap$o :	$(serial)/hashmap.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/hashmap.c -o ../objects/hashmap$o
+
+../objects/lib_addch$o :	$(base)/lib_addch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_addch.c -o ../objects/lib_addch$o
+
+../objects/lib_addstr$o :	$(base)/lib_addstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_addstr.c -o ../objects/lib_addstr$o
+
+../objects/lib_beep$o :	$(base)/lib_beep.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_beep.c -o ../objects/lib_beep$o
+
+../objects/lib_bkgd$o :	$(base)/lib_bkgd.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_bkgd.c -o ../objects/lib_bkgd$o
+
+../objects/lib_box$o :	$(base)/lib_box.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_box.c -o ../objects/lib_box$o
+
+../objects/lib_chgat$o :	$(base)/lib_chgat.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_chgat.c -o ../objects/lib_chgat$o
+
+../objects/lib_clear$o :	$(base)/lib_clear.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_clear.c -o ../objects/lib_clear$o
+
+../objects/lib_clearok$o :	$(base)/lib_clearok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_clearok.c -o ../objects/lib_clearok$o
+
+../objects/lib_clrbot$o :	$(base)/lib_clrbot.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_clrbot.c -o ../objects/lib_clrbot$o
+
+../objects/lib_clreol$o :	$(base)/lib_clreol.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_clreol.c -o ../objects/lib_clreol$o
+
+../objects/lib_color$o :	$(base)/lib_color.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_color.c -o ../objects/lib_color$o
+
+../objects/lib_colorset$o :	$(base)/lib_colorset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_colorset.c -o ../objects/lib_colorset$o
+
+../objects/lib_delch$o :	$(base)/lib_delch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_delch.c -o ../objects/lib_delch$o
+
+../objects/lib_delwin$o :	$(base)/lib_delwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_delwin.c -o ../objects/lib_delwin$o
+
+../objects/lib_echo$o :	$(base)/lib_echo.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_echo.c -o ../objects/lib_echo$o
+
+../objects/lib_endwin$o :	$(base)/lib_endwin.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_endwin.c -o ../objects/lib_endwin$o
+
+../objects/lib_erase$o :	$(base)/lib_erase.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_erase.c -o ../objects/lib_erase$o
+
+../objects/lib_flash$o :	$(base)/lib_flash.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_flash.c -o ../objects/lib_flash$o
+
+../objects/lib_gen$o :	./lib_gen.c \
+			../include/curses.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/lib_gen.c -o ../objects/lib_gen$o
+
+../objects/lib_getch$o :	$(base)/lib_getch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_getch.c -o ../objects/lib_getch$o
+
+../objects/lib_getstr$o :	$(base)/lib_getstr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_getstr.c -o ../objects/lib_getstr$o
+
+../objects/lib_hline$o :	$(base)/lib_hline.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_hline.c -o ../objects/lib_hline$o
+
+../objects/lib_immedok$o :	$(base)/lib_immedok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_immedok.c -o ../objects/lib_immedok$o
+
+../objects/lib_inchstr$o :	$(base)/lib_inchstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_inchstr.c -o ../objects/lib_inchstr$o
+
+../objects/lib_initscr$o :	$(base)/lib_initscr.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_initscr.c -o ../objects/lib_initscr$o
+
+../objects/lib_insch$o :	$(base)/lib_insch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_insch.c -o ../objects/lib_insch$o
+
+../objects/lib_insdel$o :	$(base)/lib_insdel.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_insdel.c -o ../objects/lib_insdel$o
+
+../objects/lib_insnstr$o :	$(base)/lib_insnstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_insnstr.c -o ../objects/lib_insnstr$o
+
+../objects/lib_instr$o :	$(base)/lib_instr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_instr.c -o ../objects/lib_instr$o
+
+../objects/lib_isendwin$o :	$(base)/lib_isendwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_isendwin.c -o ../objects/lib_isendwin$o
+
+../objects/lib_leaveok$o :	$(base)/lib_leaveok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_leaveok.c -o ../objects/lib_leaveok$o
+
+../objects/lib_mouse$o :	$(base)/lib_mouse.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_mouse.c -o ../objects/lib_mouse$o
+
+../objects/lib_move$o :	$(base)/lib_move.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_move.c -o ../objects/lib_move$o
+
+../objects/lib_mvcur$o :	$(serial)/lib_mvcur.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/lib_mvcur.c -o ../objects/lib_mvcur$o
+
+../objects/lib_mvwin$o :	$(base)/lib_mvwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_mvwin.c -o ../objects/lib_mvwin$o
+
+../objects/lib_newterm$o :	$(base)/lib_newterm.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_newterm.c -o ../objects/lib_newterm$o
+
+../objects/lib_newwin$o :	$(base)/lib_newwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_newwin.c -o ../objects/lib_newwin$o
+
+../objects/lib_nl$o :	$(base)/lib_nl.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_nl.c -o ../objects/lib_nl$o
+
+../objects/lib_overlay$o :	$(base)/lib_overlay.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_overlay.c -o ../objects/lib_overlay$o
+
+../objects/lib_pad$o :	$(base)/lib_pad.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_pad.c -o ../objects/lib_pad$o
+
+../objects/lib_printw$o :	$(base)/lib_printw.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_printw.c -o ../objects/lib_printw$o
+
+../objects/lib_redrawln$o :	$(base)/lib_redrawln.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_redrawln.c -o ../objects/lib_redrawln$o
+
+../objects/lib_refresh$o :	$(base)/lib_refresh.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_refresh.c -o ../objects/lib_refresh$o
+
+../objects/lib_restart$o :	$(base)/lib_restart.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_restart.c -o ../objects/lib_restart$o
+
+../objects/lib_scanw$o :	$(base)/lib_scanw.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_scanw.c -o ../objects/lib_scanw$o
+
+../objects/lib_screen$o :	$(base)/lib_screen.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_screen.c -o ../objects/lib_screen$o
+
+../objects/lib_scroll$o :	$(base)/lib_scroll.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_scroll.c -o ../objects/lib_scroll$o
+
+../objects/lib_scrollok$o :	$(base)/lib_scrollok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_scrollok.c -o ../objects/lib_scrollok$o
+
+../objects/lib_scrreg$o :	$(base)/lib_scrreg.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_scrreg.c -o ../objects/lib_scrreg$o
+
+../objects/lib_set_term$o :	$(base)/lib_set_term.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_set_term.c -o ../objects/lib_set_term$o
+
+../objects/lib_slk$o :	$(base)/lib_slk.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slk.c -o ../objects/lib_slk$o
+
+../objects/lib_slkatr_set$o :	$(base)/lib_slkatr_set.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkatr_set.c -o ../objects/lib_slkatr_set$o
+
+../objects/lib_slkatrof$o :	$(base)/lib_slkatrof.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkatrof.c -o ../objects/lib_slkatrof$o
+
+../objects/lib_slkatron$o :	$(base)/lib_slkatron.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkatron.c -o ../objects/lib_slkatron$o
+
+../objects/lib_slkatrset$o :	$(base)/lib_slkatrset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkatrset.c -o ../objects/lib_slkatrset$o
+
+../objects/lib_slkattr$o :	$(base)/lib_slkattr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkattr.c -o ../objects/lib_slkattr$o
+
+../objects/lib_slkclear$o :	$(base)/lib_slkclear.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkclear.c -o ../objects/lib_slkclear$o
+
+../objects/lib_slkcolor$o :	$(base)/lib_slkcolor.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkcolor.c -o ../objects/lib_slkcolor$o
+
+../objects/lib_slkinit$o :	$(base)/lib_slkinit.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkinit.c -o ../objects/lib_slkinit$o
+
+../objects/lib_slklab$o :	$(base)/lib_slklab.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slklab.c -o ../objects/lib_slklab$o
+
+../objects/lib_slkrefr$o :	$(base)/lib_slkrefr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkrefr.c -o ../objects/lib_slkrefr$o
+
+../objects/lib_slkset$o :	$(base)/lib_slkset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slkset.c -o ../objects/lib_slkset$o
+
+../objects/lib_slktouch$o :	$(base)/lib_slktouch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_slktouch.c -o ../objects/lib_slktouch$o
+
+../objects/lib_touch$o :	$(base)/lib_touch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_touch.c -o ../objects/lib_touch$o
+
+../objects/lib_tstp$o :	$(serial)/lib_tstp.c \
+			$(srcdir)/SigAction.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/lib_tstp.c -o ../objects/lib_tstp$o
+
+../objects/lib_ungetch$o :	$(base)/lib_ungetch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_ungetch.c -o ../objects/lib_ungetch$o
+
+../objects/lib_vidattr$o :	$(serial)/lib_vidattr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/lib_vidattr.c -o ../objects/lib_vidattr$o
+
+../objects/lib_vline$o :	$(base)/lib_vline.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_vline.c -o ../objects/lib_vline$o
+
+../objects/lib_wattroff$o :	$(base)/lib_wattroff.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_wattroff.c -o ../objects/lib_wattroff$o
+
+../objects/lib_wattron$o :	$(base)/lib_wattron.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_wattron.c -o ../objects/lib_wattron$o
+
+../objects/lib_winch$o :	$(base)/lib_winch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_winch.c -o ../objects/lib_winch$o
+
+../objects/lib_window$o :	$(base)/lib_window.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_window.c -o ../objects/lib_window$o
+
+../objects/link_test$o :	./link_test.c \
+			../include/curses.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/link_test.c -o ../objects/link_test$o
+
+../objects/nc_panel$o :	$(base)/nc_panel.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/nc_panel.c -o ../objects/nc_panel$o
+
+../objects/safe_sprintf$o :	$(base)/safe_sprintf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/safe_sprintf.c -o ../objects/safe_sprintf$o
+
+../objects/tty_update$o :	$(serial)/tty_update.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/tty_update.c -o ../objects/tty_update$o
+
+../objects/varargs$o :	$(trace)/varargs.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(trace)/varargs.c -o ../objects/varargs$o
+
+../objects/memmove$o :	$(base)/memmove.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/memmove.c -o ../objects/memmove$o
+
+../objects/vsscanf$o :	$(base)/vsscanf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/vsscanf.c -o ../objects/vsscanf$o
+
+../objects/lib_freeall$o :	$(base)/lib_freeall.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_freeall.c -o ../objects/lib_freeall$o
+
+../objects/expanded$o :	./expanded.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/expanded.c -o ../objects/expanded$o
+
+../objects/legacy_coding$o :	$(base)/legacy_coding.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/legacy_coding.c -o ../objects/legacy_coding$o
+
+../objects/lib_dft_fgbg$o :	$(base)/lib_dft_fgbg.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/lib_dft_fgbg.c -o ../objects/lib_dft_fgbg$o
+
+../objects/lib_print$o :	$(tinfo)/lib_print.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_print.c -o ../objects/lib_print$o
+
+../objects/resizeterm$o :	$(base)/resizeterm.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/resizeterm.c -o ../objects/resizeterm$o
+
+../objects/use_screen$o :	$(tinfo)/use_screen.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/use_screen.c -o ../objects/use_screen$o
+
+../objects/use_window$o :	$(base)/use_window.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/use_window.c -o ../objects/use_window$o
+
+../objects/wresize$o :	$(base)/wresize.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/wresize.c -o ../objects/wresize$o
+
+../objects/access$o :	$(tinfo)/access.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/access.c -o ../objects/access$o
+
+../objects/add_tries$o :	$(tinfo)/add_tries.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/add_tries.c -o ../objects/add_tries$o
+
+../objects/alloc_ttype$o :	$(tinfo)/alloc_ttype.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/alloc_ttype.c -o ../objects/alloc_ttype$o
+
+../objects/codes$o :	./codes.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/codes.c -o ../objects/codes$o
+
+../objects/comp_error$o :	$(tinfo)/comp_error.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/comp_error.c -o ../objects/comp_error$o
+
+../objects/db_iterator$o :	$(tinfo)/db_iterator.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/db_iterator.c -o ../objects/db_iterator$o
+
+../objects/doalloc$o :	$(tinfo)/doalloc.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/doalloc.c -o ../objects/doalloc$o
+
+../objects/entries$o :	$(tinfo)/entries.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/entries.c -o ../objects/entries$o
+
+../objects/fallback$o :	./fallback.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/fallback.c -o ../objects/fallback$o
+
+../objects/free_ttype$o :	$(tinfo)/free_ttype.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/free_ttype.c -o ../objects/free_ttype$o
+
+../objects/getenv_num$o :	$(tinfo)/getenv_num.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/getenv_num.c -o ../objects/getenv_num$o
+
+../objects/home_terminfo$o :	$(tinfo)/home_terminfo.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/home_terminfo.c -o ../objects/home_terminfo$o
+
+../objects/init_keytry$o :	$(tinfo)/init_keytry.c \
+			../include/term.h \
+			$(INCDIR)/tic.h \
+			init_keytry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/init_keytry.c -o ../objects/init_keytry$o
+
+../objects/lib_acs$o :	$(tinfo)/lib_acs.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_acs.c -o ../objects/lib_acs$o
+
+../objects/lib_baudrate$o :	$(tinfo)/lib_baudrate.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_baudrate.c -o ../objects/lib_baudrate$o
+
+../objects/lib_cur_term$o :	$(tinfo)/lib_cur_term.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_cur_term.c -o ../objects/lib_cur_term$o
+
+../objects/lib_data$o :	$(tinfo)/lib_data.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_data.c -o ../objects/lib_data$o
+
+../objects/lib_has_cap$o :	$(tinfo)/lib_has_cap.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_has_cap.c -o ../objects/lib_has_cap$o
+
+../objects/lib_kernel$o :	$(tinfo)/lib_kernel.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_kernel.c -o ../objects/lib_kernel$o
+
+../objects/lib_keyname$o :	./lib_keyname.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/lib_keyname.c -o ../objects/lib_keyname$o
+
+../objects/lib_longname$o :	$(tinfo)/lib_longname.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_longname.c -o ../objects/lib_longname$o
+
+../objects/lib_napms$o :	$(tinfo)/lib_napms.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_napms.c -o ../objects/lib_napms$o
+
+../objects/lib_options$o :	$(tinfo)/lib_options.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_options.c -o ../objects/lib_options$o
+
+../objects/lib_raw$o :	$(tinfo)/lib_raw.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_raw.c -o ../objects/lib_raw$o
+
+../objects/lib_setup$o :	$(tinfo)/lib_setup.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_setup.c -o ../objects/lib_setup$o
+
+../objects/lib_termcap$o :	$(tinfo)/lib_termcap.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h \
+			$(INCDIR)/capdefaults.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_termcap.c -o ../objects/lib_termcap$o
+
+../objects/lib_termname$o :	$(tinfo)/lib_termname.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_termname.c -o ../objects/lib_termname$o
+
+../objects/lib_tgoto$o :	$(tinfo)/lib_tgoto.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_tgoto.c -o ../objects/lib_tgoto$o
+
+../objects/lib_ti$o :	$(tinfo)/lib_ti.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_ti.c -o ../objects/lib_ti$o
+
+../objects/lib_tparm$o :	$(tinfo)/lib_tparm.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_tparm.c -o ../objects/lib_tparm$o
+
+../objects/lib_tputs$o :	$(tinfo)/lib_tputs.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_tputs.c -o ../objects/lib_tputs$o
+
+../objects/lib_trace$o :	$(trace)/lib_trace.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(trace)/lib_trace.c -o ../objects/lib_trace$o
+
+../objects/lib_ttyflags$o :	$(tinfo)/lib_ttyflags.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/lib_ttyflags.c -o ../objects/lib_ttyflags$o
+
+../objects/lib_twait$o :	$(serial)/lib_twait.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(serial)/lib_twait.c -o ../objects/lib_twait$o
+
+../objects/name_match$o :	$(tinfo)/name_match.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/name_match.c -o ../objects/name_match$o
+
+../objects/names$o :	./names.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/names.c -o ../objects/names$o
+
+../objects/read_entry$o :	$(tinfo)/read_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/read_entry.c -o ../objects/read_entry$o
+
+../objects/read_termcap$o :	$(tinfo)/read_termcap.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/read_termcap.c -o ../objects/read_termcap$o
+
+../objects/setbuf$o :	$(tinfo)/setbuf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/setbuf.c -o ../objects/setbuf$o
+
+../objects/strings$o :	$(tinfo)/strings.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/strings.c -o ../objects/strings$o
+
+../objects/tries$o :	$(base)/tries.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/tries.c -o ../objects/tries$o
+
+../objects/trim_sgr0$o :	$(tinfo)/trim_sgr0.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/trim_sgr0.c -o ../objects/trim_sgr0$o
+
+../objects/unctrl$o :	./unctrl.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/unctrl.c -o ../objects/unctrl$o
+
+../objects/visbuf$o :	$(trace)/visbuf.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(trace)/visbuf.c -o ../objects/visbuf$o
+
+../objects/alloc_entry$o :	$(tinfo)/alloc_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/alloc_entry.c -o ../objects/alloc_entry$o
+
+../objects/captoinfo$o :	$(tinfo)/captoinfo.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/captoinfo.c -o ../objects/captoinfo$o
+
+../objects/comp_captab$o :	./comp_captab.c \
+			$(INCDIR)/tic.h \
+			../include/term.h \
+			../include/hashsize.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/comp_captab.c -o ../objects/comp_captab$o
+
+../objects/comp_expand$o :	$(tinfo)/comp_expand.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/comp_expand.c -o ../objects/comp_expand$o
+
+../objects/comp_hash$o :	$(tinfo)/comp_hash.c \
+			../include/term.h \
+			$(INCDIR)/tic.h \
+			../include/hashsize.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/comp_hash.c -o ../objects/comp_hash$o
+
+../objects/comp_parse$o :	$(tinfo)/comp_parse.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/comp_parse.c -o ../objects/comp_parse$o
+
+../objects/comp_scan$o :	$(tinfo)/comp_scan.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/comp_scan.c -o ../objects/comp_scan$o
+
+../objects/parse_entry$o :	$(tinfo)/parse_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h \
+			../include/parametrized.h \
+			$(INCDIR)/capdefaults.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/parse_entry.c -o ../objects/parse_entry$o
+
+../objects/write_entry$o :	$(tinfo)/write_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/write_entry.c -o ../objects/write_entry$o
+
+../objects/define_key$o :	$(base)/define_key.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/define_key.c -o ../objects/define_key$o
+
+../objects/hashed_db$o :	$(tinfo)/hashed_db.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(tinfo)/hashed_db.c -o ../objects/hashed_db$o
+
+../objects/key_defined$o :	$(base)/key_defined.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/key_defined.c -o ../objects/key_defined$o
+
+../objects/keybound$o :	$(base)/keybound.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/keybound.c -o ../objects/keybound$o
+
+../objects/keyok$o :	$(base)/keyok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/keyok.c -o ../objects/keyok$o
+
+../objects/version$o :	$(base)/version.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_NORMAL) -c ../ncurses/$(base)/version.c -o ../objects/version$o
+
+
+# generated by mk-1st.awk (subset=ticlib+termlib+ext_tinfo+base+ext_funcs)
+#  name:          ncurses
+#  traces:        DEBUG
+#  MODEL:         DEBUG
+#  model:         obj_g
+#  prefix:        lib
+#  suffix:        _g.a
+#  subset:        ticlib+termlib+ext_tinfo+base+ext_funcs
+#  ShlibVer:      auto
+#  ShlibVerInfix: no
+#  TermlibRoot:   ncurses
+#  TermlibSuffix: .a
+#  ReLink:        
+#  DoLinks:       no
+#  rmSoLocs:      no
+#  ldconfig:      :
+#  overwrite:     no
+#  depend:        ../include/ncurses_cfg.h ./curses.priv.h
+#  host:          arm-unknown-eabi
+
+DEBUG_OBJS = \
+	../obj_g/hardscroll$o \
+	../obj_g/hashmap$o \
+	../obj_g/lib_addch$o \
+	../obj_g/lib_addstr$o \
+	../obj_g/lib_beep$o \
+	../obj_g/lib_bkgd$o \
+	../obj_g/lib_box$o \
+	../obj_g/lib_chgat$o \
+	../obj_g/lib_clear$o \
+	../obj_g/lib_clearok$o \
+	../obj_g/lib_clrbot$o \
+	../obj_g/lib_clreol$o \
+	../obj_g/lib_color$o \
+	../obj_g/lib_colorset$o \
+	../obj_g/lib_delch$o \
+	../obj_g/lib_delwin$o \
+	../obj_g/lib_echo$o \
+	../obj_g/lib_endwin$o \
+	../obj_g/lib_erase$o \
+	../obj_g/lib_flash$o \
+	../obj_g/lib_gen$o \
+	../obj_g/lib_getch$o \
+	../obj_g/lib_getstr$o \
+	../obj_g/lib_hline$o \
+	../obj_g/lib_immedok$o \
+	../obj_g/lib_inchstr$o \
+	../obj_g/lib_initscr$o \
+	../obj_g/lib_insch$o \
+	../obj_g/lib_insdel$o \
+	../obj_g/lib_insnstr$o \
+	../obj_g/lib_instr$o \
+	../obj_g/lib_isendwin$o \
+	../obj_g/lib_leaveok$o \
+	../obj_g/lib_mouse$o \
+	../obj_g/lib_move$o \
+	../obj_g/lib_mvcur$o \
+	../obj_g/lib_mvwin$o \
+	../obj_g/lib_newterm$o \
+	../obj_g/lib_newwin$o \
+	../obj_g/lib_nl$o \
+	../obj_g/lib_overlay$o \
+	../obj_g/lib_pad$o \
+	../obj_g/lib_printw$o \
+	../obj_g/lib_redrawln$o \
+	../obj_g/lib_refresh$o \
+	../obj_g/lib_restart$o \
+	../obj_g/lib_scanw$o \
+	../obj_g/lib_screen$o \
+	../obj_g/lib_scroll$o \
+	../obj_g/lib_scrollok$o \
+	../obj_g/lib_scrreg$o \
+	../obj_g/lib_set_term$o \
+	../obj_g/lib_slk$o \
+	../obj_g/lib_slkatr_set$o \
+	../obj_g/lib_slkatrof$o \
+	../obj_g/lib_slkatron$o \
+	../obj_g/lib_slkatrset$o \
+	../obj_g/lib_slkattr$o \
+	../obj_g/lib_slkclear$o \
+	../obj_g/lib_slkcolor$o \
+	../obj_g/lib_slkinit$o \
+	../obj_g/lib_slklab$o \
+	../obj_g/lib_slkrefr$o \
+	../obj_g/lib_slkset$o \
+	../obj_g/lib_slktouch$o \
+	../obj_g/lib_touch$o \
+	../obj_g/lib_tracedmp$o \
+	../obj_g/lib_tracemse$o \
+	../obj_g/lib_tstp$o \
+	../obj_g/lib_ungetch$o \
+	../obj_g/lib_vidattr$o \
+	../obj_g/lib_vline$o \
+	../obj_g/lib_wattroff$o \
+	../obj_g/lib_wattron$o \
+	../obj_g/lib_winch$o \
+	../obj_g/lib_window$o \
+	../obj_g/nc_panel$o \
+	../obj_g/safe_sprintf$o \
+	../obj_g/tty_update$o \
+	../obj_g/varargs$o \
+	../obj_g/memmove$o \
+	../obj_g/vsscanf$o \
+	../obj_g/lib_freeall$o \
+	../obj_g/expanded$o \
+	../obj_g/legacy_coding$o \
+	../obj_g/lib_dft_fgbg$o \
+	../obj_g/lib_print$o \
+	../obj_g/resizeterm$o \
+	../obj_g/trace_xnames$o \
+	../obj_g/use_screen$o \
+	../obj_g/use_window$o \
+	../obj_g/wresize$o \
+	../obj_g/access$o \
+	../obj_g/add_tries$o \
+	../obj_g/alloc_ttype$o \
+	../obj_g/codes$o \
+	../obj_g/comp_error$o \
+	../obj_g/db_iterator$o \
+	../obj_g/doalloc$o \
+	../obj_g/entries$o \
+	../obj_g/fallback$o \
+	../obj_g/free_ttype$o \
+	../obj_g/getenv_num$o \
+	../obj_g/home_terminfo$o \
+	../obj_g/init_keytry$o \
+	../obj_g/lib_acs$o \
+	../obj_g/lib_baudrate$o \
+	../obj_g/lib_cur_term$o \
+	../obj_g/lib_data$o \
+	../obj_g/lib_has_cap$o \
+	../obj_g/lib_kernel$o \
+	../obj_g/lib_keyname$o \
+	../obj_g/lib_longname$o \
+	../obj_g/lib_napms$o \
+	../obj_g/lib_options$o \
+	../obj_g/lib_raw$o \
+	../obj_g/lib_setup$o \
+	../obj_g/lib_termcap$o \
+	../obj_g/lib_termname$o \
+	../obj_g/lib_tgoto$o \
+	../obj_g/lib_ti$o \
+	../obj_g/lib_tparm$o \
+	../obj_g/lib_tputs$o \
+	../obj_g/lib_trace$o \
+	../obj_g/lib_traceatr$o \
+	../obj_g/lib_tracebits$o \
+	../obj_g/lib_tracechr$o \
+	../obj_g/lib_ttyflags$o \
+	../obj_g/lib_twait$o \
+	../obj_g/name_match$o \
+	../obj_g/names$o \
+	../obj_g/read_entry$o \
+	../obj_g/read_termcap$o \
+	../obj_g/setbuf$o \
+	../obj_g/strings$o \
+	../obj_g/trace_buf$o \
+	../obj_g/trace_tries$o \
+	../obj_g/tries$o \
+	../obj_g/trim_sgr0$o \
+	../obj_g/unctrl$o \
+	../obj_g/visbuf$o \
+	../obj_g/alloc_entry$o \
+	../obj_g/captoinfo$o \
+	../obj_g/comp_captab$o \
+	../obj_g/comp_expand$o \
+	../obj_g/comp_hash$o \
+	../obj_g/comp_parse$o \
+	../obj_g/comp_scan$o \
+	../obj_g/parse_entry$o \
+	../obj_g/write_entry$o \
+	../obj_g/define_key$o \
+	../obj_g/hashed_db$o \
+	../obj_g/key_defined$o \
+	../obj_g/keybound$o \
+	../obj_g/keyok$o \
+	../obj_g/version$o
+
+$(DEBUG_OBJS) : ../include/ncurses_cfg.h ./curses.priv.h
+
+../lib/libncurses_g.a : $(DEBUG_OBJS)
+	$(AR) $(AR_OPTS) $@ $?
+	$(RANLIB) $@
+
+install \
+install.libs \
+install.ncurses :: $(DESTDIR)$(libdir) ../lib/libncurses_g.a
+	@echo installing ../lib/libncurses_g.a as $(DESTDIR)$(libdir)/libncurses_g.a
+	$(INSTALL_DATA) ../lib/libncurses_g.a $(DESTDIR)$(libdir)/libncurses_g.a
+	$(RANLIB) $(DESTDIR)$(libdir)/libncurses_g.a
+
+uninstall \
+uninstall.libs \
+uninstall.ncurses ::
+	@echo uninstalling $(DESTDIR)$(libdir)/libncurses_g.a
+	-@rm -f $(DESTDIR)$(libdir)/libncurses_g.a
+
+clean ::
+	-rm -f ../lib/libncurses_g.a
+
+mostlyclean::
+	-rm -f $(DEBUG_OBJS)
+
+# generated by mk-2nd.awk
+#   model:      obj_g
+#   MODEL:      DEBUG
+#   echo:       yes
+#   subset:     ticlib+termlib+ext_tinfo+base+ext_funcs
+#   crenames:   yes
+#   cxxrenames: no
+#   traces:     DEBUG
+#   srcdir:     .
+
+../obj_g/hardscroll$o :	$(serial)/hardscroll.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/hardscroll.c -o ../obj_g/hardscroll$o
+
+../obj_g/hashmap$o :	$(serial)/hashmap.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/hashmap.c -o ../obj_g/hashmap$o
+
+../obj_g/lib_addch$o :	$(base)/lib_addch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_addch.c -o ../obj_g/lib_addch$o
+
+../obj_g/lib_addstr$o :	$(base)/lib_addstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_addstr.c -o ../obj_g/lib_addstr$o
+
+../obj_g/lib_beep$o :	$(base)/lib_beep.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_beep.c -o ../obj_g/lib_beep$o
+
+../obj_g/lib_bkgd$o :	$(base)/lib_bkgd.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_bkgd.c -o ../obj_g/lib_bkgd$o
+
+../obj_g/lib_box$o :	$(base)/lib_box.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_box.c -o ../obj_g/lib_box$o
+
+../obj_g/lib_chgat$o :	$(base)/lib_chgat.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_chgat.c -o ../obj_g/lib_chgat$o
+
+../obj_g/lib_clear$o :	$(base)/lib_clear.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_clear.c -o ../obj_g/lib_clear$o
+
+../obj_g/lib_clearok$o :	$(base)/lib_clearok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_clearok.c -o ../obj_g/lib_clearok$o
+
+../obj_g/lib_clrbot$o :	$(base)/lib_clrbot.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_clrbot.c -o ../obj_g/lib_clrbot$o
+
+../obj_g/lib_clreol$o :	$(base)/lib_clreol.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_clreol.c -o ../obj_g/lib_clreol$o
+
+../obj_g/lib_color$o :	$(base)/lib_color.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_color.c -o ../obj_g/lib_color$o
+
+../obj_g/lib_colorset$o :	$(base)/lib_colorset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_colorset.c -o ../obj_g/lib_colorset$o
+
+../obj_g/lib_delch$o :	$(base)/lib_delch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_delch.c -o ../obj_g/lib_delch$o
+
+../obj_g/lib_delwin$o :	$(base)/lib_delwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_delwin.c -o ../obj_g/lib_delwin$o
+
+../obj_g/lib_echo$o :	$(base)/lib_echo.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_echo.c -o ../obj_g/lib_echo$o
+
+../obj_g/lib_endwin$o :	$(base)/lib_endwin.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_endwin.c -o ../obj_g/lib_endwin$o
+
+../obj_g/lib_erase$o :	$(base)/lib_erase.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_erase.c -o ../obj_g/lib_erase$o
+
+../obj_g/lib_flash$o :	$(base)/lib_flash.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_flash.c -o ../obj_g/lib_flash$o
+
+../obj_g/lib_gen$o :	./lib_gen.c \
+			../include/curses.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/lib_gen.c -o ../obj_g/lib_gen$o
+
+../obj_g/lib_getch$o :	$(base)/lib_getch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_getch.c -o ../obj_g/lib_getch$o
+
+../obj_g/lib_getstr$o :	$(base)/lib_getstr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_getstr.c -o ../obj_g/lib_getstr$o
+
+../obj_g/lib_hline$o :	$(base)/lib_hline.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_hline.c -o ../obj_g/lib_hline$o
+
+../obj_g/lib_immedok$o :	$(base)/lib_immedok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_immedok.c -o ../obj_g/lib_immedok$o
+
+../obj_g/lib_inchstr$o :	$(base)/lib_inchstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_inchstr.c -o ../obj_g/lib_inchstr$o
+
+../obj_g/lib_initscr$o :	$(base)/lib_initscr.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_initscr.c -o ../obj_g/lib_initscr$o
+
+../obj_g/lib_insch$o :	$(base)/lib_insch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_insch.c -o ../obj_g/lib_insch$o
+
+../obj_g/lib_insdel$o :	$(base)/lib_insdel.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_insdel.c -o ../obj_g/lib_insdel$o
+
+../obj_g/lib_insnstr$o :	$(base)/lib_insnstr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_insnstr.c -o ../obj_g/lib_insnstr$o
+
+../obj_g/lib_instr$o :	$(base)/lib_instr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_instr.c -o ../obj_g/lib_instr$o
+
+../obj_g/lib_isendwin$o :	$(base)/lib_isendwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_isendwin.c -o ../obj_g/lib_isendwin$o
+
+../obj_g/lib_leaveok$o :	$(base)/lib_leaveok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_leaveok.c -o ../obj_g/lib_leaveok$o
+
+../obj_g/lib_mouse$o :	$(base)/lib_mouse.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_mouse.c -o ../obj_g/lib_mouse$o
+
+../obj_g/lib_move$o :	$(base)/lib_move.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_move.c -o ../obj_g/lib_move$o
+
+../obj_g/lib_mvcur$o :	$(serial)/lib_mvcur.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/lib_mvcur.c -o ../obj_g/lib_mvcur$o
+
+../obj_g/lib_mvwin$o :	$(base)/lib_mvwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_mvwin.c -o ../obj_g/lib_mvwin$o
+
+../obj_g/lib_newterm$o :	$(base)/lib_newterm.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_newterm.c -o ../obj_g/lib_newterm$o
+
+../obj_g/lib_newwin$o :	$(base)/lib_newwin.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_newwin.c -o ../obj_g/lib_newwin$o
+
+../obj_g/lib_nl$o :	$(base)/lib_nl.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_nl.c -o ../obj_g/lib_nl$o
+
+../obj_g/lib_overlay$o :	$(base)/lib_overlay.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_overlay.c -o ../obj_g/lib_overlay$o
+
+../obj_g/lib_pad$o :	$(base)/lib_pad.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_pad.c -o ../obj_g/lib_pad$o
+
+../obj_g/lib_printw$o :	$(base)/lib_printw.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_printw.c -o ../obj_g/lib_printw$o
+
+../obj_g/lib_redrawln$o :	$(base)/lib_redrawln.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_redrawln.c -o ../obj_g/lib_redrawln$o
+
+../obj_g/lib_refresh$o :	$(base)/lib_refresh.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_refresh.c -o ../obj_g/lib_refresh$o
+
+../obj_g/lib_restart$o :	$(base)/lib_restart.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_restart.c -o ../obj_g/lib_restart$o
+
+../obj_g/lib_scanw$o :	$(base)/lib_scanw.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_scanw.c -o ../obj_g/lib_scanw$o
+
+../obj_g/lib_screen$o :	$(base)/lib_screen.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_screen.c -o ../obj_g/lib_screen$o
+
+../obj_g/lib_scroll$o :	$(base)/lib_scroll.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_scroll.c -o ../obj_g/lib_scroll$o
+
+../obj_g/lib_scrollok$o :	$(base)/lib_scrollok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_scrollok.c -o ../obj_g/lib_scrollok$o
+
+../obj_g/lib_scrreg$o :	$(base)/lib_scrreg.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_scrreg.c -o ../obj_g/lib_scrreg$o
+
+../obj_g/lib_set_term$o :	$(base)/lib_set_term.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_set_term.c -o ../obj_g/lib_set_term$o
+
+../obj_g/lib_slk$o :	$(base)/lib_slk.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slk.c -o ../obj_g/lib_slk$o
+
+../obj_g/lib_slkatr_set$o :	$(base)/lib_slkatr_set.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkatr_set.c -o ../obj_g/lib_slkatr_set$o
+
+../obj_g/lib_slkatrof$o :	$(base)/lib_slkatrof.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkatrof.c -o ../obj_g/lib_slkatrof$o
+
+../obj_g/lib_slkatron$o :	$(base)/lib_slkatron.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkatron.c -o ../obj_g/lib_slkatron$o
+
+../obj_g/lib_slkatrset$o :	$(base)/lib_slkatrset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkatrset.c -o ../obj_g/lib_slkatrset$o
+
+../obj_g/lib_slkattr$o :	$(base)/lib_slkattr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkattr.c -o ../obj_g/lib_slkattr$o
+
+../obj_g/lib_slkclear$o :	$(base)/lib_slkclear.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkclear.c -o ../obj_g/lib_slkclear$o
+
+../obj_g/lib_slkcolor$o :	$(base)/lib_slkcolor.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkcolor.c -o ../obj_g/lib_slkcolor$o
+
+../obj_g/lib_slkinit$o :	$(base)/lib_slkinit.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkinit.c -o ../obj_g/lib_slkinit$o
+
+../obj_g/lib_slklab$o :	$(base)/lib_slklab.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slklab.c -o ../obj_g/lib_slklab$o
+
+../obj_g/lib_slkrefr$o :	$(base)/lib_slkrefr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkrefr.c -o ../obj_g/lib_slkrefr$o
+
+../obj_g/lib_slkset$o :	$(base)/lib_slkset.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slkset.c -o ../obj_g/lib_slkset$o
+
+../obj_g/lib_slktouch$o :	$(base)/lib_slktouch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_slktouch.c -o ../obj_g/lib_slktouch$o
+
+../obj_g/lib_touch$o :	$(base)/lib_touch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_touch.c -o ../obj_g/lib_touch$o
+
+../obj_g/lib_tracedmp$o :	$(trace)/lib_tracedmp.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_tracedmp.c -o ../obj_g/lib_tracedmp$o
+
+../obj_g/lib_tracemse$o :	$(trace)/lib_tracemse.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_tracemse.c -o ../obj_g/lib_tracemse$o
+
+../obj_g/lib_tstp$o :	$(serial)/lib_tstp.c \
+			$(srcdir)/SigAction.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/lib_tstp.c -o ../obj_g/lib_tstp$o
+
+../obj_g/lib_ungetch$o :	$(base)/lib_ungetch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_ungetch.c -o ../obj_g/lib_ungetch$o
+
+../obj_g/lib_vidattr$o :	$(serial)/lib_vidattr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/lib_vidattr.c -o ../obj_g/lib_vidattr$o
+
+../obj_g/lib_vline$o :	$(base)/lib_vline.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_vline.c -o ../obj_g/lib_vline$o
+
+../obj_g/lib_wattroff$o :	$(base)/lib_wattroff.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_wattroff.c -o ../obj_g/lib_wattroff$o
+
+../obj_g/lib_wattron$o :	$(base)/lib_wattron.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_wattron.c -o ../obj_g/lib_wattron$o
+
+../obj_g/lib_winch$o :	$(base)/lib_winch.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_winch.c -o ../obj_g/lib_winch$o
+
+../obj_g/lib_window$o :	$(base)/lib_window.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_window.c -o ../obj_g/lib_window$o
+
+../obj_g/link_test$o :	./link_test.c \
+			../include/curses.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/link_test.c -o ../obj_g/link_test$o
+
+../obj_g/nc_panel$o :	$(base)/nc_panel.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/nc_panel.c -o ../obj_g/nc_panel$o
+
+../obj_g/safe_sprintf$o :	$(base)/safe_sprintf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/safe_sprintf.c -o ../obj_g/safe_sprintf$o
+
+../obj_g/tty_update$o :	$(serial)/tty_update.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/tty_update.c -o ../obj_g/tty_update$o
+
+../obj_g/varargs$o :	$(trace)/varargs.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/varargs.c -o ../obj_g/varargs$o
+
+../obj_g/memmove$o :	$(base)/memmove.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/memmove.c -o ../obj_g/memmove$o
+
+../obj_g/vsscanf$o :	$(base)/vsscanf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/vsscanf.c -o ../obj_g/vsscanf$o
+
+../obj_g/lib_freeall$o :	$(base)/lib_freeall.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_freeall.c -o ../obj_g/lib_freeall$o
+
+../obj_g/expanded$o :	./expanded.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/expanded.c -o ../obj_g/expanded$o
+
+../obj_g/legacy_coding$o :	$(base)/legacy_coding.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/legacy_coding.c -o ../obj_g/legacy_coding$o
+
+../obj_g/lib_dft_fgbg$o :	$(base)/lib_dft_fgbg.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/lib_dft_fgbg.c -o ../obj_g/lib_dft_fgbg$o
+
+../obj_g/lib_print$o :	$(tinfo)/lib_print.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_print.c -o ../obj_g/lib_print$o
+
+../obj_g/resizeterm$o :	$(base)/resizeterm.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/resizeterm.c -o ../obj_g/resizeterm$o
+
+../obj_g/trace_xnames$o :	$(trace)/trace_xnames.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/trace_xnames.c -o ../obj_g/trace_xnames$o
+
+../obj_g/use_screen$o :	$(tinfo)/use_screen.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/use_screen.c -o ../obj_g/use_screen$o
+
+../obj_g/use_window$o :	$(base)/use_window.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/use_window.c -o ../obj_g/use_window$o
+
+../obj_g/wresize$o :	$(base)/wresize.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/wresize.c -o ../obj_g/wresize$o
+
+../obj_g/access$o :	$(tinfo)/access.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/access.c -o ../obj_g/access$o
+
+../obj_g/add_tries$o :	$(tinfo)/add_tries.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/add_tries.c -o ../obj_g/add_tries$o
+
+../obj_g/alloc_ttype$o :	$(tinfo)/alloc_ttype.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/alloc_ttype.c -o ../obj_g/alloc_ttype$o
+
+../obj_g/codes$o :	./codes.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/codes.c -o ../obj_g/codes$o
+
+../obj_g/comp_error$o :	$(tinfo)/comp_error.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/comp_error.c -o ../obj_g/comp_error$o
+
+../obj_g/db_iterator$o :	$(tinfo)/db_iterator.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/db_iterator.c -o ../obj_g/db_iterator$o
+
+../obj_g/doalloc$o :	$(tinfo)/doalloc.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/doalloc.c -o ../obj_g/doalloc$o
+
+../obj_g/entries$o :	$(tinfo)/entries.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/entries.c -o ../obj_g/entries$o
+
+../obj_g/fallback$o :	./fallback.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/fallback.c -o ../obj_g/fallback$o
+
+../obj_g/free_ttype$o :	$(tinfo)/free_ttype.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/free_ttype.c -o ../obj_g/free_ttype$o
+
+../obj_g/getenv_num$o :	$(tinfo)/getenv_num.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/getenv_num.c -o ../obj_g/getenv_num$o
+
+../obj_g/home_terminfo$o :	$(tinfo)/home_terminfo.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/home_terminfo.c -o ../obj_g/home_terminfo$o
+
+../obj_g/init_keytry$o :	$(tinfo)/init_keytry.c \
+			../include/term.h \
+			$(INCDIR)/tic.h \
+			init_keytry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/init_keytry.c -o ../obj_g/init_keytry$o
+
+../obj_g/lib_acs$o :	$(tinfo)/lib_acs.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_acs.c -o ../obj_g/lib_acs$o
+
+../obj_g/lib_baudrate$o :	$(tinfo)/lib_baudrate.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_baudrate.c -o ../obj_g/lib_baudrate$o
+
+../obj_g/lib_cur_term$o :	$(tinfo)/lib_cur_term.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_cur_term.c -o ../obj_g/lib_cur_term$o
+
+../obj_g/lib_data$o :	$(tinfo)/lib_data.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_data.c -o ../obj_g/lib_data$o
+
+../obj_g/lib_has_cap$o :	$(tinfo)/lib_has_cap.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_has_cap.c -o ../obj_g/lib_has_cap$o
+
+../obj_g/lib_kernel$o :	$(tinfo)/lib_kernel.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_kernel.c -o ../obj_g/lib_kernel$o
+
+../obj_g/lib_keyname$o :	./lib_keyname.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/lib_keyname.c -o ../obj_g/lib_keyname$o
+
+../obj_g/lib_longname$o :	$(tinfo)/lib_longname.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_longname.c -o ../obj_g/lib_longname$o
+
+../obj_g/lib_napms$o :	$(tinfo)/lib_napms.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_napms.c -o ../obj_g/lib_napms$o
+
+../obj_g/lib_options$o :	$(tinfo)/lib_options.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_options.c -o ../obj_g/lib_options$o
+
+../obj_g/lib_raw$o :	$(tinfo)/lib_raw.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_raw.c -o ../obj_g/lib_raw$o
+
+../obj_g/lib_setup$o :	$(tinfo)/lib_setup.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_setup.c -o ../obj_g/lib_setup$o
+
+../obj_g/lib_termcap$o :	$(tinfo)/lib_termcap.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h \
+			$(INCDIR)/capdefaults.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_termcap.c -o ../obj_g/lib_termcap$o
+
+../obj_g/lib_termname$o :	$(tinfo)/lib_termname.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_termname.c -o ../obj_g/lib_termname$o
+
+../obj_g/lib_tgoto$o :	$(tinfo)/lib_tgoto.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_tgoto.c -o ../obj_g/lib_tgoto$o
+
+../obj_g/lib_ti$o :	$(tinfo)/lib_ti.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_ti.c -o ../obj_g/lib_ti$o
+
+../obj_g/lib_tparm$o :	$(tinfo)/lib_tparm.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_tparm.c -o ../obj_g/lib_tparm$o
+
+../obj_g/lib_tputs$o :	$(tinfo)/lib_tputs.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_tputs.c -o ../obj_g/lib_tputs$o
+
+../obj_g/lib_trace$o :	$(trace)/lib_trace.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_trace.c -o ../obj_g/lib_trace$o
+
+../obj_g/lib_traceatr$o :	$(trace)/lib_traceatr.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_traceatr.c -o ../obj_g/lib_traceatr$o
+
+../obj_g/lib_tracebits$o :	$(trace)/lib_tracebits.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_tracebits.c -o ../obj_g/lib_tracebits$o
+
+../obj_g/lib_tracechr$o :	$(trace)/lib_tracechr.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/lib_tracechr.c -o ../obj_g/lib_tracechr$o
+
+../obj_g/lib_ttyflags$o :	$(tinfo)/lib_ttyflags.c \
+			../include/term.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/lib_ttyflags.c -o ../obj_g/lib_ttyflags$o
+
+../obj_g/lib_twait$o :	$(serial)/lib_twait.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(serial)/lib_twait.c -o ../obj_g/lib_twait$o
+
+../obj_g/name_match$o :	$(tinfo)/name_match.c \
+			../include/term.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/name_match.c -o ../obj_g/name_match$o
+
+../obj_g/names$o :	./names.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/names.c -o ../obj_g/names$o
+
+../obj_g/read_entry$o :	$(tinfo)/read_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/read_entry.c -o ../obj_g/read_entry$o
+
+../obj_g/read_termcap$o :	$(tinfo)/read_termcap.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/read_termcap.c -o ../obj_g/read_termcap$o
+
+../obj_g/setbuf$o :	$(tinfo)/setbuf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/setbuf.c -o ../obj_g/setbuf$o
+
+../obj_g/strings$o :	$(tinfo)/strings.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/strings.c -o ../obj_g/strings$o
+
+../obj_g/trace_buf$o :	$(trace)/trace_buf.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/trace_buf.c -o ../obj_g/trace_buf$o
+
+../obj_g/trace_tries$o :	$(trace)/trace_tries.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/trace_tries.c -o ../obj_g/trace_tries$o
+
+../obj_g/tries$o :	$(base)/tries.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/tries.c -o ../obj_g/tries$o
+
+../obj_g/trim_sgr0$o :	$(tinfo)/trim_sgr0.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/trim_sgr0.c -o ../obj_g/trim_sgr0$o
+
+../obj_g/unctrl$o :	./unctrl.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/unctrl.c -o ../obj_g/unctrl$o
+
+../obj_g/visbuf$o :	$(trace)/visbuf.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(trace)/visbuf.c -o ../obj_g/visbuf$o
+
+../obj_g/alloc_entry$o :	$(tinfo)/alloc_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/alloc_entry.c -o ../obj_g/alloc_entry$o
+
+../obj_g/captoinfo$o :	$(tinfo)/captoinfo.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/captoinfo.c -o ../obj_g/captoinfo$o
+
+../obj_g/comp_captab$o :	./comp_captab.c \
+			$(INCDIR)/tic.h \
+			../include/term.h \
+			../include/hashsize.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/comp_captab.c -o ../obj_g/comp_captab$o
+
+../obj_g/comp_expand$o :	$(tinfo)/comp_expand.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/comp_expand.c -o ../obj_g/comp_expand$o
+
+../obj_g/comp_hash$o :	$(tinfo)/comp_hash.c \
+			../include/term.h \
+			$(INCDIR)/tic.h \
+			../include/hashsize.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/comp_hash.c -o ../obj_g/comp_hash$o
+
+../obj_g/comp_parse$o :	$(tinfo)/comp_parse.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/comp_parse.c -o ../obj_g/comp_parse$o
+
+../obj_g/comp_scan$o :	$(tinfo)/comp_scan.c \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/comp_scan.c -o ../obj_g/comp_scan$o
+
+../obj_g/parse_entry$o :	$(tinfo)/parse_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h \
+			../include/parametrized.h \
+			$(INCDIR)/capdefaults.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/parse_entry.c -o ../obj_g/parse_entry$o
+
+../obj_g/write_entry$o :	$(tinfo)/write_entry.c \
+			../include/term.h \
+			$(INCDIR)/term_entry.h \
+			$(INCDIR)/tic.h
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/write_entry.c -o ../obj_g/write_entry$o
+
+../obj_g/define_key$o :	$(base)/define_key.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/define_key.c -o ../obj_g/define_key$o
+
+../obj_g/hashed_db$o :	$(tinfo)/hashed_db.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(tinfo)/hashed_db.c -o ../obj_g/hashed_db$o
+
+../obj_g/key_defined$o :	$(base)/key_defined.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/key_defined.c -o ../obj_g/key_defined$o
+
+../obj_g/keybound$o :	$(base)/keybound.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/keybound.c -o ../obj_g/keybound$o
+
+../obj_g/keyok$o :	$(base)/keyok.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/keyok.c -o ../obj_g/keyok$o
+
+../obj_g/version$o :	$(base)/version.c
+	$(LIBTOOL_COMPILE) $(CC) $(CFLAGS_DEBUG) -c ../ncurses/$(base)/version.c -o ../obj_g/version$o
+
+depend : ${AUTO_SRC}
+	makedepend -- ${CPPFLAGS} -- ${C_SRC}
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/ncurses/codes.c b/ncurses/codes.c
new file mode 100644
index 0000000..14c785a
--- /dev/null
+++ b/ncurses/codes.c
@@ -0,0 +1,666 @@
+/* This file was generated by MKcodes.awk */
+
+#include <curses.priv.h>
+
+#define IT NCURSES_CONST char * const
+
+
+#if BROKEN_LINKER || USE_REENTRANT
+
+#include <term.h>
+
+static const char _nc_code_blob[] = 
+"bw\0" "am\0" "xb\0" "xs\0" "xn\0" "eo\0" "gn\0" "hc\0" "km\0" "hs\0" "in\0" \
+"da\0" "db\0" "mi\0" "ms\0" "os\0" "es\0" "xt\0" "hz\0" "ul\0" "xo\0" "nx\0" \
+"5i\0" "HC\0" "NR\0" "NP\0" "ND\0" "cc\0" "ut\0" "hl\0" "YA\0" "YB\0" "YC\0" \
+"YD\0" "YE\0" "YF\0" "YG\0" "co\0" "it\0" "li\0" "lm\0" "sg\0" "pb\0" "vt\0" \
+"ws\0" "Nl\0" "lh\0" "lw\0" "ma\0" "MW\0" "Co\0" "pa\0" "NC\0" "Ya\0" "Yb\0" \
+"Yc\0" "Yd\0" "Ye\0" "Yf\0" "Yg\0" "Yh\0" "Yi\0" "Yj\0" "Yk\0" "Yl\0" "Ym\0" \
+"Yn\0" "BT\0" "Yo\0" "Yp\0" "bt\0" "bl\0" "cr\0" "cs\0" "ct\0" "cl\0" "ce\0" \
+"cd\0" "ch\0" "CC\0" "cm\0" "do\0" "ho\0" "vi\0" "le\0" "CM\0" "ve\0" "nd\0" \
+"ll\0" "up\0" "vs\0" "dc\0" "dl\0" "ds\0" "hd\0" "as\0" "mb\0" "md\0" "ti\0" \
+"dm\0" "mh\0" "im\0" "mk\0" "mp\0" "mr\0" "so\0" "us\0" "ec\0" "ae\0" "me\0" \
+"te\0" "ed\0" "ei\0" "se\0" "ue\0" "vb\0" "ff\0" "fs\0" "i1\0" "is\0" "i3\0" \
+"if\0" "ic\0" "al\0" "ip\0" "kb\0" "ka\0" "kC\0" "kt\0" "kD\0" "kL\0" "kd\0" \
+"kM\0" "kE\0" "kS\0" "k0\0" "k1\0" "k;\0" "k2\0" "k3\0" "k4\0" "k5\0" "k6\0" \
+"k7\0" "k8\0" "k9\0" "kh\0" "kI\0" "kA\0" "kl\0" "kH\0" "kN\0" "kP\0" "kr\0" \
+"kF\0" "kR\0" "kT\0" "ku\0" "ke\0" "ks\0" "l0\0" "l1\0" "la\0" "l2\0" "l3\0" \
+"l4\0" "l5\0" "l6\0" "l7\0" "l8\0" "l9\0" "mo\0" "mm\0" "nw\0" "pc\0" "DC\0" \
+"DL\0" "DO\0" "IC\0" "SF\0" "AL\0" "LE\0" "RI\0" "SR\0" "UP\0" "pk\0" "pl\0" \
+"px\0" "ps\0" "pf\0" "po\0" "rp\0" "r1\0" "r2\0" "r3\0" "rf\0" "rc\0" "cv\0" \
+"sc\0" "sf\0" "sr\0" "sa\0" "st\0" "wi\0" "ta\0" "ts\0" "uc\0" "hu\0" "iP\0" \
+"K1\0" "K3\0" "K2\0" "K4\0" "K5\0" "pO\0" "rP\0" "ac\0" "pn\0" "kB\0" "SX\0" \
+"RX\0" "SA\0" "RA\0" "XN\0" "XF\0" "eA\0" "LO\0" "LF\0" "@1\0" "@2\0" "@3\0" \
+"@4\0" "@5\0" "@6\0" "@7\0" "@8\0" "@9\0" "@0\0" "%1\0" "%2\0" "%3\0" "%4\0" \
+"%5\0" "%6\0" "%7\0" "%8\0" "%9\0" "%0\0" "&1\0" "&2\0" "&3\0" "&4\0" "&5\0" \
+"&6\0" "&7\0" "&8\0" "&9\0" "&0\0" "*1\0" "*2\0" "*3\0" "*4\0" "*5\0" "*6\0" \
+"*7\0" "*8\0" "*9\0" "*0\0" "#1\0" "#2\0" "#3\0" "#4\0" "%a\0" "%b\0" "%c\0" \
+"%d\0" "%e\0" "%f\0" "%g\0" "%h\0" "%i\0" "%j\0" "!1\0" "!2\0" "!3\0" "RF\0" \
+"F1\0" "F2\0" "F3\0" "F4\0" "F5\0" "F6\0" "F7\0" "F8\0" "F9\0" "FA\0" "FB\0" \
+"FC\0" "FD\0" "FE\0" "FF\0" "FG\0" "FH\0" "FI\0" "FJ\0" "FK\0" "FL\0" "FM\0" \
+"FN\0" "FO\0" "FP\0" "FQ\0" "FR\0" "FS\0" "FT\0" "FU\0" "FV\0" "FW\0" "FX\0" \
+"FY\0" "FZ\0" "Fa\0" "Fb\0" "Fc\0" "Fd\0" "Fe\0" "Ff\0" "Fg\0" "Fh\0" "Fi\0" \
+"Fj\0" "Fk\0" "Fl\0" "Fm\0" "Fn\0" "Fo\0" "Fp\0" "Fq\0" "Fr\0" "cb\0" "MC\0" \
+"ML\0" "MR\0" "Lf\0" "SC\0" "DK\0" "RC\0" "CW\0" "WG\0" "HU\0" "DI\0" "QD\0" \
+"TO\0" "PU\0" "fh\0" "PA\0" "WA\0" "u0\0" "u1\0" "u2\0" "u3\0" "u4\0" "u5\0" \
+"u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "Ic\0" "Ip\0" "sp\0" "Sf\0" "Sb\0" \
+"ZA\0" "ZB\0" "ZC\0" "ZD\0" "ZE\0" "ZF\0" "ZG\0" "ZH\0" "ZI\0" "ZJ\0" "ZK\0" \
+"ZL\0" "ZM\0" "ZN\0" "ZO\0" "ZP\0" "ZQ\0" "ZR\0" "ZS\0" "ZT\0" "ZU\0" "ZV\0" \
+"ZW\0" "ZX\0" "ZY\0" "ZZ\0" "Za\0" "Zb\0" "Zc\0" "Zd\0" "Ze\0" "Zf\0" "Zg\0" \
+"Zh\0" "Zi\0" "Zj\0" "Zk\0" "Zl\0" "Zm\0" "Zn\0" "Zo\0" "Zp\0" "Zq\0" "Zr\0" \
+"Zs\0" "Zt\0" "Zu\0" "Zv\0" "Zw\0" "Zx\0" "Zy\0" "Km\0" "Mi\0" "RQ\0" "Gm\0" \
+"AF\0" "AB\0" "xl\0" "dv\0" "ci\0" "s0\0" "s1\0" "s2\0" "s3\0" "ML\0" "MT\0" \
+"Xy\0" "Zz\0" "Yv\0" "Yw\0" "Yx\0" "Yy\0" "Yz\0" "YZ\0" "S1\0" "S2\0" "S3\0" \
+"S4\0" "S5\0" "S6\0" "S7\0" "S8\0" "Xh\0" "Xl\0" "Xo\0" "Xr\0" "Xt\0" "Xv\0" \
+"sA\0" "sL\0" "i2\0" "rs\0" "ug\0" "bs\0" "ns\0" "nc\0" "dC\0" "dN\0" "nl\0" \
+"bc\0" "MT\0" "NL\0" "dB\0" "dT\0" "kn\0" "ko\0" "ma\0" "pt\0" "xr\0" "G2\0" \
+"G3\0" "G1\0" "G4\0" "GR\0" "GL\0" "GU\0" "GD\0" "GH\0" "GV\0" "GC\0" "ml\0" \
+"mu\0" "bx\0" ;
+static const short _nc_offset_boolcodes[] = {
+0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42,
+45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87,
+90, 93, 96, 99, 102, 105, 108, 1401, 1404, 1407, 1422, 1425, 1443, 1446, };
+
+static NCURSES_CONST char ** ptr_boolcodes = 0;
+
+static const short _nc_offset_numcodes[] = {
+111, 114, 117, 120, 123, 126,
+129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162,
+165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198,
+201, 204, 207, 1398, 1410, 1413, 1428, 1431, 1434, };
+
+static NCURSES_CONST char ** ptr_numcodes = 0;
+
+static const short _nc_offset_strcodes[] = {
+210, 213, 216, 219, 222, 225, 228, 231, 234,
+237, 240, 243, 246, 249, 252, 255, 258, 261, 264, 267, 270,
+273, 276, 279, 282, 285, 288, 291, 294, 297, 300, 303, 306,
+309, 312, 315, 318, 321, 324, 327, 330, 333, 336, 339, 342,
+345, 348, 351, 354, 357, 360, 363, 366, 369, 372, 375, 378,
+381, 384, 387, 390, 393, 396, 399, 402, 405, 408, 411, 414,
+417, 420, 423, 426, 429, 432, 435, 438, 441, 444, 447, 450,
+453, 456, 459, 462, 465, 468, 471, 474, 477, 480, 483, 486,
+489, 492, 495, 498, 501, 504, 507, 510, 513, 516, 519, 522,
+525, 528, 531, 534, 537, 540, 543, 546, 549, 552, 555, 558,
+561, 564, 567, 570, 573, 576, 579, 582, 585, 588, 591, 594,
+597, 600, 603, 606, 609, 612, 615, 618, 621, 624, 627, 630,
+633, 636, 639, 642, 645, 648, 651, 654, 657, 660, 663, 666,
+669, 672, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702,
+705, 708, 711, 714, 717, 720, 723, 726, 729, 732, 735, 738,
+741, 744, 747, 750, 753, 756, 759, 762, 765, 768, 771, 774,
+777, 780, 783, 786, 789, 792, 795, 798, 801, 804, 807, 810,
+813, 816, 819, 822, 825, 828, 831, 834, 837, 840, 843, 846,
+849, 852, 855, 858, 861, 864, 867, 870, 873, 876, 879, 882,
+885, 888, 891, 894, 897, 900, 903, 906, 909, 912, 915, 918,
+921, 924, 927, 930, 933, 936, 939, 942, 945, 948, 951, 954,
+957, 960, 963, 966, 969, 972, 975, 978, 981, 984, 987, 990,
+993, 996, 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023,
+1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050, 1053, 1056,
+1059, 1062, 1065, 1068, 1071, 1074, 1077, 1080, 1083, 1086, 1089,
+1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119, 1122,
+1125, 1128, 1131, 1134, 1137, 1140, 1143, 1146, 1149, 1152, 1155,
+1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1185, 1188,
+1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215, 1218, 1221,
+1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, 1251, 1254,
+1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1287,
+1290, 1293, 1296, 1299, 1302, 1305, 1308, 1311, 1314, 1317, 1320,
+1323, 1326, 1329, 1332, 1335, 1338, 1341, 1344, 1347, 1350, 1353,
+1356, 1359, 1362, 1365, 1368, 1371, 1374, 1377, 1380, 1383, 1386,
+1389, 1392, 1395, 1416, 1419,
+1437, 1440, 1449, 1452,
+1455, 1458, 1461, 1464, 1467, 1470, 1473, 1476, 1479, 1482, 1485,
+1488, };
+
+static NCURSES_CONST char ** ptr_strcodes = 0;
+
+
+static IT *
+alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)
+{
+	if (*value == 0) {
+		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {
+			unsigned n;
+			for (n = 0; n < size; ++n) {
+				(*value)[n] = _nc_code_blob + offsets[n];
+			}
+		}
+	}
+	return *value;
+}
+
+#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }
+
+FIX(boolcodes)
+FIX(numcodes)
+FIX(strcodes)
+
+#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_codes_leaks(void)
+{
+FREE_FIX(boolcodes)
+FREE_FIX(numcodes)
+FREE_FIX(strcodes)
+}
+#endif
+
+#else
+
+#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]
+
+DCL(boolcodes) = {
+		"bw",
+		"am",
+		"xb",
+		"xs",
+		"xn",
+		"eo",
+		"gn",
+		"hc",
+		"km",
+		"hs",
+		"in",
+		"da",
+		"db",
+		"mi",
+		"ms",
+		"os",
+		"es",
+		"xt",
+		"hz",
+		"ul",
+		"xo",
+		"nx",
+		"5i",
+		"HC",
+		"NR",
+		"NP",
+		"ND",
+		"cc",
+		"ut",
+		"hl",
+		"YA",
+		"YB",
+		"YC",
+		"YD",
+		"YE",
+		"YF",
+		"YG",
+		"bs",
+		"ns",
+		"nc",
+		"MT",
+		"NL",
+		"pt",
+		"xr",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(numcodes) = {
+		"co",
+		"it",
+		"li",
+		"lm",
+		"sg",
+		"pb",
+		"vt",
+		"ws",
+		"Nl",
+		"lh",
+		"lw",
+		"ma",
+		"MW",
+		"Co",
+		"pa",
+		"NC",
+		"Ya",
+		"Yb",
+		"Yc",
+		"Yd",
+		"Ye",
+		"Yf",
+		"Yg",
+		"Yh",
+		"Yi",
+		"Yj",
+		"Yk",
+		"Yl",
+		"Ym",
+		"Yn",
+		"BT",
+		"Yo",
+		"Yp",
+		"ug",
+		"dC",
+		"dN",
+		"dB",
+		"dT",
+		"kn",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(strcodes) = {
+		"bt",
+		"bl",
+		"cr",
+		"cs",
+		"ct",
+		"cl",
+		"ce",
+		"cd",
+		"ch",
+		"CC",
+		"cm",
+		"do",
+		"ho",
+		"vi",
+		"le",
+		"CM",
+		"ve",
+		"nd",
+		"ll",
+		"up",
+		"vs",
+		"dc",
+		"dl",
+		"ds",
+		"hd",
+		"as",
+		"mb",
+		"md",
+		"ti",
+		"dm",
+		"mh",
+		"im",
+		"mk",
+		"mp",
+		"mr",
+		"so",
+		"us",
+		"ec",
+		"ae",
+		"me",
+		"te",
+		"ed",
+		"ei",
+		"se",
+		"ue",
+		"vb",
+		"ff",
+		"fs",
+		"i1",
+		"is",
+		"i3",
+		"if",
+		"ic",
+		"al",
+		"ip",
+		"kb",
+		"ka",
+		"kC",
+		"kt",
+		"kD",
+		"kL",
+		"kd",
+		"kM",
+		"kE",
+		"kS",
+		"k0",
+		"k1",
+		"k;",
+		"k2",
+		"k3",
+		"k4",
+		"k5",
+		"k6",
+		"k7",
+		"k8",
+		"k9",
+		"kh",
+		"kI",
+		"kA",
+		"kl",
+		"kH",
+		"kN",
+		"kP",
+		"kr",
+		"kF",
+		"kR",
+		"kT",
+		"ku",
+		"ke",
+		"ks",
+		"l0",
+		"l1",
+		"la",
+		"l2",
+		"l3",
+		"l4",
+		"l5",
+		"l6",
+		"l7",
+		"l8",
+		"l9",
+		"mo",
+		"mm",
+		"nw",
+		"pc",
+		"DC",
+		"DL",
+		"DO",
+		"IC",
+		"SF",
+		"AL",
+		"LE",
+		"RI",
+		"SR",
+		"UP",
+		"pk",
+		"pl",
+		"px",
+		"ps",
+		"pf",
+		"po",
+		"rp",
+		"r1",
+		"r2",
+		"r3",
+		"rf",
+		"rc",
+		"cv",
+		"sc",
+		"sf",
+		"sr",
+		"sa",
+		"st",
+		"wi",
+		"ta",
+		"ts",
+		"uc",
+		"hu",
+		"iP",
+		"K1",
+		"K3",
+		"K2",
+		"K4",
+		"K5",
+		"pO",
+		"rP",
+		"ac",
+		"pn",
+		"kB",
+		"SX",
+		"RX",
+		"SA",
+		"RA",
+		"XN",
+		"XF",
+		"eA",
+		"LO",
+		"LF",
+		"@1",
+		"@2",
+		"@3",
+		"@4",
+		"@5",
+		"@6",
+		"@7",
+		"@8",
+		"@9",
+		"@0",
+		"%1",
+		"%2",
+		"%3",
+		"%4",
+		"%5",
+		"%6",
+		"%7",
+		"%8",
+		"%9",
+		"%0",
+		"&1",
+		"&2",
+		"&3",
+		"&4",
+		"&5",
+		"&6",
+		"&7",
+		"&8",
+		"&9",
+		"&0",
+		"*1",
+		"*2",
+		"*3",
+		"*4",
+		"*5",
+		"*6",
+		"*7",
+		"*8",
+		"*9",
+		"*0",
+		"#1",
+		"#2",
+		"#3",
+		"#4",
+		"%a",
+		"%b",
+		"%c",
+		"%d",
+		"%e",
+		"%f",
+		"%g",
+		"%h",
+		"%i",
+		"%j",
+		"!1",
+		"!2",
+		"!3",
+		"RF",
+		"F1",
+		"F2",
+		"F3",
+		"F4",
+		"F5",
+		"F6",
+		"F7",
+		"F8",
+		"F9",
+		"FA",
+		"FB",
+		"FC",
+		"FD",
+		"FE",
+		"FF",
+		"FG",
+		"FH",
+		"FI",
+		"FJ",
+		"FK",
+		"FL",
+		"FM",
+		"FN",
+		"FO",
+		"FP",
+		"FQ",
+		"FR",
+		"FS",
+		"FT",
+		"FU",
+		"FV",
+		"FW",
+		"FX",
+		"FY",
+		"FZ",
+		"Fa",
+		"Fb",
+		"Fc",
+		"Fd",
+		"Fe",
+		"Ff",
+		"Fg",
+		"Fh",
+		"Fi",
+		"Fj",
+		"Fk",
+		"Fl",
+		"Fm",
+		"Fn",
+		"Fo",
+		"Fp",
+		"Fq",
+		"Fr",
+		"cb",
+		"MC",
+		"ML",
+		"MR",
+		"Lf",
+		"SC",
+		"DK",
+		"RC",
+		"CW",
+		"WG",
+		"HU",
+		"DI",
+		"QD",
+		"TO",
+		"PU",
+		"fh",
+		"PA",
+		"WA",
+		"u0",
+		"u1",
+		"u2",
+		"u3",
+		"u4",
+		"u5",
+		"u6",
+		"u7",
+		"u8",
+		"u9",
+		"op",
+		"oc",
+		"Ic",
+		"Ip",
+		"sp",
+		"Sf",
+		"Sb",
+		"ZA",
+		"ZB",
+		"ZC",
+		"ZD",
+		"ZE",
+		"ZF",
+		"ZG",
+		"ZH",
+		"ZI",
+		"ZJ",
+		"ZK",
+		"ZL",
+		"ZM",
+		"ZN",
+		"ZO",
+		"ZP",
+		"ZQ",
+		"ZR",
+		"ZS",
+		"ZT",
+		"ZU",
+		"ZV",
+		"ZW",
+		"ZX",
+		"ZY",
+		"ZZ",
+		"Za",
+		"Zb",
+		"Zc",
+		"Zd",
+		"Ze",
+		"Zf",
+		"Zg",
+		"Zh",
+		"Zi",
+		"Zj",
+		"Zk",
+		"Zl",
+		"Zm",
+		"Zn",
+		"Zo",
+		"Zp",
+		"Zq",
+		"Zr",
+		"Zs",
+		"Zt",
+		"Zu",
+		"Zv",
+		"Zw",
+		"Zx",
+		"Zy",
+		"Km",
+		"Mi",
+		"RQ",
+		"Gm",
+		"AF",
+		"AB",
+		"xl",
+		"dv",
+		"ci",
+		"s0",
+		"s1",
+		"s2",
+		"s3",
+		"ML",
+		"MT",
+		"Xy",
+		"Zz",
+		"Yv",
+		"Yw",
+		"Yx",
+		"Yy",
+		"Yz",
+		"YZ",
+		"S1",
+		"S2",
+		"S3",
+		"S4",
+		"S5",
+		"S6",
+		"S7",
+		"S8",
+		"Xh",
+		"Xl",
+		"Xo",
+		"Xr",
+		"Xt",
+		"Xv",
+		"sA",
+		"sL",
+		"i2",
+		"rs",
+		"nl",
+		"bc",
+		"ko",
+		"ma",
+		"G2",
+		"G3",
+		"G1",
+		"G4",
+		"GR",
+		"GL",
+		"GU",
+		"GD",
+		"GH",
+		"GV",
+		"GC",
+		"ml",
+		"mu",
+		"bx",
+
+		(NCURSES_CONST char *)0,
+};
+
+
+#endif /* BROKEN_LINKER */
diff --git a/ncurses/comp_captab.c b/ncurses/comp_captab.c
new file mode 100644
index 0000000..bb50ac3
--- /dev/null
+++ b/ncurses/comp_captab.c
@@ -0,0 +1,3355 @@
+/*
+ *	comp_captab.c -- The names of the capabilities indexed via a hash
+ *		         table for the compiler.
+ *
+ */
+
+#include <curses.priv.h>
+#include <tic.h>
+#include <hashsize.h>
+
+static const char info_names_text[] = \
+"bw\0" "am\0" "xsb\0" "xhp\0" "xenl\0" "eo\0" "gn\0" "hc\0" "km\0" \
+"hs\0" "in\0" "da\0" "db\0" "mir\0" "msgr\0" "os\0" "eslok\0" "xt\0" \
+"hz\0" "ul\0" "xon\0" "nxon\0" "mc5i\0" "chts\0" "nrrmc\0" "npc\0" \
+"ndscr\0" "ccc\0" "bce\0" "hls\0" "xhpa\0" "crxm\0" "daisy\0" "xvpa\0" \
+"sam\0" "cpix\0" "lpix\0" "cols\0" "it\0" "lines\0" "lm\0" "xmc\0" \
+"pb\0" "vt\0" "wsl\0" "nlab\0" "lh\0" "lw\0" "ma\0" "wnum\0" "colors\0" \
+"pairs\0" "ncv\0" "bufsz\0" "spinv\0" "spinh\0" "maddr\0" "mjump\0" \
+"mcs\0" "mls\0" "npins\0" "orc\0" "orl\0" "orhi\0" "orvi\0" "cps\0" \
+"widcs\0" "btns\0" "bitwin\0" "bitype\0" "cbt\0" "bel\0" "cr\0" "csr\0" \
+"tbc\0" "clear\0" "el\0" "ed\0" "hpa\0" "cmdch\0" "cup\0" "cud1\0" \
+"home\0" "civis\0" "cub1\0" "mrcup\0" "cnorm\0" "cuf1\0" "ll\0" \
+"cuu1\0" "cvvis\0" "dch1\0" "dl1\0" "dsl\0" "hd\0" "smacs\0" "blink\0" \
+"bold\0" "smcup\0" "smdc\0" "dim\0" "smir\0" "invis\0" "prot\0" "rev\0" \
+"smso\0" "smul\0" "ech\0" "rmacs\0" "sgr0\0" "rmcup\0" "rmdc\0" \
+"rmir\0" "rmso\0" "rmul\0" "flash\0" "ff\0" "fsl\0" "is1\0" "is2\0" \
+"is3\0" "if\0" "ich1\0" "il1\0" "ip\0" "kbs\0" "ktbc\0" "kclr\0" \
+"kctab\0" "kdch1\0" "kdl1\0" "kcud1\0" "krmir\0" "kel\0" "ked\0" \
+"kf0\0" "kf1\0" "kf10\0" "kf2\0" "kf3\0" "kf4\0" "kf5\0" "kf6\0" \
+"kf7\0" "kf8\0" "kf9\0" "khome\0" "kich1\0" "kil1\0" "kcub1\0" "kll\0" \
+"knp\0" "kpp\0" "kcuf1\0" "kind\0" "kri\0" "khts\0" "kcuu1\0" "rmkx\0" \
+"smkx\0" "lf0\0" "lf1\0" "lf10\0" "lf2\0" "lf3\0" "lf4\0" "lf5\0" \
+"lf6\0" "lf7\0" "lf8\0" "lf9\0" "rmm\0" "smm\0" "nel\0" "pad\0" "dch\0" \
+"dl\0" "cud\0" "ich\0" "indn\0" "il\0" "cub\0" "cuf\0" "rin\0" "cuu\0" \
+"pfkey\0" "pfloc\0" "pfx\0" "mc0\0" "mc4\0" "mc5\0" "rep\0" "rs1\0" \
+"rs2\0" "rs3\0" "rf\0" "rc\0" "vpa\0" "sc\0" "ind\0" "ri\0" "sgr\0" \
+"hts\0" "wind\0" "ht\0" "tsl\0" "uc\0" "hu\0" "iprog\0" "ka1\0" "ka3\0" \
+"kb2\0" "kc1\0" "kc3\0" "mc5p\0" "rmp\0" "acsc\0" "pln\0" "kcbt\0" \
+"smxon\0" "rmxon\0" "smam\0" "rmam\0" "xonc\0" "xoffc\0" "enacs\0" \
+"smln\0" "rmln\0" "kbeg\0" "kcan\0" "kclo\0" "kcmd\0" "kcpy\0" "kcrt\0" \
+"kend\0" "kent\0" "kext\0" "kfnd\0" "khlp\0" "kmrk\0" "kmsg\0" "kmov\0" \
+"knxt\0" "kopn\0" "kopt\0" "kprv\0" "kprt\0" "krdo\0" "kref\0" "krfr\0" \
+"krpl\0" "krst\0" "kres\0" "ksav\0" "kspd\0" "kund\0" "kBEG\0" "kCAN\0" \
+"kCMD\0" "kCPY\0" "kCRT\0" "kDC\0" "kDL\0" "kslt\0" "kEND\0" "kEOL\0" \
+"kEXT\0" "kFND\0" "kHLP\0" "kHOM\0" "kIC\0" "kLFT\0" "kMSG\0" "kMOV\0" \
+"kNXT\0" "kOPT\0" "kPRV\0" "kPRT\0" "kRDO\0" "kRPL\0" "kRIT\0" "kRES\0" \
+"kSAV\0" "kSPD\0" "kUND\0" "rfi\0" "kf11\0" "kf12\0" "kf13\0" "kf14\0" \
+"kf15\0" "kf16\0" "kf17\0" "kf18\0" "kf19\0" "kf20\0" "kf21\0" "kf22\0" \
+"kf23\0" "kf24\0" "kf25\0" "kf26\0" "kf27\0" "kf28\0" "kf29\0" "kf30\0" \
+"kf31\0" "kf32\0" "kf33\0" "kf34\0" "kf35\0" "kf36\0" "kf37\0" "kf38\0" \
+"kf39\0" "kf40\0" "kf41\0" "kf42\0" "kf43\0" "kf44\0" "kf45\0" "kf46\0" \
+"kf47\0" "kf48\0" "kf49\0" "kf50\0" "kf51\0" "kf52\0" "kf53\0" "kf54\0" \
+"kf55\0" "kf56\0" "kf57\0" "kf58\0" "kf59\0" "kf60\0" "kf61\0" "kf62\0" \
+"kf63\0" "el1\0" "mgc\0" "smgl\0" "smgr\0" "fln\0" "sclk\0" "dclk\0" \
+"rmclk\0" "cwin\0" "wingo\0" "hup\0" "dial\0" "qdial\0" "tone\0" \
+"pulse\0" "hook\0" "pause\0" "wait\0" "u0\0" "u1\0" "u2\0" "u3\0" \
+"u4\0" "u5\0" "u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "initc\0" \
+"initp\0" "scp\0" "setf\0" "setb\0" "cpi\0" "lpi\0" "chr\0" "cvr\0" \
+"defc\0" "swidm\0" "sdrfq\0" "sitm\0" "slm\0" "smicm\0" "snlq\0" \
+"snrmq\0" "sshm\0" "ssubm\0" "ssupm\0" "sum\0" "rwidm\0" "ritm\0" \
+"rlm\0" "rmicm\0" "rshm\0" "rsubm\0" "rsupm\0" "rum\0" "mhpa\0" \
+"mcud1\0" "mcub1\0" "mcuf1\0" "mvpa\0" "mcuu1\0" "porder\0" "mcud\0" \
+"mcub\0" "mcuf\0" "mcuu\0" "scs\0" "smgb\0" "smgbp\0" "smglp\0" \
+"smgrp\0" "smgt\0" "smgtp\0" "sbim\0" "scsd\0" "rbim\0" "rcsd\0" \
+"subcs\0" "supcs\0" "docr\0" "zerom\0" "csnm\0" "kmous\0" "minfo\0" \
+"reqmp\0" "getm\0" "setaf\0" "setab\0" "pfxl\0" "devt\0" "csin\0" \
+"s0ds\0" "s1ds\0" "s2ds\0" "s3ds\0" "smglr\0" "smgtb\0" "birep\0" \
+"binel\0" "bicr\0" "colornm\0" "defbi\0" "endbi\0" "setcolor\0" \
+"slines\0" "dispc\0" "smpch\0" "rmpch\0" "smsc\0" "rmsc\0" "pctrm\0" \
+"scesc\0" "scesa\0" "ehhlm\0" "elhlm\0" "elohlm\0" "erhlm\0" "ethlm\0" \
+"evhlm\0" "sgr1\0" "slength\0" "OTi2\0" "OTrs\0" "OTug\0" "OTbs\0" \
+"OTns\0" "OTnc\0" "OTdC\0" "OTdN\0" "OTnl\0" "OTbc\0" "OTMT\0" "OTNL\0" \
+"OTdB\0" "OTdT\0" "OTkn\0" "OTko\0" "OTma\0" "OTpt\0" "OTxr\0" "OTG2\0" \
+"OTG3\0" "OTG1\0" "OTG4\0" "OTGR\0" "OTGL\0" "OTGU\0" "OTGD\0" "OTGH\0" \
+"OTGV\0" "OTGC\0" "meml\0" "memu\0" "box1\0" ;
+
+static name_table_data const info_names_data[] =
+{
+	{               0,	   BOOLEAN,	  0,  -1 },
+	{               3,	   BOOLEAN,	  1,  -1 },
+	{               6,	   BOOLEAN,	  2,  -1 },
+	{              10,	   BOOLEAN,	  3,  -1 },
+	{              14,	   BOOLEAN,	  4,  -1 },
+	{              19,	   BOOLEAN,	  5,  -1 },
+	{              22,	   BOOLEAN,	  6,  -1 },
+	{              25,	   BOOLEAN,	  7,  -1 },
+	{              28,	   BOOLEAN,	  8,  -1 },
+	{              31,	   BOOLEAN,	  9,  -1 },
+	{              34,	   BOOLEAN,	 10,  -1 },
+	{              37,	   BOOLEAN,	 11,  -1 },
+	{              40,	   BOOLEAN,	 12,  -1 },
+	{              43,	   BOOLEAN,	 13,  -1 },
+	{              47,	   BOOLEAN,	 14,  -1 },
+	{              52,	   BOOLEAN,	 15,  -1 },
+	{              55,	   BOOLEAN,	 16,  -1 },
+	{              61,	   BOOLEAN,	 17,  -1 },
+	{              64,	   BOOLEAN,	 18,  -1 },
+	{              67,	   BOOLEAN,	 19,  -1 },
+	{              70,	   BOOLEAN,	 20,  -1 },
+	{              74,	   BOOLEAN,	 21,  -1 },
+	{              79,	   BOOLEAN,	 22,  -1 },
+	{              84,	   BOOLEAN,	 23,  -1 },
+	{              89,	   BOOLEAN,	 24,  -1 },
+	{              95,	   BOOLEAN,	 25,  -1 },
+	{              99,	   BOOLEAN,	 26,  -1 },
+	{             105,	   BOOLEAN,	 27,  -1 },
+	{             109,	   BOOLEAN,	 28,  -1 },
+	{             113,	   BOOLEAN,	 29,  -1 },
+	{             117,	   BOOLEAN,	 30,  -1 },
+	{             122,	   BOOLEAN,	 31,  -1 },
+	{             127,	   BOOLEAN,	 32,  -1 },
+	{             133,	   BOOLEAN,	 33,  -1 },
+	{             138,	   BOOLEAN,	 34,  -1 },
+	{             142,	   BOOLEAN,	 35,  -1 },
+	{             147,	   BOOLEAN,	 36,  -1 },
+	{             152,	    NUMBER,	  0,  -1 },
+	{             157,	    NUMBER,	  1,  -1 },
+	{             160,	    NUMBER,	  2,   6 },
+	{             166,	    NUMBER,	  3,  -1 },
+	{             169,	    NUMBER,	  4,  -1 },
+	{             173,	    NUMBER,	  5,  -1 },
+	{             176,	    NUMBER,	  6,  -1 },
+	{             179,	    NUMBER,	  7,  -1 },
+	{             183,	    NUMBER,	  8,  -1 },
+	{             188,	    NUMBER,	  9,  -1 },
+	{             191,	    NUMBER,	 10,  -1 },
+	{             194,	    NUMBER,	 11,  -1 },
+	{             197,	    NUMBER,	 12,  -1 },
+	{             202,	    NUMBER,	 13,  -1 },
+	{             209,	    NUMBER,	 14,  -1 },
+	{             215,	    NUMBER,	 15,  -1 },
+	{             219,	    NUMBER,	 16,  46 },
+	{             225,	    NUMBER,	 17,  -1 },
+	{             231,	    NUMBER,	 18,  -1 },
+	{             237,	    NUMBER,	 19,  -1 },
+	{             243,	    NUMBER,	 20,  -1 },
+	{             249,	    NUMBER,	 21,  -1 },
+	{             253,	    NUMBER,	 22,  -1 },
+	{             257,	    NUMBER,	 23,  -1 },
+	{             263,	    NUMBER,	 24,  -1 },
+	{             267,	    NUMBER,	 25,  -1 },
+	{             271,	    NUMBER,	 26,  -1 },
+	{             276,	    NUMBER,	 27,  -1 },
+	{             281,	    NUMBER,	 28,  -1 },
+	{             285,	    NUMBER,	 29,  -1 },
+	{             291,	    NUMBER,	 30,  -1 },
+	{             296,	    NUMBER,	 31,  -1 },
+	{             303,	    NUMBER,	 32,  68 },
+	{             310,	    STRING,	  0,  -1 },
+	{             314,	    STRING,	  1,  -1 },
+	{             318,	    STRING,	  2,  -1 },
+	{             321,	    STRING,	  3,  -1 },
+	{             325,	    STRING,	  4,  -1 },
+	{             329,	    STRING,	  5,  -1 },
+	{             335,	    STRING,	  6,  -1 },
+	{             338,	    STRING,	  7,  -1 },
+	{             341,	    STRING,	  8,  -1 },
+	{             345,	    STRING,	  9,  -1 },
+	{             351,	    STRING,	 10,  73 },
+	{             355,	    STRING,	 11,  -1 },
+	{             360,	    STRING,	 12,  -1 },
+	{             365,	    STRING,	 13,  -1 },
+	{             371,	    STRING,	 14,  -1 },
+	{             376,	    STRING,	 15,  -1 },
+	{             382,	    STRING,	 16,  -1 },
+	{             388,	    STRING,	 17,  -1 },
+	{             393,	    STRING,	 18,  -1 },
+	{             396,	    STRING,	 19,  -1 },
+	{             401,	    STRING,	 20,  -1 },
+	{             407,	    STRING,	 21,  -1 },
+	{             412,	    STRING,	 22,  -1 },
+	{             416,	    STRING,	 23,  -1 },
+	{             420,	    STRING,	 24,  -1 },
+	{             423,	    STRING,	 25,  -1 },
+	{             429,	    STRING,	 26,  -1 },
+	{             435,	    STRING,	 27,  -1 },
+	{             440,	    STRING,	 28,  -1 },
+	{             446,	    STRING,	 29,  -1 },
+	{             451,	    STRING,	 30,  -1 },
+	{             455,	    STRING,	 31,  -1 },
+	{             460,	    STRING,	 32,  -1 },
+	{             466,	    STRING,	 33,  -1 },
+	{             471,	    STRING,	 34,  -1 },
+	{             475,	    STRING,	 35,  -1 },
+	{             480,	    STRING,	 36,  -1 },
+	{             485,	    STRING,	 37,  -1 },
+	{             489,	    STRING,	 38,  -1 },
+	{             495,	    STRING,	 39,  -1 },
+	{             500,	    STRING,	 40,  -1 },
+	{             506,	    STRING,	 41,  -1 },
+	{             511,	    STRING,	 42,  -1 },
+	{             516,	    STRING,	 43,  -1 },
+	{             521,	    STRING,	 44,  -1 },
+	{             526,	    STRING,	 45,  -1 },
+	{             532,	    STRING,	 46,  -1 },
+	{             535,	    STRING,	 47,  -1 },
+	{             539,	    STRING,	 48,  -1 },
+	{             543,	    STRING,	 49,  59 },
+	{             547,	    STRING,	 50,  76 },
+	{             551,	    STRING,	 51,  -1 },
+	{             554,	    STRING,	 52,  20 },
+	{             559,	    STRING,	 53,  -1 },
+	{             563,	    STRING,	 54,  -1 },
+	{             566,	    STRING,	 55,  -1 },
+	{             570,	    STRING,	 56,  -1 },
+	{             575,	    STRING,	 57,  98 },
+	{             580,	    STRING,	 58,  -1 },
+	{             586,	    STRING,	 59,  -1 },
+	{             592,	    STRING,	 60,  -1 },
+	{             597,	    STRING,	 61,  -1 },
+	{             603,	    STRING,	 62,  -1 },
+	{             609,	    STRING,	 63,  -1 },
+	{             613,	    STRING,	 64,  -1 },
+	{             617,	    STRING,	 65,  -1 },
+	{             621,	    STRING,	 66,  -1 },
+	{             625,	    STRING,	 67,  -1 },
+	{             630,	    STRING,	 68,  -1 },
+	{             634,	    STRING,	 69,  -1 },
+	{             638,	    STRING,	 70,  -1 },
+	{             642,	    STRING,	 71,  61 },
+	{             646,	    STRING,	 72,  -1 },
+	{             650,	    STRING,	 73,  -1 },
+	{             654,	    STRING,	 74,  -1 },
+	{             658,	    STRING,	 75,  -1 },
+	{             662,	    STRING,	 76,  -1 },
+	{             668,	    STRING,	 77,  -1 },
+	{             674,	    STRING,	 78,  -1 },
+	{             679,	    STRING,	 79,  -1 },
+	{             685,	    STRING,	 80,  -1 },
+	{             689,	    STRING,	 81,  -1 },
+	{             693,	    STRING,	 82,  -1 },
+	{             697,	    STRING,	 83,  -1 },
+	{             703,	    STRING,	 84,  55 },
+	{             708,	    STRING,	 85, 105 },
+	{             712,	    STRING,	 86,  -1 },
+	{             717,	    STRING,	 87,  81 },
+	{             723,	    STRING,	 88,  -1 },
+	{             728,	    STRING,	 89,  -1 },
+	{             733,	    STRING,	 90,  -1 },
+	{             737,	    STRING,	 91,  -1 },
+	{             741,	    STRING,	 92,  -1 },
+	{             746,	    STRING,	 93,  -1 },
+	{             750,	    STRING,	 94,  33 },
+	{             754,	    STRING,	 95,  -1 },
+	{             758,	    STRING,	 96,  -1 },
+	{             762,	    STRING,	 97,  -1 },
+	{             766,	    STRING,	 98,   7 },
+	{             770,	    STRING,	 99,  94 },
+	{             774,	    STRING,	100,  -1 },
+	{             778,	    STRING,	101, 131 },
+	{             782,	    STRING,	102,  -1 },
+	{             786,	    STRING,	103,  -1 },
+	{             790,	    STRING,	104,  30 },
+	{             794,	    STRING,	105,  -1 },
+	{             798,	    STRING,	106,  -1 },
+	{             801,	    STRING,	107,  -1 },
+	{             805,	    STRING,	108,  -1 },
+	{             809,	    STRING,	109,  -1 },
+	{             814,	    STRING,	110,  -1 },
+	{             817,	    STRING,	111,  -1 },
+	{             821,	    STRING,	112, 156 },
+	{             825,	    STRING,	113,  -1 },
+	{             829,	    STRING,	114,  -1 },
+	{             833,	    STRING,	115,  51 },
+	{             839,	    STRING,	116,  -1 },
+	{             845,	    STRING,	117,  -1 },
+	{             849,	    STRING,	118,  -1 },
+	{             853,	    STRING,	119,  -1 },
+	{             857,	    STRING,	120,  -1 },
+	{             861,	    STRING,	121,  -1 },
+	{             865,	    STRING,	122,  -1 },
+	{             869,	    STRING,	123,  -1 },
+	{             873,	    STRING,	124, 126 },
+	{             877,	    STRING,	125,  -1 },
+	{             880,	    STRING,	126,  -1 },
+	{             883,	    STRING,	127,  -1 },
+	{             887,	    STRING,	128,  -1 },
+	{             890,	    STRING,	129,  -1 },
+	{             894,	    STRING,	130,  -1 },
+	{             897,	    STRING,	131,  -1 },
+	{             901,	    STRING,	132,  -1 },
+	{             905,	    STRING,	133,  -1 },
+	{             910,	    STRING,	134,  -1 },
+	{             913,	    STRING,	135,  -1 },
+	{             917,	    STRING,	136,  23 },
+	{             920,	    STRING,	137,  -1 },
+	{             923,	    STRING,	138,  -1 },
+	{             929,	    STRING,	139,  -1 },
+	{             933,	    STRING,	140,  -1 },
+	{             937,	    STRING,	141, 210 },
+	{             941,	    STRING,	142, 211 },
+	{             945,	    STRING,	143, 135 },
+	{             949,	    STRING,	144,  -1 },
+	{             954,	    STRING,	145,  -1 },
+	{             958,	    STRING,	146, 176 },
+	{             963,	    STRING,	147,  -1 },
+	{             967,	    STRING,	148, 194 },
+	{             972,	    STRING,	149,  -1 },
+	{             978,	    STRING,	150,  -1 },
+	{             984,	    STRING,	151, 137 },
+	{             989,	    STRING,	152,  -1 },
+	{             994,	    STRING,	153,  -1 },
+	{             999,	    STRING,	154,  -1 },
+	{            1005,	    STRING,	155,  -1 },
+	{            1011,	    STRING,	156,  -1 },
+	{            1016,	    STRING,	157,  -1 },
+	{            1021,	    STRING,	158,  -1 },
+	{            1026,	    STRING,	159,  -1 },
+	{            1031,	    STRING,	160,  -1 },
+	{            1036,	    STRING,	161,  -1 },
+	{            1041,	    STRING,	162,  -1 },
+	{            1046,	    STRING,	163,  54 },
+	{            1051,	    STRING,	164, 192 },
+	{            1056,	    STRING,	165,  -1 },
+	{            1061,	    STRING,	166,  -1 },
+	{            1066,	    STRING,	167, 193 },
+	{            1071,	    STRING,	168,  -1 },
+	{            1076,	    STRING,	169,  70 },
+	{            1081,	    STRING,	170, 235 },
+	{            1086,	    STRING,	171,  -1 },
+	{            1091,	    STRING,	172,  -1 },
+	{            1096,	    STRING,	173, 177 },
+	{            1101,	    STRING,	174,  -1 },
+	{            1106,	    STRING,	175,  -1 },
+	{            1111,	    STRING,	176,  -1 },
+	{            1116,	    STRING,	177,  -1 },
+	{            1121,	    STRING,	178,  -1 },
+	{            1126,	    STRING,	179, 239 },
+	{            1131,	    STRING,	180, 219 },
+	{            1136,	    STRING,	181,  80 },
+	{            1141,	    STRING,	182, 249 },
+	{            1146,	    STRING,	183, 252 },
+	{            1151,	    STRING,	184, 240 },
+	{            1156,	    STRING,	185, 254 },
+	{            1161,	    STRING,	186,  -1 },
+	{            1166,	    STRING,	187,  -1 },
+	{            1171,	    STRING,	188, 101 },
+	{            1176,	    STRING,	189,  -1 },
+	{            1181,	    STRING,	190,  -1 },
+	{            1186,	    STRING,	191,  -1 },
+	{            1190,	    STRING,	192,  -1 },
+	{            1194,	    STRING,	193, 244 },
+	{            1199,	    STRING,	194,  -1 },
+	{            1204,	    STRING,	195, 152 },
+	{            1209,	    STRING,	196,  -1 },
+	{            1214,	    STRING,	197, 150 },
+	{            1219,	    STRING,	198,  -1 },
+	{            1224,	    STRING,	199, 268 },
+	{            1229,	    STRING,	200,  -1 },
+	{            1233,	    STRING,	201,  72 },
+	{            1238,	    STRING,	202,  -1 },
+	{            1243,	    STRING,	203,  -1 },
+	{            1248,	    STRING,	204,  -1 },
+	{            1253,	    STRING,	205,  -1 },
+	{            1258,	    STRING,	206,  -1 },
+	{            1263,	    STRING,	207, 196 },
+	{            1268,	    STRING,	208,  -1 },
+	{            1273,	    STRING,	209,  -1 },
+	{            1278,	    STRING,	210,  -1 },
+	{            1283,	    STRING,	211,  -1 },
+	{            1288,	    STRING,	212, 281 },
+	{            1293,	    STRING,	213, 272 },
+	{            1298,	    STRING,	214, 283 },
+	{            1303,	    STRING,	215,  -1 },
+	{            1307,	    STRING,	216,  -1 },
+	{            1312,	    STRING,	217, 134 },
+	{            1317,	    STRING,	218,  -1 },
+	{            1322,	    STRING,	219,  -1 },
+	{            1327,	    STRING,	220,  -1 },
+	{            1332,	    STRING,	221,  43 },
+	{            1337,	    STRING,	222, 256 },
+	{            1342,	    STRING,	223,  -1 },
+	{            1347,	    STRING,	224,  -1 },
+	{            1352,	    STRING,	225, 286 },
+	{            1357,	    STRING,	226, 287 },
+	{            1362,	    STRING,	227, 288 },
+	{            1367,	    STRING,	228, 289 },
+	{            1372,	    STRING,	229, 290 },
+	{            1377,	    STRING,	230, 291 },
+	{            1382,	    STRING,	231, 292 },
+	{            1387,	    STRING,	232, 293 },
+	{            1392,	    STRING,	233, 294 },
+	{            1397,	    STRING,	234, 133 },
+	{            1402,	    STRING,	235, 296 },
+	{            1407,	    STRING,	236, 297 },
+	{            1412,	    STRING,	237, 298 },
+	{            1417,	    STRING,	238, 299 },
+	{            1422,	    STRING,	239, 300 },
+	{            1427,	    STRING,	240, 301 },
+	{            1432,	    STRING,	241, 302 },
+	{            1437,	    STRING,	242, 303 },
+	{            1442,	    STRING,	243, 304 },
+	{            1447,	    STRING,	244, 257 },
+	{            1452,	    STRING,	245, 306 },
+	{            1457,	    STRING,	246, 307 },
+	{            1462,	    STRING,	247, 308 },
+	{            1467,	    STRING,	248, 309 },
+	{            1472,	    STRING,	249, 310 },
+	{            1477,	    STRING,	250, 311 },
+	{            1482,	    STRING,	251, 312 },
+	{            1487,	    STRING,	252, 313 },
+	{            1492,	    STRING,	253, 314 },
+	{            1497,	    STRING,	254, 226 },
+	{            1502,	    STRING,	255, 316 },
+	{            1507,	    STRING,	256, 317 },
+	{            1512,	    STRING,	257, 318 },
+	{            1517,	    STRING,	258, 319 },
+	{            1522,	    STRING,	259, 320 },
+	{            1527,	    STRING,	260, 321 },
+	{            1532,	    STRING,	261, 322 },
+	{            1537,	    STRING,	262, 323 },
+	{            1542,	    STRING,	263, 324 },
+	{            1547,	    STRING,	264, 258 },
+	{            1552,	    STRING,	265, 326 },
+	{            1557,	    STRING,	266, 327 },
+	{            1562,	    STRING,	267, 328 },
+	{            1567,	    STRING,	268, 329 },
+	{            1572,	    STRING,	269,  -1 },
+	{            1576,	    STRING,	270,  -1 },
+	{            1580,	    STRING,	271, 335 },
+	{            1585,	    STRING,	272, 332 },
+	{            1590,	    STRING,	273,  -1 },
+	{            1594,	    STRING,	274,  -1 },
+	{            1599,	    STRING,	275,  -1 },
+	{            1604,	    STRING,	276,  -1 },
+	{            1610,	    STRING,	277,  37 },
+	{            1615,	    STRING,	278,  -1 },
+	{            1621,	    STRING,	279,  -1 },
+	{            1625,	    STRING,	280,  -1 },
+	{            1630,	    STRING,	281,  -1 },
+	{            1636,	    STRING,	282,  -1 },
+	{            1641,	    STRING,	283,  -1 },
+	{            1647,	    STRING,	284,  -1 },
+	{            1652,	    STRING,	285,   8 },
+	{            1658,	    STRING,	286, 262 },
+	{            1663,	    STRING,	287,  -1 },
+	{            1666,	    STRING,	288,  -1 },
+	{            1669,	    STRING,	289,  -1 },
+	{            1672,	    STRING,	290,  -1 },
+	{            1675,	    STRING,	291,  -1 },
+	{            1678,	    STRING,	292,  -1 },
+	{            1681,	    STRING,	293,  -1 },
+	{            1684,	    STRING,	294,  -1 },
+	{            1687,	    STRING,	295,  -1 },
+	{            1690,	    STRING,	296,  -1 },
+	{            1693,	    STRING,	297,  -1 },
+	{            1696,	    STRING,	298,  -1 },
+	{            1699,	    STRING,	299,  -1 },
+	{            1705,	    STRING,	300,  -1 },
+	{            1711,	    STRING,	301,  -1 },
+	{            1715,	    STRING,	302, 325 },
+	{            1720,	    STRING,	303, 221 },
+	{            1725,	    STRING,	304, 243 },
+	{            1729,	    STRING,	305,  -1 },
+	{            1733,	    STRING,	306, 250 },
+	{            1737,	    STRING,	307,  -1 },
+	{            1741,	    STRING,	308, 141 },
+	{            1746,	    STRING,	309, 248 },
+	{            1752,	    STRING,	310, 218 },
+	{            1758,	    STRING,	311,  -1 },
+	{            1763,	    STRING,	312, 201 },
+	{            1767,	    STRING,	313, 229 },
+	{            1773,	    STRING,	314, 264 },
+	{            1778,	    STRING,	315, 253 },
+	{            1784,	    STRING,	316, 334 },
+	{            1789,	    STRING,	317,  -1 },
+	{            1795,	    STRING,	318, 236 },
+	{            1801,	    STRING,	319, 185 },
+	{            1805,	    STRING,	320,  -1 },
+	{            1811,	    STRING,	321,  -1 },
+	{            1816,	    STRING,	322,  -1 },
+	{            1820,	    STRING,	323,  -1 },
+	{            1826,	    STRING,	324, 112 },
+	{            1831,	    STRING,	325,  -1 },
+	{            1837,	    STRING,	326,  -1 },
+	{            1843,	    STRING,	327,  -1 },
+	{            1847,	    STRING,	328,  -1 },
+	{            1852,	    STRING,	329,  -1 },
+	{            1858,	    STRING,	330,  -1 },
+	{            1864,	    STRING,	331,  53 },
+	{            1870,	    STRING,	332,  -1 },
+	{            1875,	    STRING,	333,  47 },
+	{            1881,	    STRING,	334, 155 },
+	{            1888,	    STRING,	335,  -1 },
+	{            1893,	    STRING,	336,  -1 },
+	{            1898,	    STRING,	337,  -1 },
+	{            1903,	    STRING,	338,  -1 },
+	{            1908,	    STRING,	339,  -1 },
+	{            1912,	    STRING,	340,  -1 },
+	{            1917,	    STRING,	341, 383 },
+	{            1923,	    STRING,	342,  -1 },
+	{            1929,	    STRING,	343,  -1 },
+	{            1935,	    STRING,	344, 386 },
+	{            1940,	    STRING,	345, 238 },
+	{            1946,	    STRING,	346,  -1 },
+	{            1951,	    STRING,	347, 344 },
+	{            1956,	    STRING,	348,  31 },
+	{            1961,	    STRING,	349,  -1 },
+	{            1966,	    STRING,	350, 380 },
+	{            1972,	    STRING,	351, 255 },
+	{            1978,	    STRING,	352,  -1 },
+	{            1983,	    STRING,	353,  -1 },
+	{            1989,	    STRING,	354, 347 },
+	{            1994,	    STRING,	355,  -1 },
+	{            2000,	    STRING,	356,  -1 },
+	{            2006,	    STRING,	357,  -1 },
+	{            2012,	    STRING,	358,  87 },
+	{            2017,	    STRING,	359,  -1 },
+	{            2023,	    STRING,	360,  -1 },
+	{            2029,	    STRING,	361,  -1 },
+	{            2034,	    STRING,	362,  -1 },
+	{            2039,	    STRING,	363,  -1 },
+	{            2044,	    STRING,	364,  -1 },
+	{            2049,	    STRING,	365, 212 },
+	{            2054,	    STRING,	366, 109 },
+	{            2059,	    STRING,	367, 213 },
+	{            2064,	    STRING,	368, 230 },
+	{            2070,	    STRING,	369,  -1 },
+	{            2076,	    STRING,	370,  -1 },
+	{            2082,	    STRING,	371,  -1 },
+	{            2088,	    STRING,	372,  -1 },
+	{            2093,	    STRING,	373,  -1 },
+	{            2101,	    STRING,	374,  -1 },
+	{            2107,	    STRING,	375,  -1 },
+	{            2113,	    STRING,	376,  -1 },
+	{            2122,	    STRING,	377, 116 },
+	{            2129,	    STRING,	378,  -1 },
+	{            2135,	    STRING,	379, 231 },
+	{            2141,	    STRING,	380,  -1 },
+	{            2147,	    STRING,	381, 338 },
+	{            2152,	    STRING,	382,  -1 },
+	{            2157,	    STRING,	383,  -1 },
+	{            2163,	    STRING,	384, 197 },
+	{            2169,	    STRING,	385, 430 },
+	{            2175,	    STRING,	386,  -1 },
+	{            2181,	    STRING,	387,  -1 },
+	{            2187,	    STRING,	388,  -1 },
+	{            2194,	    STRING,	389,  -1 },
+	{            2200,	    STRING,	390,  -1 },
+	{            2206,	    STRING,	391,  -1 },
+	{            2212,	    STRING,	392, 437 },
+	{            2217,	    STRING,	393,  -1 },
+	{            2225,	    STRING,	394,  -1 },
+	{            2230,	    STRING,	395,  -1 },
+	{            2235,	    NUMBER,	 33,  -1 },
+	{            2240,	   BOOLEAN,	 37,  -1 },
+	{            2245,	   BOOLEAN,	 38,  -1 },
+	{            2250,	   BOOLEAN,	 39,  -1 },
+	{            2255,	    NUMBER,	 34,  -1 },
+	{            2260,	    NUMBER,	 35,  -1 },
+	{            2265,	    STRING,	396,  -1 },
+	{            2270,	    STRING,	397,  13 },
+	{            2275,	   BOOLEAN,	 40,  -1 },
+	{            2280,	   BOOLEAN,	 41, 446 },
+	{            2285,	    NUMBER,	 36,  -1 },
+	{            2290,	    NUMBER,	 37,  -1 },
+	{            2295,	    NUMBER,	 38,  -1 },
+	{            2300,	    STRING,	398, 472 },
+	{            2305,	    STRING,	399,  -1 },
+	{            2310,	   BOOLEAN,	 42,  -1 },
+	{            2315,	   BOOLEAN,	 43,  -1 },
+	{            2320,	    STRING,	400,  -1 },
+	{            2325,	    STRING,	401,  -1 },
+	{            2330,	    STRING,	402,  -1 },
+	{            2335,	    STRING,	403,  -1 },
+	{            2340,	    STRING,	404,  -1 },
+	{            2345,	    STRING,	405,  -1 },
+	{            2350,	    STRING,	406,  -1 },
+	{            2355,	    STRING,	407,  -1 },
+	{            2360,	    STRING,	408,  26 },
+	{            2365,	    STRING,	409,  60 },
+	{            2370,	    STRING,	410, 121 },
+	{            2375,	    STRING,	411, 407 },
+	{            2380,	    STRING,	412, 402 },
+	{            2385,	    STRING,	413,  -1 } 
+};
+
+static struct name_table_entry *_nc_info_table = 0;
+
+static const short _nc_info_hash_table[995] =
+{
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	465,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	261,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	457,
+	 -1,
+	 -1,
+	265,
+	216,
+	120,
+	 -1,
+	 -1,
+	 -1,
+	180,
+	 -1,
+	 -1,
+	 88,
+	 -1,
+	420,
+	 -1,
+	398,
+	 -1,
+	348,
+	 -1,
+	 -1,
+	 19,
+	 -1,
+	 -1,
+	 -1,
+	359,
+	 -1,
+	174,
+	 -1,
+	245,
+	 -1,
+	 74,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	269,
+	 -1,
+	480,
+	 -1,
+	 -1,
+	 -1,
+	124,
+	 -1,
+	 -1,
+	 -1,
+	390,
+	379,
+	367,
+	 -1,
+	 -1,
+	444,
+	 -1,
+	 -1,
+	 -1,
+	305,
+	 -1,
+	 -1,
+	363,
+	 -1,
+	 -1,
+	483,
+	377,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	460,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	204,
+	 38,
+	 -1,
+	 82,
+	 -1,
+	110,
+	127,
+	 -1,
+	 -1,
+	463,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	336,
+	 -1,
+	 17,
+	128,
+	434,
+	 -1,
+	188,
+	129,
+	 -1,
+	351,
+	 -1,
+	 -1,
+	 16,
+	 -1,
+	 -1,
+	259,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	489,
+	 -1,
+	353,
+	 -1,
+	 71,
+	247,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 78,
+	 -1,
+	 -1,
+	331,
+	 -1,
+	 -1,
+	173,
+	136,
+	161,
+	189,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	454,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	224,
+	479,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	354,
+	 -1,
+	 -1,
+	233,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	125,
+	 11,
+	 -1,
+	 -1,
+	378,
+	166,
+	 -1,
+	191,
+	 -1,
+	 -1,
+	 48,
+	228,
+	 -1,
+	  2,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	374,
+	 -1,
+	408,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	375,
+	 -1,
+	 52,
+	145,
+	170,
+	 -1,
+	392,
+	382,
+	 -1,
+	393,
+	411,
+	 -1,
+	 -1,
+	 -1,
+	276,
+	 -1,
+	 -1,
+	 35,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	396,
+	388,
+	 36,
+	 -1,
+	 -1,
+	 64,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	350,
+	 -1,
+	 -1,
+	215,
+	 91,
+	 -1,
+	 -1,
+	439,
+	 -1,
+	122,
+	 -1,
+	200,
+	 -1,
+	 67,
+	 -1,
+	410,
+	 -1,
+	 -1,
+	 89,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 96,
+	 21,
+	 -1,
+	103,
+	  1,
+	 -1,
+	 -1,
+	369,
+	 -1,
+	 -1,
+	345,
+	 -1,
+	 -1,
+	 -1,
+	355,
+	 40,
+	 -1,
+	 27,
+	 -1,
+	406,
+	 -1,
+	 -1,
+	 -1,
+	482,
+	419,
+	417,
+	 -1,
+	 -1,
+	360,
+	270,
+	 -1,
+	 -1,
+	251,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	349,
+	 -1,
+	 -1,
+	278,
+	 -1,
+	442,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	438,
+	 -1,
+	494,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	315,
+	 -1,
+	340,
+	364,
+	356,
+	 -1,
+	484,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 32,
+	 -1,
+	 -1,
+	 -1,
+	260,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	207,
+	487,
+	 84,
+	453,
+	 -1,
+	 -1,
+	413,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	214,
+	 -1,
+	337,
+	352,
+	477,
+	 -1,
+	435,
+	 56,
+	 -1,
+	 -1,
+	 34,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	132,
+	 -1,
+	 85,
+	492,
+	428,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	199,
+	 -1,
+	342,
+	 -1,
+	 -1,
+	 -1,
+	138,
+	163,
+	190,
+	147,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	266,
+	 -1,
+	 -1,
+	433,
+	 -1,
+	 -1,
+	474,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	385,
+	100,
+	 -1,
+	 -1,
+	 -1,
+	431,
+	 -1,
+	391,
+	381,
+	 12,
+	 58,
+	 -1,
+	142,
+	167,
+	 -1,
+	 -1,
+	409,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 42,
+	 45,
+	 66,
+	 -1,
+	 -1,
+	424,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	220,
+	376,
+	 -1,
+	 -1,
+	343,
+	 -1,
+	 -1,
+	 -1,
+	114,
+	106,
+	 -1,
+	 -1,
+	447,
+	 -1,
+	217,
+	493,
+	171,
+	172,
+	399,
+	346,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	195,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	496,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	241,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	151,
+	 -1,
+	118,
+	 -1,
+	 62,
+	187,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	234,
+	 -1,
+	443,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	357,
+	 -1,
+	 -1,
+	 -1,
+	246,
+	 -1,
+	 -1,
+	 -1,
+	448,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 39,
+	 -1,
+	 10,
+	397,
+	389,
+	 -1,
+	 -1,
+	154,
+	 -1,
+	 -1,
+	 -1,
+	130,
+	 -1,
+	 22,
+	222,
+	373,
+	162,
+	 -1,
+	361,
+	203,
+	 -1,
+	 -1,
+	242,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	459,
+	 -1,
+	 -1,
+	271,
+	 -1,
+	 97,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	427,
+	 -1,
+	175,
+	107,
+	 -1,
+	 -1,
+	 -1,
+	178,
+	423,
+	372,
+	 69,
+	 -1,
+	365,
+	 -1,
+	  4,
+	486,
+	184,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	461,
+	 -1,
+	 -1,
+	282,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	475,
+	 -1,
+	 -1,
+	 -1,
+	395,
+	387,
+	 -1,
+	 -1,
+	 79,
+	 63,
+	 -1,
+	 -1,
+	452,
+	451,
+	 -1,
+	 50,
+	 -1,
+	436,
+	 -1,
+	 -1,
+	285,
+	 -1,
+	 -1,
+	 83,
+	455,
+	 -1,
+	 -1,
+	 -1,
+	279,
+	370,
+	 -1,
+	 -1,
+	 -1,
+	 18,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	421,
+	 -1,
+	495,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	227,
+	333,
+	 -1,
+	 -1,
+	 25,
+	139,
+	164,
+	 -1,
+	 -1,
+	371,
+	 -1,
+	 -1,
+	429,
+	 -1,
+	 -1,
+	 -1,
+	273,
+	 -1,
+	466,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	181,
+	 -1,
+	 -1,
+	 75,
+	 -1,
+	 92,
+	339,
+	 -1,
+	384,
+	 -1,
+	123,
+	 -1,
+	143,
+	168,
+	 -1,
+	183,
+	186,
+	 -1,
+	108,
+	 95,
+	368,
+	 -1,
+	 -1,
+	277,
+	198,
+	 -1,
+	206,
+	432,
+	 -1,
+	476,
+	 -1,
+	458,
+	 -1,
+	 -1,
+	182,
+	 -1,
+	441,
+	 -1,
+	 -1,
+	 -1,
+	115,
+	113,
+	404,
+	 -1,
+	473,
+	 -1,
+	 -1,
+	 -1,
+	490,
+	104,
+	 -1,
+	 -1,
+	450,
+	449,
+	 -1,
+	 -1,
+	 -1,
+	274,
+	 -1,
+	481,
+	111,
+	 99,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	263,
+	 93,
+	 -1,
+	117,
+	 -1,
+	 29,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	119,
+	 -1,
+	 -1,
+	426,
+	491,
+	 -1,
+	 -1,
+	205,
+	 -1,
+	237,
+	 44,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	418,
+	416,
+	 -1,
+	 -1,
+	358,
+	 -1,
+	 -1,
+	 -1,
+	 65,
+	 -1,
+	440,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	  5,
+	 -1,
+	 -1,
+	 -1,
+	488,
+	 -1,
+	 -1,
+	 -1,
+	 28,
+	412,
+	 -1,
+	405,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	295,
+	 -1,
+	471,
+	362,
+	 -1,
+	 -1,
+	485,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	202,
+	 -1,
+	 -1,
+	284,
+	 -1,
+	469,
+	 -1,
+	 -1,
+	  9,
+	 24,
+	 -1,
+	 -1,
+	179,
+	 -1,
+	 -1,
+	 15,
+	 -1,
+	 -1,
+	148,
+	 -1,
+	 -1,
+	 -1,
+	341,
+	 -1,
+	 -1,
+	366,
+	209,
+	223,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	  0,
+	 -1,
+	208,
+	467,
+	 -1,
+	422,
+	 -1,
+	464,
+	157,
+	 -1,
+	403,
+	 -1,
+	415,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	445,
+	 -1,
+	 -1,
+	330,
+	 -1,
+	 -1,
+	 -1,
+	462,
+	160,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 86,
+	 -1,
+	 -1,
+	 41,
+	 -1,
+	280,
+	 -1,
+	478,
+	 -1,
+	 -1,
+	 57,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	394,
+	414,
+	 -1,
+	 -1,
+	 -1,
+	140,
+	165,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	275,
+	102,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	232,
+	 -1,
+	 14,
+	 -1,
+	 -1,
+	225,
+	 -1,
+	 -1,
+	267,
+	 -1,
+	 77,
+	 -1,
+	144,
+	169,
+	 -1,
+	149,
+	 -1,
+	400,
+	 -1,
+	 -1,
+	 -1,
+	  3,
+	 -1,
+	 -1,
+	 -1,
+	468,
+	425,
+	 -1,
+	 -1,
+	470,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	456,
+	 -1,
+	158,
+	159,
+	 -1,
+	 -1,
+	146,
+	 49,
+	 -1,
+	 -1,
+	153,
+	 -1,
+	401,
+	 90,
+	0	/* base-of-table */
+};
+
+#if (BOOLCOUNT!=44)||(NUMCOUNT!=39)||(STRCOUNT!=414)
+#error	--> term.h and comp_captab.c disagree about the <--
+#error	--> numbers of booleans, numbers and/or strings <--
+#endif
+
+static const char cap_names_text[] = \
+"bw\0" "am\0" "xb\0" "xs\0" "xn\0" "eo\0" "gn\0" "hc\0" "km\0" "hs\0" \
+"in\0" "da\0" "db\0" "mi\0" "ms\0" "os\0" "es\0" "xt\0" "hz\0" "ul\0" \
+"xo\0" "nx\0" "5i\0" "HC\0" "NR\0" "NP\0" "ND\0" "cc\0" "ut\0" "hl\0" \
+"YA\0" "YB\0" "YC\0" "YD\0" "YE\0" "YF\0" "YG\0" "co\0" "it\0" "li\0" \
+"lm\0" "sg\0" "pb\0" "vt\0" "ws\0" "Nl\0" "lh\0" "lw\0" "ma\0" "MW\0" \
+"Co\0" "pa\0" "NC\0" "Ya\0" "Yb\0" "Yc\0" "Yd\0" "Ye\0" "Yf\0" "Yg\0" \
+"Yh\0" "Yi\0" "Yj\0" "Yk\0" "Yl\0" "Ym\0" "Yn\0" "BT\0" "Yo\0" "Yp\0" \
+"bt\0" "bl\0" "cr\0" "cs\0" "ct\0" "cl\0" "ce\0" "cd\0" "ch\0" "CC\0" \
+"cm\0" "do\0" "ho\0" "vi\0" "le\0" "CM\0" "ve\0" "nd\0" "ll\0" "up\0" \
+"vs\0" "dc\0" "dl\0" "ds\0" "hd\0" "as\0" "mb\0" "md\0" "ti\0" "dm\0" \
+"mh\0" "im\0" "mk\0" "mp\0" "mr\0" "so\0" "us\0" "ec\0" "ae\0" "me\0" \
+"te\0" "ed\0" "ei\0" "se\0" "ue\0" "vb\0" "ff\0" "fs\0" "i1\0" "is\0" \
+"i3\0" "if\0" "ic\0" "al\0" "ip\0" "kb\0" "ka\0" "kC\0" "kt\0" "kD\0" \
+"kL\0" "kd\0" "kM\0" "kE\0" "kS\0" "k0\0" "k1\0" "k;\0" "k2\0" "k3\0" \
+"k4\0" "k5\0" "k6\0" "k7\0" "k8\0" "k9\0" "kh\0" "kI\0" "kA\0" "kl\0" \
+"kH\0" "kN\0" "kP\0" "kr\0" "kF\0" "kR\0" "kT\0" "ku\0" "ke\0" "ks\0" \
+"l0\0" "l1\0" "la\0" "l2\0" "l3\0" "l4\0" "l5\0" "l6\0" "l7\0" "l8\0" \
+"l9\0" "mo\0" "mm\0" "nw\0" "pc\0" "DC\0" "DL\0" "DO\0" "IC\0" "SF\0" \
+"AL\0" "LE\0" "RI\0" "SR\0" "UP\0" "pk\0" "pl\0" "px\0" "ps\0" "pf\0" \
+"po\0" "rp\0" "r1\0" "r2\0" "r3\0" "rf\0" "rc\0" "cv\0" "sc\0" "sf\0" \
+"sr\0" "sa\0" "st\0" "wi\0" "ta\0" "ts\0" "uc\0" "hu\0" "iP\0" "K1\0" \
+"K3\0" "K2\0" "K4\0" "K5\0" "pO\0" "rP\0" "ac\0" "pn\0" "kB\0" "SX\0" \
+"RX\0" "SA\0" "RA\0" "XN\0" "XF\0" "eA\0" "LO\0" "LF\0" "@1\0" "@2\0" \
+"@3\0" "@4\0" "@5\0" "@6\0" "@7\0" "@8\0" "@9\0" "@0\0" "%1\0" "%2\0" \
+"%3\0" "%4\0" "%5\0" "%6\0" "%7\0" "%8\0" "%9\0" "%0\0" "&1\0" "&2\0" \
+"&3\0" "&4\0" "&5\0" "&6\0" "&7\0" "&8\0" "&9\0" "&0\0" "*1\0" "*2\0" \
+"*3\0" "*4\0" "*5\0" "*6\0" "*7\0" "*8\0" "*9\0" "*0\0" "#1\0" "#2\0" \
+"#3\0" "#4\0" "%a\0" "%b\0" "%c\0" "%d\0" "%e\0" "%f\0" "%g\0" "%h\0" \
+"%i\0" "%j\0" "!1\0" "!2\0" "!3\0" "RF\0" "F1\0" "F2\0" "F3\0" "F4\0" \
+"F5\0" "F6\0" "F7\0" "F8\0" "F9\0" "FA\0" "FB\0" "FC\0" "FD\0" "FE\0" \
+"FF\0" "FG\0" "FH\0" "FI\0" "FJ\0" "FK\0" "FL\0" "FM\0" "FN\0" "FO\0" \
+"FP\0" "FQ\0" "FR\0" "FS\0" "FT\0" "FU\0" "FV\0" "FW\0" "FX\0" "FY\0" \
+"FZ\0" "Fa\0" "Fb\0" "Fc\0" "Fd\0" "Fe\0" "Ff\0" "Fg\0" "Fh\0" "Fi\0" \
+"Fj\0" "Fk\0" "Fl\0" "Fm\0" "Fn\0" "Fo\0" "Fp\0" "Fq\0" "Fr\0" "cb\0" \
+"MC\0" "ML\0" "MR\0" "Lf\0" "SC\0" "DK\0" "RC\0" "CW\0" "WG\0" "HU\0" \
+"DI\0" "QD\0" "TO\0" "PU\0" "fh\0" "PA\0" "WA\0" "u0\0" "u1\0" "u2\0" \
+"u3\0" "u4\0" "u5\0" "u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "Ic\0" \
+"Ip\0" "sp\0" "Sf\0" "Sb\0" "ZA\0" "ZB\0" "ZC\0" "ZD\0" "ZE\0" "ZF\0" \
+"ZG\0" "ZH\0" "ZI\0" "ZJ\0" "ZK\0" "ZL\0" "ZM\0" "ZN\0" "ZO\0" "ZP\0" \
+"ZQ\0" "ZR\0" "ZS\0" "ZT\0" "ZU\0" "ZV\0" "ZW\0" "ZX\0" "ZY\0" "ZZ\0" \
+"Za\0" "Zb\0" "Zc\0" "Zd\0" "Ze\0" "Zf\0" "Zg\0" "Zh\0" "Zi\0" "Zj\0" \
+"Zk\0" "Zl\0" "Zm\0" "Zn\0" "Zo\0" "Zp\0" "Zq\0" "Zr\0" "Zs\0" "Zt\0" \
+"Zu\0" "Zv\0" "Zw\0" "Zx\0" "Zy\0" "Km\0" "Mi\0" "RQ\0" "Gm\0" "AF\0" \
+"AB\0" "xl\0" "dv\0" "ci\0" "s0\0" "s1\0" "s2\0" "s3\0" "ML\0" "MT\0" \
+"Xy\0" "Zz\0" "Yv\0" "Yw\0" "Yx\0" "Yy\0" "Yz\0" "YZ\0" "S1\0" "S2\0" \
+"S3\0" "S4\0" "S5\0" "S6\0" "S7\0" "S8\0" "Xh\0" "Xl\0" "Xo\0" "Xr\0" \
+"Xt\0" "Xv\0" "sA\0" "sL\0" "i2\0" "rs\0" "ug\0" "bs\0" "ns\0" "nc\0" \
+"dC\0" "dN\0" "nl\0" "bc\0" "MT\0" "NL\0" "dB\0" "dT\0" "kn\0" "ko\0" \
+"ma\0" "pt\0" "xr\0" "G2\0" "G3\0" "G1\0" "G4\0" "GR\0" "GL\0" "GU\0" \
+"GD\0" "GH\0" "GV\0" "GC\0" "ml\0" "mu\0" "bx\0" ;
+
+static name_table_data const cap_names_data[] =
+{
+	{               0,	   BOOLEAN,	  0,  -1 },
+	{               3,	   BOOLEAN,	  1,  -1 },
+	{               6,	   BOOLEAN,	  2,  -1 },
+	{               9,	   BOOLEAN,	  3,  -1 },
+	{              12,	   BOOLEAN,	  4,  -1 },
+	{              15,	   BOOLEAN,	  5,  -1 },
+	{              18,	   BOOLEAN,	  6,  -1 },
+	{              21,	   BOOLEAN,	  7,  -1 },
+	{              24,	   BOOLEAN,	  8,  -1 },
+	{              27,	   BOOLEAN,	  9,  -1 },
+	{              30,	   BOOLEAN,	 10,  -1 },
+	{              33,	   BOOLEAN,	 11,  -1 },
+	{              36,	   BOOLEAN,	 12,  -1 },
+	{              39,	   BOOLEAN,	 13,  -1 },
+	{              42,	   BOOLEAN,	 14,  -1 },
+	{              45,	   BOOLEAN,	 15,  -1 },
+	{              48,	   BOOLEAN,	 16,  -1 },
+	{              51,	   BOOLEAN,	 17,  -1 },
+	{              54,	   BOOLEAN,	 18,  -1 },
+	{              57,	   BOOLEAN,	 19,  -1 },
+	{              60,	   BOOLEAN,	 20,  -1 },
+	{              63,	   BOOLEAN,	 21,  -1 },
+	{              66,	   BOOLEAN,	 22,  -1 },
+	{              69,	   BOOLEAN,	 23,  -1 },
+	{              72,	   BOOLEAN,	 24,   1 },
+	{              75,	   BOOLEAN,	 25,  -1 },
+	{              78,	   BOOLEAN,	 26,  -1 },
+	{              81,	   BOOLEAN,	 27,  -1 },
+	{              84,	   BOOLEAN,	 28,  -1 },
+	{              87,	   BOOLEAN,	 29,  -1 },
+	{              90,	   BOOLEAN,	 30,  -1 },
+	{              93,	   BOOLEAN,	 31,  -1 },
+	{              96,	   BOOLEAN,	 32,  -1 },
+	{              99,	   BOOLEAN,	 33,  -1 },
+	{             102,	   BOOLEAN,	 34,  -1 },
+	{             105,	   BOOLEAN,	 35,  -1 },
+	{             108,	   BOOLEAN,	 36,  -1 },
+	{             111,	    NUMBER,	  0,  -1 },
+	{             114,	    NUMBER,	  1,  -1 },
+	{             117,	    NUMBER,	  2,  -1 },
+	{             120,	    NUMBER,	  3,  -1 },
+	{             123,	    NUMBER,	  4,  -1 },
+	{             126,	    NUMBER,	  5,  -1 },
+	{             129,	    NUMBER,	  6,  -1 },
+	{             132,	    NUMBER,	  7,  -1 },
+	{             135,	    NUMBER,	  8,  -1 },
+	{             138,	    NUMBER,	  9,  -1 },
+	{             141,	    NUMBER,	 10,  -1 },
+	{             144,	    NUMBER,	 11,  -1 },
+	{             147,	    NUMBER,	 12,  -1 },
+	{             150,	    NUMBER,	 13,  -1 },
+	{             153,	    NUMBER,	 14,  -1 },
+	{             156,	    NUMBER,	 15,  -1 },
+	{             159,	    NUMBER,	 16,  -1 },
+	{             162,	    NUMBER,	 17,  -1 },
+	{             165,	    NUMBER,	 18,  -1 },
+	{             168,	    NUMBER,	 19,  -1 },
+	{             171,	    NUMBER,	 20,  -1 },
+	{             174,	    NUMBER,	 21,  -1 },
+	{             177,	    NUMBER,	 22,  -1 },
+	{             180,	    NUMBER,	 23,  -1 },
+	{             183,	    NUMBER,	 24,  -1 },
+	{             186,	    NUMBER,	 25,  -1 },
+	{             189,	    NUMBER,	 26,  -1 },
+	{             192,	    NUMBER,	 27,  -1 },
+	{             195,	    NUMBER,	 28,  -1 },
+	{             198,	    NUMBER,	 29,  -1 },
+	{             201,	    NUMBER,	 30,  -1 },
+	{             204,	    NUMBER,	 31,  -1 },
+	{             207,	    NUMBER,	 32,  -1 },
+	{             210,	    STRING,	  0,  -1 },
+	{             213,	    STRING,	  1,  -1 },
+	{             216,	    STRING,	  2,  -1 },
+	{             219,	    STRING,	  3,  -1 },
+	{             222,	    STRING,	  4,  -1 },
+	{             225,	    STRING,	  5,  -1 },
+	{             228,	    STRING,	  6,  -1 },
+	{             231,	    STRING,	  7,  -1 },
+	{             234,	    STRING,	  8,  -1 },
+	{             237,	    STRING,	  9,  -1 },
+	{             240,	    STRING,	 10,  -1 },
+	{             243,	    STRING,	 11,  -1 },
+	{             246,	    STRING,	 12,  -1 },
+	{             249,	    STRING,	 13,  -1 },
+	{             252,	    STRING,	 14,  -1 },
+	{             255,	    STRING,	 15,  -1 },
+	{             258,	    STRING,	 16,  -1 },
+	{             261,	    STRING,	 17,  -1 },
+	{             264,	    STRING,	 18,  -1 },
+	{             267,	    STRING,	 19,  -1 },
+	{             270,	    STRING,	 20,  -1 },
+	{             273,	    STRING,	 21,  -1 },
+	{             276,	    STRING,	 22,  -1 },
+	{             279,	    STRING,	 23,  -1 },
+	{             282,	    STRING,	 24,  -1 },
+	{             285,	    STRING,	 25,  -1 },
+	{             288,	    STRING,	 26,  -1 },
+	{             291,	    STRING,	 27,  -1 },
+	{             294,	    STRING,	 28,  -1 },
+	{             297,	    STRING,	 29,  -1 },
+	{             300,	    STRING,	 30,  -1 },
+	{             303,	    STRING,	 31,  -1 },
+	{             306,	    STRING,	 32,  -1 },
+	{             309,	    STRING,	 33,  -1 },
+	{             312,	    STRING,	 34,  -1 },
+	{             315,	    STRING,	 35,  -1 },
+	{             318,	    STRING,	 36,  -1 },
+	{             321,	    STRING,	 37,  -1 },
+	{             324,	    STRING,	 38,  -1 },
+	{             327,	    STRING,	 39,  -1 },
+	{             330,	    STRING,	 40,  -1 },
+	{             333,	    STRING,	 41,  -1 },
+	{             336,	    STRING,	 42,  -1 },
+	{             339,	    STRING,	 43,  -1 },
+	{             342,	    STRING,	 44,  -1 },
+	{             345,	    STRING,	 45,  -1 },
+	{             348,	    STRING,	 46,  -1 },
+	{             351,	    STRING,	 47,  -1 },
+	{             354,	    STRING,	 48, 102 },
+	{             357,	    STRING,	 49,  -1 },
+	{             360,	    STRING,	 50,  -1 },
+	{             363,	    STRING,	 51,  -1 },
+	{             366,	    STRING,	 52,  -1 },
+	{             369,	    STRING,	 53,  -1 },
+	{             372,	    STRING,	 54,  -1 },
+	{             375,	    STRING,	 55,  -1 },
+	{             378,	    STRING,	 56,  -1 },
+	{             381,	    STRING,	 57,  -1 },
+	{             384,	    STRING,	 58,  -1 },
+	{             387,	    STRING,	 59,  -1 },
+	{             390,	    STRING,	 60,  -1 },
+	{             393,	    STRING,	 61,  -1 },
+	{             396,	    STRING,	 62,  -1 },
+	{             399,	    STRING,	 63,  -1 },
+	{             402,	    STRING,	 64,  -1 },
+	{             405,	    STRING,	 65,  -1 },
+	{             408,	    STRING,	 66,  -1 },
+	{             411,	    STRING,	 67,  -1 },
+	{             414,	    STRING,	 68,  -1 },
+	{             417,	    STRING,	 69,  -1 },
+	{             420,	    STRING,	 70,  -1 },
+	{             423,	    STRING,	 71,  -1 },
+	{             426,	    STRING,	 72,  -1 },
+	{             429,	    STRING,	 73,  -1 },
+	{             432,	    STRING,	 74,  -1 },
+	{             435,	    STRING,	 75,  15 },
+	{             438,	    STRING,	 76,  -1 },
+	{             441,	    STRING,	 77,  -1 },
+	{             444,	    STRING,	 78,  -1 },
+	{             447,	    STRING,	 79,  -1 },
+	{             450,	    STRING,	 80,  -1 },
+	{             453,	    STRING,	 81,  -1 },
+	{             456,	    STRING,	 82,  -1 },
+	{             459,	    STRING,	 83,  -1 },
+	{             462,	    STRING,	 84,  -1 },
+	{             465,	    STRING,	 85,  -1 },
+	{             468,	    STRING,	 86,  -1 },
+	{             471,	    STRING,	 87,  -1 },
+	{             474,	    STRING,	 88,  -1 },
+	{             477,	    STRING,	 89,  -1 },
+	{             480,	    STRING,	 90,  -1 },
+	{             483,	    STRING,	 91,  -1 },
+	{             486,	    STRING,	 92,  35 },
+	{             489,	    STRING,	 93,  -1 },
+	{             492,	    STRING,	 94,  -1 },
+	{             495,	    STRING,	 95,  -1 },
+	{             498,	    STRING,	 96,  -1 },
+	{             501,	    STRING,	 97,  -1 },
+	{             504,	    STRING,	 98,  -1 },
+	{             507,	    STRING,	 99,  -1 },
+	{             510,	    STRING,	100,  -1 },
+	{             513,	    STRING,	101,  -1 },
+	{             516,	    STRING,	102, 120 },
+	{             519,	    STRING,	103,  -1 },
+	{             522,	    STRING,	104,  -1 },
+	{             525,	    STRING,	105,  -1 },
+	{             528,	    STRING,	106,  -1 },
+	{             531,	    STRING,	107,  -1 },
+	{             534,	    STRING,	108,  -1 },
+	{             537,	    STRING,	109,  -1 },
+	{             540,	    STRING,	110,  -1 },
+	{             543,	    STRING,	111,  -1 },
+	{             546,	    STRING,	112, 111 },
+	{             549,	    STRING,	113,  -1 },
+	{             552,	    STRING,	114,  -1 },
+	{             555,	    STRING,	115, 161 },
+	{             558,	    STRING,	116, 163 },
+	{             561,	    STRING,	117,  -1 },
+	{             564,	    STRING,	118, 170 },
+	{             567,	    STRING,	119,  -1 },
+	{             570,	    STRING,	120, 166 },
+	{             573,	    STRING,	121,  -1 },
+	{             576,	    STRING,	122,  -1 },
+	{             579,	    STRING,	123,  -1 },
+	{             582,	    STRING,	124,  -1 },
+	{             585,	    STRING,	125,  -1 },
+	{             588,	    STRING,	126,  -1 },
+	{             591,	    STRING,	127,  -1 },
+	{             594,	    STRING,	128,  -1 },
+	{             597,	    STRING,	129,  -1 },
+	{             600,	    STRING,	130,  -1 },
+	{             603,	    STRING,	131,  -1 },
+	{             606,	    STRING,	132,  -1 },
+	{             609,	    STRING,	133,  -1 },
+	{             612,	    STRING,	134,  -1 },
+	{             615,	    STRING,	135,  -1 },
+	{             618,	    STRING,	136,  -1 },
+	{             621,	    STRING,	137,  -1 },
+	{             624,	    STRING,	138,  -1 },
+	{             627,	    STRING,	139,  -1 },
+	{             630,	    STRING,	140,  -1 },
+	{             633,	    STRING,	141,  -1 },
+	{             636,	    STRING,	142,  -1 },
+	{             639,	    STRING,	143,  -1 },
+	{             642,	    STRING,	144,  -1 },
+	{             645,	    STRING,	145,  37 },
+	{             648,	    STRING,	146,  -1 },
+	{             651,	    STRING,	147, 165 },
+	{             654,	    STRING,	148,  -1 },
+	{             657,	    STRING,	149, 117 },
+	{             660,	    STRING,	150,  16 },
+	{             663,	    STRING,	151,  -1 },
+	{             666,	    STRING,	152,  -1 },
+	{             669,	    STRING,	153,  -1 },
+	{             672,	    STRING,	154, 126 },
+	{             675,	    STRING,	155,  -1 },
+	{             678,	    STRING,	156,  -1 },
+	{             681,	    STRING,	157,  -1 },
+	{             684,	    STRING,	158,  -1 },
+	{             687,	    STRING,	159,  -1 },
+	{             690,	    STRING,	160,  -1 },
+	{             693,	    STRING,	161,  -1 },
+	{             696,	    STRING,	162,  -1 },
+	{             699,	    STRING,	163,  -1 },
+	{             702,	    STRING,	164, 183 },
+	{             705,	    STRING,	165,  -1 },
+	{             708,	    STRING,	166,  -1 },
+	{             711,	    STRING,	167, 116 },
+	{             714,	    STRING,	168,  -1 },
+	{             717,	    STRING,	169,  97 },
+	{             720,	    STRING,	170, 109 },
+	{             723,	    STRING,	171,  -1 },
+	{             726,	    STRING,	172,  -1 },
+	{             729,	    STRING,	173, 100 },
+	{             732,	    STRING,	174,  13 },
+	{             735,	    STRING,	175,  -1 },
+	{             738,	    STRING,	176, 118 },
+	{             741,	    STRING,	177,  96 },
+	{             744,	    STRING,	178,  -1 },
+	{             747,	    STRING,	179,  87 },
+	{             750,	    STRING,	180,  -1 },
+	{             753,	    STRING,	181,  -1 },
+	{             756,	    STRING,	182,  -1 },
+	{             759,	    STRING,	183,  -1 },
+	{             762,	    STRING,	184,  -1 },
+	{             765,	    STRING,	185,  -1 },
+	{             768,	    STRING,	186,  -1 },
+	{             771,	    STRING,	187,  -1 },
+	{             774,	    STRING,	188, 196 },
+	{             777,	    STRING,	189,  -1 },
+	{             780,	    STRING,	190,  -1 },
+	{             783,	    STRING,	191, 195 },
+	{             786,	    STRING,	192,  -1 },
+	{             789,	    STRING,	193,  -1 },
+	{             792,	    STRING,	194,  -1 },
+	{             795,	    STRING,	195,  -1 },
+	{             798,	    STRING,	196,  -1 },
+	{             801,	    STRING,	197,  -1 },
+	{             804,	    STRING,	198,  -1 },
+	{             807,	    STRING,	199, 131 },
+	{             810,	    STRING,	200, 158 },
+	{             813,	    STRING,	201,  -1 },
+	{             816,	    STRING,	202,  -1 },
+	{             819,	    STRING,	203,  -1 },
+	{             822,	    STRING,	204,  -1 },
+	{             825,	    STRING,	205,  -1 },
+	{             828,	    STRING,	206,  -1 },
+	{             831,	    STRING,	207,  -1 },
+	{             834,	    STRING,	208,  -1 },
+	{             837,	    STRING,	209,  -1 },
+	{             840,	    STRING,	210,  -1 },
+	{             843,	    STRING,	211,  -1 },
+	{             846,	    STRING,	212, 122 },
+	{             849,	    STRING,	213,  -1 },
+	{             852,	    STRING,	214,  -1 },
+	{             855,	    STRING,	215,  -1 },
+	{             858,	    STRING,	216,  -1 },
+	{             861,	    STRING,	217,  46 },
+	{             864,	    STRING,	218,  39 },
+	{             867,	    STRING,	219,  -1 },
+	{             870,	    STRING,	220,  -1 },
+	{             873,	    STRING,	221,  88 },
+	{             876,	    STRING,	222,  40 },
+	{             879,	    STRING,	223,  -1 },
+	{             882,	    STRING,	224,  -1 },
+	{             885,	    STRING,	225,  47 },
+	{             888,	    STRING,	226,  -1 },
+	{             891,	    STRING,	227,  -1 },
+	{             894,	    STRING,	228,  -1 },
+	{             897,	    STRING,	229,  -1 },
+	{             900,	    STRING,	230,  53 },
+	{             903,	    STRING,	231,  54 },
+	{             906,	    STRING,	232,  55 },
+	{             909,	    STRING,	233,  56 },
+	{             912,	    STRING,	234,  57 },
+	{             915,	    STRING,	235,  58 },
+	{             918,	    STRING,	236,  59 },
+	{             921,	    STRING,	237,  60 },
+	{             924,	    STRING,	238,  61 },
+	{             927,	    STRING,	239,  62 },
+	{             930,	    STRING,	240,  63 },
+	{             933,	    STRING,	241,  64 },
+	{             936,	    STRING,	242,  65 },
+	{             939,	    STRING,	243,  66 },
+	{             942,	    STRING,	244,  68 },
+	{             945,	    STRING,	245,  69 },
+	{             948,	    STRING,	246,  -1 },
+	{             951,	    STRING,	247,  -1 },
+	{             954,	    STRING,	248,  -1 },
+	{             957,	    STRING,	249,  -1 },
+	{             960,	    STRING,	250,  -1 },
+	{             963,	    STRING,	251,  -1 },
+	{             966,	    STRING,	252,  -1 },
+	{             969,	    STRING,	253,  -1 },
+	{             972,	    STRING,	254,  -1 },
+	{             975,	    STRING,	255,  -1 },
+	{             978,	    STRING,	256,  -1 },
+	{             981,	    STRING,	257,   7 },
+	{             984,	    STRING,	258,  94 },
+	{             987,	    STRING,	259,  -1 },
+	{             990,	    STRING,	260,  -1 },
+	{             993,	    STRING,	261,  -1 },
+	{             996,	    STRING,	262,  -1 },
+	{             999,	    STRING,	263,  -1 },
+	{            1002,	    STRING,	264,  -1 },
+	{            1005,	    STRING,	265, 184 },
+	{            1008,	    STRING,	266,  29 },
+	{            1011,	    STRING,	267,  -1 },
+	{            1014,	    STRING,	268,  -1 },
+	{            1017,	    STRING,	269,  -1 },
+	{            1020,	    STRING,	270,  -1 },
+	{            1023,	    STRING,	271,  -1 },
+	{            1026,	    STRING,	272,  -1 },
+	{            1029,	    STRING,	273, 257 },
+	{            1032,	    STRING,	274,  -1 },
+	{            1035,	    STRING,	275,  -1 },
+	{            1038,	    STRING,	276,  -1 },
+	{            1041,	    STRING,	277,   4 },
+	{            1044,	    STRING,	278,  -1 },
+	{            1047,	    STRING,	279,  -1 },
+	{            1050,	    STRING,	280,  -1 },
+	{            1053,	    STRING,	281,  -1 },
+	{            1056,	    STRING,	282,  -1 },
+	{            1059,	    STRING,	283,  -1 },
+	{            1062,	    STRING,	284, 229 },
+	{            1065,	    STRING,	285,  -1 },
+	{            1068,	    STRING,	286,  -1 },
+	{            1071,	    STRING,	287,  -1 },
+	{            1074,	    STRING,	288,  -1 },
+	{            1077,	    STRING,	289,  -1 },
+	{            1080,	    STRING,	290,  -1 },
+	{            1083,	    STRING,	291,  -1 },
+	{            1086,	    STRING,	292,  -1 },
+	{            1089,	    STRING,	293,  -1 },
+	{            1092,	    STRING,	294,  -1 },
+	{            1095,	    STRING,	295,  -1 },
+	{            1098,	    STRING,	296,  -1 },
+	{            1101,	    STRING,	297, 142 },
+	{            1104,	    STRING,	298,  -1 },
+	{            1107,	    STRING,	299,  -1 },
+	{            1110,	    STRING,	300, 149 },
+	{            1113,	    STRING,	301,  -1 },
+	{            1116,	    STRING,	302,  -1 },
+	{            1119,	    STRING,	303,  -1 },
+	{            1122,	    STRING,	304,  -1 },
+	{            1125,	    STRING,	305,  -1 },
+	{            1128,	    STRING,	306,  -1 },
+	{            1131,	    STRING,	307,  -1 },
+	{            1134,	    STRING,	308,  -1 },
+	{            1137,	    STRING,	309,  48 },
+	{            1140,	    STRING,	310, 247 },
+	{            1143,	    STRING,	311, 238 },
+	{            1146,	    STRING,	312, 239 },
+	{            1149,	    STRING,	313, 240 },
+	{            1152,	    STRING,	314, 241 },
+	{            1155,	    STRING,	315, 242 },
+	{            1158,	    STRING,	316, 243 },
+	{            1161,	    STRING,	317, 244 },
+	{            1164,	    STRING,	318, 245 },
+	{            1167,	    STRING,	319, 246 },
+	{            1170,	    STRING,	320,  -1 },
+	{            1173,	    STRING,	321, 172 },
+	{            1176,	    STRING,	322,  -1 },
+	{            1179,	    STRING,	323, 171 },
+	{            1182,	    STRING,	324, 103 },
+	{            1185,	    STRING,	325,  -1 },
+	{            1188,	    STRING,	326, 104 },
+	{            1191,	    STRING,	327,  14 },
+	{            1194,	    STRING,	328,  -1 },
+	{            1197,	    STRING,	329,  -1 },
+	{            1200,	    STRING,	330,  -1 },
+	{            1203,	    STRING,	331,  -1 },
+	{            1206,	    STRING,	332,  -1 },
+	{            1209,	    STRING,	333,  -1 },
+	{            1212,	    STRING,	334,  -1 },
+	{            1215,	    STRING,	335,  -1 },
+	{            1218,	    STRING,	336,  -1 },
+	{            1221,	    STRING,	337,  -1 },
+	{            1224,	    STRING,	338,  -1 },
+	{            1227,	    STRING,	339,  -1 },
+	{            1230,	    STRING,	340,  -1 },
+	{            1233,	    STRING,	341,  -1 },
+	{            1236,	    STRING,	342,  -1 },
+	{            1239,	    STRING,	343,  -1 },
+	{            1242,	    STRING,	344, 208 },
+	{            1245,	    STRING,	345,  -1 },
+	{            1248,	    STRING,	346,  -1 },
+	{            1251,	    STRING,	347,  -1 },
+	{            1254,	    STRING,	348,  -1 },
+	{            1257,	    STRING,	349,  -1 },
+	{            1260,	    STRING,	350,  -1 },
+	{            1263,	    STRING,	351,  -1 },
+	{            1266,	    STRING,	352,  -1 },
+	{            1269,	    STRING,	353, 272 },
+	{            1272,	    STRING,	354, 273 },
+	{            1275,	    STRING,	355, 387 },
+	{            1278,	    STRING,	356,  -1 },
+	{            1281,	    STRING,	357,  -1 },
+	{            1284,	    STRING,	358,  -1 },
+	{            1287,	    STRING,	359,  -1 },
+	{            1290,	    STRING,	360,  -1 },
+	{            1293,	    STRING,	361,  -1 },
+	{            1296,	    STRING,	362,  -1 },
+	{            1299,	    STRING,	363,  -1 },
+	{            1302,	    STRING,	364,  -1 },
+	{            1305,	    STRING,	365,  67 },
+	{            1308,	    STRING,	366,  -1 },
+	{            1311,	    STRING,	367,  -1 },
+	{            1314,	    STRING,	368, 341 },
+	{            1317,	    STRING,	369,  -1 },
+	{            1320,	    STRING,	370,  -1 },
+	{            1323,	    STRING,	371, 274 },
+	{            1326,	    STRING,	372,  -1 },
+	{            1329,	    STRING,	373,  -1 },
+	{            1332,	    STRING,	374,  -1 },
+	{            1335,	    STRING,	375,  -1 },
+	{            1338,	    STRING,	376,  -1 },
+	{            1341,	    STRING,	377,  -1 },
+	{            1344,	    STRING,	378,  -1 },
+	{            1347,	    STRING,	379,  -1 },
+	{            1350,	    STRING,	380,  -1 },
+	{            1353,	    STRING,	381, 357 },
+	{            1356,	    STRING,	382, 358 },
+	{            1359,	    STRING,	383, 359 },
+	{            1362,	    STRING,	384, 360 },
+	{            1365,	    STRING,	385, 361 },
+	{            1368,	    STRING,	386,  -1 },
+	{            1371,	    STRING,	387,  -1 },
+	{            1374,	    STRING,	388,  -1 },
+	{            1377,	    STRING,	389,  -1 },
+	{            1380,	    STRING,	390,  -1 },
+	{            1383,	    STRING,	391,  -1 },
+	{            1386,	    STRING,	392,  -1 },
+	{            1389,	    STRING,	393,  -1 },
+	{            1392,	    STRING,	394, 390 },
+	{            1395,	    STRING,	395,  -1 },
+	{            1398,	    NUMBER,	 33,  -1 },
+	{            1401,	   BOOLEAN,	 37,  -1 },
+	{            1404,	   BOOLEAN,	 38,  -1 },
+	{            1407,	   BOOLEAN,	 39, 248 },
+	{            1410,	    NUMBER,	 34,  -1 },
+	{            1413,	    NUMBER,	 35, 203 },
+	{            1416,	    STRING,	396,  -1 },
+	{            1419,	    STRING,	397,  -1 },
+	{            1422,	   BOOLEAN,	 40, 439 },
+	{            1425,	   BOOLEAN,	 41,  -1 },
+	{            1428,	    NUMBER,	 36,  -1 },
+	{            1431,	    NUMBER,	 37,  -1 },
+	{            1434,	    NUMBER,	 38,  -1 },
+	{            1437,	    STRING,	398,  -1 },
+	{            1440,	    STRING,	399, 379 },
+	{            1443,	   BOOLEAN,	 42,  -1 },
+	{            1446,	   BOOLEAN,	 43,  -1 },
+	{            1449,	    STRING,	400, 386 },
+	{            1452,	    STRING,	401, 425 },
+	{            1455,	    STRING,	402, 385 },
+	{            1458,	    STRING,	403, 388 },
+	{            1461,	    STRING,	404, 412 },
+	{            1464,	    STRING,	405, 406 },
+	{            1467,	    STRING,	406, 415 },
+	{            1470,	    STRING,	407,  -1 },
+	{            1473,	    STRING,	408, 402 },
+	{            1476,	    STRING,	409, 416 },
+	{            1479,	    STRING,	410,  -1 },
+	{            1482,	    STRING,	411, 464 },
+	{            1485,	    STRING,	412, 399 },
+	{            1488,	    STRING,	413,  -1 } 
+};
+
+static struct name_table_entry *_nc_cap_table = 0;
+
+static const short _nc_cap_hash_table[995] =
+{
+	253,
+	 -1,
+	 45,
+	211,
+	263,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	449,
+	457,
+	311,
+	411,
+	 -1,
+	132,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	123,
+	 71,
+	 75,
+	 92,
+	427,
+	233,
+	 -1,
+	336,
+	 -1,
+	 -1,
+	370,
+	291,
+	494,
+	472,
+	138,
+	186,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 19,
+	193,
+	436,
+	431,
+	453,
+	 -1,
+	315,
+	489,
+	349,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	353,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	124,
+	 -1,
+	 -1,
+	 -1,
+	394,
+	 -1,
+	367,
+	167,
+	 -1,
+	191,
+	371,
+	 -1,
+	 89,
+	 -1,
+	 -1,
+	 -1,
+	363,
+	460,
+	319,
+	419,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 70,
+	 74,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 38,
+	 -1,
+	128,
+	 -1,
+	398,
+	 -1,
+	 -1,
+	481,
+	 -1,
+	 -1,
+	202,
+	 -1,
+	 28,
+	 43,
+	 -1,
+	 17,
+	 -1,
+	 -1,
+	444,
+	423,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	496,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	430,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	296,
+	 -1,
+	 21,
+	 -1,
+	187,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	321,
+	276,
+	 -1,
+	 -1,
+	 31,
+	375,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	429,
+	476,
+	 -1,
+	 -1,
+	 -1,
+	300,
+	400,
+	 -1,
+	218,
+	 -1,
+	 -1,
+	227,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 11,
+	285,
+	179,
+	 -1,
+	325,
+	280,
+	 -1,
+	224,
+	162,
+	480,
+	 -1,
+	 -1,
+	 51,
+	 -1,
+	 -1,
+	201,
+	204,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 22,
+	 -1,
+	304,
+	404,
+	 -1,
+	154,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	108,
+	 -1,
+	 76,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	329,
+	284,
+	 -1,
+	270,
+	 84,
+	383,
+	250,
+	426,
+	 -1,
+	 -1,
+	260,
+	113,
+	110,
+	114,
+	 86,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	308,
+	408,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	433,
+	 -1,
+	112,
+	230,
+	 -1,
+	333,
+	428,
+	 -1,
+	223,
+	288,
+	484,
+	254,
+	 -1,
+	 -1,
+	210,
+	264,
+	 -1,
+	 98,
+	 -1,
+	 83,
+	471,
+	 -1,
+	450,
+	 -1,
+	312,
+	487,
+	 -1,
+	151,
+	 -1,
+	 -1,
+	 -1,
+	342,
+	 24,
+	 -1,
+	 80,
+	 99,
+	 -1,
+	234,
+	 -1,
+	337,
+	101,
+	 -1,
+	  8,
+	292,
+	391,
+	 -1,
+	139,
+	164,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	194,
+	437,
+	 -1,
+	454,
+	 -1,
+	316,
+	492,
+	 -1,
+	155,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	395,
+	 -1,
+	143,
+	168,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	364,
+	 -1,
+	320,
+	420,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	207,
+	 -1,
+	 -1,
+	157,
+	447,
+	495,
+	 -1,
+	137,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	440,
+	445,
+	424,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 79,
+	175,
+	 -1,
+	297,
+	493,
+	 23,
+	178,
+	 -1,
+	 -1,
+	 -1,
+	340,
+	 52,
+	 -1,
+	 -1,
+	 -1,
+	346,
+	344,
+	 -1,
+	322,
+	277,
+	 -1,
+	 -1,
+	 32,
+	376,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	373,
+	 -1,
+	470,
+	 -1,
+	 -1,
+	 -1,
+	301,
+	401,
+	 -1,
+	127,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	339,
+	 12,
+	 -1,
+	 -1,
+	 -1,
+	326,
+	281,
+	348,
+	125,
+	 36,
+	380,
+	343,
+	 -1,
+	 42,
+	 -1,
+	267,
+	 -1,
+	 -1,
+	372,
+	115,
+	 -1,
+	  2,
+	345,
+	 -1,
+	305,
+	405,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	237,
+	 -1,
+	330,
+	121,
+	 -1,
+	271,
+	 -1,
+	384,
+	251,
+	 -1,
+	189,
+	 -1,
+	261,
+	199,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	177,
+	 -1,
+	309,
+	409,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	226,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	231,
+	352,
+	334,
+	 -1,
+	 -1,
+	 -1,
+	289,
+	486,
+	255,
+	135,
+	160,
+	212,
+	265,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	434,
+	 -1,
+	451,
+	 -1,
+	313,
+	413,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	214,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	235,
+	  6,
+	338,
+	 10,
+	 -1,
+	478,
+	293,
+	392,
+	 -1,
+	140,
+	217,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	347,
+	455,
+	459,
+	317,
+	417,
+	 -1,
+	134,
+	 -1,
+	 -1,
+	 -1,
+	 49,
+	 -1,
+	 -1,
+	 72,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	153,
+	 -1,
+	396,
+	 -1,
+	144,
+	169,
+	 -1,
+	 -1,
+	200,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	482,
+	365,
+	461,
+	442,
+	421,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	197,
+	432,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	446,
+	441,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 18,
+	 -1,
+	 -1,
+	 -1,
+	298,
+	490,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 26,
+	 -1,
+	 -1,
+	351,
+	 -1,
+	 -1,
+	 -1,
+	323,
+	278,
+	 -1,
+	369,
+	 33,
+	377,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	302,
+	491,
+	 -1,
+	129,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	216,
+	473,
+	 27,
+	 91,
+	107,
+	 -1,
+	 -1,
+	327,
+	282,
+	 -1,
+	268,
+	 -1,
+	381,
+	469,
+	368,
+	174,
+	 -1,
+	258,
+	198,
+	 -1,
+	206,
+	180,
+	 -1,
+	 -1,
+	176,
+	 -1,
+	306,
+	488,
+	 -1,
+	150,
+	 -1,
+	 -1,
+	 -1,
+	438,
+	475,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	228,
+	 -1,
+	331,
+	 -1,
+	 -1,
+	 -1,
+	286,
+	485,
+	252,
+	 -1,
+	 -1,
+	209,
+	262,
+	 41,
+	 -1,
+	466,
+	 -1,
+	 -1,
+	 -1,
+	448,
+	 -1,
+	310,
+	410,
+	 -1,
+	130,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 25,
+	 -1,
+	 -1,
+	463,
+	 50,
+	232,
+	 -1,
+	335,
+	 -1,
+	 -1,
+	 -1,
+	290,
+	389,
+	256,
+	136,
+	185,
+	213,
+	266,
+	 -1,
+	 -1,
+	 -1,
+	192,
+	435,
+	 -1,
+	452,
+	458,
+	314,
+	414,
+	 -1,
+	152,
+	 -1,
+	 -1,
+	 -1,
+	474,
+	 -1,
+	 -1,
+	215,
+	 81,
+	  5,
+	236,
+	 -1,
+	 82,
+	 -1,
+	 -1,
+	479,
+	294,
+	393,
+	 -1,
+	141,
+	190,
+	 -1,
+	 -1,
+	105,
+	 -1,
+	 -1,
+	 -1,
+	477,
+	 20,
+	362,
+	 -1,
+	318,
+	418,
+	 -1,
+	156,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 95,
+	467,
+	 73,
+	 93,
+	220,
+	219,
+	 -1,
+	  9,
+	119,
+	 -1,
+	159,
+	 -1,
+	397,
+	468,
+	145,
+	188,
+	 -1,
+	465,
+	 -1,
+	205,
+	106,
+	 90,
+	 44,
+	  3,
+	366,
+	 -1,
+	443,
+	422,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	  0,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	295,
+	 -1,
+	173,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	355,
+	 -1,
+	222,
+	221,
+	 -1,
+	 -1,
+	275,
+	356,
+	 -1,
+	 30,
+	374,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	225,
+	 -1,
+	 -1,
+	299,
+	 -1,
+	 -1,
+	148,
+	 -1,
+	 -1,
+	181,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	462,
+	 -1,
+	 -1,
+	 -1,
+	324,
+	279,
+	 -1,
+	 -1,
+	 34,
+	378,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	350,
+	 -1,
+	303,
+	403,
+	 -1,
+	133,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 77,
+	 -1,
+	182,
+	 -1,
+	 -1,
+	328,
+	283,
+	 -1,
+	269,
+	 -1,
+	382,
+	249,
+	 -1,
+	 -1,
+	 -1,
+	259,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 85,
+	 -1,
+	456,
+	307,
+	407,
+	 -1,
+	147,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 -1,
+	 78,
+	 -1,
+	 -1,
+	354,
+	 -1,
+	332,
+	 -1,
+	 -1,
+	146,
+	287,
+	483,
+	0	/* base-of-table */
+};
+
+#if (BOOLCOUNT!=44)||(NUMCOUNT!=39)||(STRCOUNT!=414)
+#error	--> term.h and comp_captab.c disagree about the <--
+#error	--> numbers of booleans, numbers and/or strings <--
+#endif
+
+/* generated by MKcaptab.awk capalias(1) */
+
+static struct alias *_nc_capalias_table = 0;
+
+static const char capalias_text[] = "\
+sb\0sr\0BSD\0\
+BO\0mr\0AT&T\0\
+CI\0vi\0AT&T\0\
+CV\0ve\0AT&T\0\
+DS\0mh\0AT&T\0\
+FE\0LF\0AT&T\0\
+FL\0LO\0AT&T\0\
+XS\0mk\0AT&T\0\
+EE\0mh\0XENIX\0\
+GE\0ae\0XENIX\0\
+GS\0as\0XENIX\0\
+CF\0vi\0XENIX\0\
+CO\0ve\0XENIX\0\
+EN\0@7\0XENIX\0\
+HM\0kh\0XENIX\0\
+LD\0kL\0XENIX\0\
+PD\0kN\0XENIX\0\
+PN\0po\0XENIX\0\
+PS\0pf\0XENIX\0\
+PU\0kP\0XENIX\0\
+RT\0@8\0XENIX\0\
+UP\0ku\0XENIX\0\
+G6\0XENIX\0\
+G7\0XENIX\0\
+G5\0XENIX\0\
+G8\0XENIX\0\
+Gr\0XENIX\0\
+Gr\0XENIX\0\
+Gu\0XENIX\0\
+Gd\0XENIX\0\
+Gh\0XENIX\0\
+Gv\0XENIX\0\
+Gc\0XENIX\0\
+GG\0XENIX\0\
+kq\0%1\0IBM\0\
+HS\0mh\0IRIS\0\
+KA\0k;\0Tek\0\
+KB\0F1\0Tek\0\
+KC\0F2\0Tek\0\
+KD\0F3\0Tek\0\
+KE\0F4\0Tek\0\
+KF\0F5\0Tek\0\
+BC\0Sb\0Tek\0\
+FC\0Sf\0Tek\0\
+";
+
+static const alias_table_data capalias_data[] = {
+	{    0,     3,     6},	 /* scroll */
+	{   10,    13,    16},	 /* enter_reverse_mode */
+	{   21,    24,    27},	 /* cursor_invisible */
+	{   32,    35,    38},	 /* cursor_normal */
+	{   43,    46,    49},	 /* enter_dim_mode */
+	{   54,    57,    60},	 /* label_on */
+	{   65,    68,    71},	 /* label_off */
+	{   76,    79,    82},	 /* enter_secure_mode */
+	{   87,    90,    93},	 /* exit_attribute_mode */
+	{   99,   102,   105},	 /* exit_alt_charset_mode */
+	{  111,   114,   117},	 /* enter_alt_charset_mode */
+	{  123,   126,   129},	 /* cursor_invis */
+	{  135,   138,   141},	 /* cursor_normal */
+	{  147,   150,   153},	 /* key_end */
+	{  159,   162,   165},	 /* key_home */
+	{  171,   174,   177},	 /* key_dl */
+	{  183,   186,   189},	 /* key_npage */
+	{  195,   198,   201},	 /* prtr_off */
+	{  207,   210,   213},	 /* prtr_on */
+	{  219,   222,   225},	 /* key_ppage */
+	{  231,   234,   237},	 /* kent */
+	{  243,   246,   249},	 /* kcuu1 */
+	{  255,    -1,   258},	 /* double-ACS_ULCORNER */
+	{  264,    -1,   267},	 /* double-ACS_LLCORNER */
+	{  273,    -1,   276},	 /* double-ACS_URCORNER */
+	{  282,    -1,   285},	 /* double-ACS_LRCORNER */
+	{  291,    -1,   294},	 /* double-ACS_LTEE */
+	{  300,    -1,   303},	 /* double-ACS_RTEE */
+	{  309,    -1,   312},	 /* double-ACS_BTEE */
+	{  318,    -1,   321},	 /* double */
+	{  327,    -1,   330},	 /* double-ACS_HLINE */
+	{  336,    -1,   339},	 /* double-ACS_VLINE */
+	{  345,    -1,   348},	 /* double-ACS_PLUS */
+	{  354,    -1,   357},	 /* acs-glitch */
+	{  363,   366,   369},	 /* key_help */
+	{  373,   376,   379},	 /* enter_dim_mode */
+	{  384,   387,   390},	 /* key_f10 */
+	{  394,   397,   400},	 /* key_f11 */
+	{  404,   407,   410},	 /* key_f12 */
+	{  414,   417,   420},	 /* key_f13 */
+	{  424,   427,   430},	 /* key_f14 */
+	{  434,   437,   440},	 /* key_f15 */
+	{  444,   447,   450},	 /* set_background */
+	{  454,   457,   460},	 /* set_foreground */
+};
+
+/* generated by MKcaptab.awk infoalias(1) */
+
+static struct alias *_nc_infoalias_table = 0;
+
+static const char infoalias_text[] = "\
+font0\0s0ds\0IBM\0\
+font1\0s1ds\0IBM\0\
+font2\0s2ds\0IBM\0\
+font3\0s3ds\0IBM\0\
+kbtab\0kcbt\0IBM\0\
+ksel\0kslt\0IBM\0\
+";
+
+static const alias_table_data infoalias_data[] = {
+	{    0,     6,    11},	 /* set0_des_seq */
+	{   15,    21,    26},	 /* set1_des_seq */
+	{   30,    36,    41},	 /* set2_des_seq */
+	{   45,    51,    56},	 /* set3_des_seq */
+	{   60,    66,    71},	 /* key_backtab */
+	{   75,    80,    85},	 /* key_select */
+};
+
+
+#if 1
+static void
+next_string(const char *strings, unsigned *offset)
+{
+	*offset += strlen(strings + *offset) + 1;
+}
+
+static const struct name_table_entry *
+_nc_build_names(struct name_table_entry **actual,
+		const name_table_data *source,
+		const char *strings)
+{
+	if (*actual == 0) {
+		*actual = typeCalloc(struct name_table_entry, CAPTABSIZE);
+		if (*actual != 0) {
+			unsigned n;
+			unsigned len = 0;
+			for (n = 0; n < CAPTABSIZE; ++n) {
+				(*actual)[n].nte_name = strings + len;
+				(*actual)[n].nte_type = source[n].nte_type;
+				(*actual)[n].nte_index = source[n].nte_index;
+				(*actual)[n].nte_link = source[n].nte_link;
+				next_string(strings, &len);
+			}
+		}
+	}
+	return *actual;
+}
+
+#define add_alias(field) \
+	if (source[n].field >= 0) { \
+		(*actual)[n].field = strings + source[n].field; \
+	}
+
+static const struct alias *
+_nc_build_alias(struct alias **actual,
+		const alias_table_data *source,
+		const char *strings,
+		unsigned tablesize)
+{
+	if (*actual == 0) {
+		*actual = typeCalloc(struct alias, tablesize + 1);
+		if (*actual != 0) {
+			unsigned n;
+			for (n = 0; n < tablesize; ++n) {
+				add_alias(from);
+				add_alias(to);
+				add_alias(source);
+			}
+		}
+	}
+	return *actual;
+}
+
+#define build_names(root) _nc_build_names(&_nc_##root##_table, \
+					  root##_names_data, \
+					  root##_names_text)
+#define build_alias(root) _nc_build_alias(&_nc_##root##alias_table, \
+					  root##alias_data, \
+					  root##alias_text, \
+					  SIZEOF(root##alias_data))
+#else
+#define build_names(root) _nc_ ## root ## _table
+#define build_alias(root) _nc_ ## root ## alias_table
+#endif
+
+NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
+{
+	return termcap ? build_names(cap) : build_names(info) ;
+}
+
+NCURSES_EXPORT(const short *) _nc_get_hash_table (bool termcap)
+{
+	return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
+}
+
+NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool termcap)
+{
+	return termcap ? build_alias(cap) : build_alias(info) ;
+}
+
+#if NO_LEAKS
+NCURSES_EXPORT(void) _nc_comp_captab_leaks(void)
+{
+#if 1
+	FreeIfNeeded(_nc_cap_table);
+	FreeIfNeeded(_nc_info_table);
+	FreeIfNeeded(_nc_capalias_table);
+	FreeIfNeeded(_nc_infoalias_table);
+#endif
+}
+#endif /* NO_LEAKS */
diff --git a/ncurses/expanded.c b/ncurses/expanded.c
new file mode 100644
index 0000000..d96ddef
--- /dev/null
+++ b/ncurses/expanded.c
@@ -0,0 +1,27 @@
+/* generated by MKexpanded.sh */
+#include <curses.priv.h>
+#include <term.h>
+#if NCURSES_EXPANDED
+ void _nc_toggle_attr_on (attr_t *S, attr_t at)
+{
+ { if (PAIR_NUMBER(at) > 0) { (*S) = ((*S) & ALL_BUT_COLOR) | (at); } else { (*S) |= (at); } ;};
+}
+ void _nc_toggle_attr_off (attr_t *S, attr_t at)
+{
+ { if (PAIR_NUMBER(at) > 0) { (*S) &= ~(at|((((1UL) << 8) - 1UL) << ((0) + 8))); } else { (*S) &= ~(at); } ;};
+}
+ int _nc_DelCharCost (int count)
+{
+ return ((cur_term->type. Strings[105] != 0) ? SP->_dch_cost : ((cur_term->type. Strings[21] != 0) ? (SP->_dch1_cost * count) : 1000000));
+}
+ int _nc_InsCharCost (int count)
+{
+ return ((cur_term->type. Strings[108] != 0) ? SP->_ich_cost : ((cur_term->type. Strings[31] && cur_term->type. Strings[42]) ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) : ((cur_term->type. Strings[52] != 0) ? ((SP->_ich1_cost + SP->_ip_cost) * count) : 1000000)));
+}
+ void _nc_UpdateAttrs (chtype c)
+{
+ if (!((((*((SP)->_current_attr))) & (chtype)((~(1UL - 1UL)) << ((0) + 8))) == ((c) & (chtype)((~(1UL - 1UL)) << ((0) + 8))))) vidattr(((c) & (chtype)((~(1UL - 1UL)) << ((0) + 8))));;
+}
+#else /* ! NCURSES_EXPANDED */
+NCURSES_EXPORT(void) _nc_expanded (void) { }
+#endif /* NCURSES_EXPANDED */
diff --git a/ncurses/fallback.c b/ncurses/fallback.c
new file mode 100644
index 0000000..a94e4ae
--- /dev/null
+++ b/ncurses/fallback.c
@@ -0,0 +1,12 @@
+/*
+ * DO NOT EDIT THIS FILE BY HAND!  It is generated by MKfallback.sh.
+ */
+
+#include <curses.priv.h>
+#include <term.h>
+
+NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *name GCC_UNUSED)
+{
+	/* the fallback list is empty */
+	return((TERMTYPE *)0);
+}
diff --git a/ncurses/init_keytry.h b/ncurses/init_keytry.h
new file mode 100644
index 0000000..c89150d
--- /dev/null
+++ b/ncurses/init_keytry.h
@@ -0,0 +1,162 @@
+#ifndef NCU_KEYS_H
+#define NCU_KEYS_H 1
+
+/* This file was generated by MAKE_KEYS */
+
+#if BROKEN_LINKER
+static
+#endif
+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {
+	{  139, KEY_A1           },	/* key_a1 */
+	{  140, KEY_A3           },	/* key_a3 */
+	{  141, KEY_B2           },	/* key_b2 */
+	{   55, KEY_BACKSPACE    },	/* key_backspace */
+	{  158, KEY_BEG          },	/* key_beg */
+	{  148, KEY_BTAB         },	/* key_btab */
+	{  142, KEY_C1           },	/* key_c1 */
+	{  143, KEY_C3           },	/* key_c3 */
+	{  159, KEY_CANCEL       },	/* key_cancel */
+	{   56, KEY_CATAB        },	/* key_catab */
+	{   57, KEY_CLEAR        },	/* key_clear */
+	{  160, KEY_CLOSE        },	/* key_close */
+	{  161, KEY_COMMAND      },	/* key_command */
+	{  162, KEY_COPY         },	/* key_copy */
+	{  163, KEY_CREATE       },	/* key_create */
+	{   58, KEY_CTAB         },	/* key_ctab */
+	{   59, KEY_DC           },	/* key_dc */
+	{   60, KEY_DL           },	/* key_dl */
+	{   61, KEY_DOWN         },	/* key_down */
+	{   62, KEY_EIC          },	/* key_eic */
+	{  164, KEY_END          },	/* key_end */
+	{  165, KEY_ENTER        },	/* key_enter */
+	{   63, KEY_EOL          },	/* key_eol */
+	{   64, KEY_EOS          },	/* key_eos */
+	{  166, KEY_EXIT         },	/* key_exit */
+	{   65, KEY_F(0)         },	/* key_f0 */
+	{   67, KEY_F(10)        },	/* key_f10 */
+	{  216, KEY_F(11)        },	/* key_f11 */
+	{  217, KEY_F(12)        },	/* key_f12 */
+	{  218, KEY_F(13)        },	/* key_f13 */
+	{  219, KEY_F(14)        },	/* key_f14 */
+	{  220, KEY_F(15)        },	/* key_f15 */
+	{  221, KEY_F(16)        },	/* key_f16 */
+	{  222, KEY_F(17)        },	/* key_f17 */
+	{  223, KEY_F(18)        },	/* key_f18 */
+	{  224, KEY_F(19)        },	/* key_f19 */
+	{   66, KEY_F(1)         },	/* key_f1 */
+	{  225, KEY_F(20)        },	/* key_f20 */
+	{  226, KEY_F(21)        },	/* key_f21 */
+	{  227, KEY_F(22)        },	/* key_f22 */
+	{  228, KEY_F(23)        },	/* key_f23 */
+	{  229, KEY_F(24)        },	/* key_f24 */
+	{  230, KEY_F(25)        },	/* key_f25 */
+	{  231, KEY_F(26)        },	/* key_f26 */
+	{  232, KEY_F(27)        },	/* key_f27 */
+	{  233, KEY_F(28)        },	/* key_f28 */
+	{  234, KEY_F(29)        },	/* key_f29 */
+	{   68, KEY_F(2)         },	/* key_f2 */
+	{  235, KEY_F(30)        },	/* key_f30 */
+	{  236, KEY_F(31)        },	/* key_f31 */
+	{  237, KEY_F(32)        },	/* key_f32 */
+	{  238, KEY_F(33)        },	/* key_f33 */
+	{  239, KEY_F(34)        },	/* key_f34 */
+	{  240, KEY_F(35)        },	/* key_f35 */
+	{  241, KEY_F(36)        },	/* key_f36 */
+	{  242, KEY_F(37)        },	/* key_f37 */
+	{  243, KEY_F(38)        },	/* key_f38 */
+	{  244, KEY_F(39)        },	/* key_f39 */
+	{   69, KEY_F(3)         },	/* key_f3 */
+	{  245, KEY_F(40)        },	/* key_f40 */
+	{  246, KEY_F(41)        },	/* key_f41 */
+	{  247, KEY_F(42)        },	/* key_f42 */
+	{  248, KEY_F(43)        },	/* key_f43 */
+	{  249, KEY_F(44)        },	/* key_f44 */
+	{  250, KEY_F(45)        },	/* key_f45 */
+	{  251, KEY_F(46)        },	/* key_f46 */
+	{  252, KEY_F(47)        },	/* key_f47 */
+	{  253, KEY_F(48)        },	/* key_f48 */
+	{  254, KEY_F(49)        },	/* key_f49 */
+	{   70, KEY_F(4)         },	/* key_f4 */
+	{  255, KEY_F(50)        },	/* key_f50 */
+	{  256, KEY_F(51)        },	/* key_f51 */
+	{  257, KEY_F(52)        },	/* key_f52 */
+	{  258, KEY_F(53)        },	/* key_f53 */
+	{  259, KEY_F(54)        },	/* key_f54 */
+	{  260, KEY_F(55)        },	/* key_f55 */
+	{  261, KEY_F(56)        },	/* key_f56 */
+	{  262, KEY_F(57)        },	/* key_f57 */
+	{  263, KEY_F(58)        },	/* key_f58 */
+	{  264, KEY_F(59)        },	/* key_f59 */
+	{   71, KEY_F(5)         },	/* key_f5 */
+	{  265, KEY_F(60)        },	/* key_f60 */
+	{  266, KEY_F(61)        },	/* key_f61 */
+	{  267, KEY_F(62)        },	/* key_f62 */
+	{  268, KEY_F(63)        },	/* key_f63 */
+	{   72, KEY_F(6)         },	/* key_f6 */
+	{   73, KEY_F(7)         },	/* key_f7 */
+	{   74, KEY_F(8)         },	/* key_f8 */
+	{   75, KEY_F(9)         },	/* key_f9 */
+	{  167, KEY_FIND         },	/* key_find */
+	{  168, KEY_HELP         },	/* key_help */
+	{   76, KEY_HOME         },	/* key_home */
+	{   77, KEY_IC           },	/* key_ic */
+	{   78, KEY_IL           },	/* key_il */
+	{   79, KEY_LEFT         },	/* key_left */
+	{   80, KEY_LL           },	/* key_ll */
+	{  169, KEY_MARK         },	/* key_mark */
+	{  170, KEY_MESSAGE      },	/* key_message */
+	{  355, KEY_MOUSE        },	/* key_mouse */
+	{  171, KEY_MOVE         },	/* key_move */
+	{  172, KEY_NEXT         },	/* key_next */
+	{   81, KEY_NPAGE        },	/* key_npage */
+	{  173, KEY_OPEN         },	/* key_open */
+	{  174, KEY_OPTIONS      },	/* key_options */
+	{   82, KEY_PPAGE        },	/* key_ppage */
+	{  175, KEY_PREVIOUS     },	/* key_previous */
+	{  176, KEY_PRINT        },	/* key_print */
+	{  177, KEY_REDO         },	/* key_redo */
+	{  178, KEY_REFERENCE    },	/* key_reference */
+	{  179, KEY_REFRESH      },	/* key_refresh */
+	{  180, KEY_REPLACE      },	/* key_replace */
+	{  181, KEY_RESTART      },	/* key_restart */
+	{  182, KEY_RESUME       },	/* key_resume */
+	{   83, KEY_RIGHT        },	/* key_right */
+	{  183, KEY_SAVE         },	/* key_save */
+	{  186, KEY_SBEG         },	/* key_sbeg */
+	{  187, KEY_SCANCEL      },	/* key_scancel */
+	{  188, KEY_SCOMMAND     },	/* key_scommand */
+	{  189, KEY_SCOPY        },	/* key_scopy */
+	{  190, KEY_SCREATE      },	/* key_screate */
+	{  191, KEY_SDC          },	/* key_sdc */
+	{  192, KEY_SDL          },	/* key_sdl */
+	{  193, KEY_SELECT       },	/* key_select */
+	{  194, KEY_SEND         },	/* key_send */
+	{  195, KEY_SEOL         },	/* key_seol */
+	{  196, KEY_SEXIT        },	/* key_sexit */
+	{  197, KEY_SFIND        },	/* key_sfind */
+	{   84, KEY_SF           },	/* key_sf */
+	{  198, KEY_SHELP        },	/* key_shelp */
+	{  199, KEY_SHOME        },	/* key_shome */
+	{  200, KEY_SIC          },	/* key_sic */
+	{  201, KEY_SLEFT        },	/* key_sleft */
+	{  202, KEY_SMESSAGE     },	/* key_smessage */
+	{  203, KEY_SMOVE        },	/* key_smove */
+	{  204, KEY_SNEXT        },	/* key_snext */
+	{  205, KEY_SOPTIONS     },	/* key_soptions */
+	{  206, KEY_SPREVIOUS    },	/* key_sprevious */
+	{  207, KEY_SPRINT       },	/* key_sprint */
+	{  208, KEY_SREDO        },	/* key_sredo */
+	{  209, KEY_SREPLACE     },	/* key_sreplace */
+	{  210, KEY_SRIGHT       },	/* key_sright */
+	{   85, KEY_SR           },	/* key_sr */
+	{  211, KEY_SRSUME       },	/* key_srsume */
+	{  212, KEY_SSAVE        },	/* key_ssave */
+	{  213, KEY_SSUSPEND     },	/* key_ssuspend */
+	{   86, KEY_STAB         },	/* key_stab */
+	{  214, KEY_SUNDO        },	/* key_sundo */
+	{  184, KEY_SUSPEND      },	/* key_suspend */
+	{  185, KEY_UNDO         },	/* key_undo */
+	{   87, KEY_UP           },	/* key_up */
+	{ 0, 0} };
+
+#endif /* NCU_KEYS_H */
diff --git a/ncurses/keys.list b/ncurses/keys.list
new file mode 100644
index 0000000..1bca98f
--- /dev/null
+++ b/ncurses/keys.list
@@ -0,0 +1,155 @@
+KEY_A1	key_a1
+KEY_A3	key_a3
+KEY_B2	key_b2
+KEY_BACKSPACE	key_backspace
+KEY_BEG	key_beg
+KEY_BREAK
+KEY_BTAB	key_btab
+KEY_C1	key_c1
+KEY_C3	key_c3
+KEY_CANCEL	key_cancel
+KEY_CATAB	key_catab
+KEY_CLEAR	key_clear
+KEY_CLOSE	key_close
+KEY_COMMAND	key_command
+KEY_COPY	key_copy
+KEY_CREATE	key_create
+KEY_CTAB	key_ctab
+KEY_DC	key_dc
+KEY_DL	key_dl
+KEY_DOWN	key_down
+KEY_EIC	key_eic
+KEY_END	key_end
+KEY_ENTER	key_enter
+KEY_EOL	key_eol
+KEY_EOS	key_eos
+KEY_EXIT	key_exit
+KEY_F(0)	key_f0
+KEY_F(10)	key_f10
+KEY_F(11)	key_f11
+KEY_F(12)	key_f12
+KEY_F(13)	key_f13
+KEY_F(14)	key_f14
+KEY_F(15)	key_f15
+KEY_F(16)	key_f16
+KEY_F(17)	key_f17
+KEY_F(18)	key_f18
+KEY_F(19)	key_f19
+KEY_F(1)	key_f1
+KEY_F(20)	key_f20
+KEY_F(21)	key_f21
+KEY_F(22)	key_f22
+KEY_F(23)	key_f23
+KEY_F(24)	key_f24
+KEY_F(25)	key_f25
+KEY_F(26)	key_f26
+KEY_F(27)	key_f27
+KEY_F(28)	key_f28
+KEY_F(29)	key_f29
+KEY_F(2)	key_f2
+KEY_F(30)	key_f30
+KEY_F(31)	key_f31
+KEY_F(32)	key_f32
+KEY_F(33)	key_f33
+KEY_F(34)	key_f34
+KEY_F(35)	key_f35
+KEY_F(36)	key_f36
+KEY_F(37)	key_f37
+KEY_F(38)	key_f38
+KEY_F(39)	key_f39
+KEY_F(3)	key_f3
+KEY_F(40)	key_f40
+KEY_F(41)	key_f41
+KEY_F(42)	key_f42
+KEY_F(43)	key_f43
+KEY_F(44)	key_f44
+KEY_F(45)	key_f45
+KEY_F(46)	key_f46
+KEY_F(47)	key_f47
+KEY_F(48)	key_f48
+KEY_F(49)	key_f49
+KEY_F(4)	key_f4
+KEY_F(50)	key_f50
+KEY_F(51)	key_f51
+KEY_F(52)	key_f52
+KEY_F(53)	key_f53
+KEY_F(54)	key_f54
+KEY_F(55)	key_f55
+KEY_F(56)	key_f56
+KEY_F(57)	key_f57
+KEY_F(58)	key_f58
+KEY_F(59)	key_f59
+KEY_F(5)	key_f5
+KEY_F(60)	key_f60
+KEY_F(61)	key_f61
+KEY_F(62)	key_f62
+KEY_F(63)	key_f63
+KEY_F(6)	key_f6
+KEY_F(7)	key_f7
+KEY_F(8)	key_f8
+KEY_F(9)	key_f9
+KEY_FIND	key_find
+KEY_HELP	key_help
+KEY_HOME	key_home
+KEY_IC	key_ic
+KEY_IL	key_il
+KEY_LEFT	key_left
+KEY_LL	key_ll
+KEY_MARK	key_mark
+KEY_MESSAGE	key_message
+KEY_MOUSE	key_mouse
+KEY_MOVE	key_move
+KEY_NEXT	key_next
+KEY_NPAGE	key_npage
+KEY_OPEN	key_open
+KEY_OPTIONS	key_options
+KEY_PPAGE	key_ppage
+KEY_PREVIOUS	key_previous
+KEY_PRINT	key_print
+KEY_REDO	key_redo
+KEY_REFERENCE	key_reference
+KEY_REFRESH	key_refresh
+KEY_REPLACE	key_replace
+KEY_RESET
+KEY_RESIZE
+KEY_RESTART	key_restart
+KEY_RESUME	key_resume
+KEY_RIGHT	key_right
+KEY_SAVE	key_save
+KEY_SBEG	key_sbeg
+KEY_SCANCEL	key_scancel
+KEY_SCOMMAND	key_scommand
+KEY_SCOPY	key_scopy
+KEY_SCREATE	key_screate
+KEY_SDC	key_sdc
+KEY_SDL	key_sdl
+KEY_SELECT	key_select
+KEY_SEND	key_send
+KEY_SEOL	key_seol
+KEY_SEXIT	key_sexit
+KEY_SFIND	key_sfind
+KEY_SF	key_sf
+KEY_SHELP	key_shelp
+KEY_SHOME	key_shome
+KEY_SIC	key_sic
+KEY_SLEFT	key_sleft
+KEY_SMESSAGE	key_smessage
+KEY_SMOVE	key_smove
+KEY_SNEXT	key_snext
+KEY_SOPTIONS	key_soptions
+KEY_SPREVIOUS	key_sprevious
+KEY_SPRINT	key_sprint
+KEY_SREDO	key_sredo
+KEY_SREPLACE	key_sreplace
+KEY_SRESET
+KEY_SRIGHT	key_sright
+KEY_SR	key_sr
+KEY_SRSUME	key_srsume
+KEY_SSAVE	key_ssave
+KEY_SSUSPEND	key_ssuspend
+KEY_STAB	key_stab
+KEY_SUNDO	key_sundo
+KEY_SUSPEND	key_suspend
+KEY_UNDO	key_undo
+KEY_UP	key_up
+# These definitions were generated by ./tinfo/MKkeys_list.sh ../include/Caps
diff --git a/ncurses/lib_gen.c b/ncurses/lib_gen.c
new file mode 100644
index 0000000..e36b89f
--- /dev/null
+++ b/ncurses/lib_gen.c
@@ -0,0 +1,973 @@
+/*
+ * DO NOT EDIT THIS FILE BY HAND!
+ * It is generated by ./base/MKlib_gen.sh generated.
+ *
+ * This is a file of trivial functions generated from macro
+ * definitions in curses.h to satisfy the XSI Curses requirement
+ * that every macro also exist as a callable function.
+ *
+ * It will never be linked unless you call one of the entry
+ * points with its normal macro definition disabled. In that
+ * case, if you have no shared libraries, it will indirectly
+ * pull most of the rest of the library into your link image.
+ */
+#define NCURSES_ATTR_T int
+#include <curses.priv.h>
+
+
+#undef addch
+NCURSES_EXPORT(int) addch (const chtype z)
+{
+	T((T_CALLED("addch(%s)"), _tracechtype2(0,z))); returnCode(waddch(stdscr,z));
+}
+
+
+#undef addchnstr
+NCURSES_EXPORT(int) addchnstr (const chtype * a1, int z)
+{
+	T((T_CALLED("addchnstr(%p,%d)"), a1, z)); returnCode(waddchnstr(stdscr,a1,z));
+}
+
+
+#undef addchstr
+NCURSES_EXPORT(int) addchstr (const chtype * z)
+{
+	T((T_CALLED("addchstr(%p)"), z)); returnCode(waddchnstr(stdscr,z,-1));
+}
+
+
+#undef addnstr
+NCURSES_EXPORT(int) addnstr (const char * a1, int z)
+{
+	T((T_CALLED("addnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(waddnstr(stdscr,a1,z));
+}
+
+
+#undef addstr
+NCURSES_EXPORT(int) addstr (const char * z)
+{
+	T((T_CALLED("addstr(%s)"), _nc_visbuf2(0,z))); returnCode(waddnstr(stdscr,z,-1));
+}
+
+
+#undef attroff
+NCURSES_EXPORT(int) attroff (int z)
+{
+	T((T_CALLED("attroff(%s)"), _traceattr2(0,z))); returnCode(wattr_off(stdscr, (attr_t)(z), ((void *)0)));
+}
+
+
+#undef attron
+NCURSES_EXPORT(int) attron (int z)
+{
+	T((T_CALLED("attron(%s)"), _traceattr2(0,z))); returnCode(wattr_on(stdscr, (attr_t)(z), ((void *)0)));
+}
+
+
+#undef attrset
+NCURSES_EXPORT(int) attrset (int z)
+{
+	T((T_CALLED("attrset(%s)"), _traceattr2(0,z))); returnAttr(((stdscr)->_attrs = (z)));
+}
+
+
+#undef attr_get
+NCURSES_EXPORT(int) attr_get (attr_t * a1, short * a2, void * z)
+{
+	T((T_CALLED("attr_get(%p,%p,%p)"), a1, a2, z)); returnCode(((void)((a1) != (void *)0 && (*(a1) = (stdscr)->_attrs)), (void)((a2) != (void *)0 && (*(a2) = ((int)(((((stdscr)->_attrs) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))))), (0)));
+}
+
+
+#undef attr_off
+NCURSES_EXPORT(int) attr_off (attr_t a1, void * z)
+{
+	T((T_CALLED("attr_off(%s,%p)"), _traceattr2(0,a1), z)); returnCode(wattr_off(stdscr,a1,z));
+}
+
+
+#undef attr_on
+NCURSES_EXPORT(int) attr_on (attr_t a1, void * z)
+{
+	T((T_CALLED("attr_on(%s,%p)"), _traceattr2(0,a1), z)); returnCode(wattr_on(stdscr,a1,z));
+}
+
+
+#undef attr_set
+NCURSES_EXPORT(int) attr_set (attr_t a1, short a2, void * z)
+{
+	T((T_CALLED("attr_set(%s,%d,%p)"), _traceattr2(0,a1), a2, z)); returnCode(((stdscr)->_attrs = (((a1) & ~((((1UL) << 8) - 1UL) << ((0) + 8))) | ((a2) << ((0) + 8))), (0)));
+}
+
+
+#undef bkgd
+NCURSES_EXPORT(int) bkgd (chtype z)
+{
+	T((T_CALLED("bkgd(%s)"), _tracechtype2(0,z))); returnCode(wbkgd(stdscr,z));
+}
+
+
+#undef bkgdset
+NCURSES_EXPORT(void) bkgdset (chtype z)
+{
+	T((T_CALLED("bkgdset(%s)"), _tracechtype2(0,z))); wbkgdset(stdscr,z);
+	returnVoid;
+}
+
+
+#undef border
+NCURSES_EXPORT(int) border (chtype a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype z)
+{
+	T((T_CALLED("border(%s,%s,%s,%s,%s,%s,%s,%s)"), _tracechtype2(0,a1), _tracechtype2(1,a2), _tracechtype2(2,a3), _tracechtype2(3,a4), _tracechtype2(4,a5), _tracechtype2(5,a6), _tracechtype2(6,a7), _tracechtype2(7,z))); returnCode(wborder(stdscr, a1, a2, a3, a4, a5, a6, a7, z));
+}
+
+
+#undef box
+NCURSES_EXPORT(int) box (WINDOW * a1, chtype a2, chtype z)
+{
+	T((T_CALLED("box(%p,%s,%s)"), a1, _tracechtype2(1,a2), _tracechtype2(2,z))); returnCode(wborder(a1, a2, a2, z, z, 0, 0, 0, 0));
+}
+
+
+#undef chgat
+NCURSES_EXPORT(int) chgat (int a1, attr_t a2, short a3, const void * z)
+{
+	T((T_CALLED("chgat(%d,%s,%d,%p)"), a1, _traceattr2(1,a2), a3, z)); returnCode(wchgat(stdscr,a1,a2,a3,z));
+}
+
+
+#undef clear
+NCURSES_EXPORT(int) clear (void)
+{
+	T((T_CALLED("clear()"))); returnCode(wclear(stdscr));
+}
+
+
+#undef clrtobot
+NCURSES_EXPORT(int) clrtobot (void)
+{
+	T((T_CALLED("clrtobot()"))); returnCode(wclrtobot(stdscr));
+}
+
+
+#undef clrtoeol
+NCURSES_EXPORT(int) clrtoeol (void)
+{
+	T((T_CALLED("clrtoeol()"))); returnCode(wclrtoeol(stdscr));
+}
+
+
+#undef color_set
+NCURSES_EXPORT(int) color_set (short a1, void * z)
+{
+	T((T_CALLED("color_set(%d,%p)"), a1, z)); returnCode(wcolor_set(stdscr,a1,z));
+}
+
+
+#undef COLOR_PAIR
+NCURSES_EXPORT(int) COLOR_PAIR (int z)
+{
+	T((T_CALLED("COLOR_PAIR(%d)"), z)); returnCode(((z) << ((0) + 8)));
+}
+
+
+#undef delch
+NCURSES_EXPORT(int) delch (void)
+{
+	T((T_CALLED("delch()"))); returnCode(wdelch(stdscr));
+}
+
+
+#undef deleteln
+NCURSES_EXPORT(int) deleteln (void)
+{
+	T((T_CALLED("deleteln()"))); returnCode(winsdelln(stdscr,-1));
+}
+
+
+#undef echochar
+NCURSES_EXPORT(int) echochar (const chtype z)
+{
+	T((T_CALLED("echochar(%s)"), _tracechtype2(0,z))); returnCode(wechochar(stdscr,z));
+}
+
+
+#undef erase
+NCURSES_EXPORT(int) erase (void)
+{
+	T((T_CALLED("erase()"))); returnCode(werase(stdscr));
+}
+
+
+#undef getbkgd
+NCURSES_EXPORT(chtype) getbkgd (WINDOW * z)
+{
+	T((T_CALLED("getbkgd(%p)"), z)); returnChar(((z)->_bkgd));
+}
+
+
+#undef getch
+NCURSES_EXPORT(int) getch (void)
+{
+	T((T_CALLED("getch()"))); returnCode(wgetch(stdscr));
+}
+
+
+#undef getnstr
+NCURSES_EXPORT(int) getnstr (char * a1, int z)
+{
+	T((T_CALLED("getnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(wgetnstr(stdscr, a1, z));
+}
+
+
+#undef getstr
+NCURSES_EXPORT(int) getstr (char * z)
+{
+	T((T_CALLED("getstr(%s)"), _nc_visbuf2(0,z))); returnCode(wgetnstr(stdscr, z, -1));
+}
+
+
+#undef hline
+NCURSES_EXPORT(int) hline (chtype a1, int z)
+{
+	T((T_CALLED("hline(%s,%d)"), _tracechtype2(0,a1), z)); returnCode(whline(stdscr, a1, z));
+}
+
+
+#undef inch
+NCURSES_EXPORT(chtype) inch (void)
+{
+	T((T_CALLED("inch()"))); returnChar(winch(stdscr));
+}
+
+
+#undef inchnstr
+NCURSES_EXPORT(int) inchnstr (chtype * a1, int z)
+{
+	T((T_CALLED("inchnstr(%p,%d)"), a1, z)); returnCode(winchnstr(stdscr,a1,z));
+}
+
+
+#undef inchstr
+NCURSES_EXPORT(int) inchstr (chtype * z)
+{
+	T((T_CALLED("inchstr(%p)"), z)); returnCode(winchnstr(stdscr, z, -1));
+}
+
+
+#undef innstr
+NCURSES_EXPORT(int) innstr (char * a1, int z)
+{
+	return winnstr(stdscr,a1,z) ;
+}
+
+
+#undef insch
+NCURSES_EXPORT(int) insch (chtype z)
+{
+	T((T_CALLED("insch(%s)"), _tracechtype2(0,z))); returnCode(winsch(stdscr,z));
+}
+
+
+#undef insdelln
+NCURSES_EXPORT(int) insdelln (int z)
+{
+	T((T_CALLED("insdelln(%d)"), z)); returnCode(winsdelln(stdscr,z));
+}
+
+
+#undef insertln
+NCURSES_EXPORT(int) insertln (void)
+{
+	T((T_CALLED("insertln()"))); returnCode(winsdelln(stdscr,1));
+}
+
+
+#undef insnstr
+NCURSES_EXPORT(int) insnstr (const char * a1, int z)
+{
+	T((T_CALLED("insnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(winsnstr(stdscr,a1,z));
+}
+
+
+#undef insstr
+NCURSES_EXPORT(int) insstr (const char * z)
+{
+	T((T_CALLED("insstr(%s)"), _nc_visbuf2(0,z))); returnCode(winsnstr(stdscr, z, -1));
+}
+
+
+#undef instr
+NCURSES_EXPORT(int) instr (char * z)
+{
+	T((T_CALLED("instr(%s)"), _nc_visbuf2(0,z))); returnCode(winnstr(stdscr, z, -1));
+}
+
+
+#undef move
+NCURSES_EXPORT(int) move (int a1, int z)
+{
+	T((T_CALLED("move(%d,%d)"), a1, z)); returnCode(wmove(stdscr,a1,z));
+}
+
+
+#undef mvaddch
+NCURSES_EXPORT(int) mvaddch (int a1, int a2, const chtype z)
+{
+	T((T_CALLED("mvaddch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddch(stdscr,z)));
+}
+
+
+#undef mvaddchnstr
+NCURSES_EXPORT(int) mvaddchnstr (int a1, int a2, const chtype * a3, int z)
+{
+	T((T_CALLED("mvaddchnstr(%d,%d,%p,%d)"), a1, a2, a3, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddchnstr(stdscr,a3,z)));
+}
+
+
+#undef mvaddchstr
+NCURSES_EXPORT(int) mvaddchstr (int a1, int a2, const chtype * z)
+{
+	T((T_CALLED("mvaddchstr(%d,%d,%p)"), a1, a2, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddchnstr(stdscr,z,-1)));
+}
+
+
+#undef mvaddnstr
+NCURSES_EXPORT(int) mvaddnstr (int a1, int a2, const char * a3, int z)
+{
+	T((T_CALLED("mvaddnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddnstr(stdscr,a3,z)));
+}
+
+
+#undef mvaddstr
+NCURSES_EXPORT(int) mvaddstr (int a1, int a2, const char * z)
+{
+	T((T_CALLED("mvaddstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddnstr(stdscr,z,-1)));
+}
+
+
+#undef mvchgat
+NCURSES_EXPORT(int) mvchgat (int a1, int a2, int a3, attr_t a4, short a5, const void * z)
+{
+	T((T_CALLED("mvchgat(%d,%d,%d,%s,%d,%p)"), a1, a2, a3, _traceattr2(3,a4), a5, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wchgat(stdscr,a3,a4,a5,z)));
+}
+
+
+#undef mvdelch
+NCURSES_EXPORT(int) mvdelch (int a1, int z)
+{
+	T((T_CALLED("mvdelch(%d,%d)"), a1, z)); returnCode((wmove(stdscr,a1,z) == (-1) ? (-1) : wdelch(stdscr)));
+}
+
+
+#undef mvgetch
+NCURSES_EXPORT(int) mvgetch (int a1, int z)
+{
+	T((T_CALLED("mvgetch(%d,%d)"), a1, z)); returnCode((wmove(stdscr,a1,z) == (-1) ? (-1) : wgetch(stdscr)));
+}
+
+
+#undef mvgetnstr
+NCURSES_EXPORT(int) mvgetnstr (int a1, int a2, char * a3, int z)
+{
+	T((T_CALLED("mvgetnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wgetnstr(stdscr,a3,z)));
+}
+
+
+#undef mvgetstr
+NCURSES_EXPORT(int) mvgetstr (int a1, int a2, char * z)
+{
+	T((T_CALLED("mvgetstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wgetnstr(stdscr, z, -1)));
+}
+
+
+#undef mvhline
+NCURSES_EXPORT(int) mvhline (int a1, int a2, chtype a3, int z)
+{
+	T((T_CALLED("mvhline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : whline(stdscr,a3,z)));
+}
+
+
+#undef mvinch
+NCURSES_EXPORT(chtype) mvinch (int a1, int z)
+{
+	T((T_CALLED("mvinch(%d,%d)"), a1, z)); returnChar((wmove(stdscr,a1,z) == (-1) ? (chtype)((-1)) : winch(stdscr)));
+}
+
+
+#undef mvinchnstr
+NCURSES_EXPORT(int) mvinchnstr (int a1, int a2, chtype * a3, int z)
+{
+	T((T_CALLED("mvinchnstr(%d,%d,%p,%d)"), a1, a2, a3, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winchnstr(stdscr,a3,z)));
+}
+
+
+#undef mvinchstr
+NCURSES_EXPORT(int) mvinchstr (int a1, int a2, chtype * z)
+{
+	T((T_CALLED("mvinchstr(%d,%d,%p)"), a1, a2, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winchnstr(stdscr, z, -1)));
+}
+
+
+#undef mvinnstr
+NCURSES_EXPORT(int) mvinnstr (int a1, int a2, char * a3, int z)
+{
+	return (wmove(stdscr,a1,a2) == (-1) ? (-1) : winnstr(stdscr,a3,z)) ;
+}
+
+
+#undef mvinsch
+NCURSES_EXPORT(int) mvinsch (int a1, int a2, chtype z)
+{
+	T((T_CALLED("mvinsch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsch(stdscr,z)));
+}
+
+
+#undef mvinsnstr
+NCURSES_EXPORT(int) mvinsnstr (int a1, int a2, const char * a3, int z)
+{
+	T((T_CALLED("mvinsnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsnstr(stdscr,a3,z)));
+}
+
+
+#undef mvinsstr
+NCURSES_EXPORT(int) mvinsstr (int a1, int a2, const char * z)
+{
+	T((T_CALLED("mvinsstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsnstr(stdscr, z, -1)));
+}
+
+
+#undef mvinstr
+NCURSES_EXPORT(int) mvinstr (int a1, int a2, char * z)
+{
+	T((T_CALLED("mvinstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winnstr(stdscr, z, -1)));
+}
+
+
+#undef mvvline
+NCURSES_EXPORT(int) mvvline (int a1, int a2, chtype a3, int z)
+{
+	T((T_CALLED("mvvline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wvline(stdscr,a3,z)));
+}
+
+
+#undef mvwaddch
+NCURSES_EXPORT(int) mvwaddch (WINDOW * a1, int a2, int a3, const chtype z)
+{
+	T((T_CALLED("mvwaddch(%p,%d,%d,%s)"), a1, a2, a3, _tracechtype2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddch(a1,z)));
+}
+
+
+#undef mvwaddchnstr
+NCURSES_EXPORT(int) mvwaddchnstr (WINDOW * a1, int a2, int a3, const chtype * a4, int z)
+{
+	T((T_CALLED("mvwaddchnstr(%p,%d,%d,%p,%d)"), a1, a2, a3, a4, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddchnstr(a1,a4,z)));
+}
+
+
+#undef mvwaddchstr
+NCURSES_EXPORT(int) mvwaddchstr (WINDOW * a1, int a2, int a3, const chtype * z)
+{
+	T((T_CALLED("mvwaddchstr(%p,%d,%d,%p)"), a1, a2, a3, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddchnstr(a1,z,-1)));
+}
+
+
+#undef mvwaddnstr
+NCURSES_EXPORT(int) mvwaddnstr (WINDOW * a1, int a2, int a3, const char * a4, int z)
+{
+	T((T_CALLED("mvwaddnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddnstr(a1,a4,z)));
+}
+
+
+#undef mvwaddstr
+NCURSES_EXPORT(int) mvwaddstr (WINDOW * a1, int a2, int a3, const char * z)
+{
+	T((T_CALLED("mvwaddstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddnstr(a1,z,-1)));
+}
+
+
+#undef mvwchgat
+NCURSES_EXPORT(int) mvwchgat (WINDOW * a1, int a2, int a3, int a4, attr_t a5, short a6, const void * z)
+{
+	T((T_CALLED("mvwchgat(%p,%d,%d,%d,%s,%d,%p)"), a1, a2, a3, a4, _traceattr2(4,a5), a6, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wchgat(a1,a4,a5,a6,z)));
+}
+
+
+#undef mvwdelch
+NCURSES_EXPORT(int) mvwdelch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwdelch(%p,%d,%d)"), a1, a2, z)); returnCode((wmove(a1,a2,z) == (-1) ? (-1) : wdelch(a1)));
+}
+
+
+#undef mvwgetch
+NCURSES_EXPORT(int) mvwgetch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwgetch(%p,%d,%d)"), a1, a2, z)); returnCode((wmove(a1,a2,z) == (-1) ? (-1) : wgetch(a1)));
+}
+
+
+#undef mvwgetnstr
+NCURSES_EXPORT(int) mvwgetnstr (WINDOW * a1, int a2, int a3, char * a4, int z)
+{
+	T((T_CALLED("mvwgetnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wgetnstr(a1,a4,z)));
+}
+
+
+#undef mvwgetstr
+NCURSES_EXPORT(int) mvwgetstr (WINDOW * a1, int a2, int a3, char * z)
+{
+	T((T_CALLED("mvwgetstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wgetnstr(a1, z, -1)));
+}
+
+
+#undef mvwhline
+NCURSES_EXPORT(int) mvwhline (WINDOW * a1, int a2, int a3, chtype a4, int z)
+{
+	T((T_CALLED("mvwhline(%p,%d,%d,%s,%d)"), a1, a2, a3, _tracechtype2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : whline(a1,a4,z)));
+}
+
+
+#undef mvwinch
+NCURSES_EXPORT(chtype) mvwinch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwinch(%p,%d,%d)"), a1, a2, z)); returnChar((wmove(a1,a2,z) == (-1) ? (chtype)((-1)) : winch(a1)));
+}
+
+
+#undef mvwinchnstr
+NCURSES_EXPORT(int) mvwinchnstr (WINDOW * a1, int a2, int a3, chtype * a4, int z)
+{
+	T((T_CALLED("mvwinchnstr(%p,%d,%d,%p,%d)"), a1, a2, a3, a4, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winchnstr(a1,a4,z)));
+}
+
+
+#undef mvwinchstr
+NCURSES_EXPORT(int) mvwinchstr (WINDOW * a1, int a2, int a3, chtype * z)
+{
+	T((T_CALLED("mvwinchstr(%p,%d,%d,%p)"), a1, a2, a3, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winchnstr(a1, z, -1)));
+}
+
+
+#undef mvwinnstr
+NCURSES_EXPORT(int) mvwinnstr (WINDOW * a1, int a2, int a3, char * a4, int z)
+{
+	return (wmove(a1,a2,a3) == (-1) ? (-1) : winnstr(a1,a4,z)) ;
+}
+
+
+#undef mvwinsch
+NCURSES_EXPORT(int) mvwinsch (WINDOW * a1, int a2, int a3, chtype z)
+{
+	T((T_CALLED("mvwinsch(%p,%d,%d,%s)"), a1, a2, a3, _tracechtype2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsch(a1,z)));
+}
+
+
+#undef mvwinsnstr
+NCURSES_EXPORT(int) mvwinsnstr (WINDOW * a1, int a2, int a3, const char * a4, int z)
+{
+	T((T_CALLED("mvwinsnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsnstr(a1,a4,z)));
+}
+
+
+#undef mvwinsstr
+NCURSES_EXPORT(int) mvwinsstr (WINDOW * a1, int a2, int a3, const char * z)
+{
+	T((T_CALLED("mvwinsstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsnstr(a1, z, -1)));
+}
+
+
+#undef mvwinstr
+NCURSES_EXPORT(int) mvwinstr (WINDOW * a1, int a2, int a3, char * z)
+{
+	T((T_CALLED("mvwinstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winnstr(a1, z, -1)));
+}
+
+
+#undef mvwvline
+NCURSES_EXPORT(int) mvwvline (WINDOW * a1, int a2, int a3, chtype a4, int z)
+{
+	T((T_CALLED("mvwvline(%p,%d,%d,%s,%d)"), a1, a2, a3, _tracechtype2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wvline(a1,a4,z)));
+}
+
+
+#undef PAIR_NUMBER
+NCURSES_EXPORT(int) PAIR_NUMBER (int z)
+{
+	T((T_CALLED("PAIR_NUMBER(%d)"), z)); returnCode(((int)((((z) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))));
+}
+
+
+#undef redrawwin
+NCURSES_EXPORT(int) redrawwin (WINDOW * z)
+{
+	T((T_CALLED("redrawwin(%p)"), z)); returnCode(wredrawln(z, 0, (z)->_maxy+1));
+}
+
+
+#undef refresh
+NCURSES_EXPORT(int) refresh (void)
+{
+	T((T_CALLED("refresh()"))); returnCode(wrefresh(stdscr));
+}
+
+
+#undef scrl
+NCURSES_EXPORT(int) scrl (int z)
+{
+	T((T_CALLED("scrl(%d)"), z)); returnCode(wscrl(stdscr,z));
+}
+
+
+#undef scroll
+NCURSES_EXPORT(int) scroll (WINDOW * z)
+{
+	T((T_CALLED("scroll(%p)"), z)); returnCode(wscrl(z,1));
+}
+
+
+#undef setscrreg
+NCURSES_EXPORT(int) setscrreg (int a1, int z)
+{
+	T((T_CALLED("setscrreg(%d,%d)"), a1, z)); returnCode(wsetscrreg(stdscr,a1,z));
+}
+
+
+#if USE_WIDEC_SUPPORT
+#undef slk_attr_off
+NCURSES_EXPORT(int) slk_attr_off (const attr_t a1, void * z)
+{
+	T((T_CALLED("slk_attr_off(%s,%p)"), _traceattr2(0,a1), z)); returnCode(((z) ? (-1) : slk_attroff(a1)));
+}
+#endif
+
+
+#if USE_WIDEC_SUPPORT
+#undef slk_attr_on
+NCURSES_EXPORT(int) slk_attr_on (attr_t a1, void * z)
+{
+	T((T_CALLED("slk_attr_on(%s,%p)"), _traceattr2(0,a1), z)); returnCode(((z) ? (-1) : slk_attron(a1)));
+}
+#endif
+
+
+#undef standout
+NCURSES_EXPORT(int) standout (void)
+{
+	T((T_CALLED("standout()"))); returnAttr((((stdscr)->_attrs = (((1UL) << ((8) + 8))))));
+}
+
+
+#undef standend
+NCURSES_EXPORT(int) standend (void)
+{
+	T((T_CALLED("standend()"))); returnAttr((((stdscr)->_attrs = ((1UL - 1UL)))));
+}
+
+
+#undef timeout
+NCURSES_EXPORT(void) timeout (int z)
+{
+	T((T_CALLED("timeout(%d)"), z)); wtimeout(stdscr,z);
+	returnVoid;
+}
+
+
+#undef touchline
+NCURSES_EXPORT(int) touchline (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("touchline(%p,%d,%d)"), a1, a2, z)); returnCode(wtouchln((a1), a2, z, 1));
+}
+
+
+#undef touchwin
+NCURSES_EXPORT(int) touchwin (WINDOW * z)
+{
+	T((T_CALLED("touchwin(%p)"), z)); returnCode(wtouchln((z), 0, ((z) ? ((z)->_maxy + 1) : (-1)), 1));
+}
+
+
+#undef untouchwin
+NCURSES_EXPORT(int) untouchwin (WINDOW * z)
+{
+	T((T_CALLED("untouchwin(%p)"), z)); returnCode(wtouchln((z), 0, ((z) ? ((z)->_maxy + 1) : (-1)), 0));
+}
+
+
+#undef vline
+NCURSES_EXPORT(int) vline (chtype a1, int z)
+{
+	T((T_CALLED("vline(%s,%d)"), _tracechtype2(0,a1), z)); returnCode(wvline(stdscr, a1, z));
+}
+
+
+#undef vw_printw
+NCURSES_EXPORT(int) vw_printw (WINDOW * a1, const char * a2, va_list z)
+{
+	T((T_CALLED("vw_printw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwprintw(a1, a2, z));
+}
+
+
+#undef vw_scanw
+NCURSES_EXPORT(int) vw_scanw (WINDOW * a1, char * a2, va_list z)
+{
+	T((T_CALLED("vw_scanw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwscanw(a1, a2, z));
+}
+
+
+#undef waddchstr
+NCURSES_EXPORT(int) waddchstr (WINDOW * a1, const chtype * z)
+{
+	T((T_CALLED("waddchstr(%p,%p)"), a1, z)); returnCode(waddchnstr(a1,z,-1));
+}
+
+
+#undef waddstr
+NCURSES_EXPORT(int) waddstr (WINDOW * a1, const char * z)
+{
+	T((T_CALLED("waddstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(waddnstr(a1,z,-1));
+}
+
+
+#undef wattron
+NCURSES_EXPORT(int) wattron (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattron(%p,%d)"), a1, z)); returnCode(wattr_on(a1, (attr_t)(z), ((void *)0)));
+}
+
+
+#undef wattroff
+NCURSES_EXPORT(int) wattroff (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattroff(%p,%d)"), a1, z)); returnCode(wattr_off(a1, (attr_t)(z), ((void *)0)));
+}
+
+
+#undef wattrset
+NCURSES_EXPORT(int) wattrset (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattrset(%p,%d)"), a1, z)); returnAttr(((a1)->_attrs = (z)));
+}
+
+
+#undef wattr_get
+NCURSES_EXPORT(int) wattr_get (WINDOW * a1, attr_t * a2, short * a3, void * z)
+{
+	T((T_CALLED("wattr_get(%p,%p,%p,%p)"), a1, a2, a3, z)); returnCode(((void)((a2) != (void *)0 && (*(a2) = (a1)->_attrs)), (void)((a3) != (void *)0 && (*(a3) = ((int)(((((a1)->_attrs) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))))), (0)));
+}
+
+
+#undef wattr_set
+NCURSES_EXPORT(int) wattr_set (WINDOW * a1, attr_t a2, short a3, void * z)
+{
+	T((T_CALLED("wattr_set(%p,%s,%d,%p)"), a1, _traceattr2(1,a2), a3, z)); returnCode(((a1)->_attrs = (((a2) & ~((((1UL) << 8) - 1UL) << ((0) + 8))) | ((a3) << ((0) + 8))), (0)));
+}
+
+
+#undef wdeleteln
+NCURSES_EXPORT(int) wdeleteln (WINDOW * z)
+{
+	T((T_CALLED("wdeleteln(%p)"), z)); returnCode(winsdelln(z,-1));
+}
+
+
+#undef wgetstr
+NCURSES_EXPORT(int) wgetstr (WINDOW * a1, char * z)
+{
+	T((T_CALLED("wgetstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(wgetnstr(a1, z, -1));
+}
+
+
+#undef winchstr
+NCURSES_EXPORT(int) winchstr (WINDOW * a1, chtype * z)
+{
+	T((T_CALLED("winchstr(%p,%p)"), a1, z)); returnCode(winchnstr(a1, z, -1));
+}
+
+
+#undef winsertln
+NCURSES_EXPORT(int) winsertln (WINDOW * z)
+{
+	T((T_CALLED("winsertln(%p)"), z)); returnCode(winsdelln(z,1));
+}
+
+
+#undef winsstr
+NCURSES_EXPORT(int) winsstr (WINDOW * a1, const char * z)
+{
+	T((T_CALLED("winsstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(winsnstr(a1, z, -1));
+}
+
+
+#undef winstr
+NCURSES_EXPORT(int) winstr (WINDOW * a1, char * z)
+{
+	T((T_CALLED("winstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(winnstr(a1, z, -1));
+}
+
+
+#undef wstandout
+NCURSES_EXPORT(int) wstandout (WINDOW * z)
+{
+	T((T_CALLED("wstandout(%p)"), z)); returnAttr((((z)->_attrs = (((1UL) << ((8) + 8))))));
+}
+
+
+#undef wstandend
+NCURSES_EXPORT(int) wstandend (WINDOW * z)
+{
+	T((T_CALLED("wstandend(%p)"), z)); returnAttr((((z)->_attrs = ((1UL - 1UL)))));
+}
+
+
+#undef getattrs
+NCURSES_EXPORT(int) getattrs (const WINDOW * z)
+{
+	T((T_CALLED("getattrs(%p)"), z)); returnCode(((z) ? (z)->_attrs : (1UL - 1UL)));
+}
+
+
+#undef getcurx
+NCURSES_EXPORT(int) getcurx (const WINDOW * z)
+{
+	T((T_CALLED("getcurx(%p)"), z)); returnCode(((z) ? (z)->_curx : (-1)));
+}
+
+
+#undef getcury
+NCURSES_EXPORT(int) getcury (const WINDOW * z)
+{
+	T((T_CALLED("getcury(%p)"), z)); returnCode(((z) ? (z)->_cury : (-1)));
+}
+
+
+#undef getbegx
+NCURSES_EXPORT(int) getbegx (const WINDOW * z)
+{
+	T((T_CALLED("getbegx(%p)"), z)); returnCode(((z) ? (z)->_begx : (-1)));
+}
+
+
+#undef getbegy
+NCURSES_EXPORT(int) getbegy (const WINDOW * z)
+{
+	T((T_CALLED("getbegy(%p)"), z)); returnCode(((z) ? (z)->_begy : (-1)));
+}
+
+
+#undef getmaxx
+NCURSES_EXPORT(int) getmaxx (const WINDOW * z)
+{
+	T((T_CALLED("getmaxx(%p)"), z)); returnCode(((z) ? ((z)->_maxx + 1) : (-1)));
+}
+
+
+#undef getmaxy
+NCURSES_EXPORT(int) getmaxy (const WINDOW * z)
+{
+	T((T_CALLED("getmaxy(%p)"), z)); returnCode(((z) ? ((z)->_maxy + 1) : (-1)));
+}
+
+
+#undef getparx
+NCURSES_EXPORT(int) getparx (const WINDOW * z)
+{
+	T((T_CALLED("getparx(%p)"), z)); returnCode(((z) ? (z)->_parx : (-1)));
+}
+
+
+#undef getpary
+NCURSES_EXPORT(int) getpary (const WINDOW * z)
+{
+	T((T_CALLED("getpary(%p)"), z)); returnCode(((z) ? (z)->_pary : (-1)));
+}
+
+
+#undef wgetparent
+NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW * z)
+{
+	T((T_CALLED("(%p)"), z)); returnWin(((z) ? (z)->_parent : 0));
+}
+
+
+#undef is_cleared
+NCURSES_EXPORT(NCURSES_BOOL) is_cleared (const WINDOW * z)
+{
+	T((T_CALLED("is_cleared(%p)"), z)); returnBool(((z)->_clear));
+}
+
+
+#undef is_idcok
+NCURSES_EXPORT(NCURSES_BOOL) is_idcok (const WINDOW * z)
+{
+	T((T_CALLED("is_idcok(%p)"), z)); returnBool(((z)->_idcok));
+}
+
+
+#undef is_idlok
+NCURSES_EXPORT(NCURSES_BOOL) is_idlok (const WINDOW * z)
+{
+	T((T_CALLED("is_idlok(%p)"), z)); returnBool(((z)->_idlok));
+}
+
+
+#undef is_immedok
+NCURSES_EXPORT(NCURSES_BOOL) is_immedok (const WINDOW * z)
+{
+	T((T_CALLED("is_immedok(%p)"), z)); returnBool(((z)->_immed));
+}
+
+
+#undef is_keypad
+NCURSES_EXPORT(NCURSES_BOOL) is_keypad (const WINDOW * z)
+{
+	T((T_CALLED("is_keypad(%p)"), z)); returnBool(((z)->_use_keypad));
+}
+
+
+#undef is_leaveok
+NCURSES_EXPORT(NCURSES_BOOL) is_leaveok (const WINDOW * z)
+{
+	T((T_CALLED("is_leaveok(%p)"), z)); returnBool(((z)->_leaveok));
+}
+
+
+#undef is_nodelay
+NCURSES_EXPORT(NCURSES_BOOL) is_nodelay (const WINDOW * z)
+{
+	T((T_CALLED("is_nodelay(%p)"), z)); returnBool(((z)->_delay == 0));
+}
+
+
+#undef is_notimeout
+NCURSES_EXPORT(NCURSES_BOOL) is_notimeout (const WINDOW * z)
+{
+	T((T_CALLED("is_notimeout(%p)"), z)); returnBool(((z)->_notimeout));
+}
+
+
+#undef is_scrollok
+NCURSES_EXPORT(NCURSES_BOOL) is_scrollok (const WINDOW * z)
+{
+	T((T_CALLED("is_scrollok(%p)"), z)); returnBool(((z)->_scroll));
+}
+
+
+#undef is_syncok
+NCURSES_EXPORT(NCURSES_BOOL) is_syncok (const WINDOW * z)
+{
+	T((T_CALLED("is_syncok(%p)"), z)); returnBool(((z)->_sync));
+}
+
+
+#undef wgetscrreg
+NCURSES_EXPORT(int) wgetscrreg (const WINDOW * a1, int * a2, int * z)
+{
+	T((T_CALLED("wgetscrreg(%p,%p,%p)"), a1, a2, z)); returnCode(((a1) ? (*(a2) = (a1)->_regtop, *(z) = (a1)->_regbottom, (0)) : (-1)));
+}
+
+
+#undef mouse_trafo
+NCURSES_EXPORT(NCURSES_BOOL) mouse_trafo (int * a1, int * a2, NCURSES_BOOL z)
+{
+	T((T_CALLED("mouse_trafo(%p,%p,%#lx)"), a1, a2, (long)z)); returnBool(wmouse_trafo(stdscr,a1,a2,z));
+}
diff --git a/ncurses/lib_keyname.c b/ncurses/lib_keyname.c
new file mode 100644
index 0000000..ae2a95a
--- /dev/null
+++ b/ncurses/lib_keyname.c
@@ -0,0 +1,405 @@
+/* generated by MKkeyname.awk */
+
+#include <curses.priv.h>
+#include <tic.h>
+#include <term_entry.h>
+
+struct kn { short offset; int code; };
+static const struct kn _nc_key_names[] = {
+	{ 0, KEY_A1 },
+	{ 7, KEY_A3 },
+	{ 14, KEY_B2 },
+	{ 21, KEY_BACKSPACE },
+	{ 35, KEY_BEG },
+	{ 43, KEY_BREAK },
+	{ 53, KEY_BTAB },
+	{ 62, KEY_C1 },
+	{ 69, KEY_C3 },
+	{ 76, KEY_CANCEL },
+	{ 87, KEY_CATAB },
+	{ 97, KEY_CLEAR },
+	{ 107, KEY_CLOSE },
+	{ 117, KEY_COMMAND },
+	{ 129, KEY_COPY },
+	{ 138, KEY_CREATE },
+	{ 149, KEY_CTAB },
+	{ 158, KEY_DC },
+	{ 165, KEY_DL },
+	{ 172, KEY_DOWN },
+	{ 181, KEY_EIC },
+	{ 189, KEY_END },
+	{ 197, KEY_ENTER },
+	{ 207, KEY_EOL },
+	{ 215, KEY_EOS },
+	{ 223, KEY_EXIT },
+	{ 232, KEY_F(0) },
+	{ 241, KEY_F(10) },
+	{ 251, KEY_F(11) },
+	{ 261, KEY_F(12) },
+	{ 271, KEY_F(13) },
+	{ 281, KEY_F(14) },
+	{ 291, KEY_F(15) },
+	{ 301, KEY_F(16) },
+	{ 311, KEY_F(17) },
+	{ 321, KEY_F(18) },
+	{ 331, KEY_F(19) },
+	{ 341, KEY_F(1) },
+	{ 350, KEY_F(20) },
+	{ 360, KEY_F(21) },
+	{ 370, KEY_F(22) },
+	{ 380, KEY_F(23) },
+	{ 390, KEY_F(24) },
+	{ 400, KEY_F(25) },
+	{ 410, KEY_F(26) },
+	{ 420, KEY_F(27) },
+	{ 430, KEY_F(28) },
+	{ 440, KEY_F(29) },
+	{ 450, KEY_F(2) },
+	{ 459, KEY_F(30) },
+	{ 469, KEY_F(31) },
+	{ 479, KEY_F(32) },
+	{ 489, KEY_F(33) },
+	{ 499, KEY_F(34) },
+	{ 509, KEY_F(35) },
+	{ 519, KEY_F(36) },
+	{ 529, KEY_F(37) },
+	{ 539, KEY_F(38) },
+	{ 549, KEY_F(39) },
+	{ 559, KEY_F(3) },
+	{ 568, KEY_F(40) },
+	{ 578, KEY_F(41) },
+	{ 588, KEY_F(42) },
+	{ 598, KEY_F(43) },
+	{ 608, KEY_F(44) },
+	{ 618, KEY_F(45) },
+	{ 628, KEY_F(46) },
+	{ 638, KEY_F(47) },
+	{ 648, KEY_F(48) },
+	{ 658, KEY_F(49) },
+	{ 668, KEY_F(4) },
+	{ 677, KEY_F(50) },
+	{ 687, KEY_F(51) },
+	{ 697, KEY_F(52) },
+	{ 707, KEY_F(53) },
+	{ 717, KEY_F(54) },
+	{ 727, KEY_F(55) },
+	{ 737, KEY_F(56) },
+	{ 747, KEY_F(57) },
+	{ 757, KEY_F(58) },
+	{ 767, KEY_F(59) },
+	{ 777, KEY_F(5) },
+	{ 786, KEY_F(60) },
+	{ 796, KEY_F(61) },
+	{ 806, KEY_F(62) },
+	{ 816, KEY_F(63) },
+	{ 826, KEY_F(6) },
+	{ 835, KEY_F(7) },
+	{ 844, KEY_F(8) },
+	{ 853, KEY_F(9) },
+	{ 862, KEY_FIND },
+	{ 871, KEY_HELP },
+	{ 880, KEY_HOME },
+	{ 889, KEY_IC },
+	{ 896, KEY_IL },
+	{ 903, KEY_LEFT },
+	{ 912, KEY_LL },
+	{ 919, KEY_MARK },
+	{ 928, KEY_MESSAGE },
+	{ 940, KEY_MOUSE },
+	{ 950, KEY_MOVE },
+	{ 959, KEY_NEXT },
+	{ 968, KEY_NPAGE },
+	{ 978, KEY_OPEN },
+	{ 987, KEY_OPTIONS },
+	{ 999, KEY_PPAGE },
+	{ 1009, KEY_PREVIOUS },
+	{ 1022, KEY_PRINT },
+	{ 1032, KEY_REDO },
+	{ 1041, KEY_REFERENCE },
+	{ 1055, KEY_REFRESH },
+	{ 1067, KEY_REPLACE },
+	{ 1079, KEY_RESET },
+	{ 1089, KEY_RESIZE },
+	{ 1100, KEY_RESTART },
+	{ 1112, KEY_RESUME },
+	{ 1123, KEY_RIGHT },
+	{ 1133, KEY_SAVE },
+	{ 1142, KEY_SBEG },
+	{ 1151, KEY_SCANCEL },
+	{ 1163, KEY_SCOMMAND },
+	{ 1176, KEY_SCOPY },
+	{ 1186, KEY_SCREATE },
+	{ 1198, KEY_SDC },
+	{ 1206, KEY_SDL },
+	{ 1214, KEY_SELECT },
+	{ 1225, KEY_SEND },
+	{ 1234, KEY_SEOL },
+	{ 1243, KEY_SEXIT },
+	{ 1253, KEY_SFIND },
+	{ 1263, KEY_SF },
+	{ 1270, KEY_SHELP },
+	{ 1280, KEY_SHOME },
+	{ 1290, KEY_SIC },
+	{ 1298, KEY_SLEFT },
+	{ 1308, KEY_SMESSAGE },
+	{ 1321, KEY_SMOVE },
+	{ 1331, KEY_SNEXT },
+	{ 1341, KEY_SOPTIONS },
+	{ 1354, KEY_SPREVIOUS },
+	{ 1368, KEY_SPRINT },
+	{ 1379, KEY_SREDO },
+	{ 1389, KEY_SREPLACE },
+	{ 1402, KEY_SRESET },
+	{ 1413, KEY_SRIGHT },
+	{ 1424, KEY_SR },
+	{ 1431, KEY_SRSUME },
+	{ 1442, KEY_SSAVE },
+	{ 1452, KEY_SSUSPEND },
+	{ 1465, KEY_STAB },
+	{ 1474, KEY_SUNDO },
+	{ 1484, KEY_SUSPEND },
+	{ 1496, KEY_UNDO },
+	{ 1505, KEY_UP },
+	{ -1, 0 }};
+
+static const char key_names[] = 
+	"KEY_A1\0"
+	"KEY_A3\0"
+	"KEY_B2\0"
+	"KEY_BACKSPACE\0"
+	"KEY_BEG\0"
+	"KEY_BREAK\0"
+	"KEY_BTAB\0"
+	"KEY_C1\0"
+	"KEY_C3\0"
+	"KEY_CANCEL\0"
+	"KEY_CATAB\0"
+	"KEY_CLEAR\0"
+	"KEY_CLOSE\0"
+	"KEY_COMMAND\0"
+	"KEY_COPY\0"
+	"KEY_CREATE\0"
+	"KEY_CTAB\0"
+	"KEY_DC\0"
+	"KEY_DL\0"
+	"KEY_DOWN\0"
+	"KEY_EIC\0"
+	"KEY_END\0"
+	"KEY_ENTER\0"
+	"KEY_EOL\0"
+	"KEY_EOS\0"
+	"KEY_EXIT\0"
+	"KEY_F(0)\0"
+	"KEY_F(10)\0"
+	"KEY_F(11)\0"
+	"KEY_F(12)\0"
+	"KEY_F(13)\0"
+	"KEY_F(14)\0"
+	"KEY_F(15)\0"
+	"KEY_F(16)\0"
+	"KEY_F(17)\0"
+	"KEY_F(18)\0"
+	"KEY_F(19)\0"
+	"KEY_F(1)\0"
+	"KEY_F(20)\0"
+	"KEY_F(21)\0"
+	"KEY_F(22)\0"
+	"KEY_F(23)\0"
+	"KEY_F(24)\0"
+	"KEY_F(25)\0"
+	"KEY_F(26)\0"
+	"KEY_F(27)\0"
+	"KEY_F(28)\0"
+	"KEY_F(29)\0"
+	"KEY_F(2)\0"
+	"KEY_F(30)\0"
+	"KEY_F(31)\0"
+	"KEY_F(32)\0"
+	"KEY_F(33)\0"
+	"KEY_F(34)\0"
+	"KEY_F(35)\0"
+	"KEY_F(36)\0"
+	"KEY_F(37)\0"
+	"KEY_F(38)\0"
+	"KEY_F(39)\0"
+	"KEY_F(3)\0"
+	"KEY_F(40)\0"
+	"KEY_F(41)\0"
+	"KEY_F(42)\0"
+	"KEY_F(43)\0"
+	"KEY_F(44)\0"
+	"KEY_F(45)\0"
+	"KEY_F(46)\0"
+	"KEY_F(47)\0"
+	"KEY_F(48)\0"
+	"KEY_F(49)\0"
+	"KEY_F(4)\0"
+	"KEY_F(50)\0"
+	"KEY_F(51)\0"
+	"KEY_F(52)\0"
+	"KEY_F(53)\0"
+	"KEY_F(54)\0"
+	"KEY_F(55)\0"
+	"KEY_F(56)\0"
+	"KEY_F(57)\0"
+	"KEY_F(58)\0"
+	"KEY_F(59)\0"
+	"KEY_F(5)\0"
+	"KEY_F(60)\0"
+	"KEY_F(61)\0"
+	"KEY_F(62)\0"
+	"KEY_F(63)\0"
+	"KEY_F(6)\0"
+	"KEY_F(7)\0"
+	"KEY_F(8)\0"
+	"KEY_F(9)\0"
+	"KEY_FIND\0"
+	"KEY_HELP\0"
+	"KEY_HOME\0"
+	"KEY_IC\0"
+	"KEY_IL\0"
+	"KEY_LEFT\0"
+	"KEY_LL\0"
+	"KEY_MARK\0"
+	"KEY_MESSAGE\0"
+	"KEY_MOUSE\0"
+	"KEY_MOVE\0"
+	"KEY_NEXT\0"
+	"KEY_NPAGE\0"
+	"KEY_OPEN\0"
+	"KEY_OPTIONS\0"
+	"KEY_PPAGE\0"
+	"KEY_PREVIOUS\0"
+	"KEY_PRINT\0"
+	"KEY_REDO\0"
+	"KEY_REFERENCE\0"
+	"KEY_REFRESH\0"
+	"KEY_REPLACE\0"
+	"KEY_RESET\0"
+	"KEY_RESIZE\0"
+	"KEY_RESTART\0"
+	"KEY_RESUME\0"
+	"KEY_RIGHT\0"
+	"KEY_SAVE\0"
+	"KEY_SBEG\0"
+	"KEY_SCANCEL\0"
+	"KEY_SCOMMAND\0"
+	"KEY_SCOPY\0"
+	"KEY_SCREATE\0"
+	"KEY_SDC\0"
+	"KEY_SDL\0"
+	"KEY_SELECT\0"
+	"KEY_SEND\0"
+	"KEY_SEOL\0"
+	"KEY_SEXIT\0"
+	"KEY_SFIND\0"
+	"KEY_SF\0"
+	"KEY_SHELP\0"
+	"KEY_SHOME\0"
+	"KEY_SIC\0"
+	"KEY_SLEFT\0"
+	"KEY_SMESSAGE\0"
+	"KEY_SMOVE\0"
+	"KEY_SNEXT\0"
+	"KEY_SOPTIONS\0"
+	"KEY_SPREVIOUS\0"
+	"KEY_SPRINT\0"
+	"KEY_SREDO\0"
+	"KEY_SREPLACE\0"
+	"KEY_SRESET\0"
+	"KEY_SRIGHT\0"
+	"KEY_SR\0"
+	"KEY_SRSUME\0"
+	"KEY_SSAVE\0"
+	"KEY_SSUSPEND\0"
+	"KEY_STAB\0"
+	"KEY_SUNDO\0"
+	"KEY_SUSPEND\0"
+	"KEY_UNDO\0"
+	"KEY_UP\0";
+
+#define SIZEOF_TABLE 256
+#define MyTable _nc_globals.keyname_table
+
+NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *sp, int c)
+{
+	int i;
+	char name[20];
+	char *p;
+	NCURSES_CONST char *result = 0;
+
+	if (c == -1) {
+		result = "-1";
+	} else {
+		for (i = 0; _nc_key_names[i].offset != -1; i++) {
+			if (_nc_key_names[i].code == c) {
+				result = (NCURSES_CONST char *)key_names + _nc_key_names[i].offset;
+				break;
+			}
+		}
+
+		if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {
+			if (MyTable == 0)
+				MyTable = typeCalloc(char *, SIZEOF_TABLE);
+			if (MyTable != 0) {
+				if (MyTable[c] == 0) {
+					int cc = c;
+					p = name;
+					if (cc >= 128 && (sp == 0 || sp->_use_meta)) {
+						strcpy(p, "M-");
+						p += 2;
+						cc -= 128;
+					}
+					if (cc < 32)
+						sprintf(p, "^%c", cc + '@');
+					else if (cc == 127)
+						strcpy(p, "^?");
+					else
+						sprintf(p, "%c", cc);
+					MyTable[c] = strdup(name);
+				}
+				result = MyTable[c];
+			}
+#if NCURSES_EXT_FUNCS && NCURSES_XNAMES
+		} else if (result == 0 && cur_term != 0) {
+			int j, k;
+			char * bound;
+			TERMTYPE *tp = &(cur_term->type);
+			int save_trace = _nc_tracing;
+
+			_nc_tracing = 0;	/* prevent recursion via keybound() */
+			for (j = 0; (bound = keybound(c, j)) != 0; ++j) {
+				for(k = STRCOUNT; k < (int) NUM_STRINGS(tp);  k++) {
+					if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {
+						result = ExtStrname(tp, k, strnames);
+						break;
+					}
+				}
+				free(bound);
+				if (result != 0)
+					break;
+			}
+			_nc_tracing = save_trace;
+#endif
+		}
+	}
+	return result;
+}
+
+NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)
+{
+	return _nc_keyname(SP, c);
+}
+
+#if NO_LEAKS
+void _nc_keyname_leaks(void)
+{
+	int j;
+	if (MyTable != 0) {
+		for (j = 0; j < SIZEOF_TABLE; ++j) {
+			FreeIfNeeded(MyTable[j]);
+		}
+		FreeAndNull(MyTable);
+	}
+}
+#endif /* NO_LEAKS */
diff --git a/ncurses/link_test.c b/ncurses/link_test.c
new file mode 100644
index 0000000..588a754
--- /dev/null
+++ b/ncurses/link_test.c
@@ -0,0 +1,1999 @@
+/*
+ * DO NOT EDIT THIS FILE BY HAND!
+ * It is generated by ./base/MKlib_gen.sh implemented.
+ */
+#define NCURSES_ATTR_T int
+#include <curses.priv.h>
+
+
+extern int call_addch (const chtype z);
+int call_addch (const chtype z)
+{
+	T((T_CALLED("addch(%s)"), _tracechtype2(0,z))); returnCode(waddch(stdscr,z));
+}
+
+
+extern int call_addchnstr (const chtype * a1, int z);
+int call_addchnstr (const chtype * a1, int z)
+{
+	T((T_CALLED("addchnstr(%p,%d)"), a1, z)); returnCode(waddchnstr(stdscr,a1,z));
+}
+
+
+extern int call_addchstr (const chtype * z);
+int call_addchstr (const chtype * z)
+{
+	T((T_CALLED("addchstr(%p)"), z)); returnCode(waddchnstr(stdscr,z,-1));
+}
+
+
+extern int call_addnstr (const char * a1, int z);
+int call_addnstr (const char * a1, int z)
+{
+	T((T_CALLED("addnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(waddnstr(stdscr,a1,z));
+}
+
+
+extern int call_addstr (const char * z);
+int call_addstr (const char * z)
+{
+	T((T_CALLED("addstr(%s)"), _nc_visbuf2(0,z))); returnCode(waddnstr(stdscr,z,-1));
+}
+
+
+extern int call_attroff (int z);
+int call_attroff (int z)
+{
+	T((T_CALLED("attroff(%s)"), _traceattr2(0,z))); returnCode(wattr_off(stdscr, (attr_t)(z), ((void *)0)));
+}
+
+
+extern int call_attron (int z);
+int call_attron (int z)
+{
+	T((T_CALLED("attron(%s)"), _traceattr2(0,z))); returnCode(wattr_on(stdscr, (attr_t)(z), ((void *)0)));
+}
+
+
+extern int call_attrset (int z);
+int call_attrset (int z)
+{
+	T((T_CALLED("attrset(%s)"), _traceattr2(0,z))); returnAttr(((stdscr)->_attrs = (z)));
+}
+
+
+extern int call_attr_get (attr_t * a1, short * a2, void * z);
+int call_attr_get (attr_t * a1, short * a2, void * z)
+{
+	T((T_CALLED("attr_get(%p,%p,%p)"), a1, a2, z)); returnCode(((void)((a1) != (void *)0 && (*(a1) = (stdscr)->_attrs)), (void)((a2) != (void *)0 && (*(a2) = ((int)(((((stdscr)->_attrs) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))))), (0)));
+}
+
+
+extern int call_attr_off (attr_t a1, void * z);
+int call_attr_off (attr_t a1, void * z)
+{
+	T((T_CALLED("attr_off(%s,%p)"), _traceattr2(0,a1), z)); returnCode(wattr_off(stdscr,a1,z));
+}
+
+
+extern int call_attr_on (attr_t a1, void * z);
+int call_attr_on (attr_t a1, void * z)
+{
+	T((T_CALLED("attr_on(%s,%p)"), _traceattr2(0,a1), z)); returnCode(wattr_on(stdscr,a1,z));
+}
+
+
+extern int call_attr_set (attr_t a1, short a2, void * z);
+int call_attr_set (attr_t a1, short a2, void * z)
+{
+	T((T_CALLED("attr_set(%s,%d,%p)"), _traceattr2(0,a1), a2, z)); returnCode(((stdscr)->_attrs = (((a1) & ~((((1UL) << 8) - 1UL) << ((0) + 8))) | ((a2) << ((0) + 8))), (0)));
+}
+
+
+extern int call_baudrate (void);
+int call_baudrate (void)
+{
+	T((T_CALLED("baudrate()"))); returnCode(baudrate());
+}
+
+
+extern int call_beep (void);
+int call_beep (void)
+{
+	T((T_CALLED("beep()"))); returnCode(beep());
+}
+
+
+extern int call_bkgd (chtype z);
+int call_bkgd (chtype z)
+{
+	T((T_CALLED("bkgd(%s)"), _tracechtype2(0,z))); returnCode(wbkgd(stdscr,z));
+}
+
+
+extern void call_bkgdset (chtype z);
+void call_bkgdset (chtype z)
+{
+	T((T_CALLED("bkgdset(%s)"), _tracechtype2(0,z))); wbkgdset(stdscr,z);
+	returnVoid;
+}
+
+
+extern int call_border (chtype a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype z);
+int call_border (chtype a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype z)
+{
+	T((T_CALLED("border(%s,%s,%s,%s,%s,%s,%s,%s)"), _tracechtype2(0,a1), _tracechtype2(1,a2), _tracechtype2(2,a3), _tracechtype2(3,a4), _tracechtype2(4,a5), _tracechtype2(5,a6), _tracechtype2(6,a7), _tracechtype2(7,z))); returnCode(wborder(stdscr, a1, a2, a3, a4, a5, a6, a7, z));
+}
+
+
+extern int call_box (WINDOW * a1, chtype a2, chtype z);
+int call_box (WINDOW * a1, chtype a2, chtype z)
+{
+	T((T_CALLED("box(%p,%s,%s)"), a1, _tracechtype2(1,a2), _tracechtype2(2,z))); returnCode(wborder(a1, a2, a2, z, z, 0, 0, 0, 0));
+}
+
+
+extern NCURSES_BOOL call_can_change_color (void);
+NCURSES_BOOL call_can_change_color (void)
+{
+	T((T_CALLED("can_change_color()"))); returnBool(can_change_color());
+}
+
+
+extern int call_cbreak (void);
+int call_cbreak (void)
+{
+	T((T_CALLED("cbreak()"))); returnCode(cbreak());
+}
+
+
+extern int call_chgat (int a1, attr_t a2, short a3, const void * z);
+int call_chgat (int a1, attr_t a2, short a3, const void * z)
+{
+	T((T_CALLED("chgat(%d,%s,%d,%p)"), a1, _traceattr2(1,a2), a3, z)); returnCode(wchgat(stdscr,a1,a2,a3,z));
+}
+
+
+extern int call_clear (void);
+int call_clear (void)
+{
+	T((T_CALLED("clear()"))); returnCode(wclear(stdscr));
+}
+
+
+extern int call_clearok (WINDOW * a1, NCURSES_BOOL z);
+int call_clearok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("clearok(%p,%#lx)"), a1, (long)z)); returnCode(clearok(a1, z));
+}
+
+
+extern int call_clrtobot (void);
+int call_clrtobot (void)
+{
+	T((T_CALLED("clrtobot()"))); returnCode(wclrtobot(stdscr));
+}
+
+
+extern int call_clrtoeol (void);
+int call_clrtoeol (void)
+{
+	T((T_CALLED("clrtoeol()"))); returnCode(wclrtoeol(stdscr));
+}
+
+
+extern int call_color_content (short a1, short * a2, short * a3, short * z);
+int call_color_content (short a1, short * a2, short * a3, short * z)
+{
+	T((T_CALLED("color_content(%d,%p,%p,%p)"), a1, a2, a3, z)); returnCode(color_content(a1, a2, a3, z));
+}
+
+
+extern int call_color_set (short a1, void * z);
+int call_color_set (short a1, void * z)
+{
+	T((T_CALLED("color_set(%d,%p)"), a1, z)); returnCode(wcolor_set(stdscr,a1,z));
+}
+
+
+extern int call_COLOR_PAIR (int z);
+int call_COLOR_PAIR (int z)
+{
+	T((T_CALLED("COLOR_PAIR(%d)"), z)); returnCode(((z) << ((0) + 8)));
+}
+
+
+extern int call_copywin (const WINDOW * a1, WINDOW * a2, int a3, int a4, int a5, int a6, int a7, int a8, int z);
+int call_copywin (const WINDOW * a1, WINDOW * a2, int a3, int a4, int a5, int a6, int a7, int a8, int z)
+{
+	T((T_CALLED("copywin(%p,%p,%d,%d,%d,%d,%d,%d,%d)"), a1, a2, a3, a4, a5, a6, a7, a8, z)); returnCode(copywin(a1, a2, a3, a4, a5, a6, a7, a8, z));
+}
+
+
+extern int call_curs_set (int z);
+int call_curs_set (int z)
+{
+	T((T_CALLED("curs_set(%d)"), z)); returnCode(curs_set(z));
+}
+
+
+extern int call_def_prog_mode (void);
+int call_def_prog_mode (void)
+{
+	T((T_CALLED("def_prog_mode()"))); returnCode(def_prog_mode());
+}
+
+
+extern int call_def_shell_mode (void);
+int call_def_shell_mode (void)
+{
+	T((T_CALLED("def_shell_mode()"))); returnCode(def_shell_mode());
+}
+
+
+extern int call_delay_output (int z);
+int call_delay_output (int z)
+{
+	T((T_CALLED("delay_output(%d)"), z)); returnCode(delay_output(z));
+}
+
+
+extern int call_delch (void);
+int call_delch (void)
+{
+	T((T_CALLED("delch()"))); returnCode(wdelch(stdscr));
+}
+
+
+extern void call_delscreen (SCREEN * z);
+void call_delscreen (SCREEN * z)
+{
+	T((T_CALLED("delscreen(%p)"), z)); delscreen(z);
+	returnVoid;
+}
+
+
+extern int call_delwin (WINDOW * z);
+int call_delwin (WINDOW * z)
+{
+	T((T_CALLED("delwin(%p)"), z)); returnCode(delwin(z));
+}
+
+
+extern int call_deleteln (void);
+int call_deleteln (void)
+{
+	T((T_CALLED("deleteln()"))); returnCode(winsdelln(stdscr,-1));
+}
+
+
+extern WINDOW * call_derwin (WINDOW * a1, int a2, int a3, int a4, int z);
+WINDOW * call_derwin (WINDOW * a1, int a2, int a3, int a4, int z)
+{
+	T((T_CALLED("(%p,%d,%d,%d,%d)"), a1, a2, a3, a4, z)); returnWin(derwin(a1, a2, a3, a4, z));
+}
+
+
+extern int call_doupdate (void);
+int call_doupdate (void)
+{
+	T((T_CALLED("doupdate()"))); returnCode(doupdate());
+}
+
+
+extern WINDOW * call_dupwin (WINDOW * z);
+WINDOW * call_dupwin (WINDOW * z)
+{
+	T((T_CALLED("(%p)"), z)); returnWin(dupwin(z));
+}
+
+
+extern int call_echo (void);
+int call_echo (void)
+{
+	T((T_CALLED("echo()"))); returnCode(echo());
+}
+
+
+extern int call_echochar (const chtype z);
+int call_echochar (const chtype z)
+{
+	T((T_CALLED("echochar(%s)"), _tracechtype2(0,z))); returnCode(wechochar(stdscr,z));
+}
+
+
+extern int call_erase (void);
+int call_erase (void)
+{
+	T((T_CALLED("erase()"))); returnCode(werase(stdscr));
+}
+
+
+extern int call_endwin (void);
+int call_endwin (void)
+{
+	T((T_CALLED("endwin()"))); returnCode(endwin());
+}
+
+
+extern char call_erasechar (void);
+char call_erasechar (void)
+{
+	T((T_CALLED("erasechar()"))); returnCode(erasechar());
+}
+
+
+extern void call_filter (void);
+void call_filter (void)
+{
+	T((T_CALLED("filter()"))); filter();
+	returnVoid;
+}
+
+
+extern int call_flash (void);
+int call_flash (void)
+{
+	T((T_CALLED("flash()"))); returnCode(flash());
+}
+
+
+extern int call_flushinp (void);
+int call_flushinp (void)
+{
+	T((T_CALLED("flushinp()"))); returnCode(flushinp());
+}
+
+
+extern chtype call_getbkgd (WINDOW * z);
+chtype call_getbkgd (WINDOW * z)
+{
+	T((T_CALLED("getbkgd(%p)"), z)); returnChar(((z)->_bkgd));
+}
+
+
+extern int call_getch (void);
+int call_getch (void)
+{
+	T((T_CALLED("getch()"))); returnCode(wgetch(stdscr));
+}
+
+
+extern int call_getnstr (char * a1, int z);
+int call_getnstr (char * a1, int z)
+{
+	T((T_CALLED("getnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(wgetnstr(stdscr, a1, z));
+}
+
+
+extern int call_getstr (char * z);
+int call_getstr (char * z)
+{
+	T((T_CALLED("getstr(%s)"), _nc_visbuf2(0,z))); returnCode(wgetnstr(stdscr, z, -1));
+}
+
+
+extern WINDOW * call_getwin (FILE * z);
+WINDOW * call_getwin (FILE * z)
+{
+	T((T_CALLED("(%p)"), z)); returnWin(getwin(z));
+}
+
+
+extern int call_halfdelay (int z);
+int call_halfdelay (int z)
+{
+	T((T_CALLED("halfdelay(%d)"), z)); returnCode(halfdelay(z));
+}
+
+
+extern NCURSES_BOOL call_has_colors (void);
+NCURSES_BOOL call_has_colors (void)
+{
+	T((T_CALLED("has_colors()"))); returnBool(has_colors());
+}
+
+
+extern NCURSES_BOOL call_has_ic (void);
+NCURSES_BOOL call_has_ic (void)
+{
+	T((T_CALLED("has_ic()"))); returnBool(has_ic());
+}
+
+
+extern NCURSES_BOOL call_has_il (void);
+NCURSES_BOOL call_has_il (void)
+{
+	T((T_CALLED("has_il()"))); returnBool(has_il());
+}
+
+
+extern int call_hline (chtype a1, int z);
+int call_hline (chtype a1, int z)
+{
+	T((T_CALLED("hline(%s,%d)"), _tracechtype2(0,a1), z)); returnCode(whline(stdscr, a1, z));
+}
+
+
+extern void call_idcok (WINDOW * a1, NCURSES_BOOL z);
+void call_idcok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("idcok(%p,%#lx)"), a1, (long)z)); idcok(a1, z);
+	returnVoid;
+}
+
+
+extern int call_idlok (WINDOW * a1, NCURSES_BOOL z);
+int call_idlok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("idlok(%p,%#lx)"), a1, (long)z)); returnCode(idlok(a1, z));
+}
+
+
+extern void call_immedok (WINDOW * a1, NCURSES_BOOL z);
+void call_immedok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("immedok(%p,%#lx)"), a1, (long)z)); immedok(a1, z);
+	returnVoid;
+}
+
+
+extern chtype call_inch (void);
+chtype call_inch (void)
+{
+	T((T_CALLED("inch()"))); returnChar(winch(stdscr));
+}
+
+
+extern int call_inchnstr (chtype * a1, int z);
+int call_inchnstr (chtype * a1, int z)
+{
+	T((T_CALLED("inchnstr(%p,%d)"), a1, z)); returnCode(winchnstr(stdscr,a1,z));
+}
+
+
+extern int call_inchstr (chtype * z);
+int call_inchstr (chtype * z)
+{
+	T((T_CALLED("inchstr(%p)"), z)); returnCode(winchnstr(stdscr, z, -1));
+}
+
+
+extern WINDOW * call_initscr (void);
+WINDOW * call_initscr (void)
+{
+	T((T_CALLED("()"))); returnWin(initscr());
+}
+
+
+extern int call_init_color (short a1, short a2, short a3, short z);
+int call_init_color (short a1, short a2, short a3, short z)
+{
+	T((T_CALLED("init_color(%d,%d,%d,%d)"), a1, a2, a3, z)); returnCode(init_color(a1, a2, a3, z));
+}
+
+
+extern int call_init_pair (short a1, short a2, short z);
+int call_init_pair (short a1, short a2, short z)
+{
+	T((T_CALLED("init_pair(%d,%d,%d)"), a1, a2, z)); returnCode(init_pair(a1, a2, z));
+}
+
+
+extern int call_innstr (char * a1, int z);
+int call_innstr (char * a1, int z)
+{
+	return winnstr(stdscr,a1,z) ;
+}
+
+
+extern int call_insch (chtype z);
+int call_insch (chtype z)
+{
+	T((T_CALLED("insch(%s)"), _tracechtype2(0,z))); returnCode(winsch(stdscr,z));
+}
+
+
+extern int call_insdelln (int z);
+int call_insdelln (int z)
+{
+	T((T_CALLED("insdelln(%d)"), z)); returnCode(winsdelln(stdscr,z));
+}
+
+
+extern int call_insertln (void);
+int call_insertln (void)
+{
+	T((T_CALLED("insertln()"))); returnCode(winsdelln(stdscr,1));
+}
+
+
+extern int call_insnstr (const char * a1, int z);
+int call_insnstr (const char * a1, int z)
+{
+	T((T_CALLED("insnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); returnCode(winsnstr(stdscr,a1,z));
+}
+
+
+extern int call_insstr (const char * z);
+int call_insstr (const char * z)
+{
+	T((T_CALLED("insstr(%s)"), _nc_visbuf2(0,z))); returnCode(winsnstr(stdscr, z, -1));
+}
+
+
+extern int call_instr (char * z);
+int call_instr (char * z)
+{
+	T((T_CALLED("instr(%s)"), _nc_visbuf2(0,z))); returnCode(winnstr(stdscr, z, -1));
+}
+
+
+extern int call_intrflush (WINDOW * a1, NCURSES_BOOL z);
+int call_intrflush (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("intrflush(%p,%#lx)"), a1, (long)z)); returnCode(intrflush(a1, z));
+}
+
+
+extern NCURSES_BOOL call_isendwin (void);
+NCURSES_BOOL call_isendwin (void)
+{
+	T((T_CALLED("isendwin()"))); returnBool(isendwin());
+}
+
+
+extern NCURSES_BOOL call_is_linetouched (WINDOW * a1, int z);
+NCURSES_BOOL call_is_linetouched (WINDOW * a1, int z)
+{
+	T((T_CALLED("is_linetouched(%p,%d)"), a1, z)); returnBool(is_linetouched(a1, z));
+}
+
+
+extern NCURSES_BOOL call_is_wintouched (WINDOW * z);
+NCURSES_BOOL call_is_wintouched (WINDOW * z)
+{
+	T((T_CALLED("is_wintouched(%p)"), z)); returnBool(is_wintouched(z));
+}
+
+
+extern char * call_keyname (int z);
+char * call_keyname (int z)
+{
+	T((T_CALLED("(%d)"), z)); returnPtr(keyname(z));
+}
+
+
+extern int call_keypad (WINDOW * a1, NCURSES_BOOL z);
+int call_keypad (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("keypad(%p,%#lx)"), a1, (long)z)); returnCode(keypad(a1, z));
+}
+
+
+extern char call_killchar (void);
+char call_killchar (void)
+{
+	T((T_CALLED("killchar()"))); returnCode(killchar());
+}
+
+
+extern int call_leaveok (WINDOW * a1, NCURSES_BOOL z);
+int call_leaveok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("leaveok(%p,%#lx)"), a1, (long)z)); returnCode(leaveok(a1, z));
+}
+
+
+extern char * call_longname (void);
+char * call_longname (void)
+{
+	T((T_CALLED("()"))); returnPtr(longname());
+}
+
+
+extern int call_meta (WINDOW * a1, NCURSES_BOOL z);
+int call_meta (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("meta(%p,%#lx)"), a1, (long)z)); returnCode(meta(a1, z));
+}
+
+
+extern int call_move (int a1, int z);
+int call_move (int a1, int z)
+{
+	T((T_CALLED("move(%d,%d)"), a1, z)); returnCode(wmove(stdscr,a1,z));
+}
+
+
+extern int call_mvaddch (int a1, int a2, const chtype z);
+int call_mvaddch (int a1, int a2, const chtype z)
+{
+	T((T_CALLED("mvaddch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddch(stdscr,z)));
+}
+
+
+extern int call_mvaddchnstr (int a1, int a2, const chtype * a3, int z);
+int call_mvaddchnstr (int a1, int a2, const chtype * a3, int z)
+{
+	T((T_CALLED("mvaddchnstr(%d,%d,%p,%d)"), a1, a2, a3, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddchnstr(stdscr,a3,z)));
+}
+
+
+extern int call_mvaddchstr (int a1, int a2, const chtype * z);
+int call_mvaddchstr (int a1, int a2, const chtype * z)
+{
+	T((T_CALLED("mvaddchstr(%d,%d,%p)"), a1, a2, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddchnstr(stdscr,z,-1)));
+}
+
+
+extern int call_mvaddnstr (int a1, int a2, const char * a3, int z);
+int call_mvaddnstr (int a1, int a2, const char * a3, int z)
+{
+	T((T_CALLED("mvaddnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddnstr(stdscr,a3,z)));
+}
+
+
+extern int call_mvaddstr (int a1, int a2, const char * z);
+int call_mvaddstr (int a1, int a2, const char * z)
+{
+	T((T_CALLED("mvaddstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : waddnstr(stdscr,z,-1)));
+}
+
+
+extern int call_mvchgat (int a1, int a2, int a3, attr_t a4, short a5, const void * z);
+int call_mvchgat (int a1, int a2, int a3, attr_t a4, short a5, const void * z)
+{
+	T((T_CALLED("mvchgat(%d,%d,%d,%s,%d,%p)"), a1, a2, a3, _traceattr2(3,a4), a5, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wchgat(stdscr,a3,a4,a5,z)));
+}
+
+
+extern int call_mvcur (int a1, int a2, int a3, int z);
+int call_mvcur (int a1, int a2, int a3, int z)
+{
+	T((T_CALLED("mvcur(%d,%d,%d,%d)"), a1, a2, a3, z)); returnCode(mvcur(a1, a2, a3, z));
+}
+
+
+extern int call_mvdelch (int a1, int z);
+int call_mvdelch (int a1, int z)
+{
+	T((T_CALLED("mvdelch(%d,%d)"), a1, z)); returnCode((wmove(stdscr,a1,z) == (-1) ? (-1) : wdelch(stdscr)));
+}
+
+
+extern int call_mvderwin (WINDOW * a1, int a2, int z);
+int call_mvderwin (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvderwin(%p,%d,%d)"), a1, a2, z)); returnCode(mvderwin(a1, a2, z));
+}
+
+
+extern int call_mvgetch (int a1, int z);
+int call_mvgetch (int a1, int z)
+{
+	T((T_CALLED("mvgetch(%d,%d)"), a1, z)); returnCode((wmove(stdscr,a1,z) == (-1) ? (-1) : wgetch(stdscr)));
+}
+
+
+extern int call_mvgetnstr (int a1, int a2, char * a3, int z);
+int call_mvgetnstr (int a1, int a2, char * a3, int z)
+{
+	T((T_CALLED("mvgetnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wgetnstr(stdscr,a3,z)));
+}
+
+
+extern int call_mvgetstr (int a1, int a2, char * z);
+int call_mvgetstr (int a1, int a2, char * z)
+{
+	T((T_CALLED("mvgetstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wgetnstr(stdscr, z, -1)));
+}
+
+
+extern int call_mvhline (int a1, int a2, chtype a3, int z);
+int call_mvhline (int a1, int a2, chtype a3, int z)
+{
+	T((T_CALLED("mvhline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : whline(stdscr,a3,z)));
+}
+
+
+extern chtype call_mvinch (int a1, int z);
+chtype call_mvinch (int a1, int z)
+{
+	T((T_CALLED("mvinch(%d,%d)"), a1, z)); returnChar((wmove(stdscr,a1,z) == (-1) ? (chtype)((-1)) : winch(stdscr)));
+}
+
+
+extern int call_mvinchnstr (int a1, int a2, chtype * a3, int z);
+int call_mvinchnstr (int a1, int a2, chtype * a3, int z)
+{
+	T((T_CALLED("mvinchnstr(%d,%d,%p,%d)"), a1, a2, a3, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winchnstr(stdscr,a3,z)));
+}
+
+
+extern int call_mvinchstr (int a1, int a2, chtype * z);
+int call_mvinchstr (int a1, int a2, chtype * z)
+{
+	T((T_CALLED("mvinchstr(%d,%d,%p)"), a1, a2, z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winchnstr(stdscr, z, -1)));
+}
+
+
+extern int call_mvinnstr (int a1, int a2, char * a3, int z);
+int call_mvinnstr (int a1, int a2, char * a3, int z)
+{
+	return (wmove(stdscr,a1,a2) == (-1) ? (-1) : winnstr(stdscr,a3,z)) ;
+}
+
+
+extern int call_mvinsch (int a1, int a2, chtype z);
+int call_mvinsch (int a1, int a2, chtype z)
+{
+	T((T_CALLED("mvinsch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsch(stdscr,z)));
+}
+
+
+extern int call_mvinsnstr (int a1, int a2, const char * a3, int z);
+int call_mvinsnstr (int a1, int a2, const char * a3, int z)
+{
+	T((T_CALLED("mvinsnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsnstr(stdscr,a3,z)));
+}
+
+
+extern int call_mvinsstr (int a1, int a2, const char * z);
+int call_mvinsstr (int a1, int a2, const char * z)
+{
+	T((T_CALLED("mvinsstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winsnstr(stdscr, z, -1)));
+}
+
+
+extern int call_mvinstr (int a1, int a2, char * z);
+int call_mvinstr (int a1, int a2, char * z)
+{
+	T((T_CALLED("mvinstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : winnstr(stdscr, z, -1)));
+}
+
+
+extern int call_mvvline (int a1, int a2, chtype a3, int z);
+int call_mvvline (int a1, int a2, chtype a3, int z)
+{
+	T((T_CALLED("mvvline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); returnCode((wmove(stdscr,a1,a2) == (-1) ? (-1) : wvline(stdscr,a3,z)));
+}
+
+
+extern int call_mvwaddch (WINDOW * a1, int a2, int a3, const chtype z);
+int call_mvwaddch (WINDOW * a1, int a2, int a3, const chtype z)
+{
+	T((T_CALLED("mvwaddch(%p,%d,%d,%s)"), a1, a2, a3, _tracechtype2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddch(a1,z)));
+}
+
+
+extern int call_mvwaddchnstr (WINDOW * a1, int a2, int a3, const chtype * a4, int z);
+int call_mvwaddchnstr (WINDOW * a1, int a2, int a3, const chtype * a4, int z)
+{
+	T((T_CALLED("mvwaddchnstr(%p,%d,%d,%p,%d)"), a1, a2, a3, a4, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddchnstr(a1,a4,z)));
+}
+
+
+extern int call_mvwaddchstr (WINDOW * a1, int a2, int a3, const chtype * z);
+int call_mvwaddchstr (WINDOW * a1, int a2, int a3, const chtype * z)
+{
+	T((T_CALLED("mvwaddchstr(%p,%d,%d,%p)"), a1, a2, a3, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddchnstr(a1,z,-1)));
+}
+
+
+extern int call_mvwaddnstr (WINDOW * a1, int a2, int a3, const char * a4, int z);
+int call_mvwaddnstr (WINDOW * a1, int a2, int a3, const char * a4, int z)
+{
+	T((T_CALLED("mvwaddnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddnstr(a1,a4,z)));
+}
+
+
+extern int call_mvwaddstr (WINDOW * a1, int a2, int a3, const char * z);
+int call_mvwaddstr (WINDOW * a1, int a2, int a3, const char * z)
+{
+	T((T_CALLED("mvwaddstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : waddnstr(a1,z,-1)));
+}
+
+
+extern int call_mvwchgat (WINDOW * a1, int a2, int a3, int a4, attr_t a5, short a6, const void * z);
+int call_mvwchgat (WINDOW * a1, int a2, int a3, int a4, attr_t a5, short a6, const void * z)
+{
+	T((T_CALLED("mvwchgat(%p,%d,%d,%d,%s,%d,%p)"), a1, a2, a3, a4, _traceattr2(4,a5), a6, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wchgat(a1,a4,a5,a6,z)));
+}
+
+
+extern int call_mvwdelch (WINDOW * a1, int a2, int z);
+int call_mvwdelch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwdelch(%p,%d,%d)"), a1, a2, z)); returnCode((wmove(a1,a2,z) == (-1) ? (-1) : wdelch(a1)));
+}
+
+
+extern int call_mvwgetch (WINDOW * a1, int a2, int z);
+int call_mvwgetch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwgetch(%p,%d,%d)"), a1, a2, z)); returnCode((wmove(a1,a2,z) == (-1) ? (-1) : wgetch(a1)));
+}
+
+
+extern int call_mvwgetnstr (WINDOW * a1, int a2, int a3, char * a4, int z);
+int call_mvwgetnstr (WINDOW * a1, int a2, int a3, char * a4, int z)
+{
+	T((T_CALLED("mvwgetnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wgetnstr(a1,a4,z)));
+}
+
+
+extern int call_mvwgetstr (WINDOW * a1, int a2, int a3, char * z);
+int call_mvwgetstr (WINDOW * a1, int a2, int a3, char * z)
+{
+	T((T_CALLED("mvwgetstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wgetnstr(a1, z, -1)));
+}
+
+
+extern int call_mvwhline (WINDOW * a1, int a2, int a3, chtype a4, int z);
+int call_mvwhline (WINDOW * a1, int a2, int a3, chtype a4, int z)
+{
+	T((T_CALLED("mvwhline(%p,%d,%d,%s,%d)"), a1, a2, a3, _tracechtype2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : whline(a1,a4,z)));
+}
+
+
+extern int call_mvwin (WINDOW * a1, int a2, int z);
+int call_mvwin (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwin(%p,%d,%d)"), a1, a2, z)); returnCode(mvwin(a1, a2, z));
+}
+
+
+extern chtype call_mvwinch (WINDOW * a1, int a2, int z);
+chtype call_mvwinch (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("mvwinch(%p,%d,%d)"), a1, a2, z)); returnChar((wmove(a1,a2,z) == (-1) ? (chtype)((-1)) : winch(a1)));
+}
+
+
+extern int call_mvwinchnstr (WINDOW * a1, int a2, int a3, chtype * a4, int z);
+int call_mvwinchnstr (WINDOW * a1, int a2, int a3, chtype * a4, int z)
+{
+	T((T_CALLED("mvwinchnstr(%p,%d,%d,%p,%d)"), a1, a2, a3, a4, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winchnstr(a1,a4,z)));
+}
+
+
+extern int call_mvwinchstr (WINDOW * a1, int a2, int a3, chtype * z);
+int call_mvwinchstr (WINDOW * a1, int a2, int a3, chtype * z)
+{
+	T((T_CALLED("mvwinchstr(%p,%d,%d,%p)"), a1, a2, a3, z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winchnstr(a1, z, -1)));
+}
+
+
+extern int call_mvwinnstr (WINDOW * a1, int a2, int a3, char * a4, int z);
+int call_mvwinnstr (WINDOW * a1, int a2, int a3, char * a4, int z)
+{
+	return (wmove(a1,a2,a3) == (-1) ? (-1) : winnstr(a1,a4,z)) ;
+}
+
+
+extern int call_mvwinsch (WINDOW * a1, int a2, int a3, chtype z);
+int call_mvwinsch (WINDOW * a1, int a2, int a3, chtype z)
+{
+	T((T_CALLED("mvwinsch(%p,%d,%d,%s)"), a1, a2, a3, _tracechtype2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsch(a1,z)));
+}
+
+
+extern int call_mvwinsnstr (WINDOW * a1, int a2, int a3, const char * a4, int z);
+int call_mvwinsnstr (WINDOW * a1, int a2, int a3, const char * a4, int z)
+{
+	T((T_CALLED("mvwinsnstr(%p,%d,%d,%s,%d)"), a1, a2, a3, _nc_visbuf2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsnstr(a1,a4,z)));
+}
+
+
+extern int call_mvwinsstr (WINDOW * a1, int a2, int a3, const char * z);
+int call_mvwinsstr (WINDOW * a1, int a2, int a3, const char * z)
+{
+	T((T_CALLED("mvwinsstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winsnstr(a1, z, -1)));
+}
+
+
+extern int call_mvwinstr (WINDOW * a1, int a2, int a3, char * z);
+int call_mvwinstr (WINDOW * a1, int a2, int a3, char * z)
+{
+	T((T_CALLED("mvwinstr(%p,%d,%d,%s)"), a1, a2, a3, _nc_visbuf2(3,z))); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : winnstr(a1, z, -1)));
+}
+
+
+extern int call_mvwvline (WINDOW * a1, int a2, int a3, chtype a4, int z);
+int call_mvwvline (WINDOW * a1, int a2, int a3, chtype a4, int z)
+{
+	T((T_CALLED("mvwvline(%p,%d,%d,%s,%d)"), a1, a2, a3, _tracechtype2(3,a4), z)); returnCode((wmove(a1,a2,a3) == (-1) ? (-1) : wvline(a1,a4,z)));
+}
+
+
+extern int call_napms (int z);
+int call_napms (int z)
+{
+	T((T_CALLED("napms(%d)"), z)); returnCode(napms(z));
+}
+
+
+extern WINDOW * call_newpad (int a1, int z);
+WINDOW * call_newpad (int a1, int z)
+{
+	T((T_CALLED("(%d,%d)"), a1, z)); returnWin(newpad(a1, z));
+}
+
+
+extern SCREEN * call_newterm (char * a1, FILE * a2, FILE * z);
+SCREEN * call_newterm (char * a1, FILE * a2, FILE * z)
+{
+	T((T_CALLED("(%s,%p,%p)"), _nc_visbuf2(0,a1), a2, z)); returnSP(newterm(a1, a2, z));
+}
+
+
+extern WINDOW * call_newwin (int a1, int a2, int a3, int z);
+WINDOW * call_newwin (int a1, int a2, int a3, int z)
+{
+	T((T_CALLED("(%d,%d,%d,%d)"), a1, a2, a3, z)); returnWin(newwin(a1, a2, a3, z));
+}
+
+
+extern int call_nl (void);
+int call_nl (void)
+{
+	T((T_CALLED("nl()"))); returnCode(nl());
+}
+
+
+extern int call_nocbreak (void);
+int call_nocbreak (void)
+{
+	T((T_CALLED("nocbreak()"))); returnCode(nocbreak());
+}
+
+
+extern int call_nodelay (WINDOW * a1, NCURSES_BOOL z);
+int call_nodelay (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("nodelay(%p,%#lx)"), a1, (long)z)); returnCode(nodelay(a1, z));
+}
+
+
+extern int call_noecho (void);
+int call_noecho (void)
+{
+	T((T_CALLED("noecho()"))); returnCode(noecho());
+}
+
+
+extern int call_nonl (void);
+int call_nonl (void)
+{
+	T((T_CALLED("nonl()"))); returnCode(nonl());
+}
+
+
+extern void call_noqiflush (void);
+void call_noqiflush (void)
+{
+	T((T_CALLED("noqiflush()"))); noqiflush();
+	returnVoid;
+}
+
+
+extern int call_noraw (void);
+int call_noraw (void)
+{
+	T((T_CALLED("noraw()"))); returnCode(noraw());
+}
+
+
+extern int call_notimeout (WINDOW * a1, NCURSES_BOOL z);
+int call_notimeout (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("notimeout(%p,%#lx)"), a1, (long)z)); returnCode(notimeout(a1, z));
+}
+
+
+extern int call_overlay (const WINDOW * a1, WINDOW * z);
+int call_overlay (const WINDOW * a1, WINDOW * z)
+{
+	T((T_CALLED("overlay(%p,%p)"), a1, z)); returnCode(overlay(a1, z));
+}
+
+
+extern int call_overwrite (const WINDOW * a1, WINDOW * z);
+int call_overwrite (const WINDOW * a1, WINDOW * z)
+{
+	T((T_CALLED("overwrite(%p,%p)"), a1, z)); returnCode(overwrite(a1, z));
+}
+
+
+extern int call_pair_content (short a1, short * a2, short * z);
+int call_pair_content (short a1, short * a2, short * z)
+{
+	T((T_CALLED("pair_content(%d,%p,%p)"), a1, a2, z)); returnCode(pair_content(a1, a2, z));
+}
+
+
+extern int call_PAIR_NUMBER (int z);
+int call_PAIR_NUMBER (int z)
+{
+	T((T_CALLED("PAIR_NUMBER(%d)"), z)); returnCode(((int)((((z) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))));
+}
+
+
+extern int call_pechochar (WINDOW * a1, const chtype z);
+int call_pechochar (WINDOW * a1, const chtype z)
+{
+	T((T_CALLED("pechochar(%p,%s)"), a1, _tracechtype2(1,z))); returnCode(pechochar(a1, z));
+}
+
+
+extern int call_pnoutrefresh (WINDOW * a1, int a2, int a3, int a4, int a5, int a6, int z);
+int call_pnoutrefresh (WINDOW * a1, int a2, int a3, int a4, int a5, int a6, int z)
+{
+	T((T_CALLED("pnoutrefresh(%p,%d,%d,%d,%d,%d,%d)"), a1, a2, a3, a4, a5, a6, z)); returnCode(pnoutrefresh(a1, a2, a3, a4, a5, a6, z));
+}
+
+
+extern int call_prefresh (WINDOW * a1, int a2, int a3, int a4, int a5, int a6, int z);
+int call_prefresh (WINDOW * a1, int a2, int a3, int a4, int a5, int a6, int z)
+{
+	T((T_CALLED("prefresh(%p,%d,%d,%d,%d,%d,%d)"), a1, a2, a3, a4, a5, a6, z)); returnCode(prefresh(a1, a2, a3, a4, a5, a6, z));
+}
+
+
+extern int call_putwin (WINDOW * a1, FILE * z);
+int call_putwin (WINDOW * a1, FILE * z)
+{
+	T((T_CALLED("putwin(%p,%p)"), a1, z)); returnCode(putwin(a1, z));
+}
+
+
+extern void call_qiflush (void);
+void call_qiflush (void)
+{
+	T((T_CALLED("qiflush()"))); qiflush();
+	returnVoid;
+}
+
+
+extern int call_raw (void);
+int call_raw (void)
+{
+	T((T_CALLED("raw()"))); returnCode(raw());
+}
+
+
+extern int call_redrawwin (WINDOW * z);
+int call_redrawwin (WINDOW * z)
+{
+	T((T_CALLED("redrawwin(%p)"), z)); returnCode(wredrawln(z, 0, (z)->_maxy+1));
+}
+
+
+extern int call_refresh (void);
+int call_refresh (void)
+{
+	T((T_CALLED("refresh()"))); returnCode(wrefresh(stdscr));
+}
+
+
+extern int call_resetty (void);
+int call_resetty (void)
+{
+	T((T_CALLED("resetty()"))); returnCode(resetty());
+}
+
+
+extern int call_reset_prog_mode (void);
+int call_reset_prog_mode (void)
+{
+	T((T_CALLED("reset_prog_mode()"))); returnCode(reset_prog_mode());
+}
+
+
+extern int call_reset_shell_mode (void);
+int call_reset_shell_mode (void)
+{
+	T((T_CALLED("reset_shell_mode()"))); returnCode(reset_shell_mode());
+}
+
+
+extern int call_ripoffline (int a1, int(* z)(WINDOW * a2, int));
+int call_ripoffline (int a1, int(* z)(WINDOW * a2, int))
+{
+	return ripoffline(a1, z) ;
+}
+
+
+extern int call_savetty (void);
+int call_savetty (void)
+{
+	T((T_CALLED("savetty()"))); returnCode(savetty());
+}
+
+
+extern int call_scr_dump (const char * z);
+int call_scr_dump (const char * z)
+{
+	T((T_CALLED("scr_dump(%s)"), _nc_visbuf2(0,z))); returnCode(scr_dump(z));
+}
+
+
+extern int call_scr_init (const char * z);
+int call_scr_init (const char * z)
+{
+	T((T_CALLED("scr_init(%s)"), _nc_visbuf2(0,z))); returnCode(scr_init(z));
+}
+
+
+extern int call_scrl (int z);
+int call_scrl (int z)
+{
+	T((T_CALLED("scrl(%d)"), z)); returnCode(wscrl(stdscr,z));
+}
+
+
+extern int call_scroll (WINDOW * z);
+int call_scroll (WINDOW * z)
+{
+	T((T_CALLED("scroll(%p)"), z)); returnCode(wscrl(z,1));
+}
+
+
+extern int call_scrollok (WINDOW * a1, NCURSES_BOOL z);
+int call_scrollok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("scrollok(%p,%#lx)"), a1, (long)z)); returnCode(scrollok(a1, z));
+}
+
+
+extern int call_scr_restore (const char * z);
+int call_scr_restore (const char * z)
+{
+	T((T_CALLED("scr_restore(%s)"), _nc_visbuf2(0,z))); returnCode(scr_restore(z));
+}
+
+
+extern int call_scr_set (const char * z);
+int call_scr_set (const char * z)
+{
+	T((T_CALLED("scr_set(%s)"), _nc_visbuf2(0,z))); returnCode(scr_set(z));
+}
+
+
+extern int call_setscrreg (int a1, int z);
+int call_setscrreg (int a1, int z)
+{
+	T((T_CALLED("setscrreg(%d,%d)"), a1, z)); returnCode(wsetscrreg(stdscr,a1,z));
+}
+
+
+extern SCREEN * call_set_term (SCREEN * z);
+SCREEN * call_set_term (SCREEN * z)
+{
+	T((T_CALLED("(%p)"), z)); returnSP(set_term(z));
+}
+
+
+extern int call_slk_attroff (const chtype z);
+int call_slk_attroff (const chtype z)
+{
+	T((T_CALLED("slk_attroff(%s)"), _tracechtype2(0,z))); returnCode(slk_attroff(z));
+}
+
+
+#if USE_WIDEC_SUPPORT
+extern int call_slk_attr_off (const attr_t a1, void * z);
+int call_slk_attr_off (const attr_t a1, void * z)
+{
+	T((T_CALLED("slk_attr_off(%s,%p)"), _traceattr2(0,a1), z)); returnCode(((z) ? (-1) : slk_attroff(a1)));
+}
+#endif
+
+
+extern int call_slk_attron (const chtype z);
+int call_slk_attron (const chtype z)
+{
+	T((T_CALLED("slk_attron(%s)"), _tracechtype2(0,z))); returnCode(slk_attron(z));
+}
+
+
+#if USE_WIDEC_SUPPORT
+extern int call_slk_attr_on (attr_t a1, void * z);
+int call_slk_attr_on (attr_t a1, void * z)
+{
+	T((T_CALLED("slk_attr_on(%s,%p)"), _traceattr2(0,a1), z)); returnCode(((z) ? (-1) : slk_attron(a1)));
+}
+#endif
+
+
+extern int call_slk_attrset (const chtype z);
+int call_slk_attrset (const chtype z)
+{
+	T((T_CALLED("slk_attrset(%s)"), _tracechtype2(0,z))); returnCode(slk_attrset(z));
+}
+
+
+extern attr_t call_slk_attr (void);
+attr_t call_slk_attr (void)
+{
+	T((T_CALLED("slk_attr()"))); returnAttr(slk_attr());
+}
+
+
+extern int call_slk_attr_set (const attr_t a1, short a2, void * z);
+int call_slk_attr_set (const attr_t a1, short a2, void * z)
+{
+	T((T_CALLED("slk_attr_set(%s,%d,%p)"), _traceattr2(0,a1), a2, z)); returnCode(slk_attr_set(a1, a2, z));
+}
+
+
+extern int call_slk_clear (void);
+int call_slk_clear (void)
+{
+	T((T_CALLED("slk_clear()"))); returnCode(slk_clear());
+}
+
+
+extern int call_slk_color (short z);
+int call_slk_color (short z)
+{
+	T((T_CALLED("slk_color(%d)"), z)); returnCode(slk_color(z));
+}
+
+
+extern int call_slk_init (int z);
+int call_slk_init (int z)
+{
+	T((T_CALLED("slk_init(%d)"), z)); returnCode(slk_init(z));
+}
+
+
+extern char * call_slk_label (int z);
+char * call_slk_label (int z)
+{
+	T((T_CALLED("(%d)"), z)); returnPtr(slk_label(z));
+}
+
+
+extern int call_slk_noutrefresh (void);
+int call_slk_noutrefresh (void)
+{
+	T((T_CALLED("slk_noutrefresh()"))); returnCode(slk_noutrefresh());
+}
+
+
+extern int call_slk_refresh (void);
+int call_slk_refresh (void)
+{
+	T((T_CALLED("slk_refresh()"))); returnCode(slk_refresh());
+}
+
+
+extern int call_slk_restore (void);
+int call_slk_restore (void)
+{
+	T((T_CALLED("slk_restore()"))); returnCode(slk_restore());
+}
+
+
+extern int call_slk_set (int a1, const char * a2, int z);
+int call_slk_set (int a1, const char * a2, int z)
+{
+	T((T_CALLED("slk_set(%d,%s,%d)"), a1, _nc_visbuf2(1,a2), z)); returnCode(slk_set(a1, a2, z));
+}
+
+
+extern int call_slk_touch (void);
+int call_slk_touch (void)
+{
+	T((T_CALLED("slk_touch()"))); returnCode(slk_touch());
+}
+
+
+extern int call_standout (void);
+int call_standout (void)
+{
+	T((T_CALLED("standout()"))); returnAttr((((stdscr)->_attrs = (((1UL) << ((8) + 8))))));
+}
+
+
+extern int call_standend (void);
+int call_standend (void)
+{
+	T((T_CALLED("standend()"))); returnAttr((((stdscr)->_attrs = ((1UL - 1UL)))));
+}
+
+
+extern int call_start_color (void);
+int call_start_color (void)
+{
+	T((T_CALLED("start_color()"))); returnCode(start_color());
+}
+
+
+extern WINDOW * call_subpad (WINDOW * a1, int a2, int a3, int a4, int z);
+WINDOW * call_subpad (WINDOW * a1, int a2, int a3, int a4, int z)
+{
+	T((T_CALLED("(%p,%d,%d,%d,%d)"), a1, a2, a3, a4, z)); returnWin(subpad(a1, a2, a3, a4, z));
+}
+
+
+extern WINDOW * call_subwin (WINDOW * a1, int a2, int a3, int a4, int z);
+WINDOW * call_subwin (WINDOW * a1, int a2, int a3, int a4, int z)
+{
+	T((T_CALLED("(%p,%d,%d,%d,%d)"), a1, a2, a3, a4, z)); returnWin(subwin(a1, a2, a3, a4, z));
+}
+
+
+extern int call_syncok (WINDOW * a1, NCURSES_BOOL z);
+int call_syncok (WINDOW * a1, NCURSES_BOOL z)
+{
+	T((T_CALLED("syncok(%p,%#lx)"), a1, (long)z)); returnCode(syncok(a1, z));
+}
+
+
+extern chtype call_termattrs (void);
+chtype call_termattrs (void)
+{
+	T((T_CALLED("termattrs()"))); returnChar(termattrs());
+}
+
+
+extern char * call_termname (void);
+char * call_termname (void)
+{
+	T((T_CALLED("()"))); returnPtr(termname());
+}
+
+
+extern void call_timeout (int z);
+void call_timeout (int z)
+{
+	T((T_CALLED("timeout(%d)"), z)); wtimeout(stdscr,z);
+	returnVoid;
+}
+
+
+extern int call_touchline (WINDOW * a1, int a2, int z);
+int call_touchline (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("touchline(%p,%d,%d)"), a1, a2, z)); returnCode(wtouchln((a1), a2, z, 1));
+}
+
+
+extern int call_touchwin (WINDOW * z);
+int call_touchwin (WINDOW * z)
+{
+	T((T_CALLED("touchwin(%p)"), z)); returnCode(wtouchln((z), 0, ((z) ? ((z)->_maxy + 1) : (-1)), 1));
+}
+
+
+extern int call_typeahead (int z);
+int call_typeahead (int z)
+{
+	T((T_CALLED("typeahead(%d)"), z)); returnCode(typeahead(z));
+}
+
+
+extern int call_ungetch (int z);
+int call_ungetch (int z)
+{
+	T((T_CALLED("ungetch(%d)"), z)); returnCode(ungetch(z));
+}
+
+
+extern int call_untouchwin (WINDOW * z);
+int call_untouchwin (WINDOW * z)
+{
+	T((T_CALLED("untouchwin(%p)"), z)); returnCode(wtouchln((z), 0, ((z) ? ((z)->_maxy + 1) : (-1)), 0));
+}
+
+
+extern void call_use_env (NCURSES_BOOL z);
+void call_use_env (NCURSES_BOOL z)
+{
+	T((T_CALLED("use_env(%#lx)"), (long)z)); use_env(z);
+	returnVoid;
+}
+
+
+extern int call_vidattr (chtype z);
+int call_vidattr (chtype z)
+{
+	T((T_CALLED("vidattr(%s)"), _tracechtype2(0,z))); returnCode(vidattr(z));
+}
+
+
+extern int call_vidputs (chtype a1, int(* z)(int));
+int call_vidputs (chtype a1, int(* z)(int))
+{
+	T((T_CALLED("vidputs(%s,"), _tracechtype2(0,a1))); returnCode(vidputs(a1, z));
+}
+
+
+extern int call_vline (chtype a1, int z);
+int call_vline (chtype a1, int z)
+{
+	T((T_CALLED("vline(%s,%d)"), _tracechtype2(0,a1), z)); returnCode(wvline(stdscr, a1, z));
+}
+
+
+extern int call_vwprintw (WINDOW * a1, const char * a2, va_list z);
+int call_vwprintw (WINDOW * a1, const char * a2, va_list z)
+{
+	T((T_CALLED("vwprintw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwprintw(a1, a2, z));
+}
+
+
+extern int call_vw_printw (WINDOW * a1, const char * a2, va_list z);
+int call_vw_printw (WINDOW * a1, const char * a2, va_list z)
+{
+	T((T_CALLED("vw_printw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwprintw(a1, a2, z));
+}
+
+
+extern int call_vwscanw (WINDOW * a1, char * a2, va_list z);
+int call_vwscanw (WINDOW * a1, char * a2, va_list z)
+{
+	T((T_CALLED("vwscanw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwscanw(a1, a2, z));
+}
+
+
+extern int call_vw_scanw (WINDOW * a1, char * a2, va_list z);
+int call_vw_scanw (WINDOW * a1, char * a2, va_list z)
+{
+	T((T_CALLED("vw_scanw(%p,%s,%s)"), a1, _nc_visbuf2(1,a2), "va_list")); returnCode(vwscanw(a1, a2, z));
+}
+
+
+extern int call_waddch (WINDOW * a1, const chtype z);
+int call_waddch (WINDOW * a1, const chtype z)
+{
+	T((T_CALLED("waddch(%p,%s)"), a1, _tracechtype2(1,z))); returnCode(waddch(a1, z));
+}
+
+
+extern int call_waddchnstr (WINDOW * a1, const chtype * a2, int z);
+int call_waddchnstr (WINDOW * a1, const chtype * a2, int z)
+{
+	T((T_CALLED("waddchnstr(%p,%p,%d)"), a1, a2, z)); returnCode(waddchnstr(a1, a2, z));
+}
+
+
+extern int call_waddchstr (WINDOW * a1, const chtype * z);
+int call_waddchstr (WINDOW * a1, const chtype * z)
+{
+	T((T_CALLED("waddchstr(%p,%p)"), a1, z)); returnCode(waddchnstr(a1,z,-1));
+}
+
+
+extern int call_waddnstr (WINDOW * a1, const char * a2, int z);
+int call_waddnstr (WINDOW * a1, const char * a2, int z)
+{
+	T((T_CALLED("waddnstr(%p,%s,%d)"), a1, _nc_visbuf2(1,a2), z)); returnCode(waddnstr(a1, a2, z));
+}
+
+
+extern int call_waddstr (WINDOW * a1, const char * z);
+int call_waddstr (WINDOW * a1, const char * z)
+{
+	T((T_CALLED("waddstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(waddnstr(a1,z,-1));
+}
+
+
+extern int call_wattron (WINDOW * a1, int z);
+int call_wattron (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattron(%p,%d)"), a1, z)); returnCode(wattr_on(a1, (attr_t)(z), ((void *)0)));
+}
+
+
+extern int call_wattroff (WINDOW * a1, int z);
+int call_wattroff (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattroff(%p,%d)"), a1, z)); returnCode(wattr_off(a1, (attr_t)(z), ((void *)0)));
+}
+
+
+extern int call_wattrset (WINDOW * a1, int z);
+int call_wattrset (WINDOW * a1, int z)
+{
+	T((T_CALLED("wattrset(%p,%d)"), a1, z)); returnAttr(((a1)->_attrs = (z)));
+}
+
+
+extern int call_wattr_get (WINDOW * a1, attr_t * a2, short * a3, void * z);
+int call_wattr_get (WINDOW * a1, attr_t * a2, short * a3, void * z)
+{
+	T((T_CALLED("wattr_get(%p,%p,%p,%p)"), a1, a2, a3, z)); returnCode(((void)((a2) != (void *)0 && (*(a2) = (a1)->_attrs)), (void)((a3) != (void *)0 && (*(a3) = ((int)(((((a1)->_attrs) & ((((1UL) << 8) - 1UL) << ((0) + 8))) >> 8))))), (0)));
+}
+
+
+extern int call_wattr_on (WINDOW * a1, attr_t a2, void * z);
+int call_wattr_on (WINDOW * a1, attr_t a2, void * z)
+{
+	T((T_CALLED("wattr_on(%p,%s,%p)"), a1, _traceattr2(1,a2), z)); returnCode(wattr_on(a1, a2, z));
+}
+
+
+extern int call_wattr_off (WINDOW * a1, attr_t a2, void * z);
+int call_wattr_off (WINDOW * a1, attr_t a2, void * z)
+{
+	T((T_CALLED("wattr_off(%p,%s,%p)"), a1, _traceattr2(1,a2), z)); returnCode(wattr_off(a1, a2, z));
+}
+
+
+extern int call_wattr_set (WINDOW * a1, attr_t a2, short a3, void * z);
+int call_wattr_set (WINDOW * a1, attr_t a2, short a3, void * z)
+{
+	T((T_CALLED("wattr_set(%p,%s,%d,%p)"), a1, _traceattr2(1,a2), a3, z)); returnCode(((a1)->_attrs = (((a2) & ~((((1UL) << 8) - 1UL) << ((0) + 8))) | ((a3) << ((0) + 8))), (0)));
+}
+
+
+extern int call_wbkgd (WINDOW * a1, chtype z);
+int call_wbkgd (WINDOW * a1, chtype z)
+{
+	T((T_CALLED("wbkgd(%p,%s)"), a1, _tracechtype2(1,z))); returnCode(wbkgd(a1, z));
+}
+
+
+extern void call_wbkgdset (WINDOW * a1, chtype z);
+void call_wbkgdset (WINDOW * a1, chtype z)
+{
+	T((T_CALLED("wbkgdset(%p,%s)"), a1, _tracechtype2(1,z))); wbkgdset(a1, z);
+	returnVoid;
+}
+
+
+extern int call_wborder (WINDOW * a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype a8, chtype z);
+int call_wborder (WINDOW * a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype a8, chtype z)
+{
+	T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), a1, _tracechtype2(1,a2), _tracechtype2(2,a3), _tracechtype2(3,a4), _tracechtype2(4,a5), _tracechtype2(5,a6), _tracechtype2(6,a7), _tracechtype2(7,a8), _tracechtype2(8,z))); returnCode(wborder(a1, a2, a3, a4, a5, a6, a7, a8, z));
+}
+
+
+extern int call_wchgat (WINDOW * a1, int a2, attr_t a3, short a4, const void * z);
+int call_wchgat (WINDOW * a1, int a2, attr_t a3, short a4, const void * z)
+{
+	T((T_CALLED("wchgat(%p,%d,%s,%d,%p)"), a1, a2, _traceattr2(2,a3), a4, z)); returnCode(wchgat(a1, a2, a3, a4, z));
+}
+
+
+extern int call_wclear (WINDOW * z);
+int call_wclear (WINDOW * z)
+{
+	T((T_CALLED("wclear(%p)"), z)); returnCode(wclear(z));
+}
+
+
+extern int call_wclrtobot (WINDOW * z);
+int call_wclrtobot (WINDOW * z)
+{
+	T((T_CALLED("wclrtobot(%p)"), z)); returnCode(wclrtobot(z));
+}
+
+
+extern int call_wclrtoeol (WINDOW * z);
+int call_wclrtoeol (WINDOW * z)
+{
+	T((T_CALLED("wclrtoeol(%p)"), z)); returnCode(wclrtoeol(z));
+}
+
+
+extern int call_wcolor_set (WINDOW * a1, short a2, void * z);
+int call_wcolor_set (WINDOW * a1, short a2, void * z)
+{
+	T((T_CALLED("wcolor_set(%p,%d,%p)"), a1, a2, z)); returnCode(wcolor_set(a1, a2, z));
+}
+
+
+extern void call_wcursyncup (WINDOW * z);
+void call_wcursyncup (WINDOW * z)
+{
+	T((T_CALLED("wcursyncup(%p)"), z)); wcursyncup(z);
+	returnVoid;
+}
+
+
+extern int call_wdelch (WINDOW * z);
+int call_wdelch (WINDOW * z)
+{
+	T((T_CALLED("wdelch(%p)"), z)); returnCode(wdelch(z));
+}
+
+
+extern int call_wdeleteln (WINDOW * z);
+int call_wdeleteln (WINDOW * z)
+{
+	T((T_CALLED("wdeleteln(%p)"), z)); returnCode(winsdelln(z,-1));
+}
+
+
+extern int call_wechochar (WINDOW * a1, const chtype z);
+int call_wechochar (WINDOW * a1, const chtype z)
+{
+	T((T_CALLED("wechochar(%p,%s)"), a1, _tracechtype2(1,z))); returnCode(wechochar(a1, z));
+}
+
+
+extern int call_werase (WINDOW * z);
+int call_werase (WINDOW * z)
+{
+	T((T_CALLED("werase(%p)"), z)); returnCode(werase(z));
+}
+
+
+extern int call_wgetch (WINDOW * z);
+int call_wgetch (WINDOW * z)
+{
+	T((T_CALLED("wgetch(%p)"), z)); returnCode(wgetch(z));
+}
+
+
+extern int call_wgetnstr (WINDOW * a1, char * a2, int z);
+int call_wgetnstr (WINDOW * a1, char * a2, int z)
+{
+	T((T_CALLED("wgetnstr(%p,%s,%d)"), a1, _nc_visbuf2(1,a2), z)); returnCode(wgetnstr(a1, a2, z));
+}
+
+
+extern int call_wgetstr (WINDOW * a1, char * z);
+int call_wgetstr (WINDOW * a1, char * z)
+{
+	T((T_CALLED("wgetstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(wgetnstr(a1, z, -1));
+}
+
+
+extern int call_whline (WINDOW * a1, chtype a2, int z);
+int call_whline (WINDOW * a1, chtype a2, int z)
+{
+	T((T_CALLED("whline(%p,%s,%d)"), a1, _tracechtype2(1,a2), z)); returnCode(whline(a1, a2, z));
+}
+
+
+extern chtype call_winch (WINDOW * z);
+chtype call_winch (WINDOW * z)
+{
+	T((T_CALLED("winch(%p)"), z)); returnChar(winch(z));
+}
+
+
+extern int call_winchnstr (WINDOW * a1, chtype * a2, int z);
+int call_winchnstr (WINDOW * a1, chtype * a2, int z)
+{
+	T((T_CALLED("winchnstr(%p,%p,%d)"), a1, a2, z)); returnCode(winchnstr(a1, a2, z));
+}
+
+
+extern int call_winchstr (WINDOW * a1, chtype * z);
+int call_winchstr (WINDOW * a1, chtype * z)
+{
+	T((T_CALLED("winchstr(%p,%p)"), a1, z)); returnCode(winchnstr(a1, z, -1));
+}
+
+
+extern int call_winnstr (WINDOW * a1, char * a2, int z);
+int call_winnstr (WINDOW * a1, char * a2, int z)
+{
+	return winnstr(a1, a2, z) ;
+}
+
+
+extern int call_winsch (WINDOW * a1, chtype z);
+int call_winsch (WINDOW * a1, chtype z)
+{
+	T((T_CALLED("winsch(%p,%s)"), a1, _tracechtype2(1,z))); returnCode(winsch(a1, z));
+}
+
+
+extern int call_winsdelln (WINDOW * a1, int z);
+int call_winsdelln (WINDOW * a1, int z)
+{
+	T((T_CALLED("winsdelln(%p,%d)"), a1, z)); returnCode(winsdelln(a1, z));
+}
+
+
+extern int call_winsertln (WINDOW * z);
+int call_winsertln (WINDOW * z)
+{
+	T((T_CALLED("winsertln(%p)"), z)); returnCode(winsdelln(z,1));
+}
+
+
+extern int call_winsnstr (WINDOW * a1, const char * a2, int z);
+int call_winsnstr (WINDOW * a1, const char * a2, int z)
+{
+	T((T_CALLED("winsnstr(%p,%s,%d)"), a1, _nc_visbuf2(1,a2), z)); returnCode(winsnstr(a1, a2, z));
+}
+
+
+extern int call_winsstr (WINDOW * a1, const char * z);
+int call_winsstr (WINDOW * a1, const char * z)
+{
+	T((T_CALLED("winsstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(winsnstr(a1, z, -1));
+}
+
+
+extern int call_winstr (WINDOW * a1, char * z);
+int call_winstr (WINDOW * a1, char * z)
+{
+	T((T_CALLED("winstr(%p,%s)"), a1, _nc_visbuf2(1,z))); returnCode(winnstr(a1, z, -1));
+}
+
+
+extern int call_wmove (WINDOW * a1, int a2, int z);
+int call_wmove (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("wmove(%p,%d,%d)"), a1, a2, z)); returnCode(wmove(a1, a2, z));
+}
+
+
+extern int call_wnoutrefresh (WINDOW * z);
+int call_wnoutrefresh (WINDOW * z)
+{
+	T((T_CALLED("wnoutrefresh(%p)"), z)); returnCode(wnoutrefresh(z));
+}
+
+
+extern int call_wredrawln (WINDOW * a1, int a2, int z);
+int call_wredrawln (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("wredrawln(%p,%d,%d)"), a1, a2, z)); returnCode(wredrawln(a1, a2, z));
+}
+
+
+extern int call_wrefresh (WINDOW * z);
+int call_wrefresh (WINDOW * z)
+{
+	T((T_CALLED("wrefresh(%p)"), z)); returnCode(wrefresh(z));
+}
+
+
+extern int call_wscrl (WINDOW * a1, int z);
+int call_wscrl (WINDOW * a1, int z)
+{
+	T((T_CALLED("wscrl(%p,%d)"), a1, z)); returnCode(wscrl(a1, z));
+}
+
+
+extern int call_wsetscrreg (WINDOW * a1, int a2, int z);
+int call_wsetscrreg (WINDOW * a1, int a2, int z)
+{
+	T((T_CALLED("wsetscrreg(%p,%d,%d)"), a1, a2, z)); returnCode(wsetscrreg(a1, a2, z));
+}
+
+
+extern int call_wstandout (WINDOW * z);
+int call_wstandout (WINDOW * z)
+{
+	T((T_CALLED("wstandout(%p)"), z)); returnAttr((((z)->_attrs = (((1UL) << ((8) + 8))))));
+}
+
+
+extern int call_wstandend (WINDOW * z);
+int call_wstandend (WINDOW * z)
+{
+	T((T_CALLED("wstandend(%p)"), z)); returnAttr((((z)->_attrs = ((1UL - 1UL)))));
+}
+
+
+extern void call_wsyncdown (WINDOW * z);
+void call_wsyncdown (WINDOW * z)
+{
+	T((T_CALLED("wsyncdown(%p)"), z)); wsyncdown(z);
+	returnVoid;
+}
+
+
+extern void call_wsyncup (WINDOW * z);
+void call_wsyncup (WINDOW * z)
+{
+	T((T_CALLED("wsyncup(%p)"), z)); wsyncup(z);
+	returnVoid;
+}
+
+
+extern void call_wtimeout (WINDOW * a1, int z);
+void call_wtimeout (WINDOW * a1, int z)
+{
+	T((T_CALLED("wtimeout(%p,%d)"), a1, z)); wtimeout(a1, z);
+	returnVoid;
+}
+
+
+extern int call_wtouchln (WINDOW * a1, int a2, int a3, int z);
+int call_wtouchln (WINDOW * a1, int a2, int a3, int z)
+{
+	T((T_CALLED("wtouchln(%p,%d,%d,%d)"), a1, a2, a3, z)); returnCode(wtouchln(a1, a2, a3, z));
+}
+
+
+extern int call_wvline (WINDOW * a1, chtype a2, int z);
+int call_wvline (WINDOW * a1, chtype a2, int z)
+{
+	T((T_CALLED("wvline(%p,%s,%d)"), a1, _tracechtype2(1,a2), z)); returnCode(wvline(a1, a2, z));
+}
+
+
+extern int call_tigetflag (char * z);
+int call_tigetflag (char * z)
+{
+	T((T_CALLED("tigetflag(%s)"), _nc_visbuf2(0,z))); returnCode(tigetflag(z));
+}
+
+
+extern int call_tigetnum (char * z);
+int call_tigetnum (char * z)
+{
+	T((T_CALLED("tigetnum(%s)"), _nc_visbuf2(0,z))); returnCode(tigetnum(z));
+}
+
+
+extern char * call_tigetstr (char * z);
+char * call_tigetstr (char * z)
+{
+	T((T_CALLED("(%s)"), _nc_visbuf2(0,z))); returnPtr(tigetstr(z));
+}
+
+
+extern int call_putp (const char * z);
+int call_putp (const char * z)
+{
+	T((T_CALLED("putp(%s)"), _nc_visbuf2(0,z))); returnCode(putp(z));
+}
+
+
+extern int call_getattrs (const WINDOW * z);
+int call_getattrs (const WINDOW * z)
+{
+	T((T_CALLED("getattrs(%p)"), z)); returnCode(((z) ? (z)->_attrs : (1UL - 1UL)));
+}
+
+
+extern int call_getcurx (const WINDOW * z);
+int call_getcurx (const WINDOW * z)
+{
+	T((T_CALLED("getcurx(%p)"), z)); returnCode(((z) ? (z)->_curx : (-1)));
+}
+
+
+extern int call_getcury (const WINDOW * z);
+int call_getcury (const WINDOW * z)
+{
+	T((T_CALLED("getcury(%p)"), z)); returnCode(((z) ? (z)->_cury : (-1)));
+}
+
+
+extern int call_getbegx (const WINDOW * z);
+int call_getbegx (const WINDOW * z)
+{
+	T((T_CALLED("getbegx(%p)"), z)); returnCode(((z) ? (z)->_begx : (-1)));
+}
+
+
+extern int call_getbegy (const WINDOW * z);
+int call_getbegy (const WINDOW * z)
+{
+	T((T_CALLED("getbegy(%p)"), z)); returnCode(((z) ? (z)->_begy : (-1)));
+}
+
+
+extern int call_getmaxx (const WINDOW * z);
+int call_getmaxx (const WINDOW * z)
+{
+	T((T_CALLED("getmaxx(%p)"), z)); returnCode(((z) ? ((z)->_maxx + 1) : (-1)));
+}
+
+
+extern int call_getmaxy (const WINDOW * z);
+int call_getmaxy (const WINDOW * z)
+{
+	T((T_CALLED("getmaxy(%p)"), z)); returnCode(((z) ? ((z)->_maxy + 1) : (-1)));
+}
+
+
+extern int call_getparx (const WINDOW * z);
+int call_getparx (const WINDOW * z)
+{
+	T((T_CALLED("getparx(%p)"), z)); returnCode(((z) ? (z)->_parx : (-1)));
+}
+
+
+extern int call_getpary (const WINDOW * z);
+int call_getpary (const WINDOW * z)
+{
+	T((T_CALLED("getpary(%p)"), z)); returnCode(((z) ? (z)->_pary : (-1)));
+}
+
+
+extern WINDOW * call_wgetparent (const WINDOW * z);
+WINDOW * call_wgetparent (const WINDOW * z)
+{
+	T((T_CALLED("(%p)"), z)); returnWin(((z) ? (z)->_parent : 0));
+}
+
+
+extern NCURSES_BOOL call_is_cleared (const WINDOW * z);
+NCURSES_BOOL call_is_cleared (const WINDOW * z)
+{
+	T((T_CALLED("is_cleared(%p)"), z)); returnBool(((z)->_clear));
+}
+
+
+extern NCURSES_BOOL call_is_idcok (const WINDOW * z);
+NCURSES_BOOL call_is_idcok (const WINDOW * z)
+{
+	T((T_CALLED("is_idcok(%p)"), z)); returnBool(((z)->_idcok));
+}
+
+
+extern NCURSES_BOOL call_is_idlok (const WINDOW * z);
+NCURSES_BOOL call_is_idlok (const WINDOW * z)
+{
+	T((T_CALLED("is_idlok(%p)"), z)); returnBool(((z)->_idlok));
+}
+
+
+extern NCURSES_BOOL call_is_immedok (const WINDOW * z);
+NCURSES_BOOL call_is_immedok (const WINDOW * z)
+{
+	T((T_CALLED("is_immedok(%p)"), z)); returnBool(((z)->_immed));
+}
+
+
+extern NCURSES_BOOL call_is_keypad (const WINDOW * z);
+NCURSES_BOOL call_is_keypad (const WINDOW * z)
+{
+	T((T_CALLED("is_keypad(%p)"), z)); returnBool(((z)->_use_keypad));
+}
+
+
+extern NCURSES_BOOL call_is_leaveok (const WINDOW * z);
+NCURSES_BOOL call_is_leaveok (const WINDOW * z)
+{
+	T((T_CALLED("is_leaveok(%p)"), z)); returnBool(((z)->_leaveok));
+}
+
+
+extern NCURSES_BOOL call_is_nodelay (const WINDOW * z);
+NCURSES_BOOL call_is_nodelay (const WINDOW * z)
+{
+	T((T_CALLED("is_nodelay(%p)"), z)); returnBool(((z)->_delay == 0));
+}
+
+
+extern NCURSES_BOOL call_is_notimeout (const WINDOW * z);
+NCURSES_BOOL call_is_notimeout (const WINDOW * z)
+{
+	T((T_CALLED("is_notimeout(%p)"), z)); returnBool(((z)->_notimeout));
+}
+
+
+extern NCURSES_BOOL call_is_scrollok (const WINDOW * z);
+NCURSES_BOOL call_is_scrollok (const WINDOW * z)
+{
+	T((T_CALLED("is_scrollok(%p)"), z)); returnBool(((z)->_scroll));
+}
+
+
+extern NCURSES_BOOL call_is_syncok (const WINDOW * z);
+NCURSES_BOOL call_is_syncok (const WINDOW * z)
+{
+	T((T_CALLED("is_syncok(%p)"), z)); returnBool(((z)->_sync));
+}
+
+
+extern int call_wgetscrreg (const WINDOW * a1, int * a2, int * z);
+int call_wgetscrreg (const WINDOW * a1, int * a2, int * z)
+{
+	T((T_CALLED("wgetscrreg(%p,%p,%p)"), a1, a2, z)); returnCode(((a1) ? (*(a2) = (a1)->_regtop, *(z) = (a1)->_regbottom, (0)) : (-1)));
+}
+
+
+extern NCURSES_BOOL call_mouse_trafo (int * a1, int * a2, NCURSES_BOOL z);
+NCURSES_BOOL call_mouse_trafo (int * a1, int * a2, NCURSES_BOOL z)
+{
+	T((T_CALLED("mouse_trafo(%p,%p,%#lx)"), a1, a2, (long)z)); returnBool(wmouse_trafo(stdscr,a1,a2,z));
+}
+int main(void) { return 0; }
diff --git a/ncurses/make_hash b/ncurses/make_hash
new file mode 100755
index 0000000..4d7f2b4
--- /dev/null
+++ b/ncurses/make_hash
Binary files differ
diff --git a/ncurses/make_keys b/ncurses/make_keys
new file mode 100755
index 0000000..c611105
--- /dev/null
+++ b/ncurses/make_keys
Binary files differ
diff --git a/ncurses/names.c b/ncurses/names.c
new file mode 100644
index 0000000..360e733
--- /dev/null
+++ b/ncurses/names.c
@@ -0,0 +1,1365 @@
+/* This file was generated by MKnames.awk */
+
+#include <curses.priv.h>
+
+#define IT NCURSES_CONST char * const
+
+
+#if BROKEN_LINKER || USE_REENTRANT
+
+#include <term.h>
+
+static const char _nc_name_blob[] = 
+"bw\0" "auto_left_margin\0" "am\0" "auto_right_margin\0" "xsb\0" "no_esc_ctlc\0" \
+"xhp\0" "ceol_standout_glitch\0" "xenl\0" "eat_newline_glitch\0" "eo\0" \
+"erase_overstrike\0" "gn\0" "generic_type\0" "hc\0" "hard_copy\0" "km\0" \
+"has_meta_key\0" "hs\0" "has_status_line\0" "in\0" "insert_null_glitch\0" \
+"da\0" "memory_above\0" "db\0" "memory_below\0" "mir\0" "move_insert_mode\0" \
+"msgr\0" "move_standout_mode\0" "os\0" "over_strike\0" "eslok\0" "status_line_esc_ok\0" \
+"xt\0" "dest_tabs_magic_smso\0" "hz\0" "tilde_glitch\0" "ul\0" "transparent_underline\0" \
+"xon\0" "xon_xoff\0" "nxon\0" "needs_xon_xoff\0" "mc5i\0" "prtr_silent\0" \
+"chts\0" "hard_cursor\0" "nrrmc\0" "non_rev_rmcup\0" "npc\0" "no_pad_char\0" \
+"ndscr\0" "non_dest_scroll_region\0" "ccc\0" "can_change\0" "bce\0" "back_color_erase\0" \
+"hls\0" "hue_lightness_saturation\0" "xhpa\0" "col_addr_glitch\0" "crxm\0" \
+"cr_cancels_micro_mode\0" "daisy\0" "has_print_wheel\0" "xvpa\0" "row_addr_glitch\0" \
+"sam\0" "semi_auto_right_margin\0" "cpix\0" "cpi_changes_res\0" "lpix\0" \
+"lpi_changes_res\0" "cols\0" "columns\0" "it\0" "init_tabs\0" "lines\0" \
+"lines\0" "lm\0" "lines_of_memory\0" "xmc\0" "magic_cookie_glitch\0" "pb\0" \
+"padding_baud_rate\0" "vt\0" "virtual_terminal\0" "wsl\0" "width_status_line\0" \
+"nlab\0" "num_labels\0" "lh\0" "label_height\0" "lw\0" "label_width\0" \
+"ma\0" "max_attributes\0" "wnum\0" "maximum_windows\0" "colors\0" "max_colors\0" \
+"pairs\0" "max_pairs\0" "ncv\0" "no_color_video\0" "bufsz\0" "buffer_capacity\0" \
+"spinv\0" "dot_vert_spacing\0" "spinh\0" "dot_horz_spacing\0" "maddr\0" \
+"max_micro_address\0" "mjump\0" "max_micro_jump\0" "mcs\0" "micro_col_size\0" \
+"mls\0" "micro_line_size\0" "npins\0" "number_of_pins\0" "orc\0" "output_res_char\0" \
+"orl\0" "output_res_line\0" "orhi\0" "output_res_horz_inch\0" "orvi\0" \
+"output_res_vert_inch\0" "cps\0" "print_rate\0" "widcs\0" "wide_char_size\0" \
+"btns\0" "buttons\0" "bitwin\0" "bit_image_entwining\0" "bitype\0" "bit_image_type\0" \
+"cbt\0" "back_tab\0" "bel\0" "bell\0" "cr\0" "carriage_return\0" "csr\0" \
+"change_scroll_region\0" "tbc\0" "clear_all_tabs\0" "clear\0" "clear_screen\0" \
+"el\0" "clr_eol\0" "ed\0" "clr_eos\0" "hpa\0" "column_address\0" "cmdch\0" \
+"command_character\0" "cup\0" "cursor_address\0" "cud1\0" "cursor_down\0" \
+"home\0" "cursor_home\0" "civis\0" "cursor_invisible\0" "cub1\0" "cursor_left\0" \
+"mrcup\0" "cursor_mem_address\0" "cnorm\0" "cursor_normal\0" "cuf1\0" "cursor_right\0" \
+"ll\0" "cursor_to_ll\0" "cuu1\0" "cursor_up\0" "cvvis\0" "cursor_visible\0" \
+"dch1\0" "delete_character\0" "dl1\0" "delete_line\0" "dsl\0" "dis_status_line\0" \
+"hd\0" "down_half_line\0" "smacs\0" "enter_alt_charset_mode\0" "blink\0" \
+"enter_blink_mode\0" "bold\0" "enter_bold_mode\0" "smcup\0" "enter_ca_mode\0" \
+"smdc\0" "enter_delete_mode\0" "dim\0" "enter_dim_mode\0" "smir\0" "enter_insert_mode\0" \
+"invis\0" "enter_secure_mode\0" "prot\0" "enter_protected_mode\0" "rev\0" \
+"enter_reverse_mode\0" "smso\0" "enter_standout_mode\0" "smul\0" "enter_underline_mode\0" \
+"ech\0" "erase_chars\0" "rmacs\0" "exit_alt_charset_mode\0" "sgr0\0" "exit_attribute_mode\0" \
+"rmcup\0" "exit_ca_mode\0" "rmdc\0" "exit_delete_mode\0" "rmir\0" "exit_insert_mode\0" \
+"rmso\0" "exit_standout_mode\0" "rmul\0" "exit_underline_mode\0" "flash\0" \
+"flash_screen\0" "ff\0" "form_feed\0" "fsl\0" "from_status_line\0" "is1\0" \
+"init_1string\0" "is2\0" "init_2string\0" "is3\0" "init_3string\0" "if\0" \
+"init_file\0" "ich1\0" "insert_character\0" "il1\0" "insert_line\0" "ip\0" \
+"insert_padding\0" "kbs\0" "key_backspace\0" "ktbc\0" "key_catab\0" "kclr\0" \
+"key_clear\0" "kctab\0" "key_ctab\0" "kdch1\0" "key_dc\0" "kdl1\0" "key_dl\0" \
+"kcud1\0" "key_down\0" "krmir\0" "key_eic\0" "kel\0" "key_eol\0" "ked\0" \
+"key_eos\0" "kf0\0" "key_f0\0" "kf1\0" "key_f1\0" "kf10\0" "key_f10\0" \
+"kf2\0" "key_f2\0" "kf3\0" "key_f3\0" "kf4\0" "key_f4\0" "kf5\0" "key_f5\0" \
+"kf6\0" "key_f6\0" "kf7\0" "key_f7\0" "kf8\0" "key_f8\0" "kf9\0" "key_f9\0" \
+"khome\0" "key_home\0" "kich1\0" "key_ic\0" "kil1\0" "key_il\0" "kcub1\0" \
+"key_left\0" "kll\0" "key_ll\0" "knp\0" "key_npage\0" "kpp\0" "key_ppage\0" \
+"kcuf1\0" "key_right\0" "kind\0" "key_sf\0" "kri\0" "key_sr\0" "khts\0" \
+"key_stab\0" "kcuu1\0" "key_up\0" "rmkx\0" "keypad_local\0" "smkx\0" "keypad_xmit\0" \
+"lf0\0" "lab_f0\0" "lf1\0" "lab_f1\0" "lf10\0" "lab_f10\0" "lf2\0" "lab_f2\0" \
+"lf3\0" "lab_f3\0" "lf4\0" "lab_f4\0" "lf5\0" "lab_f5\0" "lf6\0" "lab_f6\0" \
+"lf7\0" "lab_f7\0" "lf8\0" "lab_f8\0" "lf9\0" "lab_f9\0" "rmm\0" "meta_off\0" \
+"smm\0" "meta_on\0" "nel\0" "newline\0" "pad\0" "pad_char\0" "dch\0" "parm_dch\0" \
+"dl\0" "parm_delete_line\0" "cud\0" "parm_down_cursor\0" "ich\0" "parm_ich\0" \
+"indn\0" "parm_index\0" "il\0" "parm_insert_line\0" "cub\0" "parm_left_cursor\0" \
+"cuf\0" "parm_right_cursor\0" "rin\0" "parm_rindex\0" "cuu\0" "parm_up_cursor\0" \
+"pfkey\0" "pkey_key\0" "pfloc\0" "pkey_local\0" "pfx\0" "pkey_xmit\0" "mc0\0" \
+"print_screen\0" "mc4\0" "prtr_off\0" "mc5\0" "prtr_on\0" "rep\0" "repeat_char\0" \
+"rs1\0" "reset_1string\0" "rs2\0" "reset_2string\0" "rs3\0" "reset_3string\0" \
+"rf\0" "reset_file\0" "rc\0" "restore_cursor\0" "vpa\0" "row_address\0" \
+"sc\0" "save_cursor\0" "ind\0" "scroll_forward\0" "ri\0" "scroll_reverse\0" \
+"sgr\0" "set_attributes\0" "hts\0" "set_tab\0" "wind\0" "set_window\0" \
+"ht\0" "tab\0" "tsl\0" "to_status_line\0" "uc\0" "underline_char\0" "hu\0" \
+"up_half_line\0" "iprog\0" "init_prog\0" "ka1\0" "key_a1\0" "ka3\0" "key_a3\0" \
+"kb2\0" "key_b2\0" "kc1\0" "key_c1\0" "kc3\0" "key_c3\0" "mc5p\0" "prtr_non\0" \
+"rmp\0" "char_padding\0" "acsc\0" "acs_chars\0" "pln\0" "plab_norm\0" "kcbt\0" \
+"key_btab\0" "smxon\0" "enter_xon_mode\0" "rmxon\0" "exit_xon_mode\0" "smam\0" \
+"enter_am_mode\0" "rmam\0" "exit_am_mode\0" "xonc\0" "xon_character\0" \
+"xoffc\0" "xoff_character\0" "enacs\0" "ena_acs\0" "smln\0" "label_on\0" \
+"rmln\0" "label_off\0" "kbeg\0" "key_beg\0" "kcan\0" "key_cancel\0" "kclo\0" \
+"key_close\0" "kcmd\0" "key_command\0" "kcpy\0" "key_copy\0" "kcrt\0" "key_create\0" \
+"kend\0" "key_end\0" "kent\0" "key_enter\0" "kext\0" "key_exit\0" "kfnd\0" \
+"key_find\0" "khlp\0" "key_help\0" "kmrk\0" "key_mark\0" "kmsg\0" "key_message\0" \
+"kmov\0" "key_move\0" "knxt\0" "key_next\0" "kopn\0" "key_open\0" "kopt\0" \
+"key_options\0" "kprv\0" "key_previous\0" "kprt\0" "key_print\0" "krdo\0" \
+"key_redo\0" "kref\0" "key_reference\0" "krfr\0" "key_refresh\0" "krpl\0" \
+"key_replace\0" "krst\0" "key_restart\0" "kres\0" "key_resume\0" "ksav\0" \
+"key_save\0" "kspd\0" "key_suspend\0" "kund\0" "key_undo\0" "kBEG\0" "key_sbeg\0" \
+"kCAN\0" "key_scancel\0" "kCMD\0" "key_scommand\0" "kCPY\0" "key_scopy\0" \
+"kCRT\0" "key_screate\0" "kDC\0" "key_sdc\0" "kDL\0" "key_sdl\0" "kslt\0" \
+"key_select\0" "kEND\0" "key_send\0" "kEOL\0" "key_seol\0" "kEXT\0" "key_sexit\0" \
+"kFND\0" "key_sfind\0" "kHLP\0" "key_shelp\0" "kHOM\0" "key_shome\0" "kIC\0" \
+"key_sic\0" "kLFT\0" "key_sleft\0" "kMSG\0" "key_smessage\0" "kMOV\0" "key_smove\0" \
+"kNXT\0" "key_snext\0" "kOPT\0" "key_soptions\0" "kPRV\0" "key_sprevious\0" \
+"kPRT\0" "key_sprint\0" "kRDO\0" "key_sredo\0" "kRPL\0" "key_sreplace\0" \
+"kRIT\0" "key_sright\0" "kRES\0" "key_srsume\0" "kSAV\0" "key_ssave\0" \
+"kSPD\0" "key_ssuspend\0" "kUND\0" "key_sundo\0" "rfi\0" "req_for_input\0" \
+"kf11\0" "key_f11\0" "kf12\0" "key_f12\0" "kf13\0" "key_f13\0" "kf14\0" \
+"key_f14\0" "kf15\0" "key_f15\0" "kf16\0" "key_f16\0" "kf17\0" "key_f17\0" \
+"kf18\0" "key_f18\0" "kf19\0" "key_f19\0" "kf20\0" "key_f20\0" "kf21\0" \
+"key_f21\0" "kf22\0" "key_f22\0" "kf23\0" "key_f23\0" "kf24\0" "key_f24\0" \
+"kf25\0" "key_f25\0" "kf26\0" "key_f26\0" "kf27\0" "key_f27\0" "kf28\0" \
+"key_f28\0" "kf29\0" "key_f29\0" "kf30\0" "key_f30\0" "kf31\0" "key_f31\0" \
+"kf32\0" "key_f32\0" "kf33\0" "key_f33\0" "kf34\0" "key_f34\0" "kf35\0" \
+"key_f35\0" "kf36\0" "key_f36\0" "kf37\0" "key_f37\0" "kf38\0" "key_f38\0" \
+"kf39\0" "key_f39\0" "kf40\0" "key_f40\0" "kf41\0" "key_f41\0" "kf42\0" \
+"key_f42\0" "kf43\0" "key_f43\0" "kf44\0" "key_f44\0" "kf45\0" "key_f45\0" \
+"kf46\0" "key_f46\0" "kf47\0" "key_f47\0" "kf48\0" "key_f48\0" "kf49\0" \
+"key_f49\0" "kf50\0" "key_f50\0" "kf51\0" "key_f51\0" "kf52\0" "key_f52\0" \
+"kf53\0" "key_f53\0" "kf54\0" "key_f54\0" "kf55\0" "key_f55\0" "kf56\0" \
+"key_f56\0" "kf57\0" "key_f57\0" "kf58\0" "key_f58\0" "kf59\0" "key_f59\0" \
+"kf60\0" "key_f60\0" "kf61\0" "key_f61\0" "kf62\0" "key_f62\0" "kf63\0" \
+"key_f63\0" "el1\0" "clr_bol\0" "mgc\0" "clear_margins\0" "smgl\0" "set_left_margin\0" \
+"smgr\0" "set_right_margin\0" "fln\0" "label_format\0" "sclk\0" "set_clock\0" \
+"dclk\0" "display_clock\0" "rmclk\0" "remove_clock\0" "cwin\0" "create_window\0" \
+"wingo\0" "goto_window\0" "hup\0" "hangup\0" "dial\0" "dial_phone\0" "qdial\0" \
+"quick_dial\0" "tone\0" "tone\0" "pulse\0" "pulse\0" "hook\0" "flash_hook\0" \
+"pause\0" "fixed_pause\0" "wait\0" "wait_tone\0" "u0\0" "user0\0" "u1\0" \
+"user1\0" "u2\0" "user2\0" "u3\0" "user3\0" "u4\0" "user4\0" "u5\0" "user5\0" \
+"u6\0" "user6\0" "u7\0" "user7\0" "u8\0" "user8\0" "u9\0" "user9\0" "op\0" \
+"orig_pair\0" "oc\0" "orig_colors\0" "initc\0" "initialize_color\0" "initp\0" \
+"initialize_pair\0" "scp\0" "set_color_pair\0" "setf\0" "set_foreground\0" \
+"setb\0" "set_background\0" "cpi\0" "change_char_pitch\0" "lpi\0" "change_line_pitch\0" \
+"chr\0" "change_res_horz\0" "cvr\0" "change_res_vert\0" "defc\0" "define_char\0" \
+"swidm\0" "enter_doublewide_mode\0" "sdrfq\0" "enter_draft_quality\0" "sitm\0" \
+"enter_italics_mode\0" "slm\0" "enter_leftward_mode\0" "smicm\0" "enter_micro_mode\0" \
+"snlq\0" "enter_near_letter_quality\0" "snrmq\0" "enter_normal_quality\0" \
+"sshm\0" "enter_shadow_mode\0" "ssubm\0" "enter_subscript_mode\0" "ssupm\0" \
+"enter_superscript_mode\0" "sum\0" "enter_upward_mode\0" "rwidm\0" "exit_doublewide_mode\0" \
+"ritm\0" "exit_italics_mode\0" "rlm\0" "exit_leftward_mode\0" "rmicm\0" \
+"exit_micro_mode\0" "rshm\0" "exit_shadow_mode\0" "rsubm\0" "exit_subscript_mode\0" \
+"rsupm\0" "exit_superscript_mode\0" "rum\0" "exit_upward_mode\0" "mhpa\0" \
+"micro_column_address\0" "mcud1\0" "micro_down\0" "mcub1\0" "micro_left\0" \
+"mcuf1\0" "micro_right\0" "mvpa\0" "micro_row_address\0" "mcuu1\0" "micro_up\0" \
+"porder\0" "order_of_pins\0" "mcud\0" "parm_down_micro\0" "mcub\0" "parm_left_micro\0" \
+"mcuf\0" "parm_right_micro\0" "mcuu\0" "parm_up_micro\0" "scs\0" "select_char_set\0" \
+"smgb\0" "set_bottom_margin\0" "smgbp\0" "set_bottom_margin_parm\0" "smglp\0" \
+"set_left_margin_parm\0" "smgrp\0" "set_right_margin_parm\0" "smgt\0" "set_top_margin\0" \
+"smgtp\0" "set_top_margin_parm\0" "sbim\0" "start_bit_image\0" "scsd\0" \
+"start_char_set_def\0" "rbim\0" "stop_bit_image\0" "rcsd\0" "stop_char_set_def\0" \
+"subcs\0" "subscript_characters\0" "supcs\0" "superscript_characters\0" \
+"docr\0" "these_cause_cr\0" "zerom\0" "zero_motion\0" "csnm\0" "char_set_names\0" \
+"kmous\0" "key_mouse\0" "minfo\0" "mouse_info\0" "reqmp\0" "req_mouse_pos\0" \
+"getm\0" "get_mouse\0" "setaf\0" "set_a_foreground\0" "setab\0" "set_a_background\0" \
+"pfxl\0" "pkey_plab\0" "devt\0" "device_type\0" "csin\0" "code_set_init\0" \
+"s0ds\0" "set0_des_seq\0" "s1ds\0" "set1_des_seq\0" "s2ds\0" "set2_des_seq\0" \
+"s3ds\0" "set3_des_seq\0" "smglr\0" "set_lr_margin\0" "smgtb\0" "set_tb_margin\0" \
+"birep\0" "bit_image_repeat\0" "binel\0" "bit_image_newline\0" "bicr\0" \
+"bit_image_carriage_return\0" "colornm\0" "color_names\0" "defbi\0" "define_bit_image_region\0" \
+"endbi\0" "end_bit_image_region\0" "setcolor\0" "set_color_band\0" "slines\0" \
+"set_page_length\0" "dispc\0" "display_pc_char\0" "smpch\0" "enter_pc_charset_mode\0" \
+"rmpch\0" "exit_pc_charset_mode\0" "smsc\0" "enter_scancode_mode\0" "rmsc\0" \
+"exit_scancode_mode\0" "pctrm\0" "pc_term_options\0" "scesc\0" "scancode_escape\0" \
+"scesa\0" "alt_scancode_esc\0" "ehhlm\0" "enter_horizontal_hl_mode\0" "elhlm\0" \
+"enter_left_hl_mode\0" "elohlm\0" "enter_low_hl_mode\0" "erhlm\0" "enter_right_hl_mode\0" \
+"ethlm\0" "enter_top_hl_mode\0" "evhlm\0" "enter_vertical_hl_mode\0" "sgr1\0" \
+"set_a_attributes\0" "slength\0" "set_pglen_inch\0" "OTi2\0" "termcap_init2\0" \
+"OTrs\0" "termcap_reset\0" "OTug\0" "magic_cookie_glitch_ul\0" "OTbs\0" \
+"backspaces_with_bs\0" "OTns\0" "crt_no_scrolling\0" "OTnc\0" "no_correctly_working_cr\0" \
+"OTdC\0" "carriage_return_delay\0" "OTdN\0" "new_line_delay\0" "OTnl\0" \
+"linefeed_if_not_lf\0" "OTbc\0" "backspace_if_not_bs\0" "OTMT\0" "gnu_has_meta_key\0" \
+"OTNL\0" "linefeed_is_newline\0" "OTdB\0" "backspace_delay\0" "OTdT\0" \
+"horizontal_tab_delay\0" "OTkn\0" "number_of_function_keys\0" "OTko\0" \
+"other_non_function_keys\0" "OTma\0" "arrow_key_map\0" "OTpt\0" "has_hardware_tabs\0" \
+"OTxr\0" "return_does_clr_eol\0" "OTG2\0" "acs_ulcorner\0" "OTG3\0" "acs_llcorner\0" \
+"OTG1\0" "acs_urcorner\0" "OTG4\0" "acs_lrcorner\0" "OTGR\0" "acs_ltee\0" \
+"OTGL\0" "acs_rtee\0" "OTGU\0" "acs_btee\0" "OTGD\0" "acs_ttee\0" "OTGH\0" \
+"acs_hline\0" "OTGV\0" "acs_vline\0" "OTGC\0" "acs_plus\0" "meml\0" "memory_lock\0" \
+"memu\0" "memory_unlock\0" "box1\0" "box_chars_1\0" ;
+static const short _nc_offset_boolfnames[] = {
+3, 23, 45, 61, 87, 109, 129,
+145, 158, 174, 193, 215, 231,
+248, 270, 292, 310, 332, 356,
+372, 398, 412, 432, 449, 467,
+485, 503, 530, 545, 566, 596,
+617, 645, 666, 686, 714, 735,
+8193, 8217, 8239, 8364, 8386, 8535, 8558, };
+
+static NCURSES_CONST char ** ptr_boolfnames = 0;
+
+static const short _nc_offset_boolnames[] = {
+0, 20, 41, 57, 82, 106, 126, 142, 155, 171, 190, 212, 228, 244, 265, 289, 304, 329, 353, 369, 394, 407, 427, 444, 461, 481, 497, 526, 541, 562, 591, 612, 639, 661, 682, 709, 730, 8188, 8212, 8234, 8359, 8381, 8530, 8553, };
+
+static NCURSES_CONST char ** ptr_boolnames = 0;
+
+static const short _nc_offset_numfnames[] = {
+756, 767, 783, 792, 812, 835,
+856, 877, 900, 914, 930, 945,
+965, 988, 1005, 1019, 1040, 1062, 1085, 1108, 1132, 1151, 1170,
+1192, 1211, 1231, 1252, 1278, 1303, 1320, 1340, 1355, 1382, 8165,
+8268, 8295, 8411, 8432,
+8458, };
+
+static NCURSES_CONST char ** ptr_numfnames = 0;
+
+static const short _nc_offset_numnames[] = {
+751, 764, 777, 789, 808, 832, 853, 873, 895, 911, 927, 942, 960, 981, 999, 1015, 1034, 1056,
+1079, 1102, 1126, 1147, 1166, 1186, 1207, 1227, 1247, 1273, 1299,
+1314, 1335, 1348, 1375, 8160, 8263, 8290, 8406, 8427, 8453, };
+
+static NCURSES_CONST char ** ptr_numnames = 0;
+
+static const short _nc_offset_strfnames[] = {
+1401,
+1414, 1422, 1442, 1467, 1488, 1504, 1515, 1527, 1548, 1570, 1590,
+1607, 1625, 1647, 1665, 1690, 1709, 1725, 1743, 1759, 1779, 1800,
+1816, 1835, 1856, 1885, 1907, 1929, 1948, 1970, 1990, 2014, 2037,
+2062, 2086, 2111, 2136, 2154, 2181, 2207, 2225, 2247, 2269, 2293,
+2319, 2335, 2349, 2370, 2387, 2404, 2420, 2435, 2456, 2471, 2490,
+2509, 2524, 2540, 2555, 2567, 2580, 2595, 2607, 2619, 2631, 2642,
+2654, 2666, 2677, 2688, 2699, 2710, 2721, 2732, 2743, 2756, 2771,
+2783, 2796, 2809, 2820, 2834, 2850, 2865, 2876, 2888, 2903, 2915,
+2933, 2949, 2960, 2972, 2984, 2995, 3006, 3017, 3028, 3039, 3050,
+3061, 3072, 3085, 3097, 3109, 3122, 3134, 3155, 3176, 3190, 3204,
+3225, 3246, 3268, 3284, 3305, 3320, 3335, 3349, 3366, 3379, 3391,
+3407, 3425, 3443, 3460, 3474, 3493, 3508, 3524, 3542, 3561, 3580,
+3593, 3607, 3615, 3633, 3651, 3670, 3684, 3695, 3706, 3717, 3728,
+3740, 3753, 3771, 3785, 3800, 3815, 3836, 3855, 3874, 3892, 3912,
+3933, 3946, 3960, 3975, 3988, 4004, 4019, 4036, 4050, 4066, 4079,
+4094, 4108, 4122, 4136, 4150, 4167, 4181, 4195, 4209, 4226, 4244,
+4259, 4273, 4292, 4309, 4326, 4343, 4359, 4373, 4390, 4404, 4418,
+4435, 4453, 4468, 4484, 4496, 4509, 4525, 4539, 4553, 4568, 4583,
+4598, 4612, 4625, 4640, 4658, 4673, 4688, 4706, 4725, 4741, 4756,
+4774, 4790, 4806, 4821, 4839, 4853, 4872, 4885, 4898, 4911, 4924,
+4937, 4950, 4963, 4976, 4989, 5002, 5015, 5028, 5041, 5054, 5067,
+5080, 5093, 5106, 5119, 5132, 5145, 5158, 5171, 5184, 5197, 5210,
+5223, 5236, 5249, 5262, 5275, 5288, 5301, 5314, 5327, 5340, 5353,
+5366, 5379, 5392, 5405, 5418, 5431, 5444, 5457, 5470, 5483, 5496,
+5509, 5522, 5535, 5548, 5560, 5572, 5591, 5612, 5633, 5651, 5666,
+5686, 5704, 5724, 5740, 5752, 5769, 5785, 5796, 5807, 5824, 5841,
+5854, 5863, 5872, 5881, 5890, 5899, 5908, 5917, 5926, 5935, 5944,
+5957, 5975, 5998, 6018, 6038, 6058, 6077, 6099, 6121, 6141, 6162,
+6180, 6208, 6233, 6256, 6282, 6304, 6336, 6362, 6386, 6413, 6440,
+6464, 6490, 6512, 6537, 6558, 6581, 6607, 6633, 6655, 6682, 6699,
+6716, 6733, 6757, 6773, 6792, 6813, 6834, 6856, 6874, 6895, 6919,
+6948, 6975, 7002, 7023, 7048, 7069, 7093, 7113, 7137, 7164, 7192,
+7213, 7230, 7251, 7267, 7284, 7303, 7319, 7342, 7364, 7379, 7396,
+7415, 7433, 7451, 7469, 7488, 7508, 7528, 7551, 7574, 7608, 7626,
+7656, 7686, 7708, 7730, 7752, 7780, 7806, 7831, 7856, 7878, 7900,
+7923, 7954, 7980, 8004, 8030, 8054, 8082, 8107, 8127, 8146, 8315, 8339, 8487, 8516, 8583, 8601, 8619, 8637, 8655, 8669,
+8683, 8697, 8711, 8726, 8741, 8755, 8772, 8791, };
+
+static NCURSES_CONST char ** ptr_strfnames = 0;
+
+static const short _nc_offset_strnames[] = {
+1397, 1410, 1419, 1438, 1463, 1482, 1501,
+1512, 1523, 1542, 1566, 1585, 1602, 1619, 1642, 1659, 1684, 1704,
+1722, 1738, 1753, 1774, 1796, 1812, 1832, 1850, 1879, 1902, 1923,
+1943, 1966, 1985, 2008, 2032, 2058, 2081, 2106, 2132, 2148, 2176,
+2201, 2220, 2242, 2264, 2288, 2313, 2332, 2345, 2366, 2383, 2400,
+2417, 2430, 2452, 2468, 2486, 2504, 2519, 2534, 2549, 2562, 2574,
+2589, 2603, 2615, 2627, 2638, 2649, 2662, 2673, 2684, 2695, 2706,
+2717, 2728, 2739, 2750, 2765, 2778, 2790, 2805, 2816, 2830, 2844,
+2860, 2872, 2883, 2897, 2910, 2928, 2945, 2956, 2967, 2980, 2991,
+3002, 3013, 3024, 3035, 3046, 3057, 3068, 3081, 3093, 3105, 3118,
+3131, 3151, 3172, 3185, 3201, 3221, 3242, 3264, 3280, 3299, 3314,
+3331, 3345, 3362, 3375, 3387, 3403, 3421, 3439, 3457, 3471, 3489,
+3505, 3520, 3539, 3557, 3576, 3588, 3604, 3611, 3630, 3648, 3664,
+3680, 3691, 3702, 3713, 3724, 3735, 3749, 3766, 3781, 3795, 3809,
+3830, 3850, 3869, 3887, 3906, 3927, 3941, 3955, 3970, 3983, 3999,
+4014, 4031, 4045, 4061, 4074, 4089, 4103, 4117, 4131, 4145, 4162,
+4176, 4190, 4204, 4221, 4239, 4254, 4268, 4287, 4304, 4321, 4338,
+4354, 4368, 4385, 4399, 4413, 4430, 4448, 4463, 4480, 4492, 4504,
+4520, 4534, 4548, 4563, 4578, 4593, 4608, 4620, 4635, 4653, 4668,
+4683, 4701, 4720, 4736, 4751, 4769, 4785, 4801, 4816, 4834, 4849,
+4867, 4880, 4893, 4906, 4919, 4932, 4945, 4958, 4971, 4984, 4997,
+5010, 5023, 5036, 5049, 5062, 5075, 5088, 5101, 5114, 5127, 5140,
+5153, 5166, 5179, 5192, 5205, 5218, 5231, 5244, 5257, 5270, 5283,
+5296, 5309, 5322, 5335, 5348, 5361, 5374, 5387, 5400, 5413, 5426,
+5439, 5452, 5465, 5478, 5491, 5504, 5517, 5530, 5543, 5556, 5568,
+5586, 5607, 5629, 5646, 5661, 5680, 5699, 5718, 5736, 5747, 5763,
+5780, 5790, 5802, 5818, 5836, 5851, 5860, 5869, 5878, 5887, 5896,
+5905, 5914, 5923, 5932, 5941, 5954, 5969, 5992, 6014, 6033, 6053,
+6073, 6095, 6117, 6137, 6157, 6174, 6202, 6228, 6252, 6276, 6299,
+6330, 6357, 6380, 6407, 6436, 6458, 6485, 6508, 6531, 6553, 6575,
+6601, 6629, 6650, 6676, 6693, 6710, 6728, 6751, 6766, 6787, 6808,
+6829, 6851, 6870, 6890, 6913, 6942, 6969, 6997, 7017, 7043, 7064,
+7088, 7108, 7131, 7158, 7187, 7207, 7225, 7245, 7261, 7278, 7298,
+7313, 7336, 7359, 7374, 7391, 7410, 7428, 7446, 7464, 7482, 7502,
+7522, 7545, 7569, 7600, 7620, 7650, 7677, 7701, 7724, 7746, 7774,
+7801, 7826, 7850, 7872, 7894, 7917, 7948, 7973, 7998, 8024, 8048,
+8077, 8099, 8122, 8141, 8310,
+8334, 8482, 8511, 8578,
+8596, 8614, 8632, 8650, 8664, 8678, 8692, 8706, 8721, 8736, 8750,
+8767, 8786, };
+
+static NCURSES_CONST char ** ptr_strnames = 0;
+
+
+static IT *
+alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)
+{
+	if (*value == 0) {
+		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {
+			unsigned n;
+			for (n = 0; n < size; ++n) {
+				(*value)[n] = (NCURSES_CONST char *) _nc_name_blob + offsets[n];
+			}
+		}
+	}
+	return *value;
+}
+
+#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }
+
+FIX(boolnames)
+FIX(boolfnames)
+FIX(numnames)
+FIX(numfnames)
+FIX(strnames)
+FIX(strfnames)
+
+
+#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_names_leaks(void)
+{
+FREE_FIX(boolnames)
+FREE_FIX(boolfnames)
+FREE_FIX(numnames)
+FREE_FIX(numfnames)
+FREE_FIX(strnames)
+FREE_FIX(strfnames)
+}
+#endif
+
+#else
+
+#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]
+
+DCL(boolnames) = {
+		"bw",
+		"am",
+		"xsb",
+		"xhp",
+		"xenl",
+		"eo",
+		"gn",
+		"hc",
+		"km",
+		"hs",
+		"in",
+		"da",
+		"db",
+		"mir",
+		"msgr",
+		"os",
+		"eslok",
+		"xt",
+		"hz",
+		"ul",
+		"xon",
+		"nxon",
+		"mc5i",
+		"chts",
+		"nrrmc",
+		"npc",
+		"ndscr",
+		"ccc",
+		"bce",
+		"hls",
+		"xhpa",
+		"crxm",
+		"daisy",
+		"xvpa",
+		"sam",
+		"cpix",
+		"lpix",
+		"OTbs",
+		"OTns",
+		"OTnc",
+		"OTMT",
+		"OTNL",
+		"OTpt",
+		"OTxr",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(boolfnames) = {
+		"auto_left_margin",
+		"auto_right_margin",
+		"no_esc_ctlc",
+		"ceol_standout_glitch",
+		"eat_newline_glitch",
+		"erase_overstrike",
+		"generic_type",
+		"hard_copy",
+		"has_meta_key",
+		"has_status_line",
+		"insert_null_glitch",
+		"memory_above",
+		"memory_below",
+		"move_insert_mode",
+		"move_standout_mode",
+		"over_strike",
+		"status_line_esc_ok",
+		"dest_tabs_magic_smso",
+		"tilde_glitch",
+		"transparent_underline",
+		"xon_xoff",
+		"needs_xon_xoff",
+		"prtr_silent",
+		"hard_cursor",
+		"non_rev_rmcup",
+		"no_pad_char",
+		"non_dest_scroll_region",
+		"can_change",
+		"back_color_erase",
+		"hue_lightness_saturation",
+		"col_addr_glitch",
+		"cr_cancels_micro_mode",
+		"has_print_wheel",
+		"row_addr_glitch",
+		"semi_auto_right_margin",
+		"cpi_changes_res",
+		"lpi_changes_res",
+		"backspaces_with_bs",
+		"crt_no_scrolling",
+		"no_correctly_working_cr",
+		"gnu_has_meta_key",
+		"linefeed_is_newline",
+		"has_hardware_tabs",
+		"return_does_clr_eol",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(numnames) = {
+		"cols",
+		"it",
+		"lines",
+		"lm",
+		"xmc",
+		"pb",
+		"vt",
+		"wsl",
+		"nlab",
+		"lh",
+		"lw",
+		"ma",
+		"wnum",
+		"colors",
+		"pairs",
+		"ncv",
+		"bufsz",
+		"spinv",
+		"spinh",
+		"maddr",
+		"mjump",
+		"mcs",
+		"mls",
+		"npins",
+		"orc",
+		"orl",
+		"orhi",
+		"orvi",
+		"cps",
+		"widcs",
+		"btns",
+		"bitwin",
+		"bitype",
+		"OTug",
+		"OTdC",
+		"OTdN",
+		"OTdB",
+		"OTdT",
+		"OTkn",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(numfnames) = {
+		"columns",
+		"init_tabs",
+		"lines",
+		"lines_of_memory",
+		"magic_cookie_glitch",
+		"padding_baud_rate",
+		"virtual_terminal",
+		"width_status_line",
+		"num_labels",
+		"label_height",
+		"label_width",
+		"max_attributes",
+		"maximum_windows",
+		"max_colors",
+		"max_pairs",
+		"no_color_video",
+		"buffer_capacity",
+		"dot_vert_spacing",
+		"dot_horz_spacing",
+		"max_micro_address",
+		"max_micro_jump",
+		"micro_col_size",
+		"micro_line_size",
+		"number_of_pins",
+		"output_res_char",
+		"output_res_line",
+		"output_res_horz_inch",
+		"output_res_vert_inch",
+		"print_rate",
+		"wide_char_size",
+		"buttons",
+		"bit_image_entwining",
+		"bit_image_type",
+		"magic_cookie_glitch_ul",
+		"carriage_return_delay",
+		"new_line_delay",
+		"backspace_delay",
+		"horizontal_tab_delay",
+		"number_of_function_keys",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(strnames) = {
+		"cbt",
+		"bel",
+		"cr",
+		"csr",
+		"tbc",
+		"clear",
+		"el",
+		"ed",
+		"hpa",
+		"cmdch",
+		"cup",
+		"cud1",
+		"home",
+		"civis",
+		"cub1",
+		"mrcup",
+		"cnorm",
+		"cuf1",
+		"ll",
+		"cuu1",
+		"cvvis",
+		"dch1",
+		"dl1",
+		"dsl",
+		"hd",
+		"smacs",
+		"blink",
+		"bold",
+		"smcup",
+		"smdc",
+		"dim",
+		"smir",
+		"invis",
+		"prot",
+		"rev",
+		"smso",
+		"smul",
+		"ech",
+		"rmacs",
+		"sgr0",
+		"rmcup",
+		"rmdc",
+		"rmir",
+		"rmso",
+		"rmul",
+		"flash",
+		"ff",
+		"fsl",
+		"is1",
+		"is2",
+		"is3",
+		"if",
+		"ich1",
+		"il1",
+		"ip",
+		"kbs",
+		"ktbc",
+		"kclr",
+		"kctab",
+		"kdch1",
+		"kdl1",
+		"kcud1",
+		"krmir",
+		"kel",
+		"ked",
+		"kf0",
+		"kf1",
+		"kf10",
+		"kf2",
+		"kf3",
+		"kf4",
+		"kf5",
+		"kf6",
+		"kf7",
+		"kf8",
+		"kf9",
+		"khome",
+		"kich1",
+		"kil1",
+		"kcub1",
+		"kll",
+		"knp",
+		"kpp",
+		"kcuf1",
+		"kind",
+		"kri",
+		"khts",
+		"kcuu1",
+		"rmkx",
+		"smkx",
+		"lf0",
+		"lf1",
+		"lf10",
+		"lf2",
+		"lf3",
+		"lf4",
+		"lf5",
+		"lf6",
+		"lf7",
+		"lf8",
+		"lf9",
+		"rmm",
+		"smm",
+		"nel",
+		"pad",
+		"dch",
+		"dl",
+		"cud",
+		"ich",
+		"indn",
+		"il",
+		"cub",
+		"cuf",
+		"rin",
+		"cuu",
+		"pfkey",
+		"pfloc",
+		"pfx",
+		"mc0",
+		"mc4",
+		"mc5",
+		"rep",
+		"rs1",
+		"rs2",
+		"rs3",
+		"rf",
+		"rc",
+		"vpa",
+		"sc",
+		"ind",
+		"ri",
+		"sgr",
+		"hts",
+		"wind",
+		"ht",
+		"tsl",
+		"uc",
+		"hu",
+		"iprog",
+		"ka1",
+		"ka3",
+		"kb2",
+		"kc1",
+		"kc3",
+		"mc5p",
+		"rmp",
+		"acsc",
+		"pln",
+		"kcbt",
+		"smxon",
+		"rmxon",
+		"smam",
+		"rmam",
+		"xonc",
+		"xoffc",
+		"enacs",
+		"smln",
+		"rmln",
+		"kbeg",
+		"kcan",
+		"kclo",
+		"kcmd",
+		"kcpy",
+		"kcrt",
+		"kend",
+		"kent",
+		"kext",
+		"kfnd",
+		"khlp",
+		"kmrk",
+		"kmsg",
+		"kmov",
+		"knxt",
+		"kopn",
+		"kopt",
+		"kprv",
+		"kprt",
+		"krdo",
+		"kref",
+		"krfr",
+		"krpl",
+		"krst",
+		"kres",
+		"ksav",
+		"kspd",
+		"kund",
+		"kBEG",
+		"kCAN",
+		"kCMD",
+		"kCPY",
+		"kCRT",
+		"kDC",
+		"kDL",
+		"kslt",
+		"kEND",
+		"kEOL",
+		"kEXT",
+		"kFND",
+		"kHLP",
+		"kHOM",
+		"kIC",
+		"kLFT",
+		"kMSG",
+		"kMOV",
+		"kNXT",
+		"kOPT",
+		"kPRV",
+		"kPRT",
+		"kRDO",
+		"kRPL",
+		"kRIT",
+		"kRES",
+		"kSAV",
+		"kSPD",
+		"kUND",
+		"rfi",
+		"kf11",
+		"kf12",
+		"kf13",
+		"kf14",
+		"kf15",
+		"kf16",
+		"kf17",
+		"kf18",
+		"kf19",
+		"kf20",
+		"kf21",
+		"kf22",
+		"kf23",
+		"kf24",
+		"kf25",
+		"kf26",
+		"kf27",
+		"kf28",
+		"kf29",
+		"kf30",
+		"kf31",
+		"kf32",
+		"kf33",
+		"kf34",
+		"kf35",
+		"kf36",
+		"kf37",
+		"kf38",
+		"kf39",
+		"kf40",
+		"kf41",
+		"kf42",
+		"kf43",
+		"kf44",
+		"kf45",
+		"kf46",
+		"kf47",
+		"kf48",
+		"kf49",
+		"kf50",
+		"kf51",
+		"kf52",
+		"kf53",
+		"kf54",
+		"kf55",
+		"kf56",
+		"kf57",
+		"kf58",
+		"kf59",
+		"kf60",
+		"kf61",
+		"kf62",
+		"kf63",
+		"el1",
+		"mgc",
+		"smgl",
+		"smgr",
+		"fln",
+		"sclk",
+		"dclk",
+		"rmclk",
+		"cwin",
+		"wingo",
+		"hup",
+		"dial",
+		"qdial",
+		"tone",
+		"pulse",
+		"hook",
+		"pause",
+		"wait",
+		"u0",
+		"u1",
+		"u2",
+		"u3",
+		"u4",
+		"u5",
+		"u6",
+		"u7",
+		"u8",
+		"u9",
+		"op",
+		"oc",
+		"initc",
+		"initp",
+		"scp",
+		"setf",
+		"setb",
+		"cpi",
+		"lpi",
+		"chr",
+		"cvr",
+		"defc",
+		"swidm",
+		"sdrfq",
+		"sitm",
+		"slm",
+		"smicm",
+		"snlq",
+		"snrmq",
+		"sshm",
+		"ssubm",
+		"ssupm",
+		"sum",
+		"rwidm",
+		"ritm",
+		"rlm",
+		"rmicm",
+		"rshm",
+		"rsubm",
+		"rsupm",
+		"rum",
+		"mhpa",
+		"mcud1",
+		"mcub1",
+		"mcuf1",
+		"mvpa",
+		"mcuu1",
+		"porder",
+		"mcud",
+		"mcub",
+		"mcuf",
+		"mcuu",
+		"scs",
+		"smgb",
+		"smgbp",
+		"smglp",
+		"smgrp",
+		"smgt",
+		"smgtp",
+		"sbim",
+		"scsd",
+		"rbim",
+		"rcsd",
+		"subcs",
+		"supcs",
+		"docr",
+		"zerom",
+		"csnm",
+		"kmous",
+		"minfo",
+		"reqmp",
+		"getm",
+		"setaf",
+		"setab",
+		"pfxl",
+		"devt",
+		"csin",
+		"s0ds",
+		"s1ds",
+		"s2ds",
+		"s3ds",
+		"smglr",
+		"smgtb",
+		"birep",
+		"binel",
+		"bicr",
+		"colornm",
+		"defbi",
+		"endbi",
+		"setcolor",
+		"slines",
+		"dispc",
+		"smpch",
+		"rmpch",
+		"smsc",
+		"rmsc",
+		"pctrm",
+		"scesc",
+		"scesa",
+		"ehhlm",
+		"elhlm",
+		"elohlm",
+		"erhlm",
+		"ethlm",
+		"evhlm",
+		"sgr1",
+		"slength",
+		"OTi2",
+		"OTrs",
+		"OTnl",
+		"OTbc",
+		"OTko",
+		"OTma",
+		"OTG2",
+		"OTG3",
+		"OTG1",
+		"OTG4",
+		"OTGR",
+		"OTGL",
+		"OTGU",
+		"OTGD",
+		"OTGH",
+		"OTGV",
+		"OTGC",
+		"meml",
+		"memu",
+		"box1",
+
+		(NCURSES_CONST char *)0,
+};
+
+DCL(strfnames) = {
+		"back_tab",
+		"bell",
+		"carriage_return",
+		"change_scroll_region",
+		"clear_all_tabs",
+		"clear_screen",
+		"clr_eol",
+		"clr_eos",
+		"column_address",
+		"command_character",
+		"cursor_address",
+		"cursor_down",
+		"cursor_home",
+		"cursor_invisible",
+		"cursor_left",
+		"cursor_mem_address",
+		"cursor_normal",
+		"cursor_right",
+		"cursor_to_ll",
+		"cursor_up",
+		"cursor_visible",
+		"delete_character",
+		"delete_line",
+		"dis_status_line",
+		"down_half_line",
+		"enter_alt_charset_mode",
+		"enter_blink_mode",
+		"enter_bold_mode",
+		"enter_ca_mode",
+		"enter_delete_mode",
+		"enter_dim_mode",
+		"enter_insert_mode",
+		"enter_secure_mode",
+		"enter_protected_mode",
+		"enter_reverse_mode",
+		"enter_standout_mode",
+		"enter_underline_mode",
+		"erase_chars",
+		"exit_alt_charset_mode",
+		"exit_attribute_mode",
+		"exit_ca_mode",
+		"exit_delete_mode",
+		"exit_insert_mode",
+		"exit_standout_mode",
+		"exit_underline_mode",
+		"flash_screen",
+		"form_feed",
+		"from_status_line",
+		"init_1string",
+		"init_2string",
+		"init_3string",
+		"init_file",
+		"insert_character",
+		"insert_line",
+		"insert_padding",
+		"key_backspace",
+		"key_catab",
+		"key_clear",
+		"key_ctab",
+		"key_dc",
+		"key_dl",
+		"key_down",
+		"key_eic",
+		"key_eol",
+		"key_eos",
+		"key_f0",
+		"key_f1",
+		"key_f10",
+		"key_f2",
+		"key_f3",
+		"key_f4",
+		"key_f5",
+		"key_f6",
+		"key_f7",
+		"key_f8",
+		"key_f9",
+		"key_home",
+		"key_ic",
+		"key_il",
+		"key_left",
+		"key_ll",
+		"key_npage",
+		"key_ppage",
+		"key_right",
+		"key_sf",
+		"key_sr",
+		"key_stab",
+		"key_up",
+		"keypad_local",
+		"keypad_xmit",
+		"lab_f0",
+		"lab_f1",
+		"lab_f10",
+		"lab_f2",
+		"lab_f3",
+		"lab_f4",
+		"lab_f5",
+		"lab_f6",
+		"lab_f7",
+		"lab_f8",
+		"lab_f9",
+		"meta_off",
+		"meta_on",
+		"newline",
+		"pad_char",
+		"parm_dch",
+		"parm_delete_line",
+		"parm_down_cursor",
+		"parm_ich",
+		"parm_index",
+		"parm_insert_line",
+		"parm_left_cursor",
+		"parm_right_cursor",
+		"parm_rindex",
+		"parm_up_cursor",
+		"pkey_key",
+		"pkey_local",
+		"pkey_xmit",
+		"print_screen",
+		"prtr_off",
+		"prtr_on",
+		"repeat_char",
+		"reset_1string",
+		"reset_2string",
+		"reset_3string",
+		"reset_file",
+		"restore_cursor",
+		"row_address",
+		"save_cursor",
+		"scroll_forward",
+		"scroll_reverse",
+		"set_attributes",
+		"set_tab",
+		"set_window",
+		"tab",
+		"to_status_line",
+		"underline_char",
+		"up_half_line",
+		"init_prog",
+		"key_a1",
+		"key_a3",
+		"key_b2",
+		"key_c1",
+		"key_c3",
+		"prtr_non",
+		"char_padding",
+		"acs_chars",
+		"plab_norm",
+		"key_btab",
+		"enter_xon_mode",
+		"exit_xon_mode",
+		"enter_am_mode",
+		"exit_am_mode",
+		"xon_character",
+		"xoff_character",
+		"ena_acs",
+		"label_on",
+		"label_off",
+		"key_beg",
+		"key_cancel",
+		"key_close",
+		"key_command",
+		"key_copy",
+		"key_create",
+		"key_end",
+		"key_enter",
+		"key_exit",
+		"key_find",
+		"key_help",
+		"key_mark",
+		"key_message",
+		"key_move",
+		"key_next",
+		"key_open",
+		"key_options",
+		"key_previous",
+		"key_print",
+		"key_redo",
+		"key_reference",
+		"key_refresh",
+		"key_replace",
+		"key_restart",
+		"key_resume",
+		"key_save",
+		"key_suspend",
+		"key_undo",
+		"key_sbeg",
+		"key_scancel",
+		"key_scommand",
+		"key_scopy",
+		"key_screate",
+		"key_sdc",
+		"key_sdl",
+		"key_select",
+		"key_send",
+		"key_seol",
+		"key_sexit",
+		"key_sfind",
+		"key_shelp",
+		"key_shome",
+		"key_sic",
+		"key_sleft",
+		"key_smessage",
+		"key_smove",
+		"key_snext",
+		"key_soptions",
+		"key_sprevious",
+		"key_sprint",
+		"key_sredo",
+		"key_sreplace",
+		"key_sright",
+		"key_srsume",
+		"key_ssave",
+		"key_ssuspend",
+		"key_sundo",
+		"req_for_input",
+		"key_f11",
+		"key_f12",
+		"key_f13",
+		"key_f14",
+		"key_f15",
+		"key_f16",
+		"key_f17",
+		"key_f18",
+		"key_f19",
+		"key_f20",
+		"key_f21",
+		"key_f22",
+		"key_f23",
+		"key_f24",
+		"key_f25",
+		"key_f26",
+		"key_f27",
+		"key_f28",
+		"key_f29",
+		"key_f30",
+		"key_f31",
+		"key_f32",
+		"key_f33",
+		"key_f34",
+		"key_f35",
+		"key_f36",
+		"key_f37",
+		"key_f38",
+		"key_f39",
+		"key_f40",
+		"key_f41",
+		"key_f42",
+		"key_f43",
+		"key_f44",
+		"key_f45",
+		"key_f46",
+		"key_f47",
+		"key_f48",
+		"key_f49",
+		"key_f50",
+		"key_f51",
+		"key_f52",
+		"key_f53",
+		"key_f54",
+		"key_f55",
+		"key_f56",
+		"key_f57",
+		"key_f58",
+		"key_f59",
+		"key_f60",
+		"key_f61",
+		"key_f62",
+		"key_f63",
+		"clr_bol",
+		"clear_margins",
+		"set_left_margin",
+		"set_right_margin",
+		"label_format",
+		"set_clock",
+		"display_clock",
+		"remove_clock",
+		"create_window",
+		"goto_window",
+		"hangup",
+		"dial_phone",
+		"quick_dial",
+		"tone",
+		"pulse",
+		"flash_hook",
+		"fixed_pause",
+		"wait_tone",
+		"user0",
+		"user1",
+		"user2",
+		"user3",
+		"user4",
+		"user5",
+		"user6",
+		"user7",
+		"user8",
+		"user9",
+		"orig_pair",
+		"orig_colors",
+		"initialize_color",
+		"initialize_pair",
+		"set_color_pair",
+		"set_foreground",
+		"set_background",
+		"change_char_pitch",
+		"change_line_pitch",
+		"change_res_horz",
+		"change_res_vert",
+		"define_char",
+		"enter_doublewide_mode",
+		"enter_draft_quality",
+		"enter_italics_mode",
+		"enter_leftward_mode",
+		"enter_micro_mode",
+		"enter_near_letter_quality",
+		"enter_normal_quality",
+		"enter_shadow_mode",
+		"enter_subscript_mode",
+		"enter_superscript_mode",
+		"enter_upward_mode",
+		"exit_doublewide_mode",
+		"exit_italics_mode",
+		"exit_leftward_mode",
+		"exit_micro_mode",
+		"exit_shadow_mode",
+		"exit_subscript_mode",
+		"exit_superscript_mode",
+		"exit_upward_mode",
+		"micro_column_address",
+		"micro_down",
+		"micro_left",
+		"micro_right",
+		"micro_row_address",
+		"micro_up",
+		"order_of_pins",
+		"parm_down_micro",
+		"parm_left_micro",
+		"parm_right_micro",
+		"parm_up_micro",
+		"select_char_set",
+		"set_bottom_margin",
+		"set_bottom_margin_parm",
+		"set_left_margin_parm",
+		"set_right_margin_parm",
+		"set_top_margin",
+		"set_top_margin_parm",
+		"start_bit_image",
+		"start_char_set_def",
+		"stop_bit_image",
+		"stop_char_set_def",
+		"subscript_characters",
+		"superscript_characters",
+		"these_cause_cr",
+		"zero_motion",
+		"char_set_names",
+		"key_mouse",
+		"mouse_info",
+		"req_mouse_pos",
+		"get_mouse",
+		"set_a_foreground",
+		"set_a_background",
+		"pkey_plab",
+		"device_type",
+		"code_set_init",
+		"set0_des_seq",
+		"set1_des_seq",
+		"set2_des_seq",
+		"set3_des_seq",
+		"set_lr_margin",
+		"set_tb_margin",
+		"bit_image_repeat",
+		"bit_image_newline",
+		"bit_image_carriage_return",
+		"color_names",
+		"define_bit_image_region",
+		"end_bit_image_region",
+		"set_color_band",
+		"set_page_length",
+		"display_pc_char",
+		"enter_pc_charset_mode",
+		"exit_pc_charset_mode",
+		"enter_scancode_mode",
+		"exit_scancode_mode",
+		"pc_term_options",
+		"scancode_escape",
+		"alt_scancode_esc",
+		"enter_horizontal_hl_mode",
+		"enter_left_hl_mode",
+		"enter_low_hl_mode",
+		"enter_right_hl_mode",
+		"enter_top_hl_mode",
+		"enter_vertical_hl_mode",
+		"set_a_attributes",
+		"set_pglen_inch",
+		"termcap_init2",
+		"termcap_reset",
+		"linefeed_if_not_lf",
+		"backspace_if_not_bs",
+		"other_non_function_keys",
+		"arrow_key_map",
+		"acs_ulcorner",
+		"acs_llcorner",
+		"acs_urcorner",
+		"acs_lrcorner",
+		"acs_ltee",
+		"acs_rtee",
+		"acs_btee",
+		"acs_ttee",
+		"acs_hline",
+		"acs_vline",
+		"acs_plus",
+		"memory_lock",
+		"memory_unlock",
+		"box_chars_1",
+
+		(NCURSES_CONST char *)0,
+};
+
+
+#endif /* BROKEN_LINKER */
diff --git a/ncurses/unctrl.c b/ncurses/unctrl.c
new file mode 100644
index 0000000..563b176
--- /dev/null
+++ b/ncurses/unctrl.c
@@ -0,0 +1,163 @@
+/* generated by MKunctrl.awk */
+
+#include <curses.priv.h>
+#include <ctype.h>
+
+#if USE_WIDEC_SUPPORT
+#if HAVE_WCTYPE_H
+#include <wctype.h>
+#endif
+#endif
+
+#undef unctrl
+
+NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)
+{
+static const short unctrl_table[] = {
+       0,   3,   6,   9,  12,  15,  18,  21,
+      24,  27,  30,  33,  36,  39,  42,  45,
+      48,  51,  54,  57,  60,  63,  66,  69,
+      72,  75,  78,  81,  84,  87,  90,  93,
+      96,  98, 100, 102, 104, 106, 108, 110,
+     112, 114, 116, 118, 120, 122, 124, 126,
+     128, 130, 132, 134, 136, 138, 140, 142,
+     144, 146, 148, 150, 152, 154, 156, 158,
+     160, 162, 164, 166, 168, 170, 172, 174,
+     176, 178, 180, 182, 184, 186, 188, 190,
+     192, 194, 196, 198, 200, 202, 204, 206,
+     208, 210, 212, 214, 216, 218, 220, 222,
+     224, 226, 228, 230, 232, 234, 236, 238,
+     240, 242, 244, 246, 248, 250, 252, 254,
+     256, 258, 260, 262, 264, 266, 268, 270,
+     272, 274, 276, 278, 280, 282, 284, 286,
+     289, 292, 295, 298, 301, 304, 307, 310,
+     313, 316, 319, 322, 325, 328, 331, 334,
+     337, 340, 343, 346, 349, 352, 355, 358,
+     361, 364, 367, 370, 373, 376, 379, 382,
+     385, 389, 393, 397, 401, 405, 409, 413,
+     417, 421, 425, 429, 433, 437, 441, 445,
+     449, 453, 457, 461, 465, 469, 473, 477,
+     481, 485, 489, 493, 497, 501, 505, 509,
+     513, 517, 521, 525, 529, 533, 537, 541,
+     545, 549, 553, 557, 561, 565, 569, 573,
+     577, 581, 585, 589, 593, 597, 601, 605,
+     609, 613, 617, 621, 625, 629, 633, 637,
+     641, 645, 649, 653, 657, 661, 665, 669,
+     673, 677, 681, 685, 689, 693, 697, 701,
+     705, 709, 713, 717, 721, 725, 729, 733,
+     737, 741, 745, 749, 753, 757, 761, 765,};
+
+#if NCURSES_EXT_FUNCS
+static const short unctrl_c1[] = {
+     768, 770, 772, 774, 776, 778, 780, 782,
+     784, 786, 788, 790, 792, 794, 796, 798,
+     800, 802, 804, 806, 808, 810, 812, 814,
+     816, 818, 820, 822, 824, 826, 828, 830,
+     832, 834, 836, 838, 840, 842, 844, 846,
+     848, 850, 852, 854, 856, 858, 860, 862,
+     864, 866, 868, 870, 872, 874, 876, 878,
+     880, 882, 884, 886, 888, 890, 892, 894,
+     896, 898, 900, 902, 904, 906, 908, 910,
+     912, 914, 916, 918, 920, 922, 924, 926,
+     928, 930, 932, 934, 936, 938, 940, 942,
+     944, 946, 948, 950, 952, 954, 956, 958,
+     960, 962, 964, 966, 968, 970, 972, 974,
+     976, 978, 980, 982, 984, 986, 988, 990,
+     992, 994, 996, 998,1000,1002,1004,1006,
+    1008,1010,1012,1014,1016,1018,1020,1022,};
+#endif /* NCURSES_EXT_FUNCS */
+
+static const char unctrl_blob[] = 
+    "^\100\0^\101\0^\102\0^\103\0^\104\0^\105\0^\106\0^\107\0"
+    "^\110\0^\111\0^\112\0^\113\0^\114\0^\115\0^\116\0^\117\0"
+    "^\120\0^\121\0^\122\0^\123\0^\124\0^\125\0^\126\0^\127\0"
+    "^\130\0^\131\0^\132\0^\133\0^\134\0^\135\0^\136\0^\137\0"
+    "\040\0\041\0\042\0\043\0\044\0\045\0\046\0\047\0"
+    "\050\0\051\0\052\0\053\0\054\0\055\0\056\0\057\0"
+    "\060\0\061\0\062\0\063\0\064\0\065\0\066\0\067\0"
+    "\070\0\071\0\072\0\073\0\074\0\075\0\076\0\077\0"
+    "\100\0\101\0\102\0\103\0\104\0\105\0\106\0\107\0"
+    "\110\0\111\0\112\0\113\0\114\0\115\0\116\0\117\0"
+    "\120\0\121\0\122\0\123\0\124\0\125\0\126\0\127\0"
+    "\130\0\131\0\132\0\133\0\134\0\135\0\136\0\137\0"
+    "\140\0\141\0\142\0\143\0\144\0\145\0\146\0\147\0"
+    "\150\0\151\0\152\0\153\0\154\0\155\0\156\0\157\0"
+    "\160\0\161\0\162\0\163\0\164\0\165\0\166\0\167\0"
+    "\170\0\171\0\172\0\173\0\174\0\175\0\176\0^?\0"
+    "~\100\0~\101\0~\102\0~\103\0~\104\0~\105\0~\106\0~\107\0"
+    "~\110\0~\111\0~\112\0~\113\0~\114\0~\115\0~\116\0~\117\0"
+    "~\120\0~\121\0~\122\0~\123\0~\124\0~\125\0~\126\0~\127\0"
+    "~\130\0~\131\0~\132\0~\133\0~\134\0~\135\0~\136\0~\137\0"
+    "M-\040\0M-\041\0M-\042\0M-\043\0M-\044\0M-\045\0M-\046\0M-\047\0"
+    "M-\050\0M-\051\0M-\052\0M-\053\0M-\054\0M-\055\0M-\056\0M-\057\0"
+    "M-\060\0M-\061\0M-\062\0M-\063\0M-\064\0M-\065\0M-\066\0M-\067\0"
+    "M-\070\0M-\071\0M-\072\0M-\073\0M-\074\0M-\075\0M-\076\0M-\077\0"
+    "M-\100\0M-\101\0M-\102\0M-\103\0M-\104\0M-\105\0M-\106\0M-\107\0"
+    "M-\110\0M-\111\0M-\112\0M-\113\0M-\114\0M-\115\0M-\116\0M-\117\0"
+    "M-\120\0M-\121\0M-\122\0M-\123\0M-\124\0M-\125\0M-\126\0M-\127\0"
+    "M-\130\0M-\131\0M-\132\0M-\133\0M-\134\0M-\135\0M-\136\0M-\137\0"
+    "M-\140\0M-\141\0M-\142\0M-\143\0M-\144\0M-\145\0M-\146\0M-\147\0"
+    "M-\150\0M-\151\0M-\152\0M-\153\0M-\154\0M-\155\0M-\156\0M-\157\0"
+    "M-\160\0M-\161\0M-\162\0M-\163\0M-\164\0M-\165\0M-\166\0M-\167\0"
+    "M-\170\0M-\171\0M-\172\0M-\173\0M-\174\0M-\175\0M-\176\0~?\0"
+/* printable values in 128-255 range */
+    "\200\0\201\0\202\0\203\0\204\0\205\0\206\0\207\0"
+    "\210\0\211\0\212\0\213\0\214\0\215\0\216\0\217\0"
+    "\220\0\221\0\222\0\223\0\224\0\225\0\226\0\227\0"
+    "\230\0\231\0\232\0\233\0\234\0\235\0\236\0\237\0"
+    "\240\0\241\0\242\0\243\0\244\0\245\0\246\0\247\0"
+    "\250\0\251\0\252\0\253\0\254\0\255\0\256\0\257\0"
+    "\260\0\261\0\262\0\263\0\264\0\265\0\266\0\267\0"
+    "\270\0\271\0\272\0\273\0\274\0\275\0\276\0\277\0"
+    "\300\0\301\0\302\0\303\0\304\0\305\0\306\0\307\0"
+    "\310\0\311\0\312\0\313\0\314\0\315\0\316\0\317\0"
+    "\320\0\321\0\322\0\323\0\324\0\325\0\326\0\327\0"
+    "\330\0\331\0\332\0\333\0\334\0\335\0\336\0\337\0"
+    "\340\0\341\0\342\0\343\0\344\0\345\0\346\0\347\0"
+    "\350\0\351\0\352\0\353\0\354\0\355\0\356\0\357\0"
+    "\360\0\361\0\362\0\363\0\364\0\365\0\366\0\367\0"
+    "\370\0\371\0\372\0\373\0\374\0\375\0\376\0\377\0"
+;
+
+	int check = ChCharOf(ch);
+	const char *result;
+
+	if (check >= 0 && check < (int)SIZEOF(unctrl_table)) {
+#if NCURSES_EXT_FUNCS
+		if ((sp != 0)
+		 && (sp->_legacy_coding > 1)
+		 && (check >= 128)
+		 && (check < 160))
+			result = unctrl_blob + unctrl_c1[check - 128];
+		else
+#if USE_WIDEC_SUPPORT
+		if ((check >= 160)
+		 && (check < 256)
+		 && ((sp != 0)
+		  && ((sp->_legacy_coding > 0)
+		   || (sp->_legacy_coding == 0
+		       && (isprint(check) || iswprint(check))))))
+			result = unctrl_blob + unctrl_c1[check - 128];
+		else
+#else
+		if ((check >= 160)
+		 && (check < 256)
+		 && ((sp != 0)
+		  && ((sp->_legacy_coding > 0)
+		   || (sp->_legacy_coding == 0
+		       && isprint(check)))))
+			result = unctrl_blob + unctrl_c1[check - 128];
+		else
+#endif /* USE_WIDEC_SUPPORT */
+#endif /* NCURSES_EXT_FUNCS */
+			result = unctrl_blob + unctrl_table[check];
+	} else {
+		result = 0;
+	}
+	return (NCURSES_CONST char *)result;
+}
+
+NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)
+{
+	return _nc_unctrl(SP, ch);
+}
