[wcslib] 01/11: New upstream version 5.0 (prerelease?)

Ole Streicher olebole at moszumanska.debian.org
Wed Apr 8 09:06:38 UTC 2015


This is an automated email from the git hooks/post-receive script.

olebole pushed a commit to branch debian
in repository wcslib.

commit f0b14a362834b4382281c8e523890cad4094478d
Author: Ole Streicher <debian at liska.ath.cx>
Date:   Tue Apr 7 09:57:38 2015 +0200

    New upstream version 5.0 (prerelease?)
---
 C/GNUmakefile                                  |   122 +-
 C/cel.c                                        |    79 +-
 C/cel.h                                        |    33 +-
 C/dis.c                                        |  1153 ++
 C/dis.h                                        |   572 +
 C/fitshdr.h                                    |     6 +-
 C/fitshdr.l                                    |     6 +-
 C/flexed/fitshdr.c                             |   992 +-
 C/flexed/wcsbth.c                              | 14263 +++++++++++++++--------
 C/flexed/wcspih.c                              |  9671 +++++++++++----
 C/flexed/wcsulex.c                             |     4 +-
 C/flexed/wcsutrn.c                             |     4 +-
 C/getwcstab.c                                  |     4 +-
 C/getwcstab.h                                  |     4 +-
 C/lin.c                                        |   520 +-
 C/lin.h                                        |   185 +-
 C/log.c                                        |     4 +-
 C/log.h                                        |     6 +-
 C/prj.c                                        |    71 +-
 C/prj.h                                        |    15 +-
 C/spc.c                                        |    77 +-
 C/spc.h                                        |    13 +-
 C/sph.c                                        |    56 +-
 C/sph.h                                        |     6 +-
 C/spx.c                                        |     4 +-
 C/spx.h                                        |    10 +-
 C/tab.c                                        |    36 +-
 C/tab.h                                        |    10 +-
 C/test/TPV3.keyrec                             |    77 +
 C/test/TPV5.keyrec                             |    99 +
 C/test/TPV7.keyrec                             |   106 +
 C/test/bth.keyrec                              |    36 +-
 C/test/fitshdr.keyrec                          |   162 +
 C/test/pih.keyrec                              |   131 +-
 C/test/tbth1.c                                 |    10 +-
 C/test/tbth1.out                               |   439 +-
 C/test/tcel1.c                                 |     4 +-
 C/test/tcel2.c                                 |     6 +-
 C/test/tdis1.c                                 |   258 +
 C/test/tfitshdr.c                              |    26 +-
 C/test/tfitshdr.out                            |   452 +-
 C/test/tlin.c                                  |     6 +-
 C/test/tlog.c                                  |     4 +-
 C/test/tofits.c                                |     4 +-
 C/test/tpih1.c                                 |     9 +-
 C/test/tpih1.out                               |   358 +-
 C/test/tpih2.c                                 |     4 +-
 C/test/tprj1.c                                 |     4 +-
 C/test/tprj2.c                                 |     4 +-
 C/test/tspc.c                                  |     4 +-
 C/test/tspcaips.c                              |     4 +-
 C/test/tspcspxe.c                              |    27 +-
 C/test/tspctrne.c                              |     4 +-
 C/test/tsph.c                                  |     4 +-
 C/test/tsphdpa.c                               |     4 +-
 C/test/tspx.c                                  |     4 +-
 C/test/ttab1.c                                 |     4 +-
 C/test/ttab2.c                                 |     4 +-
 C/test/ttab3.c                                 |     4 +-
 C/test/tunits.c                                |     4 +-
 C/test/twcs.c                                  |    15 +-
 C/test/twcs_locale.c                           |    37 +-
 C/test/twcscompare.c                           |    28 +-
 C/test/twcsfix.c                               |    10 +-
 C/test/twcsfix.out                             |   124 +-
 C/test/twcshdr.c                               |     4 +-
 C/test/twcslint                                |     7 +
 C/test/twcslint.out                            |   705 ++
 C/test/twcsmix.c                               |     6 +-
 C/test/twcssub.c                               |     4 +-
 C/test/twcssub.out                             |   164 +-
 C/test/twcstab.c                               |     4 +-
 C/test/twcstab.out                             |  1198 +-
 C/test/wcslint.keyrec                          |   349 +
 C/test/wcstab.keyrec                           |     4 +-
 C/wcs.c                                        |   413 +-
 C/wcs.h                                        |   138 +-
 C/wcsbth.l                                     |  1369 ++-
 C/wcserr.c                                     |     4 +-
 C/wcserr.h                                     |     4 +-
 C/wcsfix.c                                     |    70 +-
 C/wcsfix.h                                     |     6 +-
 C/wcshdr.c                                     |    63 +-
 C/wcshdr.h                                     |    95 +-
 C/wcslib.h                                     |     7 +-
 C/wcsmath.h                                    |     4 +-
 C/wcspih.l                                     |  1006 +-
 C/wcsprintf.c                                  |     8 +-
 C/wcsprintf.h                                  |     6 +-
 C/wcstrig.c                                    |     4 +-
 C/wcstrig.h                                    |     4 +-
 C/wcsulex.l                                    |     4 +-
 C/wcsunits.c                                   |     4 +-
 C/wcsunits.h                                   |     6 +-
 C/wcsutil.c                                    |     4 +-
 C/wcsutil.h                                    |     4 +-
 C/wcsutrn.l                                    |     4 +-
 CHANGES                                        |    65 +-
 Fortran/GNUmakefile                            |    24 +-
 Fortran/cel.inc                                |    30 +-
 Fortran/cel_data.f                             |     4 +-
 Fortran/cel_f.c                                |    71 +-
 Fortran/dis.inc                                |    78 +
 Fortran/{lin_data.f => dis_data.f}             |    18 +-
 Fortran/dis_f.c                                |   487 +
 Fortran/fitshdr.inc                            |    21 +-
 Fortran/fitshdr_data.f                         |     9 +-
 Fortran/fitshdr_f.c                            |    32 +-
 Fortran/getwcstab.inc                          |     4 +-
 Fortran/getwcstab_f.c                          |     4 +-
 Fortran/lin.inc                                |    45 +-
 Fortran/lin_data.f                             |    11 +-
 Fortran/lin_f.c                                |   146 +-
 Fortran/log.inc                                |    10 +-
 Fortran/log_data.f                             |     9 +-
 Fortran/log_f.c                                |     4 +-
 Fortran/prj.inc                                |    47 +-
 Fortran/prj_data.f                             |     4 +-
 Fortran/prj_f.c                                |    75 +-
 Fortran/spc.inc                                |    48 +-
 Fortran/spc_data.f                             |     7 +-
 Fortran/spc_f.c                                |    69 +-
 Fortran/sph.inc                                |     8 +-
 Fortran/sph_f.c                                |     4 +-
 Fortran/spx.inc                                |    14 +-
 Fortran/spx_data.f                             |     4 +-
 Fortran/spx_f.c                                |     5 +-
 Fortran/tab.inc                                |    27 +-
 Fortran/tab_data.f                             |     4 +-
 Fortran/tab_f.c                                |   112 +-
 Fortran/test/tcel1.f                           |     4 +-
 Fortran/test/tdis1.f                           |   264 +
 Fortran/test/tdis2.f                           |   288 +
 Fortran/test/tdis2.out                         |   171 +
 Fortran/test/tfitshdr.f                        |    12 +-
 Fortran/test/tfitshdr.out                      |   182 +-
 Fortran/test/tlin.f                            |     4 +-
 Fortran/test/tlog.f                            |     4 +-
 Fortran/test/tpih1.f                           |     9 +-
 Fortran/test/tpih1.out                         |   358 +-
 Fortran/test/tpih2.f                           |     4 +-
 Fortran/test/tprj1.f                           |     4 +-
 Fortran/test/tprj2.f                           |     4 +-
 Fortran/test/tspc.f                            |     4 +-
 Fortran/test/tsph.f                            |     4 +-
 Fortran/test/tspx.f                            |     4 +-
 Fortran/test/ttab1.f                           |     4 +-
 Fortran/test/ttab2.f                           |     4 +-
 Fortran/test/ttab3.f                           |     4 +-
 Fortran/test/tunits.f                          |     4 +-
 Fortran/test/twcs.f                            |    85 +-
 Fortran/test/twcsfix.f                         |    17 +-
 Fortran/test/twcsfix.out                       |   118 +-
 Fortran/test/twcsmix.f                         |     4 +-
 Fortran/test/twcssub.f                         |     4 +-
 Fortran/test/twcssub.out                       |   164 +-
 Fortran/test/twcstab.f                         |     4 +-
 Fortran/test/twcstab.out                       |  1198 +-
 Fortran/wcs.inc                                |    73 +-
 Fortran/wcs_data.f                             |    10 +-
 Fortran/wcs_f.c                                |   147 +-
 Fortran/wcserr.inc                             |    17 +-
 Fortran/wcserr_f.c                             |    36 +-
 Fortran/wcsfix.inc                             |    25 +-
 Fortran/wcsfix_data.f                          |     7 +-
 Fortran/wcsfix_f.c                             |     4 +-
 Fortran/wcshdr.inc                             |    66 +-
 Fortran/wcshdr_data.f                          |     8 +-
 Fortran/wcshdr_f.c                             |     4 +-
 Fortran/wcsmath.inc                            |     6 +-
 Fortran/wcsunits.inc                           |    40 +-
 Fortran/wcsunits_data.f                        |     4 +-
 Fortran/wcsunits_f.c                           |     4 +-
 GNUmakefile                                    |     4 +-
 INSTALL                                        |     8 +-
 README                                         |     6 +-
 THANKS                                         |     3 +-
 VALIDATION                                     |    35 +-
 configure                                      |    24 +-
 configure.ac                                   |     6 +-
 doxygen/GNUmakefile                            |     4 +-
 doxygen/README                                 |     2 +-
 doxygen/dis.sed                                |     3 +
 doxygen/dis_extras.dox                         |    56 +
 doxygen/doxextr.l                              |     4 +-
 doxygen/mainpage.dox                           |     8 +-
 flavours                                       |     5 +-
 html/annotated.html                            |    27 +-
 html/cel_8h.html                               |    45 +-
 html/cel_8h_source.html                        |   797 +-
 html/classes.html                              |    30 +-
 html/deprecated.html                           |     2 +-
 html/diagnostics.html                          |     4 +-
 html/dir_af99bb3c152a306abd27951285ad1127.html |     4 +-
 html/dis_8h.html                               |   690 ++
 html/dis_8h_source.html                        |   689 ++
 html/files.html                                |    41 +-
 html/fitshdr_8h.html                           |     2 +-
 html/fitshdr_8h_source.html                    |     8 +-
 html/fortran.html                              |     4 +-
 html/functions.html                            |     8 +-
 html/functions_b.html                          |     2 +-
 html/functions_c.html                          |     2 +-
 html/functions_d.html                          |    20 +-
 html/functions_e.html                          |     3 +-
 html/functions_f.html                          |     3 +-
 html/functions_g.html                          |     2 +-
 html/functions_i.html                          |     5 +-
 html/functions_k.html                          |     2 +-
 html/functions_l.html                          |     2 +-
 html/functions_m.html                          |    43 +-
 html/functions_n.html                          |     8 +-
 html/functions_o.html                          |     3 +-
 html/functions_p.html                          |     9 +-
 html/functions_r.html                          |     2 +-
 html/functions_s.html                          |     8 +-
 html/functions_t.html                          |    11 +-
 html/functions_u.html                          |     2 +-
 html/functions_v.html                          |     2 +-
 html/functions_vars.html                       |     8 +-
 html/functions_vars_b.html                     |     2 +-
 html/functions_vars_c.html                     |     2 +-
 html/functions_vars_d.html                     |    20 +-
 html/functions_vars_e.html                     |     3 +-
 html/functions_vars_f.html                     |     3 +-
 html/functions_vars_g.html                     |     2 +-
 html/functions_vars_i.html                     |     5 +-
 html/functions_vars_k.html                     |     2 +-
 html/functions_vars_l.html                     |     2 +-
 html/functions_vars_m.html                     |    43 +-
 html/functions_vars_n.html                     |     8 +-
 html/functions_vars_o.html                     |     3 +-
 html/functions_vars_p.html                     |     9 +-
 html/functions_vars_r.html                     |     2 +-
 html/functions_vars_s.html                     |     8 +-
 html/functions_vars_t.html                     |    11 +-
 html/functions_vars_u.html                     |     2 +-
 html/functions_vars_v.html                     |     2 +-
 html/functions_vars_w.html                     |     2 +-
 html/functions_vars_x.html                     |     2 +-
 html/functions_vars_y.html                     |     2 +-
 html/functions_vars_z.html                     |     2 +-
 html/functions_w.html                          |     2 +-
 html/functions_x.html                          |     2 +-
 html/functions_y.html                          |     2 +-
 html/functions_z.html                          |     2 +-
 html/getwcstab_8h.html                         |     2 +-
 html/getwcstab_8h_source.html                  |     6 +-
 html/globals.html                              |     2 +-
 html/globals_b.html                            |     2 +-
 html/globals_c.html                            |    11 +-
 html/globals_d.html                            |    63 +-
 html/globals_defs.html                         |    26 +-
 html/globals_e.html                            |     2 +-
 html/globals_enum.html                         |     5 +-
 html/globals_eval.html                         |    34 +-
 html/globals_f.html                            |     2 +-
 html/globals_func.html                         |     2 +-
 html/globals_func_b.html                       |     2 +-
 html/globals_func_c.html                       |     5 +-
 html/globals_func_d.html                       |    26 +-
 html/globals_func_e.html                       |     2 +-
 html/globals_func_f.html                       |     2 +-
 html/globals_func_h.html                       |     2 +-
 html/globals_func_l.html                       |     8 +-
 html/globals_func_m.html                       |     2 +-
 html/globals_func_p.html                       |     2 +-
 html/globals_func_q.html                       |     2 +-
 html/globals_func_s.html                       |     2 +-
 html/globals_func_t.html                       |    26 +-
 html/globals_func_u.html                       |     2 +-
 html/globals_func_v.html                       |     2 +-
 html/globals_func_w.html                       |     5 +-
 html/globals_func_x.html                       |     2 +-
 html/globals_func_z.html                       |     2 +-
 html/globals_h.html                            |     2 +-
 html/globals_i.html                            |     2 +-
 html/globals_k.html                            |     2 +-
 html/globals_l.html                            |    17 +-
 html/globals_m.html                            |     2 +-
 html/globals_n.html                            |     2 +-
 html/globals_p.html                            |     2 +-
 html/globals_q.html                            |     2 +-
 html/globals_r.html                            |     2 +-
 html/globals_s.html                            |     2 +-
 html/globals_t.html                            |    26 +-
 html/globals_type.html                         |     2 +-
 html/globals_u.html                            |     2 +-
 html/globals_v.html                            |     2 +-
 html/globals_vars.html                         |     5 +-
 html/globals_w.html                            |    26 +-
 html/globals_x.html                            |     2 +-
 html/globals_z.html                            |     2 +-
 html/index.html                                |    10 +-
 html/intro.html                                |     4 +-
 html/lin_8h.html                               |   124 +-
 html/lin_8h_source.html                        |   975 +-
 html/log_8h.html                               |     2 +-
 html/log_8h_source.html                        |     8 +-
 html/memory.html                               |     4 +-
 html/overview.html                             |     4 +-
 html/pages.html                                |     2 +-
 html/pgsbox.html                               |     4 +-
 html/prj_8h.html                               |     9 +-
 html/prj_8h_source.html                        |   708 +-
 html/software.html                             |     4 +-
 html/spc_8h.html                               |     3 +-
 html/spc_8h_source.html                        |   316 +-
 html/sph_8h.html                               |     2 +-
 html/sph_8h_source.html                        |     8 +-
 html/spx_8h.html                               |     5 +-
 html/spx_8h_source.html                        |   343 +-
 html/structcelprm.html                         |     4 +-
 html/structdisprm.html                         |   509 +
 html/structfitskey.html                        |     4 +-
 html/structfitskeyid.html                      |     2 +-
 html/structlinprm.html                         |   145 +-
 html/structprjprm.html                         |     7 +-
 html/structpscard.html                         |     2 +-
 html/structpvcard.html                         |     2 +-
 html/structs.html                              |     4 +-
 html/structspcprm.html                         |     4 +-
 html/structspxprm.html                         |     4 +-
 html/structtabprm.html                         |     4 +-
 html/structwcserr.html                         |     2 +-
 html/structwcsprm.html                         |    77 +-
 html/structwtbarr.html                         |     2 +-
 html/tab_8h.html                               |     5 +-
 html/tab_8h_source.html                        |   273 +-
 html/testing.html                              |     4 +-
 html/threads.html                              |     6 +-
 html/vector.html                               |     4 +-
 html/wcs_8h.html                               |    23 +-
 html/wcs_8h_source.html                        |  3315 +++---
 html/wcserr_8h.html                            |     2 +-
 html/wcserr_8h_source.html                     |     6 +-
 html/wcsfix_8h.html                            |     2 +-
 html/wcsfix_8h_source.html                     |    10 +-
 html/wcshdr_8h.html                            |   150 +-
 html/wcshdr_8h_source.html                     |  1911 +--
 html/wcslib_8h.html                            |     3 +-
 html/wcslib_8h_source.html                     |   136 +-
 html/wcsmath_8h.html                           |     2 +-
 html/wcsmath_8h_source.html                    |     6 +-
 html/wcsprintf_8h.html                         |     2 +-
 html/wcsprintf_8h_source.html                  |     8 +-
 html/wcstrig_8h.html                           |     2 +-
 html/wcstrig_8h_source.html                    |     6 +-
 html/wcsunits_8h.html                          |     2 +-
 html/wcsunits_8h_source.html                   |     8 +-
 html/wcsutil_8h.html                           |     2 +-
 html/wcsutil_8h_source.html                    |     6 +-
 makedefs.in                                    |     8 +-
 pgsbox/GNUmakefile                             |     6 +-
 pgsbox/cpgsbox.c                               |     4 +-
 pgsbox/cpgsbox.h                               |     4 +-
 pgsbox/cpgtest.c                               |     4 +-
 pgsbox/fscan.f                                 |     4 +-
 pgsbox/lngvel.f                                |     4 +-
 pgsbox/pgcrfn.f                                |     4 +-
 pgsbox/pgcrvl.f                                |     4 +-
 pgsbox/pgsbox.f                                |     6 +-
 pgsbox/pgtest.f                                |     4 +-
 pgsbox/pgwcsl.c                                |     4 +-
 pgsbox/pgwcsl.h                                |     4 +-
 utils/GNUmakefile                              |    10 +-
 utils/HPXcvt.1                                 |     2 +-
 utils/HPXcvt.c                                 |     6 +-
 utils/fitshdr.1                                |     2 +-
 utils/fitshdr.c                                |     6 +-
 utils/wcsgrid.1                                |     4 +-
 utils/wcsgrid.c                                |     4 +-
 utils/wcsware.1                                |    46 +-
 utils/wcsware.c                                |   236 +-
 wcsconfig.h.in                                 |     4 +-
 wcsconfig_f77.h.in                             |     4 +-
 wcsconfig_tests.h.in                           |     4 +-
 wcsconfig_utils.h.in                           |     4 +-
 wcslib.pdf                                     |   Bin 987836 -> 1045958 bytes
 379 files changed, 36294 insertions(+), 17412 deletions(-)

diff --git a/C/GNUmakefile b/C/GNUmakefile
index fbd9aea..cb4253c 100644
--- a/C/GNUmakefile
+++ b/C/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for building WCSLIB 4.25 and its test suite.
+# GNU makefile for building WCSLIB 5.0 and its test suite.
 #
 # Summary of the main targets
 # ---------------------------
@@ -10,7 +10,7 @@
 #   cleaner:   clean, and also delete the test executables.
 #
 #   cleanest (distclean or realclean): cleaner, and also delete the object
-#              library the C source files generated by 'flex'.
+#              library and the C source files generated by 'flex'.
 #
 #   check (or test): Compile and run the test programs.  By default they are
 #              executed in batch mode, and non-graphical tests only report
@@ -31,7 +31,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.1 2014/12/14 14:32:45 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include ../makedefs
@@ -62,20 +62,15 @@ vpath %.in ..
 
 # For building and exercising the test suite
 # ------------------------------------------
-# Signals tfitshdr to use wcshdr().
-ifneq "$(DO_WCSHDR)" ""
-  CPPFLAGS += -DDO_WCSHDR
-endif
-
 # Test programs that don't require CFITSIO or PGPLOT...
-TEST_N := tlin tlog tprj1 tsph tsphdpa tspx ttab1 twcs twcssub tpih1 tbth1 \
-          tfitshdr tunits twcsfix twcscompare
+TEST_N := tlin tdis1 tlog tprj1 tsph tsphdpa tspx ttab1 twcs twcssub tpih1 \
+          tbth1 tfitshdr tunits twcsfix twcscompare
 
 # ...and unofficial test programs.
 TEST_n := tspcaips tspcspxe tspctrne twcs_locale
 
 # Test programs that require CFITSIO (they don't need PGPLOT).
-TEST_C := twcstab twcshdr
+TEST_C := twcstab twcshdr twcslint
 
 # Test programs that require PGPLOT but not PGSBOX.
 TEST_P := tspc tprj2 tcel1 tcel2 ttab2 ttab3 twcsmix
@@ -109,6 +104,8 @@ TESTS := $(filter-out $(TEST_X), $(TESTS))
 
 PGSBOXLIB := ../pgsbox/libpgsbox-$(LIBVER).a
 
+ADDRE := 0x[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]*
+
 # Pattern rules
 #--------------
 
@@ -141,6 +138,9 @@ $(PICLIB)(%.o) : %.c
 	-@ $(RM) $@
 	   $(CPP) $(CPPFLAGS) $(CFLAGS) $< > $@
 
+%.fits : test/%.keyrec tofits
+	   ./tofits < $< > $@
+
 # Print out include file dependencies.
 %.d : %.c
 	-@ echo ''
@@ -185,7 +185,7 @@ run_% : %
 	         echo 'PASS: C/$<' >> test_results ; \
 	       elif [ -f 'test/$<.out' ] ; then \
 	         trap 'rm -f run_test.tmp' 0 1 2 3 15 ; \
-	         sed -e 's/0x[0-9a-f][0-9a-f][0-9a-f]*/0x<address>/g' $<.out > \
+	         sed -e 's/$(ADDRE)/0x<address>/g' $<.out > \
 	           run_test.tmp ; \
 	         mv -f run_test.tmp $<.out ; \
 	         if cmp -s $<.out test/$<.out ; then \
@@ -280,8 +280,10 @@ clean :
 cleaner : clean
 	-  $(RM) .gdb_history
 	-  $(RM) $(TEST_N) $(TEST_n) $(TEST_X)
-	-  $(RM) $(TEST_P) tpih2 twcstab twcshdr
-	-  $(RM) tofits bth.fits pih.fits wcstab.fits
+	-  $(RM) $(TEST_P) tpih2 twcstab twcshdr twcslint
+	-  $(RM) tofits
+	-  $(RM) bth.fits fitshdr.fits pih.fits wcslint.fits wcstab.fits
+	-  $(RM) TPV3.fits TPV5.fits TPV7.fits
 	-  $(RM) t*_cfitsio test_results
 
 cleanest distclean realclean : cleaner
@@ -337,6 +339,11 @@ twcshdr : test/twcshdr.c $(GETWCSTAB) $(WCSLIB)
 	     $(LDFLAGS) $(CFITSIOLIB) $(WCSLIB) $(LIBS)
 	-@ $(RM) $@.o
 
+twcslint : test/twcslint
+	-@ echo ''
+	   cp $< .
+	-@ chmod a+x $@
+
 getwcstab.o : getwcstab.c getwcstab.h
 	-@ echo ''
 	   $(CC) $(CPPFLAGS) $(CFLAGS) $(CFITSIOINC) -c $<
@@ -348,12 +355,6 @@ $(PGSBOXLIB) :
 tofits : test/tofits.c
 	   $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $<
 
-pih.fits : test/pih.keyrec tofits
-	   ./tofits < $< > $@
-
-bth.fits : test/bth.keyrec tofits
-	   ./tofits < $< > $@
-
 GNUmakefile : ../makedefs ;
 
 ../makedefs ../wcsconfig.h ../wcsconfig_tests.h : makedefs.in wcsconfig.h.in \
@@ -371,73 +372,80 @@ show ::
 $(WCSLIB)(cel.o)      : cel.h prj.h sph.h wcsconfig.h wcserr.h wcsmath.h \
                         wcsprintf.h wcstrig.h
 $(WCSLIB)(fitshdr.o)  : wcsconfig.h fitshdr.h wcsutil.h
-$(WCSLIB)(lin.o)      : lin.h wcserr.h wcsprintf.h
+$(WCSLIB)(dis.o)      : dis.h wcserr.h wcsprintf.h wcsutil.h
+$(WCSLIB)(lin.o)      : dis.h lin.h wcserr.h wcsprintf.h
 $(WCSLIB)(log.o)      : log.h
 $(WCSLIB)(prj.o)      : prj.h wcsconfig.h wcserr.h wcsmath.h wcsprintf.h \
                         wcstrig.h wcsutil.h
-$(WCSLIB)(spc.o)      : spc.h spx.h wcserr.h wcsmath.h wcsprintf.h wcstrig.h \
-                        wcsutil.h
+$(WCSLIB)(spc.o)      : spc.h spx.h wcsconfig.h wcserr.h wcsmath.h \
+                        wcsprintf.h wcstrig.h wcsutil.h
 $(WCSLIB)(sph.o)      : sph.h wcsconfig.h wcstrig.h
 $(WCSLIB)(spx.o)      : spx.h wcserr.h wcsmath.h
-$(WCSLIB)(tab.o)      : tab.h wcserr.h wcsmath.h wcsprintf.h
-$(WCSLIB)(wcs.o)      : cel.h lin.h log.h prj.h spc.h sph.h spx.h tab.h \
-                        wcs.h wcsconfig.h wcserr.h wcsmath.h wcsprintf.h \
-                        wcstrig.h wcsunits.h wcsutil.h
-$(WCSLIB)(wcsbth.o)   : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcserr.h \
-                        wcshdr.h wcsmath.h wcsutil.h
+$(WCSLIB)(tab.o)      : tab.h wcserr.h wcsmath.h wcsprintf.h wcsutil.h
+$(WCSLIB)(wcs.o)      : cel.h dis.h lin.h log.h prj.h spc.h sph.h spx.h \
+                        tab.h wcs.h wcsconfig.h wcserr.h wcsmath.h \
+                        wcsprintf.h wcstrig.h wcsunits.h wcsutil.h
+$(WCSLIB)(wcsbth.o)   : cel.h lin.h prj.h spc.h spx.h wcs.h wcshdr.h \
+                        wcsmath.h wcsprintf.h wcsutil.h
 $(WCSLIB)(wcserr.o)   : wcserr.h wcsprintf.h
-$(WCSLIB)(wcsfix.o)   : cel.h lin.h prj.h spc.h sph.h spx.h tab.h wcs.h \
-                        wcserr.h wcsfix.h wcsmath.h wcsunits.h wcsutil.h
+$(WCSLIB)(wcsfix.o)   : cel.h lin.h prj.h spc.h sph.h spx.h wcs.h wcserr.h \
+                        wcsfix.h wcsmath.h wcsunits.h wcsutil.h
 $(WCSLIB)(wcshdr.o)   : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcserr.h \
                         wcshdr.h wcsmath.h wcsutil.h
-$(WCSLIB)(wcspih.o)   : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcserr.h \
-                        wcshdr.h wcsmath.h wcsutil.h
+$(WCSLIB)(wcspih.o)   : cel.h lin.h prj.h spc.h spx.h wcs.h wcshdr.h \
+                        wcsmath.h wcsprintf.h wcsutil.h
 $(WCSLIB)(wcsprintf.o): wcsprintf.h
 $(WCSLIB)(wcstrig.o)  : wcsconfig.h wcsmath.h wcstrig.h
 $(WCSLIB)(wcsulex.o)  : wcserr.h wcsmath.h wcsunits.h wcsutil.h
 $(WCSLIB)(wcsunits.o) : wcserr.h wcsunits.h
-$(WCSLIB)(wcsutil.o)  : wcsutil.h
+$(WCSLIB)(wcsutil.o)  : wcsmath.h wcsutil.h
 $(WCSLIB)(wcsutrn.o)  : wcserr.h wcsunits.h
 
 tbth1 tbth1_cfitsio : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcsconfig.h \
                       wcsconfig_tests.h wcserr.h wcsfix.h wcshdr.h
-tcel1   : cel.h prj.h wcserr.h
-tcel2   : cel.h prj.h wcserr.h
+tcel1   : cel.h prj.h
+tcel2   : cel.h prj.h
 tfitshdr tfitshdr_cfitsio : fitshdr.h wcsconfig.h wcsconfig_tests.h
-tlin    : lin.h wcserr.h
+tlin    : lin.h
+tdis1   : cel.h dis.h lin.h prj.h spc.h spx.h wcs.h wcserr.h wcshdr.h \
+          wcsprintf.h
 tlog    : log.h
-tpih1 tpih1_cfitsio : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcsconfig.h \
+tpih1 tpih1_cfitsio : cel.h lin.h prj.h spc.h spx.h wcs.h wcsconfig.h \
                       wcsconfig_tests.h wcserr.h wcsfix.h wcshdr.h wcsprintf.h
-tpih2 tpih2_cfitsio : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcsconfig.h \
-                      wcsconfig_tests.h wcserr.h wcshdr.h
-tprj1   : prj.h wcsconfig.h wcserr.h wcstrig.h
-tprj2   : prj.h wcserr.h
-tspc    : spc.h spx.h wcsconfig.h wcserr.h wcstrig.h
-tspcaips: spc.h
-tspctrne: spc.h wcserr.h
+tpih2 tpih2_cfitsio : cel.h cpgsbox.h lin.h prj.h spc.h spx.h wcs.h \
+                      wcsconfig.h wcsconfig_tests.h wcshdr.h
+tprj1   : prj.h wcsconfig.h wcstrig.h
+tprj2   : prj.h
+tspc    : spc.h spx.h wcsconfig.h wcstrig.h
+tspcaips: spc.h spx.h
+tspctrne: spc.h spx.h wcserr.h
 tsph    : sph.h wcsconfig.h wcstrig.h
 tsphdpa : sph.h
-tspx    : spx.h wcserr.h
-ttab1   : tab.h wcserr.h
-ttab2   : tab.h wcserr.h
-ttab3   : prj.h tab.h wcserr.h
+tspx    : spx.h
+ttab1   : tab.h
+ttab2   : tab.h
+ttab3   : prj.h tab.h
 tunits  : wcserr.h wcsunits.h
-twcs    : cel.h lin.h log.h prj.h spc.h sph.h spx.h tab.h wcs.h wcsconfig.h \
-          wcsconfig_tests.h wcserr.h wcsfix.h wcshdr.h wcslib.h wcsmath.h \
-          wcsprintf.h wcstrig.h wcsunits.h wcsutil.h
-twcs_locale : wcs.h wcserr.h wcshdr.h wcsprintf.h
-twcsfix : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcserr.h wcsfix.h \
+twcs    : cel.h fitshdr.h lin.h log.h prj.h spc.h sph.h spx.h tab.h wcs.h \
+          wcsconfig.h wcsconfig_tests.h wcserr.h wcsfix.h wcshdr.h wcslib.h \
+          wcsmath.h wcsprintf.h wcstrig.h wcsunits.h wcsutil.h
+twcs_locale : cel.h lin.h prj.h spc.h spx.h wcs.h wcserr.h wcshdr.h \
+              wcsprintf.h
+twcsfix : cel.h lin.h prj.h spc.h spx.h wcs.h wcserr.h wcsfix.h wcsprintf.h \
           wcsunits.h
 twcshdr : cel.h fitshdr.h getwcstab.h lin.h log.h prj.h spc.h sph.h spx.h \
           tab.h wcs.h wcsconfig.h wcserr.h wcsfix.h wcshdr.h wcslib.h \
           wcsmath.h wcsprintf.h wcstrig.h wcsunits.h wcsutil.h
-twcsmix : cel.h lin.h prj.h spc.h sph.h spx.h tab.h wcs.h wcserr.h
-twcssub : cel.h lin.h prj.h spc.h spx.h tab.h wcs.h wcserr.h
+twcsmix : cel.h lin.h prj.h spc.h sph.h spx.h wcs.h
+twcssub : cel.h lin.h prj.h spc.h spx.h wcs.h wcserr.h
 twcstab : cel.h fitshdr.h getwcstab.h lin.h log.h prj.h spc.h sph.h spx.h \
           tab.h wcs.h wcsconfig.h wcserr.h wcsfix.h wcshdr.h wcslib.h \
           wcsmath.h wcsprintf.h wcstrig.h wcsunits.h wcsutil.h
 
+run_tdis1 : TPV3.fits TPV5.fits TPV7.fits
 run_tbth1 run_tbth1_cfitsio : bth.fits
-run_tfitshdr run_tfitshdr_cfitsio : pih.fits
+run_tfitshdr run_tfitshdr_cfitsio : fitshdr.fits
 run_tpih1 run_tpih1_cfitsio : pih.fits
 run_tpih2 run_tpih2_cfitsio : pih.fits
+run_twcslint : wcslint.fits
+run_twcs_locale : pih.fits
diff --git a/C/cel.c b/C/cel.c
index 6db05b9..296eb55 100644
--- a/C/cel.c
+++ b/C/cel.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cel.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: cel.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -48,6 +48,15 @@ const char *cel_errmsg[] = {
   "One or more of the (x,y) coordinates were invalid",
   "One or more of the (lng,lat) coordinates were invalid"};
 
+/* Map error returns for lower-level routines. */
+const int cel_prjerr[] = {
+  CELERR_SUCCESS,		/*  0: PRJERR_SUCCESS         */
+  CELERR_NULL_POINTER,		/*  1: PRJERR_NULL_POINTER    */
+  CELERR_BAD_PARAM,		/*  2: PRJERR_BAD_PARAM       */
+  CELERR_BAD_PIX,		/*  3: PRJERR_BAD_PIX         */
+  CELERR_BAD_WORLD		/*  4: PRJERR_BAD_WORLD       */
+};
+
 /* Convenience macro for invoking wcserr_set(). */
 #define CEL_ERRMSG(status) WCSERR_SET(status), cel_errmsg[status]
 
@@ -77,7 +86,7 @@ struct celprm *cel;
 
   cel->err = 0x0;
 
-  return prjini(&(cel->prj));
+  return cel_prjerr[prjini(&(cel->prj))];
 }
 
 /*--------------------------------------------------------------------------*/
@@ -94,9 +103,7 @@ struct celprm *cel;
     cel->err = 0x0;
   }
 
-  prjfree(&(cel->prj));
-
-  return 0;
+  return cel_prjerr[prjfree(&(cel->prj))];
 }
 
 /*--------------------------------------------------------------------------*/
@@ -122,16 +129,16 @@ const struct celprm *cel;
   } else {
     wcsprintf("     theta0: %9f\n", cel->theta0);
   }
-  wcsprintf("       ref:");
+  wcsprintf("        ref:");
   for (i = 0; i < 4; i++) {
-    wcsprintf("  %- 11.5g", cel->ref[i]);
+    wcsprintf("  %#- 11.5g", cel->ref[i]);
   }
   wcsprintf("\n");
-  wcsprintf("       prj: (see below)\n");
+  wcsprintf("        prj: (see below)\n");
 
-  wcsprintf("     euler:");
+  wcsprintf("      euler:");
   for (i = 0; i < 5; i++) {
-    wcsprintf("  %- 11.5g", cel->euler[i]);
+    wcsprintf("  %#- 11.5g", cel->euler[i]);
   }
   wcsprintf("\n");
   wcsprintf("    latpreq: %d", cel->latpreq);
@@ -160,6 +167,21 @@ const struct celprm *cel;
 
 /*--------------------------------------------------------------------------*/
 
+int celperr(const struct celprm *cel, const char *prefix)
+
+{
+  if (cel == 0x0) return CELERR_NULL_POINTER;
+
+  if (cel->err && wcserr_prt(cel->err, prefix) == 0) {
+    wcserr_prt(cel->prj.err, prefix);
+  }
+
+  return 0;
+}
+
+
+/*--------------------------------------------------------------------------*/
+
 int celset(cel)
 
 struct celprm *cel;
@@ -167,6 +189,7 @@ struct celprm *cel;
 {
   static const char *function = "celset";
 
+  int status;
   const double tol = 1.0e-10;
   double clat0, cphip, cthe0, lat0, lng0, phip, slat0, slz, sphip, sthe0;
   double latp, latp1, latp2, lngp;
@@ -188,8 +211,8 @@ struct celprm *cel;
     celprj->theta0 = UNDEFINED;
   }
 
-  if (prjset(celprj)) {
-    return wcserr_set(CEL_ERRMSG(CELERR_BAD_PARAM));
+  if ((status = prjset(celprj))) {
+    return wcserr_set(CEL_ERRMSG(cel_prjerr[status]));
   }
 
   /* Defaults set by the projection routines. */
@@ -418,7 +441,7 @@ int stat[];
 {
   static const char *function = "celx2s";
 
-  int    nphi, status;
+  int    istat, nphi, status = 0;
   struct prjprm *celprj;
   struct wcserr **err;
 
@@ -432,15 +455,14 @@ int stat[];
 
   /* Apply spherical deprojection. */
   celprj = &(cel->prj);
-  if ((status = celprj->prjx2s(celprj, nx, ny, sxy, 1, x, y, phi, theta,
+  if ((istat = celprj->prjx2s(celprj, nx, ny, sxy, 1, x, y, phi, theta,
                                stat))) {
-    if (status == PRJERR_BAD_PIX) {
-      status = CELERR_BAD_PIX;
+    if (istat) {
+      status = wcserr_set(CEL_ERRMSG(cel_prjerr[istat]));
+      if (status != CELERR_BAD_PIX) {
+        return status;
+      }
     }
-
-    wcserr_set(CEL_ERRMSG(status));
-
-    if (status != CELERR_BAD_PIX) return status;
   }
 
   nphi = (ny > 0) ? (nx*ny) : nx;
@@ -465,7 +487,7 @@ int stat[];
 {
   static const char *function = "cels2x";
 
-  int    nphi, ntheta, status;
+  int    istat, nphi, ntheta, status = 0;
   struct prjprm *celprj;
   struct wcserr **err;
 
@@ -491,14 +513,15 @@ int stat[];
 
   /* Apply the spherical projection. */
   celprj = &(cel->prj);
-  if ((status = celprj->prjs2x(celprj, nphi, ntheta, 1, sxy, phi, theta, x, y,
+  if ((istat = celprj->prjs2x(celprj, nphi, ntheta, 1, sxy, phi, theta, x, y,
                                stat))) {
-    if (status != PRJERR_BAD_PARAM) {
-      status = CELERR_BAD_WORLD;
+    if (istat) {
+      status = wcserr_set(CEL_ERRMSG(cel_prjerr[istat]));
+      if (status != CELERR_BAD_WORLD) {
+        return status;
+      }
     }
-
-    return wcserr_set(CEL_ERRMSG(status));
   }
 
-  return 0;
+  return status;
 }
diff --git a/C/cel.h b/C/cel.h
index c05a6ee..4d03b50 100644
--- a/C/cel.h
+++ b/C/cel.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cel.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: cel.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -53,6 +53,9 @@
 * values, celfree() reclaims any memory that may have been allocated to store
 * an error message, and celprt() prints its contents.
 *
+* celperr() prints the error message(s), if any, stored in a celprm struct and
+* the prjprm struct that it contains.
+*
 * A setup routine, celset(), computes intermediate values in the celprm struct
 * from parameters in it that were supplied by the user.  The struct always
 * needs to be set up by celset() but it need not be called explicitly - refer
@@ -108,6 +111,25 @@
 *                         0: Success.
 *                         1: Null celprm pointer passed.
 *
+* celperr() - Print error messages from a celprm struct
+* -----------------------------------------------------
+* celperr() prints the error message(s), if any, stored in a celprm struct and
+* the prjprm struct that it contains.  If there are no errors then nothing is
+* printed.  It uses wcserr_prt(), q.v.
+*
+* Given:
+*   cel       const struct celprm*
+*                       Coordinate transformation parameters.
+*
+*   prefix    const char *
+*                       If non-NULL, each output line will be prefixed with
+*                       this string.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null celprm pointer passed.
+*
 *
 * celset() - Setup routine for the celprm struct
 * ----------------------------------------------
@@ -329,7 +351,7 @@
 *     computation.
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   void *padding
@@ -345,7 +367,6 @@
 #define WCSLIB_CEL
 
 #include "prj.h"
-#include "wcserr.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -408,6 +429,8 @@ int celfree(struct celprm *cel);
 
 int celprt(const struct celprm *cel);
 
+int celperr(const struct celprm *cel, const char *prefix);
+
 int celset(struct celprm *cel);
 
 int celx2s(struct celprm *cel, int nx, int ny, int sxy, int sll,
diff --git a/C/dis.c b/C/dis.c
new file mode 100644
index 0000000..8a6c6a6
--- /dev/null
+++ b/C/dis.c
@@ -0,0 +1,1153 @@
+/*============================================================================
+
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
+  Copyright (C) 1995-2015, Mark Calabretta
+
+  This file is part of WCSLIB.
+
+  WCSLIB is free software: you can redistribute it and/or modify it under the
+  terms of the GNU Lesser General Public License as published by the Free
+  Software Foundation, either version 3 of the License, or (at your option)
+  any later version.
+
+  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+  more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+
+  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+
+  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+  http://www.atnf.csiro.au/people/Mark.Calabretta
+  $Id: dis.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
+*===========================================================================*/
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "wcserr.h"
+#include "wcsprintf.h"
+#include "wcsutil.h"
+#include "dis.h"
+
+const int DISSET = 137;
+
+/* Map status return value to message. */
+const char *dis_errmsg[] = {
+  "Success",
+  "Null disprm pointer passed",
+  "Memory allocation failed",
+  "Failed to initialize distortion functions",
+  "Distort error",
+  "De-distort error"};
+
+/* Convenience macro for invoking wcserr_set(). */
+#define DIS_ERRMSG(status) WCSERR_SET(status), dis_errmsg[status]
+
+/*--------------------------------------------------------------------------*/
+
+int disini(int alloc, int naxis, struct disprm *dis)
+
+{
+  static const char *function = "disini";
+
+  int j;
+  struct wcserr **err;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+
+  /* Initialize error message handling. */
+  err = &(dis->err);
+  if (dis->flag != -1) {
+    if (dis->err) free(dis->err);
+  }
+  dis->err = 0x0;
+
+
+  /* Initialize memory management. */
+  if (dis->flag == -1 || dis->m_flag != DISSET) {
+    if (dis->flag == -1) {
+      dis->disp2x  = 0x0;
+      dis->disx2p  = 0x0;
+      dis->tmpmem  = 0x0;
+      dis->iwrk    = 0x0;
+      dis->dwrk    = 0x0;
+    }
+
+    dis->m_flag    = 0;
+    dis->m_naxis   = 0;
+    dis->m_dtype   = 0x0;
+    dis->m_axmap   = 0x0;
+    dis->m_offset  = 0x0;
+    dis->m_scale   = 0x0;
+    dis->m_nparm   = 0x0;
+    dis->m_parms   = 0x0;
+    dis->m_maxdis  = 0x0;
+    dis->m_alloc   = 0;
+    dis->m_padding = 0;
+  }
+
+  if (naxis < 0) {
+    return wcserr_set(WCSERR_SET(DISERR_MEMORY),
+      "naxis must not be negative (got %d)", naxis);
+  }
+
+
+  /* Create work arrays. */
+  if (dis->disp2x) free(dis->disp2x);
+  if ((dis->disp2x = calloc(naxis, sizeof(int (*)(DISP2X_ARGS)))) == 0x0) {
+    disfree(dis);
+    return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+  }
+
+  if (dis->disx2p) free(dis->disx2p);
+  if ((dis->disx2p = calloc(naxis, sizeof(int (*)(DISX2P_ARGS)))) == 0x0) {
+    disfree(dis);
+    return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+  }
+
+  if (dis->tmpmem) free(dis->tmpmem);
+  if ((dis->tmpmem = calloc(5*naxis, sizeof(double))) == 0x0) {
+    disfree(dis);
+    return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+  }
+
+  if (dis->iwrk) free(dis->iwrk);
+  if (dis->dwrk) free(dis->dwrk);
+
+
+  /* Allocate memory for arrays if required. */
+  if (alloc ||
+      dis->dtype  == 0x0 ||
+      dis->axmap  == 0x0 ||
+      dis->offset == 0x0 ||
+      dis->scale  == 0x0 ||
+      dis->nparm  == 0x0 ||
+      dis->parms  == 0x0 ||
+      dis->maxdis == 0x0) {
+
+    /* Was sufficient allocated previously? */
+    if (dis->m_flag == DISSET && dis->m_naxis < naxis) {
+      /* No, free it. */
+      disfree(dis);
+    }
+
+    if (alloc || dis->dtype == 0x0) {
+      if (dis->m_dtype) {
+        /* In case the caller fiddled with it. */
+        dis->dtype = dis->m_dtype;
+
+      } else {
+        if ((dis->dtype = calloc(naxis, sizeof(char [16]))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_dtype = dis->dtype;
+      }
+    }
+
+    if (alloc || dis->axmap == 0x0) {
+      if (dis->m_axmap) {
+        /* In case the caller fiddled with it. */
+        dis->axmap = dis->m_axmap;
+
+      } else {
+        if ((dis->axmap = calloc(naxis, sizeof(int *))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        if ((dis->axmap[0] = calloc(naxis*naxis, sizeof(int))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        for (j = 1; j < naxis; j++) {
+          dis->axmap[j] = dis->axmap[j-1] + naxis;
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_axmap = dis->axmap;
+      }
+    }
+
+    if (alloc || dis->offset == 0x0) {
+      if (dis->m_offset) {
+        /* In case the caller fiddled with it. */
+        dis->offset = dis->m_offset;
+
+      } else {
+        if ((dis->offset = calloc(naxis, sizeof(double *))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        if ((dis->offset[0] = calloc(naxis*naxis, sizeof(double))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        for (j = 1; j < naxis; j++) {
+          dis->offset[j] = dis->offset[j-1] + naxis;
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_offset = dis->offset;
+      }
+    }
+
+    if (alloc || dis->scale == 0x0) {
+      if (dis->m_scale) {
+        /* In case the caller fiddled with it. */
+        dis->scale = dis->m_scale;
+
+      } else {
+        if ((dis->scale = calloc(naxis, sizeof(double *))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        if ((dis->scale[0] = calloc(naxis*naxis, sizeof(double))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        for (j = 1; j < naxis; j++) {
+          dis->scale[j] = dis->scale[j-1] + naxis;
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_scale = dis->scale;
+      }
+    }
+
+    if (alloc || dis->nparm == 0x0) {
+      if (dis->m_nparm) {
+        /* In case the caller fiddled with it. */
+        dis->nparm = dis->m_nparm;
+
+      } else {
+        if ((dis->nparm = calloc(naxis, sizeof(int))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_nparm = dis->nparm;
+      }
+    }
+
+    if (alloc || dis->parms == 0x0) {
+      if (dis->m_parms) {
+        /* In case the caller fiddled with it. */
+        dis->parms = dis->m_parms;
+
+      } else {
+        if ((dis->parms = calloc(naxis, sizeof(double *))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_parms = dis->parms;
+      }
+    }
+
+    if (alloc || dis->maxdis == 0x0) {
+      if (dis->m_maxdis) {
+        /* In case the caller fiddled with it. */
+        dis->maxdis = dis->m_maxdis;
+
+      } else {
+        if ((dis->maxdis = calloc(naxis, sizeof(double))) == 0x0) {
+          disfree(dis);
+          return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+        }
+
+        dis->m_flag  = DISSET;
+        dis->m_naxis = naxis;
+        dis->m_maxdis = dis->maxdis;
+      }
+    }
+  }
+
+  dis->m_alloc = 0;
+
+
+  /* Set defaults. */
+  dis->flag  = 0;
+  dis->naxis = naxis;
+
+  memset(dis->dtype,     0, naxis*sizeof(char [16]));
+  memset(dis->axmap[0],  0, naxis*naxis*sizeof(int));
+  memset(dis->offset[0], 0, naxis*naxis*sizeof(double));
+
+  for (j = 0; j < naxis*naxis; j++) {
+    dis->scale[0][j] = 1.0;
+  }
+
+  memset(dis->nparm,     0, naxis*sizeof(int));
+  memset(dis->parms,     0, naxis*sizeof(double *));
+  memset(dis->maxdis,    0, naxis*sizeof(double));
+  dis->totdis = 0.0;
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disparms(struct disprm *dis)
+
+{
+  static const char *function = "disparms";
+
+  int j;
+  struct wcserr **err;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+  err = &(dis->err);
+
+
+  /* Free memory previously allocated. */
+  if (dis->m_alloc) {
+    for (j = 0; j < dis->naxis; j++) {
+      if (dis->parms[j]) {
+        free(dis->parms[j]);
+        dis->parms[j] = 0x0;
+      }
+    }
+  }
+
+  /* Allocate memory for distortion parameter arrays. */
+  for (j = 0; j < dis->naxis; j++) {
+    if (dis->nparm[j]) {
+      if ((dis->parms[j] = calloc(dis->nparm[j], sizeof(double))) == 0x0) {
+        return wcserr_set(DIS_ERRMSG(DISERR_MEMORY));
+      }
+
+      dis->m_flag  = DISSET;
+      dis->m_alloc = 1;
+    }
+  }
+
+  return 0;
+}
+
+
+/*--------------------------------------------------------------------------*/
+
+int discpy(int alloc, const struct disprm *dissrc, struct disprm *disdst)
+
+{
+  static const char *function = "discpy";
+
+  int j, naxis, status;
+  struct wcserr **err;
+
+  if (dissrc == 0x0) return DISERR_NULL_POINTER;
+  if (disdst == 0x0) return DISERR_NULL_POINTER;
+  err = &(disdst->err);
+
+  naxis = dissrc->naxis;
+  if (naxis < 1) {
+    return wcserr_set(WCSERR_SET(DISERR_MEMORY),
+      "naxis must be positive (got %d)", naxis);
+  }
+
+  if ((status = disini(alloc, naxis, disdst))) {
+    return status;
+  }
+
+  memcpy(disdst->dtype, dissrc->dtype, naxis*sizeof(char [16]));
+  for (j = 0; j < naxis; j++) {
+    memcpy(disdst->axmap[j],  dissrc->axmap[j],  naxis*sizeof(int));
+    memcpy(disdst->offset[j], dissrc->offset[j], naxis*sizeof(double));
+    memcpy(disdst->scale[j],  dissrc->scale[j],  naxis*sizeof(double));
+  }
+  memcpy(disdst->nparm, dissrc->nparm, naxis*sizeof(int));
+
+  if (alloc) {
+    disparms(disdst);
+  }
+
+  for (j = 0; j < naxis; j++) {
+    if (dissrc->nparm[j]) {
+      memcpy(disdst->parms[j], dissrc->parms[j],
+             dissrc->nparm[j]*sizeof(double));
+    }
+  }
+
+  memcpy(disdst->maxdis, dissrc->maxdis, naxis*sizeof(double));
+  disdst->totdis = dissrc->totdis;
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disfree(struct disprm *dis)
+
+{
+  int j;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+
+  if (dis->flag != -1) {
+    /* Free memory allocated by disini(). */
+    if (dis->m_flag == DISSET) {
+      /* Recall that these were allocated in bulk. */
+      if (dis->m_axmap)  free(dis->axmap[0]);
+      if (dis->m_offset) free(dis->offset[0]);
+      if (dis->m_scale)  free(dis->scale[0]);
+
+      if (dis->m_alloc) {
+        for (j = 0; j < dis->naxis; j++) {
+          if (dis->parms[j]) {
+            free(dis->parms[j]);
+            dis->parms[j] = 0x0;
+          }
+        }
+      }
+
+      if (dis->dtype  == dis->m_dtype)  dis->dtype  = 0x0;
+      if (dis->axmap  == dis->m_axmap)  dis->axmap  = 0x0;
+      if (dis->offset == dis->m_offset) dis->offset = 0x0;
+      if (dis->scale  == dis->m_scale)  dis->scale  = 0x0;
+      if (dis->nparm  == dis->m_nparm)  dis->nparm  = 0x0;
+      if (dis->parms  == dis->m_parms)  dis->parms  = 0x0;
+      if (dis->maxdis == dis->m_maxdis) dis->maxdis = 0x0;
+
+      if (dis->disp2x) free(dis->disp2x);
+      if (dis->disx2p) free(dis->disx2p);
+      if (dis->tmpmem) free(dis->tmpmem);
+      if (dis->iwrk)   free(dis->iwrk);
+      if (dis->dwrk)   free(dis->dwrk);
+
+      if (dis->m_dtype)  free(dis->m_dtype);
+      if (dis->m_axmap)  free(dis->m_axmap);
+      if (dis->m_offset) free(dis->m_offset);
+      if (dis->m_scale)  free(dis->m_scale);
+      if (dis->m_nparm)  free(dis->m_nparm);
+      if (dis->m_parms)  free(dis->m_parms);
+      if (dis->m_maxdis) free(dis->m_maxdis);
+    }
+  }
+
+  dis->disp2x  = 0x0;
+  dis->disx2p  = 0x0;
+  dis->tmpmem  = 0x0;
+  dis->iwrk    = 0x0;
+  dis->dwrk    = 0x0;
+
+  dis->m_flag   = 0;
+  dis->m_naxis  = 0;
+  dis->m_dtype  = 0x0;
+  dis->m_axmap  = 0x0;
+  dis->m_offset = 0x0;
+  dis->m_scale  = 0x0;
+  dis->m_nparm  = 0x0;
+  dis->m_parms  = 0x0;
+  dis->m_maxdis = 0x0;
+  dis->m_alloc  = 0;
+
+  dis->flag = 0;
+
+  if (dis->err) {
+    free(dis->err);
+    dis->err = 0x0;
+  }
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disprt(const struct disprm *dis)
+
+{
+  char hext[32];
+  int i, j, k;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+
+  if (dis->flag != DISSET) {
+    wcsprintf("The disprm struct is UNINITIALIZED.\n");
+    return 0;
+  }
+  wcsprintf("       flag: %d\n", dis->flag);
+
+  /* Parameters supplied. */
+  wcsprintf("      naxis: %d\n", dis->naxis);
+
+  WCSPRINTF_PTR("      dtype: ", dis->dtype, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("             \"%s\"\n", dis->dtype[j]);
+  }
+
+  WCSPRINTF_PTR("      axmap: ", dis->axmap, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf(" axmap[%d][]:", j);
+    for (i = 0; i < dis->naxis; i++) {
+      wcsprintf("%6d", dis->axmap[j][i]);
+    }
+    wcsprintf("\n");
+  }
+
+  WCSPRINTF_PTR("     offset: ", dis->offset, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("offset[%d][]:", j);
+    for (i = 0; i < dis->naxis; i++) {
+      wcsprintf("  %#- 11.5g", dis->offset[j][i]);
+    }
+    wcsprintf("\n");
+  }
+
+  WCSPRINTF_PTR("      scale: ", dis->scale, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf(" scale[%d][]:", j);
+    for (i = 0; i < dis->naxis; i++) {
+      wcsprintf("  %#- 11.5g", dis->scale[j][i]);
+    }
+    wcsprintf("\n");
+  }
+
+  WCSPRINTF_PTR("      nparm: ", dis->nparm, "\n");
+  wcsprintf("            ");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("%6d", dis->nparm[j]);
+  }
+  wcsprintf("\n");
+
+  WCSPRINTF_PTR("      parms: ", dis->parms, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf(" parms[%d][]:", j);
+    for (k = 0; k < dis->nparm[j]; k++) {
+      if (k && k%5 == 0) {
+        wcsprintf("\n            ");
+      }
+      wcsprintf("  %#- 11.5g", dis->parms[j][k]);
+    }
+    wcsprintf("\n");
+  }
+
+  WCSPRINTF_PTR("     maxdis: ", dis->maxdis, "\n");
+  wcsprintf("            ");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("  %#- 11.5g", dis->maxdis[j]);
+  }
+  wcsprintf("\n");
+
+  wcsprintf("     totdis:  %#- 11.5g\n", dis->totdis);
+
+  /* Error handling. */
+  WCSPRINTF_PTR("        err: ", dis->err, "\n");
+  if (dis->err) {
+    wcserr_prt(dis->err, "             ");
+  }
+
+  /* Work arrays. */
+  WCSPRINTF_PTR("     disp2x: ", dis->disp2x, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("  disp2x[%d]: %s", j,
+      wcsutil_fptr2str((int (*)(void))dis->disp2x[j], hext));
+    if (dis->disp2x[j] == tpv1) {
+      wcsprintf("  (= tpv1)\n");
+    } else if (dis->disp2x[j] == tpv2) {
+      wcsprintf("  (= tpv2)\n");
+    } else if (dis->disp2x[j] == tpv3) {
+      wcsprintf("  (= tpv3)\n");
+    } else if (dis->disp2x[j] == tpv4) {
+      wcsprintf("  (= tpv4)\n");
+    } else if (dis->disp2x[j] == tpv5) {
+      wcsprintf("  (= tpv5)\n");
+    } else if (dis->disp2x[j] == tpv6) {
+      wcsprintf("  (= tpv6)\n");
+    } else if (dis->disp2x[j] == tpv7) {
+      wcsprintf("  (= tpv7)\n");
+    } else {
+      wcsprintf("\n");
+    }
+  }
+  WCSPRINTF_PTR("     disx2p: ", dis->disx2p, "\n");
+  for (j = 0; j < dis->naxis; j++) {
+    wcsprintf("  disx2p[%d]: %s\n", j,
+      wcsutil_fptr2str((int (*)(void))dis->disx2p[j], hext));
+  }
+  WCSPRINTF_PTR("     tmpmem: ", dis->tmpmem, "\n");
+  WCSPRINTF_PTR("       iwrk: ", dis->iwrk, "\n");
+  WCSPRINTF_PTR("       dwrk: ", dis->dwrk, "\n");
+
+  /* Memory management. */
+  wcsprintf("     m_flag: %d\n", dis->m_flag);
+  wcsprintf("    m_naxis: %d\n", dis->m_naxis);
+  WCSPRINTF_PTR("    m_dtype: ", dis->m_dtype, "");
+  if (dis->m_dtype  == dis->dtype)  wcsprintf("  (= dtype)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("    m_axmap: ", dis->m_axmap, "");
+  if (dis->m_axmap  == dis->axmap)  wcsprintf("  (= axmap)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("   m_offset: ", dis->m_offset, "");
+  if (dis->m_offset == dis->offset) wcsprintf("  (= offset)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("    m_scale: ", dis->m_scale, "");
+  if (dis->m_scale  == dis->scale)  wcsprintf("  (= scale)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("    m_nparm: ", dis->m_nparm, "");
+  if (dis->m_nparm  == dis->nparm)  wcsprintf("  (= nparm)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("    m_parms: ", dis->m_parms, "");
+  if (dis->m_parms  == dis->parms)  wcsprintf("  (= parms)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("   m_maxdis: ", dis->m_maxdis, "");
+  if (dis->m_maxdis == dis->maxdis) wcsprintf("  (= maxdis)");
+  wcsprintf("\n");
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disset(struct disprm *dis)
+
+{
+  static const char *function = "disset";
+
+  int j, naxis, status;
+  struct wcserr **err;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+  err = &(dis->err);
+
+  naxis = dis->naxis;
+
+  /* Identify the distortion functions. */
+  for (j = 0; j < naxis; j++) {
+    if (strlen(dis->dtype[j]) == 0) {
+      /* No distortion on this axis. */
+      continue;
+
+    } else if (strcmp(dis->dtype[j], "TPV") == 0) {
+      /* The TPV "projection" is a special case. */
+      if ((status = tpvset(j, dis))) {
+        return wcserr_set(DIS_ERRMSG(status));
+      }
+
+    } else {
+      return wcserr_set(WCSERR_SET(DISERR_BAD_PARAM),
+        "Unrecognized/unimplemented distortion function, %s", dis->dtype[j]);
+    }
+  }
+
+  dis->flag = DISSET;
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disp2x(
+  struct disprm *dis,
+  const double rawcrd[],
+  double discrd[])
+
+{
+  static const char *function = "disp2x";
+
+  int axisi, i, j, naxis, ncrd, status;
+  double dtmp, *tmpcrd;
+  struct wcserr **err;
+
+
+  /* Initialize. */
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+  err = &(dis->err);
+
+  if (dis->flag != DISSET) {
+    if ((status = disset(dis))) return status;
+  }
+
+  naxis = dis->naxis;
+
+
+  /* Invoke the distortion functions for each axis. */
+  tmpcrd = dis->tmpmem;
+  for (j = 0; j < naxis; j++) {
+    if (dis->disp2x[j]) {
+      ncrd = 0;
+      for (i = 0; i < naxis; i++) {
+        if ((axisi = dis->axmap[j][i])) {
+          /* N.B. the axis numbers in the map are 1-relative. */
+          tmpcrd[i] = (rawcrd[axisi-1] - dis->offset[j][i])*dis->scale[j][i];
+          ncrd++;
+        } else {
+          tmpcrd[i] = 0.0;
+        }
+      }
+
+      if ((status = (dis->disp2x[j])(dis->nparm[j], dis->parms[j], ncrd,
+                                     tmpcrd, &dtmp))) {
+        return wcserr_set(DIS_ERRMSG(DISERR_DISTORT));
+      }
+
+      discrd[j] = dtmp;
+
+    } else {
+      discrd[j] = rawcrd[j];
+    }
+  }
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disx2p(
+  struct disprm *dis,
+  const double discrd[],
+  double rawcrd[])
+
+{
+  static const char *function = "disx2p";
+
+  const int ITERMAX = 30;
+  const double TOL = 1.0e-13;
+
+  int convergence, iter, j, naxis, status;
+  double dd, *dcrd0, *dcrd1, *delta, residual, *rcrd1;
+  struct wcserr **err;
+
+
+  /* Initialize. */
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+  err = &(dis->err);
+
+  naxis = dis->naxis;
+
+  /* Carve up working memory, noting that disp2x() gets to it first. */
+  dcrd0 = dis->tmpmem + naxis;
+  dcrd1 = dcrd0 + naxis;
+  rcrd1 = dcrd1 + naxis;
+  delta = rcrd1 + naxis;
+
+
+  /* Zeroth approximation.  The assumption here and below is that the     */
+  /* distortion is small so that, to first order in the neighbourhood of  */
+  /* the solution, discrd[j] ~= a + b*rawcrd[j], i.e. independent of      */
+  /* rawcrd[i], where i != j.  This is effectively equivalent to assuming */
+  /* that the distortion functions are separable to first order.          */
+  /* Furthermore, a is assumed to be small, and b close to unity.         */
+  memcpy(rawcrd, discrd, naxis*sizeof(double));
+
+  /* Iteratively invert the (well behaved!) distortion function. */
+  for (iter = 0; iter < ITERMAX; iter++) {
+    if ((status = disp2x(dis, rawcrd, dcrd0))) {
+      return wcserr_set(DIS_ERRMSG(status));
+    }
+
+    /* Check for convergence. */
+    convergence = 1;
+    for (j = 0; j < naxis; j++) {
+      delta[j] = discrd[j] - dcrd0[j];
+
+      if (fabs(discrd[j]) < 1.0) {
+        dd = delta[j];
+      } else {
+        /* TOL may be below the precision achievable from floating point */
+        /* subtraction, so switch to a fractional tolerance.             */
+        dd = delta[j] / discrd[j];
+      }
+
+      if (TOL < fabs(dd)) {
+        /* No convergence yet on this axis. */
+        convergence = 0;
+      }
+    }
+
+    if (convergence) break;
+
+    /* Determine a suitable test point for computing the gradient. */
+    for (j = 0; j < naxis; j++) {
+      /* Constrain the displacement. */
+      delta[j] /= 2.0;
+      if (fabs(delta[j]) < 1.0e-6) {
+        if (delta[j] < 0.0) {
+          delta[j] = -1.0e-6;
+        } else {
+          delta[j] =  1.0e-6;
+        }
+      } else if (1.0 < fabs(delta[j])) {
+        if (delta[j] < 0.0) {
+          delta[j] = -1.0;
+        } else {
+          delta[j] =  1.0;
+        }
+      }
+    }
+
+    if (iter < ITERMAX/2) {
+      /* With the assumption of small distortions (as above), the gradient */
+      /* of discrd[j] should be dominated by the partial derivative with   */
+      /* respect  to rawcrd[j], and we can neglect partials with respect   */
+      /* to rawcrd[i], where i != j.  Thus only one test point is needed,  */
+      /* not one for each axis.                                            */
+      for (j = 0; j < naxis; j++) {
+        rcrd1[j] = rawcrd[j] + delta[j];
+      }
+
+      /* Compute discrd[] at the test point. */
+      if ((status = disp2x(dis, rcrd1, dcrd1))) {
+        return wcserr_set(DIS_ERRMSG(status));
+      }
+
+      /* Compute the next approximation. */
+      for (j = 0; j < naxis; j++) {
+        rawcrd[j] += (discrd[j] - dcrd0[j]) *
+                        (delta[j]/(dcrd1[j] - dcrd0[j]));
+      }
+
+    } else {
+      /* Convergence should not take more than seven or so iterations.  As */
+      /* it is slow, try computing the gradient in full.                   */
+      memcpy(rcrd1, rawcrd, naxis*sizeof(double));
+
+      for (j = 0; j < naxis; j++) {
+        rcrd1[j] += delta[j];
+
+        /* Compute discrd[] at the test point. */
+        if ((status = disp2x(dis, rcrd1, dcrd1))) {
+          return wcserr_set(DIS_ERRMSG(status));
+        }
+
+        /* Compute the next approximation. */
+        rawcrd[j] += (discrd[j] - dcrd0[j]) *
+                       (delta[j]/(dcrd1[j] - dcrd0[j]));
+
+        rcrd1[j] -= delta[j];
+      }
+    }
+  }
+
+
+  if (!convergence) {
+    residual = 0.0;
+    for (j = 0; j < naxis; j++) {
+      dd = discrd[j] - dcrd0[j] ;
+      residual += dd*dd;
+    }
+    residual = sqrt(residual);
+
+    return wcserr_set(WCSERR_SET(DISERR_DEDISTORT),
+      "Convergence not achieved after %d iterations, residual %#7.2g", iter,
+        residual);
+  }
+
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpvset(int j, struct disprm *dis)
+
+{
+  static const char *function = "tpvset";
+
+  int i, nparm;
+  struct wcserr **err;
+
+  if (dis == 0x0) return DISERR_NULL_POINTER;
+  err = &(dis->err);
+
+
+  /* TPV "projection". */
+  if (dis->axmap[j][0] == 0) {
+    return wcserr_set(WCSERR_SET(DISERR_BAD_PARAM),
+      "Invalid axis 1 mapping for TPV on axis %d", j);
+  }
+
+  if (dis->axmap[j][1] == 0 || dis->axmap[j][1] == dis->axmap[j][0]) {
+    return wcserr_set(WCSERR_SET(DISERR_BAD_PARAM),
+      "Invalid axis 2 mapping for TPV on axis %d", j);
+  }
+
+  for (i = 2; i < dis->naxis; i++) {
+    if (dis->axmap[j][i]) {
+      return wcserr_set(WCSERR_SET(DISERR_BAD_PARAM),
+        "Invalid axis map for TPV on axis %d, more than two entries", j);
+    }
+  }
+
+  /* Determine the degree of the polynomial. */
+  nparm = dis->nparm[j];
+  if (nparm == 4) {
+    /* First degree. */
+    dis->disp2x[j] = tpv1;
+  } else if (nparm == 7) {
+    /* Second degree. */
+    dis->disp2x[j] = tpv2;
+  } else if (nparm == 12) {
+    /* Third degree. */
+    dis->disp2x[j] = tpv3;
+  } else if (nparm == 17) {
+    /* Fourth degree. */
+    dis->disp2x[j] = tpv4;
+  } else if (nparm == 24) {
+    /* Fifth degree. */
+    dis->disp2x[j] = tpv5;
+  } else if (nparm == 31) {
+    /* Sixth degree. */
+    dis->disp2x[j] = tpv6;
+  } else if (nparm == 40) {
+    /* Seventh degree. */
+    dis->disp2x[j] = tpv7;
+  } else {
+    return wcserr_set(WCSERR_SET(DISERR_BAD_PARAM),
+      "Invalid number of parameters (%d) for TPV on axis %d", nparm, j);
+  }
+
+  /* No specialist deprojections. */
+  dis->disx2p[j] = 0x0;
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv1(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 4 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* First degree. */
+  *discrd = p[0] + u*p[1] + v*p[2] + r*p[3];
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv2(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 7 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Second degree. */
+  *discrd =
+         p[0]  + r*(p[3])
+               + v*(p[2]  + v*(p[6]))
+    + u*(p[1]  + v*(p[5])
+    + u*(p[4]));
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv3(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 12 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Third degree. */
+  *discrd =
+         p[0]  + r*(p[3]  +            s*(p[11]))
+               + v*(p[2]  + v*(p[6]  + v*(p[10])))
+    + u*(p[1]  + v*(p[5]  + v*(p[9]))
+    + u*(p[4]  + v*(p[8])
+    + u*(p[7])));
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv4(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 17 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Fourth degree. */
+  *discrd =
+         p[0]  + r*(p[3]  +            s*(p[11]))
+               + v*(p[2]  + v*(p[6]  + v*(p[10] + v*(p[16]))))
+    + u*(p[1]  + v*(p[5]  + v*(p[9]  + v*(p[15])))
+    + u*(p[4]  + v*(p[8]  + v*(p[14]))
+    + u*(p[7]  + v*(p[13])
+    + u*(p[12]))));
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv5(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 24 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Fifth degree. */
+  *discrd =
+         p[0]  + r*(p[3]  +            s*(p[11] +            s*(p[23])))
+               + v*(p[2]  + v*(p[6]  + v*(p[10] + v*(p[16] + v*(p[22])))))
+    + u*(p[1]  + v*(p[5]  + v*(p[9]  + v*(p[15] + v*(p[21]))))
+    + u*(p[4]  + v*(p[8]  + v*(p[14] + v*(p[20])))
+    + u*(p[7]  + v*(p[13] + v*(p[19]))
+    + u*(p[12] + v*(p[18])
+    + u*(p[17])))));
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv6(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 31 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Sixth degree. */
+  *discrd =
+         p[0]  + r*(p[3]  +            s*(p[11] +            s*(p[23])))
+               + v*(p[2]  + v*(p[6]  + v*(p[10] + v*(p[16] + v*(p[22] + v*(p[30]))))))
+    + u*(p[1]  + v*(p[5]  + v*(p[9]  + v*(p[15] + v*(p[21] + v*(p[29])))))
+    + u*(p[4]  + v*(p[8]  + v*(p[14] + v*(p[20] + v*(p[28]))))
+    + u*(p[7]  + v*(p[13] + v*(p[19] + v*(p[27])))
+    + u*(p[12] + v*(p[18] + v*(p[26]))
+    + u*(p[17] + v*(p[25])
+    + u*(p[24]))))));
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tpv7(
+  int nparm,
+  const double p[],
+  int ncrd,
+  const double rawcrd[],
+  double *discrd)
+
+{
+  double r, s, u, v;
+
+  if (nparm != 40 || ncrd != 2) {
+    return 1;
+  }
+
+  u = rawcrd[0];
+  v = rawcrd[1];
+  s = u*u + v*v;
+  r = sqrt(s);
+
+  /* Seventh degree. */
+  *discrd =
+         p[0]  + r*(p[3]  +            s*(p[11] +            s*(p[23] +            s*(p[39]))))
+               + v*(p[2]  + v*(p[6]  + v*(p[10] + v*(p[16] + v*(p[22] + v*(p[30] + v*(p[38])))))))
+    + u*(p[1]  + v*(p[5]  + v*(p[9]  + v*(p[15] + v*(p[21] + v*(p[29] + v*(p[37]))))))
+    + u*(p[4]  + v*(p[8]  + v*(p[14] + v*(p[20] + v*(p[28] + v*(p[36])))))
+    + u*(p[7]  + v*(p[13] + v*(p[19] + v*(p[27] + v*(p[35]))))
+    + u*(p[12] + v*(p[18] + v*(p[26] + v*(p[34])))
+    + u*(p[17] + v*(p[25] + v*(p[33]))
+    + u*(p[24] + v*(p[32])
+    + u*(p[31])))))));
+
+  return 0;
+}
diff --git a/C/dis.h b/C/dis.h
new file mode 100644
index 0000000..5b0cf36
--- /dev/null
+++ b/C/dis.h
@@ -0,0 +1,572 @@
+/*============================================================================
+
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
+  Copyright (C) 1995-2015, Mark Calabretta
+
+  This file is part of WCSLIB.
+
+  WCSLIB is free software: you can redistribute it and/or modify it under the
+  terms of the GNU Lesser General Public License as published by the Free
+  Software Foundation, either version 3 of the License, or (at your option)
+  any later version.
+
+  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+  more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+
+  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+
+  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+  http://www.atnf.csiro.au/people/Mark.Calabretta
+  $Id: dis.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
+*=============================================================================
+*
+* WCSLIB 5.0 - experimental C routines that implement proposed extensions to
+* the FITS World Coordinate System (WCS) standard.  Refer to
+*
+*   "Representations of distortions in FITS world coordinate systems",
+*   Calabretta, M.R. et al. (Paper IV), draft dated 2004/04/22 available from
+*   http://www.atnf.csiro.au/people/Mark.Calabretta
+*
+* Refer to the README file provided with WCSLIB for an overview of the
+* library.
+*
+*
+* Summary of the dis routines
+* ---------------------------
+* These routines apply the distortion functions defined by the extension to
+* the FITS WCS standard proposed in Paper IV.  They are based on the disprm
+* struct which contains all information needed for the computations.  The
+* struct contains some members that must be set by the user, and others that
+* are maintained by these routines, somewhat like a C++ class but with no
+* encapsulation.
+*
+* Four routines, disini(), disparms(), discpy(), and disfree() are provided to
+* manage the disprm struct, and another, disprt(), prints its contents.
+*
+* A setup routine, disset(), computes intermediate values in the disprm struct
+* from parameters in it that were supplied by the user.  The struct always
+* needs to be set up by disset(), though disset() need not be called
+* explicitly - refer to the explanation of disprm::flag.
+*
+* disp2x() and disx2p() implement the WCS distortion functions, disp2x() using
+* separate functions, such as tpv1(), to do the computation.
+*
+*
+* disini() - Default constructor for the disprm struct
+* ----------------------------------------------------
+* disini() allocates memory for arrays in a disprm struct and sets all members
+* of the struct to default values.
+*
+* In general, different distortion functions may be associated with each axis,
+* and at the point where disini() is invoked, it is usually not known how many
+* distortion parameters may be required for each.  Hence a separate routine,
+* disparms(), is provided to allocate memory for the parameter arrays if
+* desired.  One way or the other, after invoking disini(), it is the caller's
+* responsibility to allocate memory (if necessary) for the distortion
+* parameters.  If disparms() is used for this purpose, then disfree() will
+* free it and subsequent calls to disini() will manage it, e.g. if naxis
+* changes.  Of course, if there is no distortion function on an axis then
+* there is no need to allocate memory for any parameters.
+*
+* PLEASE NOTE: every disprm struct must be initialized by disini(), possibly
+* repeatedly.  On the first invokation, and only the first invokation,
+* disprm::flag must be set to -1 to initialize memory management, regardless
+* of whether disini() will actually be used to allocate memory.
+*
+* Given:
+*   alloc     int       If true, allocate memory unconditionally for arrays in
+*                       the disprm struct.
+*
+*                       If false, it is assumed that pointers to these arrays
+*                       have been set by the user except if they are null
+*                       pointers in which case memory will be allocated for
+*                       them regardless.  (In other words, setting alloc true
+*                       saves having to initalize these pointers to zero.)
+*
+*   naxis     int       The number of world coordinate axes, used to determine
+*                       array sizes.
+*
+* Given and returned:
+*   dis       struct disprm*
+*                       Distortion function parameters.  Note that, in order
+*                       to initialize memory management disprm::flag must be
+*                       set to -1 when dis is initialized for the first time
+*                       (memory leaks may result if it had already been
+*                       initialized).
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* disparms() - Allocate memory for parameters in a disprm struct
+* --------------------------------------------------------------
+* disparms() allocates memory for the arrays of distortion function parameters
+* in a disprm struct.  It relies on disprm::nparm[] having been set to
+* determine the number of parameters for each distortion function.  The
+* allocated memory will be freed by disfree().
+*
+* Given and returned:
+*   dis       struct disprm*
+*                       disprm::nparm[] is used to determine the number of
+*                       parameters in each distortion function.  Memory is
+*                       allocated for the distortion function parameters,
+*                       disprm::parms[][], and it is initialized to zero.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* discpy() - Copy routine for the disprm struct
+* ---------------------------------------------
+* discpy() does a deep copy of one disprm struct to another, using disini() to
+* allocate memory unconditionally for its arrays if required.  Only the
+* "information to be provided" part of the struct is copied; a call to
+* disset() is required to initialize the remainder.
+*
+* Given:
+*   alloc     int       If true, allocate memory unconditionally for arrays in
+*                       the destination, including the parameter array via a
+*                       call to disparms().  Otherwise, it is assumed that
+*                       pointers to these arrays have been set by the user
+*                       except if they are null pointers in which case memory
+*                       will be allocated for them regardless.
+*
+*   dissrc    const struct disprm*
+*                       Struct to copy from.
+*
+* Given and returned:
+*   disdst    struct disprm*
+*                       Struct to copy to.  disprm::flag should be set to -1
+*                       if disdst was not previously initialized (memory leaks
+*                       may result if it was previously initialized).
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* disfree() - Destructor for the disprm struct
+* --------------------------------------------
+* disfree() frees memory allocated for the disprm arrays by disini() and/or
+* disparms().  disini() and disparms() keep a record of the memory they
+* allocate and disfree() will only attempt to free this.
+*
+* PLEASE NOTE: disfree() must not be invoked on a disprm struct that was not
+* initialized by disini().
+*
+* Given:
+*   dis       struct disprm*
+*                       Distortion function parameters.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*
+*
+* disprt() - Print routine for the disprm struct
+* ----------------------------------------------
+* disprt() prints the contents of a disprm struct using wcsprintf().  Mainly
+* intended for diagnostic purposes.
+*
+* Given:
+*   dis       const struct disprm*
+*                       Distortion function parameters.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*
+*
+* disset() - Setup routine for the disprm struct
+* ----------------------------------------------
+* disset(), sets up the disprm struct according to information supplied within
+* it - refer to the explanation of disprm::flag.
+*
+* Note that this routine need not be called directly; it will be invoked by
+* disp2x() and disx2p() if the disprm::flag is anything other than a
+* predefined magic value.
+*
+* Given and returned:
+*   dis       struct disprm*
+*                       Distortion function parameters.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*                         3: Invalid parameter.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* disp2x() - Apply distortion function
+* ------------------------------------
+* disp2x() applies the distortion functions.  By definition, the distortion
+* is in the pixel-to-world direction.
+*
+* Depending on the point in the algorithm chain at which it is invoked,
+* disp2x() may transform pixel coordinates to corrected pixel coordinates, or
+* intermediate pixel coordinates to corrected intermediate pixel coordinates,
+* or image coordinates to corrected image coordinates.
+*
+*
+* Given and returned:
+*   dis       struct disprm*
+*                       Distortion function parameters.
+*
+* Given:
+*   rawcrd    const double[]
+*                       Array of coordinates.
+*
+* Returned:
+*   discrd    double[]  Array of coordinates to which the distortion functions
+*                       have been applied.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*                         3: Invalid parameter.
+*                         4: Distort error.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* disx2p() - Apply de-distortion function
+* ---------------------------------------
+* disx2p() applies the inverse of the distortion functions.  By definition,
+* the de-distortion is in the world-to-pixel direction.
+*
+* Depending on the point in the algorithm chain at which it is invoked,
+* disx2p() may transform corrected pixel coordinates to pixel coordinates, or
+* corrected intermediate pixel coordinates to intermediate pixel coordinates,
+* or corrected image coordinates to image coordinates.
+*
+* disx2p() iteratively solves for the inverse using disp2x().  It assumes
+* that the distortion is small and the functions are well-behaved, being
+* continuous and with continuous derivatives.  Also that, to first order
+* in the neighbourhood of the solution, discrd[j] ~= a + b*rawcrd[j], i.e.
+* independent of rawcrd[i], where i != j.  This is effectively equivalent to
+* assuming that the distortion functions are separable to first order.
+* Furthermore, a is assumed to be small, and b close to unity.
+*
+* Given and returned:
+*   dis       struct disprm*
+*                       Distortion function parameters.
+*
+* Given:
+*   discrd    const double[]
+*                       Array of coordinates.
+*
+* Returned:
+*   rawcrd    double[]  Array of coordinates to which the inverse distortion
+*                       functions have been applied.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null disprm pointer passed.
+*                         2: Memory allocation failed.
+*                         3: Invalid parameter.
+*                         5: De-distort error.
+*
+*                       For returns > 1, a detailed error message is set in
+*                       disprm::err if enabled, see wcserr_enable().
+*
+*
+* disprm struct - Distortion parameters
+* -------------------------------------
+* The disprm struct contains all of the information required to apply a set of
+* distortion functions.  It consists of certain members that must be set by
+* the user ("given") and others that are set by the WCSLIB routines
+* ("returned").
+*
+*   int flag
+*     (Given and returned) This flag must be set to zero whenever any of the
+*     following members of the disprm struct are set or modified:
+*
+*       - disprm::naxis,
+*       - disprm::dtype,
+*       - disprm::axmap,
+*       - disprm::nparm,
+*       - disprm::parms.
+*
+*     This signals the initialization routine, disset(), to recompute the
+*     returned members of the disprm struct.  disset() will reset flag to
+*     indicate that this has been done.
+*
+*     PLEASE NOTE: flag must be set to -1 when disini() is called for the
+*     first time for a particular disprm struct in order to initialize memory
+*     management.  It must ONLY be used on the first initialization otherwise
+*     memory leaks may result.
+*
+*   int naxis
+*     (Given or returned) Number of pixel and world coordinate elements.
+*
+*     If disini() is used to initialize the disprm struct (as would normally
+*     be the case) then it will set naxis from the value passed to it as a
+*     function argument.  The user should not subsequently modify it.
+*
+*   char (*dtype)[16]
+*     (Given) Pointer to the first element of an array of char[16] containing
+*     the name of the distortion function for each axis.
+*
+*   int **axmap
+*     (Given) Pointer to the first element of an array of int* containing
+*     pointers to the first elements of the axis mapping arrays for each axis.
+*
+*     An axis mapping associates the independent variables of a distortion
+*     function with the 1-relative image axis number.  For example, consider
+*     an image with a spectrum on the first axis, followed by RA, Dec, and
+*     time axes.  For a distortion in (RA,Dec) and no distortion on the
+*     spectral or time axes, the axis mapping arrays, axmap[j][], would be
+*
+=       j=0: [0, 0, 0, 0]   ...no  distortion on spectral axis,
+=         1: [2, 3, 0, 0]   ...RA  distortion depends on RA and Dec,
+=         2: [3, 2, 0, 0]   ...Dec distortion depends on Dec and RA,
+=         3: [0, 0, 0, 0]   ...no  distortion on time axis,
+*
+*     where zero indicates that there is no corresponding independent
+*     variable.
+*
+*   double **offset
+*     (Given) Pointer to the first element of an array of double* containing
+*     an offset used to renormalize the independent variables of the
+*     distortion function for each axis.
+*
+*     The offsets are subtracted from the independent variables before
+*     scaling.
+*
+*     It is not necessary to reset the disprm struct (via disset()) when
+*     disprm::offset is changed.
+*
+*   double **scale
+*     (Given) Pointer to the first element of an array of double* containing
+*     a scale used to renormalize the independent variables of the distortion
+*     function for each axis.
+*
+*     The scale is applied to the independent variables after the offsets are
+*     subtracted.
+*
+*     It is not necessary to reset the disprm struct (via disset()) when
+*     disprm::scale is changed.
+*
+*   int *nparm
+*     (Given) Pointer to the first element of an array of int containing the
+*     number of distortion parameters for each axis.
+*
+*     The number of parameters specified must satisfy the requirements of the
+*     particular distortion function.  For example, the polynomial distortion
+*     associated with the TPV "projection" must have a number that corresponds
+*     to the degree of the polynomial:
+*
+=       Degree 1:   4
+=              2:   7
+=              3:  12
+=              4:  17
+=              5:  24
+=              6:  31
+=              7:  40
+*
+*   double **parms
+*     (Given) Pointer to the first element of an array of double* containing
+*     pointers to the first elements of the arrays of distortion parameters
+*     for each axis.
+*
+*     disparms() may be used to allocate memory for these arrays.
+*
+*   double *maxdis
+*     (Given) Pointer to the first element of an array of double specifying
+*     the maximum absolute value of the distortion for each axis computed over
+*     the whole image.
+*
+*     It is not necessary to reset the disprm struct (via disset()) when
+*     disprm::maxdis is changed.
+*
+*   double totdis
+*     (Given) The maximum absolute value of the combination of all distortion
+*     functions specified as an offset in pixel coordinates computed over the
+*     whole image.
+*
+*     It is not necessary to reset the disprm struct (via disset()) when
+*     disprm::totdis is changed.
+*
+*   struct wcserr *err
+*     (Returned) If enabled, when an error status is returned, this struct
+*     contains detailed information about the error, see wcserr_enable().
+*
+*   int (**disp2x)(DISP2X_ARGS)
+*     (For internal use only.)
+*   int (**disx2p)(DISX2P_ARGS)
+*     (For internal use only.)
+*   double *tmpmem
+*     (For internal use only.)
+*   int **iwrk
+*     (For internal use only.)
+*   double **dwrk
+*     (For internal use only.)
+*   int m_flag
+*     (For internal use only.)
+*   int m_naxis
+*     (For internal use only.)
+*   char (*m_dtype)[16]
+*     (For internal use only.)
+*   int **m_axmap
+*     (For internal use only.)
+*   double **m_offset
+*     (For internal use only.)
+*   double **m_scale
+*     (For internal use only.)
+*   int *m_nparm
+*     (For internal use only.)
+*   double **m_parms
+*     (For internal use only.)
+*   double *m_maxdis
+*     (For internal use only.)
+*   int m_alloc
+*     (For internal use only.)
+*   int m_padding
+*     (For internal use only.)
+*
+*
+* Global variable: const char *dis_errmsg[] - Status return messages
+* ------------------------------------------------------------------
+* Error messages to match the status value returned from each function.
+*
+*===========================================================================*/
+
+#ifndef WCSLIB_DIS
+#define WCSLIB_DIS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern const char *dis_errmsg[];
+
+enum dis_errmsg_enum {
+  DISERR_SUCCESS      = 0,	/* Success. */
+  DISERR_NULL_POINTER = 1,	/* Null disprm pointer passed. */
+  DISERR_MEMORY       = 2,	/* Memory allocation failed. */
+  DISERR_BAD_PARAM    = 3,	/* Invalid parameter value. */
+  DISERR_DISTORT      = 4,	/* Distortion error. */
+  DISERR_DEDISTORT    = 5	/* De-distortion error. */
+};
+
+/* For use in declaring distortion function prototypes. */
+#define DISP2X_ARGS int nparm, const double parms[], int ncrd, \
+const double rawcrd[], double *discrd
+
+/* For use in declaring de-distortion function prototypes. */
+#define DISX2P_ARGS int nparm, const double parms[], int ncrd, \
+const double discrd[], double rawcrd[]
+
+
+struct disprm {
+  /* Initialization flag (see the prologue above).                          */
+  /*------------------------------------------------------------------------*/
+  int flag;			/* Set to zero to force initialization.     */
+
+  /* Parameters to be provided (see the prologue above).                    */
+  /*------------------------------------------------------------------------*/
+  int naxis;			/* The number of pixel coordinate elements, */
+				/* given by NAXIS.                          */
+  char   (*dtype)[16];		/* For each axis, the distortion type.      */
+  int    **axmap;		/* For each axis, the axis mapping array.   */
+  double **offset;		/* For each axis, renormalization offset.   */
+  double **scale;		/* For each axis, renormalization scale.    */
+  int    *nparm;		/* For each axis, the number of distortion  */
+				/* parameters.                              */
+  double **parms;		/* For each axis, the array of distortion   */
+				/* parameters.                              */
+  double *maxdis;		/* For each axis, the maximum distortion.   */
+  double totdis;		/* The maximum combined distortion.         */
+
+  /* Error handling, if enabled.                                            */
+  /*------------------------------------------------------------------------*/
+  struct wcserr *err;
+
+  /* Private - the remainder are for internal use.                          */
+  /*------------------------------------------------------------------------*/
+  int (**disp2x)(DISP2X_ARGS);	/* For each axis, pointers to the           */
+  int (**disx2p)(DISX2P_ARGS);	/* distortion function and its inverse.     */
+
+  double *tmpmem;
+  double **iwrk;
+  double **dwrk;
+
+  int    m_flag, m_naxis;	/* The remainder are for memory management. */
+  char   (*m_dtype)[16];
+  int    **m_axmap;
+  double **m_offset, **m_scale;
+  int    *m_nparm;
+  double **m_parms;
+  double *m_maxdis;
+  int    m_alloc, m_padding;
+};
+
+/* Size of the disprm struct in int units, used by the Fortran wrappers. */
+#define DISLEN (sizeof(struct disprm)/sizeof(int))
+
+
+int disini(int alloc, int naxis, struct disprm *dis);
+
+int disparms(struct disprm *dis);
+
+int discpy(int alloc, const struct disprm *dissrc, struct disprm *disdst);
+
+int disfree(struct disprm *dis);
+
+int disprt(const struct disprm *dis);
+
+int disset(struct disprm *dis);
+
+int disp2x(struct disprm *dis, const double rawcrd[], double discrd[]);
+
+int disx2p(struct disprm *dis, const double discrd[], double rawcrd[]);
+
+
+/* Specialist distortion functions (internal use only). */
+int tpvset(int j, struct disprm *dis);
+int tpv1(DISP2X_ARGS);
+int tpv2(DISP2X_ARGS);
+int tpv3(DISP2X_ARGS);
+int tpv4(DISP2X_ARGS);
+int tpv5(DISP2X_ARGS);
+int tpv6(DISP2X_ARGS);
+int tpv7(DISP2X_ARGS);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WCSLIB_DIS */
diff --git a/C/fitshdr.h b/C/fitshdr.h
index 6c4c50d..41c4734 100644
--- a/C/fitshdr.h
+++ b/C/fitshdr.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: fitshdr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: fitshdr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * The Flexible Image Transport System (FITS), a data format widely used in
@@ -249,7 +249,7 @@
 *
 *   int type
 *     (Returned) Keyvalue data type:
-*       - 0: No keyvalue.
+*       - 0: No keyvalue (both the value and type are undefined).
 *       - 1: Logical, represented as int.
 *       - 2: 32-bit signed integer.
 *       - 3: 64-bit signed integer (see below).
diff --git a/C/fitshdr.l b/C/fitshdr.l
index 499535e..53a059f 100644
--- a/C/fitshdr.l
+++ b/C/fitshdr.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: fitshdr.l,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: fitshdr.l,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * fitshdr.l is a Flex description file containing a lexical scanner
@@ -61,7 +61,7 @@ INT32	[+-]?0*[0-9]{1,9}
 INT64	[+-]?0*[0-9]{10,18}
 INTVL	[+-]?0*[0-9]{19,}
 INTEGER	[+-]?[0-9]+
-FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?
+FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eEdD][+-]?[0-9]+)?
 ICOMPLX	\(" "*{INTEGER}" "*," "*{INTEGER}" "*\)
 FCOMPLX	\(" "*{FLOAT}" "*," "*{FLOAT}" "*\)
 STRING	'([^']|'')*'
diff --git a/C/flexed/fitshdr.c b/C/flexed/fitshdr.c
index e83f6c6..6124da7 100644
--- a/C/flexed/fitshdr.c
+++ b/C/flexed/fitshdr.c
@@ -903,12 +903,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,   62,  -30,   63,   64,
        64,   64,   64,   64,   64,   64,   64,   64,  -30,  -30,
-      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   65,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   65,   65,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
 
-      -30,   65,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+       65,   65,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30
     },
@@ -920,12 +920,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
       -31,  -31,  -31,  -31,  -31,  -31,   62,  -31,   66,   66,
        66,   66,   66,   66,   66,   66,   66,   66,  -31,  -31,
-      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,   65,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,   65,   65,
 
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
-      -31,   65,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+       65,   65,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
       -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31
     },
@@ -1370,12 +1370,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -57,  -57,   87,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,   88,  -57,   89,  -57,   90,   90,
        90,   90,   90,   90,   90,   90,   90,   90,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,   91,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,   91,   91,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
 
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,   91,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+       91,   91,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
     },
@@ -1405,11 +1405,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,   62,  -59,   63,   64,
        64,   64,   64,   64,   64,   64,   64,   64,  -59,  -59,
-      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   65,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   65,   65,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
-      -59,   65,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+       65,   65,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59
 
@@ -1422,12 +1422,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,   62,  -60,   66,   66,
        66,   66,   66,   66,   66,   66,   66,   66,  -60,  -60,
-      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,   65,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,   65,   65,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
 
-      -60,   65,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+       65,   65,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60
     },
@@ -1439,12 +1439,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,   61,   61,
        61,   61,   61,   61,   61,   61,   61,   61,  -61,  -61,
-      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,   65,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,   65,   65,
 
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,   65,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+       65,   65,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61
     },
@@ -1457,11 +1457,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,   92,   92,
        92,   92,   92,   92,   92,   92,   92,   92,  -62,  -62,
-      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,   65,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,   65,   65,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
-      -62,   65,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+       65,   65,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
       -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62
     },
@@ -1474,11 +1474,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,   62,  -63,   93,   94,
        94,   94,   94,   94,   94,   94,   94,   94,  -63,  -63,
-      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,   65,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,   65,   65,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
-      -63,   65,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+       65,   65,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
 
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
       -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63
@@ -1491,12 +1491,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,   62,  -64,   95,   95,
        95,   95,   95,   95,   95,   95,   95,   95,  -64,  -64,
-      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,   65,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,   65,   65,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
 
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
-      -64,   65,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+       65,   65,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64
     },
@@ -1526,11 +1526,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,   62,  -66,   98,   98,
        98,   98,   98,   98,   98,   98,   98,   98,  -66,  -66,
-      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,   65,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,   65,   65,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
-      -66,   65,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+       65,   65,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
 
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66
@@ -1872,11 +1872,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -86,  -86,  110,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  111,  -86,  -86,  -86,   86,   86,
        86,   86,   86,   86,   86,   86,   86,   86,  -86,  -86,
-      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,   91,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,   91,   91,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
-      -86,   91,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+       91,   91,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
 
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86
@@ -1924,11 +1924,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -89,  -89,  110,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  111,  -89,  -89,  -89,  116,  116,
       116,  116,  116,  116,  116,  116,  116,  116,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,   91,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,   91,   91,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,   91,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+       91,   91,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89
 
@@ -1941,12 +1941,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -90,  -90,   87,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,   88,  -90,   89,  -90,   90,   90,
        90,   90,   90,   90,   90,   90,   90,   90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,   91,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,   91,   91,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
 
-      -90,   91,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+       91,   91,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90
     },
@@ -1976,11 +1976,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,   92,   92,
        92,   92,   92,   92,   92,   92,   92,   92,  -92,  -92,
-      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,   65,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,   65,   65,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-      -92,   65,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+       65,   65,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92
     },
@@ -1993,11 +1993,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,   62,  -93,  119,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,   65,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,   65,   65,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,   65,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+       65,   65,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
 
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93
@@ -2010,12 +2010,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,   62,  -94,  121,  121,
       121,  121,  121,  121,  121,  121,  121,  121,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,   65,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,   65,   65,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
 
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,   65,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+       65,   65,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94
     },
@@ -2028,11 +2028,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -95,  -95,  -95,  -95,  -95,  -95,   62,  -95,  122,  122,
 
       122,  122,  122,  122,  122,  122,  122,  122,  -95,  -95,
-      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,   65,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,   65,   65,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,   65,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+       65,   65,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95
     },
@@ -2080,11 +2080,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -98,  -98,  -98,  -98,  -98,  -98,   62,  -98,  123,  123,
       123,  123,  123,  123,  123,  123,  123,  123,  -98,  -98,
 
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,   65,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,   65,   65,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,   65,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+       65,   65,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98
     },
@@ -2374,11 +2374,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -115,  140, -115, -115, -115, -115,  141, -115,  142,  142,
 
       142,  142,  142,  142,  142,  142,  142,  142, -115, -115,
-     -115, -115, -115, -115, -115, -115, -115, -115, -115,  143,
+     -115, -115, -115, -115, -115, -115, -115, -115,  143,  143,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115,  143, -115, -115, -115, -115, -115, -115, -115, -115,
+      143,  143, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115
     },
@@ -2391,11 +2391,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -116, -116,  110, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116,  111, -116, -116, -116,  116,  116,
       116,  116,  116,  116,  116,  116,  116,  116, -116, -116,
-     -116, -116, -116, -116, -116, -116, -116, -116, -116,   91,
+     -116, -116, -116, -116, -116, -116, -116, -116,   91,   91,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116,   91, -116, -116, -116, -116, -116, -116, -116, -116,
+       91,   91, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
 
      -116, -116, -116, -116, -116, -116, -116, -116
@@ -2443,11 +2443,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119,   62, -119,  144,  145,
       145,  145,  145,  145,  145,  145,  145,  145, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119,   65,
+     -119, -119, -119, -119, -119, -119, -119, -119,   65,   65,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119,   65, -119, -119, -119, -119, -119, -119, -119, -119,
+       65,   65, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119
 
@@ -2460,12 +2460,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120,   62, -120,  146,  146,
       146,  146,  146,  146,  146,  146,  146,  146, -120, -120,
-     -120, -120, -120, -120, -120, -120, -120, -120, -120,   65,
+     -120, -120, -120, -120, -120, -120, -120, -120,   65,   65,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
 
-     -120,   65, -120, -120, -120, -120, -120, -120, -120, -120,
+       65,   65, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120
     },
@@ -2477,12 +2477,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121,   62, -121,  147,  147,
       147,  147,  147,  147,  147,  147,  147,  147, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121,   65,
+     -121, -121, -121, -121, -121, -121, -121, -121,   65,   65,
 
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121,   65, -121, -121, -121, -121, -121, -121, -121, -121,
+       65,   65, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121
     },
@@ -2495,11 +2495,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -122, -122, -122, -122, -122, -122,   62, -122,  148,  148,
       148,  148,  148,  148,  148,  148,  148,  148, -122, -122,
-     -122, -122, -122, -122, -122, -122, -122, -122, -122,   65,
+     -122, -122, -122, -122, -122, -122, -122, -122,   65,   65,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-     -122,   65, -122, -122, -122, -122, -122, -122, -122, -122,
+       65,   65, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122
     },
@@ -2512,11 +2512,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123,   62, -123,  149,  149,
       149,  149,  149,  149,  149,  149,  149,  149, -123, -123,
-     -123, -123, -123, -123, -123, -123, -123, -123, -123,   65,
+     -123, -123, -123, -123, -123, -123, -123, -123,   65,   65,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123,   65, -123, -123, -123, -123, -123, -123, -123, -123,
+       65,   65, -123, -123, -123, -123, -123, -123, -123, -123,
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123
@@ -2754,12 +2754,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -137, -137,  162, -137, -137, -137, -137, -137, -137, -137,
      -137,  163, -137, -137, -137, -137,  141, -137,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137,  143,
+     -137, -137, -137, -137, -137, -137, -137, -137,  143,  143,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
 
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137,  143, -137, -137, -137, -137, -137, -137, -137, -137,
+      143,  143, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137
     },
@@ -2772,11 +2772,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -138,  163, -138, -138, -138, -138, -138, -138,  138,  138,
       138,  138,  138,  138,  138,  138,  138,  138, -138, -138,
 
-     -138, -138, -138, -138, -138, -138, -138, -138, -138,  143,
+     -138, -138, -138, -138, -138, -138, -138, -138,  143,  143,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138,  143, -138, -138, -138, -138, -138, -138, -138, -138,
+      143,  143, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138
     },
@@ -2823,12 +2823,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -141, -141,  162, -141, -141, -141, -141, -141, -141, -141,
      -141,  163, -141, -141, -141, -141, -141, -141,  165,  165,
       165,  165,  165,  165,  165,  165,  165,  165, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141,  143,
+     -141, -141, -141, -141, -141, -141, -141, -141,  143,  143,
 
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141,  143, -141, -141, -141, -141, -141, -141, -141, -141,
+      143,  143, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141
     },
@@ -2841,11 +2841,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -142,  140, -142, -142, -142, -142,  141, -142,  142,  142,
       142,  142,  142,  142,  142,  142,  142,  142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142,  143,
+     -142, -142, -142, -142, -142, -142, -142, -142,  143,  143,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142,  143, -142, -142, -142, -142, -142, -142, -142, -142,
+      143,  143, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142
     },
@@ -2875,12 +2875,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144,   62, -144,  168,  169,
       169,  169,  169,  169,  169,  169,  169,  169, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144,   65,
+     -144, -144, -144, -144, -144, -144, -144, -144,   65,   65,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
 
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144,   65, -144, -144, -144, -144, -144, -144, -144, -144,
+       65,   65, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
      -144, -144, -144, -144, -144, -144, -144, -144
     },
@@ -2893,11 +2893,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -145, -145, -145, -145, -145, -145,   62, -145,  170,  170,
 
       170,  170,  170,  170,  170,  170,  170,  170, -145, -145,
-     -145, -145, -145, -145, -145, -145, -145, -145, -145,   65,
+     -145, -145, -145, -145, -145, -145, -145, -145,   65,   65,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-     -145,   65, -145, -145, -145, -145, -145, -145, -145, -145,
+       65,   65, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145
     },
@@ -2910,11 +2910,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
      -146, -146, -146, -146, -146, -146,   62, -146,  171,  171,
       171,  171,  171,  171,  171,  171,  171,  171, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146,   65,
+     -146, -146, -146, -146, -146, -146, -146, -146,   65,   65,
      -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
      -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
      -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146,   65, -146, -146, -146, -146, -146, -146, -146, -146,
+       65,   65, -146, -146, -146, -146, -146, -146, -146, -146,
      -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
 
      -146, -146, -146, -146, -146, -146, -146, -146
@@ -2927,12 +2927,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147,   62, -147,  172,  172,
       172,  172,  172,  172,  172,  172,  172,  172, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147,   65,
+     -147, -147, -147, -147, -147, -147, -147, -147,   65,   65,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
 
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147,   65, -147, -147, -147, -147, -147, -147, -147, -147,
+       65,   65, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
      -147, -147, -147, -147, -147, -147, -147, -147
     },
@@ -2945,11 +2945,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -148, -148, -148, -148, -148, -148,   62, -148,  173,  173,
       173,  173,  173,  173,  173,  173,  173,  173, -148, -148,
 
-     -148, -148, -148, -148, -148, -148, -148, -148, -148,   65,
+     -148, -148, -148, -148, -148, -148, -148, -148,   65,   65,
      -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
      -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
      -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148,   65, -148, -148, -148, -148, -148, -148, -148, -148,
+       65,   65, -148, -148, -148, -148, -148, -148, -148, -148,
      -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
      -148, -148, -148, -148, -148, -148, -148, -148
     },
@@ -2962,11 +2962,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149,   62, -149,  174,  174,
       174,  174,  174,  174,  174,  174,  174,  174, -149, -149,
-     -149, -149, -149, -149, -149, -149, -149, -149, -149,   65,
+     -149, -149, -149, -149, -149, -149, -149, -149,   65,   65,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-     -149,   65, -149, -149, -149, -149, -149, -149, -149, -149,
+       65,   65, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149
 
@@ -3221,12 +3221,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -164, -164,  162, -164, -164, -164, -164, -164, -164, -164,
      -164,  163, -164, -164, -164, -164,  141, -164,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164, -164, -164,
-     -164, -164, -164, -164, -164, -164, -164, -164, -164,  143,
+     -164, -164, -164, -164, -164, -164, -164, -164,  143,  143,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
 
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-     -164,  143, -164, -164, -164, -164, -164, -164, -164, -164,
+      143,  143, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164
     },
@@ -3239,11 +3239,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -165,  163, -165, -165, -165, -165, -165, -165,  165,  165,
 
       165,  165,  165,  165,  165,  165,  165,  165, -165, -165,
-     -165, -165, -165, -165, -165, -165, -165, -165, -165,  143,
+     -165, -165, -165, -165, -165, -165, -165, -165,  143,  143,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-     -165,  143, -165, -165, -165, -165, -165, -165, -165, -165,
+      143,  143, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165
     },
@@ -3291,11 +3291,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -168, -168, -168, -168, -168, -168,   62, -168,  187,  188,
       188,  188,  188,  188,  188,  188,  188,  188, -168, -168,
 
-     -168, -168, -168, -168, -168, -168, -168, -168, -168,   65,
+     -168, -168, -168, -168, -168, -168, -168, -168,   65,   65,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168,   65, -168, -168, -168, -168, -168, -168, -168, -168,
+       65,   65, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168
     },
@@ -3308,11 +3308,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169,   62, -169,  189,  189,
       189,  189,  189,  189,  189,  189,  189,  189, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169,   65,
+     -169, -169, -169, -169, -169, -169, -169, -169,   65,   65,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169,   65, -169, -169, -169, -169, -169, -169, -169, -169,
+       65,   65, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169
 
@@ -3325,12 +3325,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170,   62, -170,  190,  190,
       190,  190,  190,  190,  190,  190,  190,  190, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170,   65,
+     -170, -170, -170, -170, -170, -170, -170, -170,   65,   65,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
 
-     -170,   65, -170, -170, -170, -170, -170, -170, -170, -170,
+       65,   65, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170
     },
@@ -3342,12 +3342,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171,   62, -171,  191,  191,
       191,  191,  191,  191,  191,  191,  191,  191, -171, -171,
-     -171, -171, -171, -171, -171, -171, -171, -171, -171,   65,
+     -171, -171, -171, -171, -171, -171, -171, -171,   65,   65,
 
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-     -171,   65, -171, -171, -171, -171, -171, -171, -171, -171,
+       65,   65, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171
     },
@@ -3360,11 +3360,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -172, -172, -172, -172, -172, -172,   62, -172,  192,  192,
       192,  192,  192,  192,  192,  192,  192,  192, -172, -172,
-     -172, -172, -172, -172, -172, -172, -172, -172, -172,   65,
+     -172, -172, -172, -172, -172, -172, -172, -172,   65,   65,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172,   65, -172, -172, -172, -172, -172, -172, -172, -172,
+       65,   65, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172
     },
@@ -3377,11 +3377,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173,   62, -173,  193,  193,
       193,  193,  193,  193,  193,  193,  193,  193, -173, -173,
-     -173, -173, -173, -173, -173, -173, -173, -173, -173,   65,
+     -173, -173, -173, -173, -173, -173, -173, -173,   65,   65,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173,   65, -173, -173, -173, -173, -173, -173, -173, -173,
+       65,   65, -173, -173, -173, -173, -173, -173, -173, -173,
 
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173
@@ -3394,12 +3394,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174,   62, -174,  194,  194,
       194,  194,  194,  194,  194,  194,  194,  194, -174, -174,
-     -174, -174, -174, -174, -174, -174, -174, -174, -174,   65,
+     -174, -174, -174, -174, -174, -174, -174, -174,   65,   65,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
 
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174,   65, -174, -174, -174, -174, -174, -174, -174, -174,
+       65,   65, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174
     },
@@ -3619,12 +3619,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187,   62, -187,  201,  202,
       202,  202,  202,  202,  202,  202,  202,  202, -187, -187,
-     -187, -187, -187, -187, -187, -187, -187, -187, -187,   65,
+     -187, -187, -187, -187, -187, -187, -187, -187,   65,   65,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
 
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187,   65, -187, -187, -187, -187, -187, -187, -187, -187,
+       65,   65, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187
     },
@@ -3637,11 +3637,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -188, -188, -188, -188, -188, -188,   62, -188,  203,  203,
       203,  203,  203,  203,  203,  203,  203,  203, -188, -188,
 
-     -188, -188, -188, -188, -188, -188, -188, -188, -188,   65,
+     -188, -188, -188, -188, -188, -188, -188, -188,   65,   65,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188,   65, -188, -188, -188, -188, -188, -188, -188, -188,
+       65,   65, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188
     },
@@ -3654,11 +3654,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189,   62, -189,  204,  204,
       204,  204,  204,  204,  204,  204,  204,  204, -189, -189,
-     -189, -189, -189, -189, -189, -189, -189, -189, -189,   65,
+     -189, -189, -189, -189, -189, -189, -189, -189,   65,   65,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-     -189,   65, -189, -189, -189, -189, -189, -189, -189, -189,
+       65,   65, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189
 
@@ -3671,12 +3671,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190,   62, -190,  205,  205,
       205,  205,  205,  205,  205,  205,  205,  205, -190, -190,
-     -190, -190, -190, -190, -190, -190, -190, -190, -190,   65,
+     -190, -190, -190, -190, -190, -190, -190, -190,   65,   65,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
 
-     -190,   65, -190, -190, -190, -190, -190, -190, -190, -190,
+       65,   65, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190
     },
@@ -3688,12 +3688,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191,   62, -191,  206,  206,
       206,  206,  206,  206,  206,  206,  206,  206, -191, -191,
-     -191, -191, -191, -191, -191, -191, -191, -191, -191,   65,
+     -191, -191, -191, -191, -191, -191, -191, -191,   65,   65,
 
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-     -191,   65, -191, -191, -191, -191, -191, -191, -191, -191,
+       65,   65, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191
     },
@@ -3706,11 +3706,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -192, -192, -192, -192, -192, -192,   62, -192,  207,  207,
       207,  207,  207,  207,  207,  207,  207,  207, -192, -192,
-     -192, -192, -192, -192, -192, -192, -192, -192, -192,   65,
+     -192, -192, -192, -192, -192, -192, -192, -192,   65,   65,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192,   65, -192, -192, -192, -192, -192, -192, -192, -192,
+       65,   65, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192
     },
@@ -3723,11 +3723,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193,   62, -193,  208,  208,
       208,  208,  208,  208,  208,  208,  208,  208, -193, -193,
-     -193, -193, -193, -193, -193, -193, -193, -193, -193,   65,
+     -193, -193, -193, -193, -193, -193, -193, -193,   65,   65,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193,   65, -193, -193, -193, -193, -193, -193, -193, -193,
+       65,   65, -193, -193, -193, -193, -193, -193, -193, -193,
 
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193
@@ -3740,12 +3740,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194,   62, -194,  209,  209,
       209,  209,  209,  209,  209,  209,  209,  209, -194, -194,
-     -194, -194, -194, -194, -194, -194, -194, -194, -194,   65,
+     -194, -194, -194, -194, -194, -194, -194, -194,   65,   65,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
 
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194,   65, -194, -194, -194, -194, -194, -194, -194, -194,
+       65,   65, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194
     },
@@ -3861,12 +3861,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201,   62, -201,  216,  217,
       217,  217,  217,  217,  217,  217,  217,  217, -201, -201,
-     -201, -201, -201, -201, -201, -201, -201, -201, -201,   65,
+     -201, -201, -201, -201, -201, -201, -201, -201,   65,   65,
 
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-     -201,   65, -201, -201, -201, -201, -201, -201, -201, -201,
+       65,   65, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201
     },
@@ -3879,11 +3879,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -202, -202, -202, -202, -202, -202,   62, -202,  218,  218,
       218,  218,  218,  218,  218,  218,  218,  218, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202,   65,
+     -202, -202, -202, -202, -202, -202, -202, -202,   65,   65,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202,   65, -202, -202, -202, -202, -202, -202, -202, -202,
+       65,   65, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202
     },
@@ -3896,11 +3896,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203,   62, -203,  219,  219,
       219,  219,  219,  219,  219,  219,  219,  219, -203, -203,
-     -203, -203, -203, -203, -203, -203, -203, -203, -203,   65,
+     -203, -203, -203, -203, -203, -203, -203, -203,   65,   65,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203,   65, -203, -203, -203, -203, -203, -203, -203, -203,
+       65,   65, -203, -203, -203, -203, -203, -203, -203, -203,
 
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203
@@ -3913,12 +3913,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204,   62, -204,  220,  220,
       220,  220,  220,  220,  220,  220,  220,  220, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204,   65,
+     -204, -204, -204, -204, -204, -204, -204, -204,   65,   65,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
 
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204,   65, -204, -204, -204, -204, -204, -204, -204, -204,
+       65,   65, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204
     },
@@ -3931,11 +3931,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -205, -205, -205, -205, -205, -205,   62, -205,  221,  221,
 
       221,  221,  221,  221,  221,  221,  221,  221, -205, -205,
-     -205, -205, -205, -205, -205, -205, -205, -205, -205,   65,
+     -205, -205, -205, -205, -205, -205, -205, -205,   65,   65,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205,   65, -205, -205, -205, -205, -205, -205, -205, -205,
+       65,   65, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205
     },
@@ -3948,11 +3948,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206,   62, -206,  222,  222,
       222,  222,  222,  222,  222,  222,  222,  222, -206, -206,
-     -206, -206, -206, -206, -206, -206, -206, -206, -206,   65,
+     -206, -206, -206, -206, -206, -206, -206, -206,   65,   65,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206,   65, -206, -206, -206, -206, -206, -206, -206, -206,
+       65,   65, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
 
      -206, -206, -206, -206, -206, -206, -206, -206
@@ -3965,12 +3965,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207,   62, -207,  223,  223,
       223,  223,  223,  223,  223,  223,  223,  223, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207,   65,
+     -207, -207, -207, -207, -207, -207, -207, -207,   65,   65,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
 
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207,   65, -207, -207, -207, -207, -207, -207, -207, -207,
+       65,   65, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207
     },
@@ -3983,11 +3983,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -208, -208, -208, -208, -208, -208,   62, -208,  224,  224,
       224,  224,  224,  224,  224,  224,  224,  224, -208, -208,
 
-     -208, -208, -208, -208, -208, -208, -208, -208, -208,   65,
+     -208, -208, -208, -208, -208, -208, -208, -208,   65,   65,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208,   65, -208, -208, -208, -208, -208, -208, -208, -208,
+       65,   65, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208
     },
@@ -4000,11 +4000,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209,   62, -209,  225,  225,
       225,  225,  225,  225,  225,  225,  225,  225, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209,   65,
+     -209, -209, -209, -209, -209, -209, -209, -209,   65,   65,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209,   65, -209, -209, -209, -209, -209, -209, -209, -209,
+       65,   65, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209
 
@@ -4121,11 +4121,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216,   62, -216,  232,  233,
       233,  233,  233,  233,  233,  233,  233,  233, -216, -216,
-     -216, -216, -216, -216, -216, -216, -216, -216, -216,   65,
+     -216, -216, -216, -216, -216, -216, -216, -216,   65,   65,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216,   65, -216, -216, -216, -216, -216, -216, -216, -216,
+       65,   65, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
 
      -216, -216, -216, -216, -216, -216, -216, -216
@@ -4138,12 +4138,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217,   62, -217,  234,  234,
       234,  234,  234,  234,  234,  234,  234,  234, -217, -217,
-     -217, -217, -217, -217, -217, -217, -217, -217, -217,   65,
+     -217, -217, -217, -217, -217, -217, -217, -217,   65,   65,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
 
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
-     -217,   65, -217, -217, -217, -217, -217, -217, -217, -217,
+       65,   65, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217
     },
@@ -4156,11 +4156,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -218, -218, -218, -218, -218, -218,   62, -218,  235,  235,
       235,  235,  235,  235,  235,  235,  235,  235, -218, -218,
 
-     -218, -218, -218, -218, -218, -218, -218, -218, -218,   65,
+     -218, -218, -218, -218, -218, -218, -218, -218,   65,   65,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218,   65, -218, -218, -218, -218, -218, -218, -218, -218,
+       65,   65, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218
     },
@@ -4173,11 +4173,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219,   62, -219,  236,  236,
       236,  236,  236,  236,  236,  236,  236,  236, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219,   65,
+     -219, -219, -219, -219, -219, -219, -219, -219,   65,   65,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
-     -219,   65, -219, -219, -219, -219, -219, -219, -219, -219,
+       65,   65, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219
 
@@ -4190,12 +4190,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220,   62, -220,  237,  237,
       237,  237,  237,  237,  237,  237,  237,  237, -220, -220,
-     -220, -220, -220, -220, -220, -220, -220, -220, -220,   65,
+     -220, -220, -220, -220, -220, -220, -220, -220,   65,   65,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
 
-     -220,   65, -220, -220, -220, -220, -220, -220, -220, -220,
+       65,   65, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220
     },
@@ -4207,12 +4207,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221,   62, -221,  238,  238,
       238,  238,  238,  238,  238,  238,  238,  238, -221, -221,
-     -221, -221, -221, -221, -221, -221, -221, -221, -221,   65,
+     -221, -221, -221, -221, -221, -221, -221, -221,   65,   65,
 
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
-     -221,   65, -221, -221, -221, -221, -221, -221, -221, -221,
+       65,   65, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221
     },
@@ -4225,11 +4225,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -222, -222, -222, -222, -222, -222,   62, -222,  239,  239,
       239,  239,  239,  239,  239,  239,  239,  239, -222, -222,
-     -222, -222, -222, -222, -222, -222, -222, -222, -222,   65,
+     -222, -222, -222, -222, -222, -222, -222, -222,   65,   65,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222,   65, -222, -222, -222, -222, -222, -222, -222, -222,
+       65,   65, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222
     },
@@ -4242,11 +4242,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223,   62, -223,  240,  240,
       240,  240,  240,  240,  240,  240,  240,  240, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223, -223,   65,
+     -223, -223, -223, -223, -223, -223, -223, -223,   65,   65,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223,   65, -223, -223, -223, -223, -223, -223, -223, -223,
+       65,   65, -223, -223, -223, -223, -223, -223, -223, -223,
 
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223
@@ -4259,12 +4259,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224,   62, -224,  241,  241,
       241,  241,  241,  241,  241,  241,  241,  241, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224,   65,
+     -224, -224, -224, -224, -224, -224, -224, -224,   65,   65,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
 
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224,   65, -224, -224, -224, -224, -224, -224, -224, -224,
+       65,   65, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224
     },
@@ -4277,11 +4277,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -225, -225, -225, -225, -225, -225,   62, -225,  242,  242,
 
       242,  242,  242,  242,  242,  242,  242,  242, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225,   65,
+     -225, -225, -225, -225, -225, -225, -225, -225,   65,   65,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225,   65, -225, -225, -225, -225, -225, -225, -225, -225,
+       65,   65, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225
     },
@@ -4398,11 +4398,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -232, -232, -232, -232, -232, -232,   62, -232,  246,  247,
       247,  247,  247,  247,  247,  247,  247,  247, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232,   65,
+     -232, -232, -232, -232, -232, -232, -232, -232,   65,   65,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232,   65, -232, -232, -232, -232, -232, -232, -232, -232,
+       65,   65, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232
     },
@@ -4415,11 +4415,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233,   62, -233,  248,  248,
       248,  248,  248,  248,  248,  248,  248,  248, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233,   65,
+     -233, -233, -233, -233, -233, -233, -233, -233,   65,   65,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233,   65, -233, -233, -233, -233, -233, -233, -233, -233,
+       65,   65, -233, -233, -233, -233, -233, -233, -233, -233,
 
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233
@@ -4432,12 +4432,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234,   62, -234,  249,  249,
       249,  249,  249,  249,  249,  249,  249,  249, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234,   65,
+     -234, -234, -234, -234, -234, -234, -234, -234,   65,   65,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
 
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234,   65, -234, -234, -234, -234, -234, -234, -234, -234,
+       65,   65, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234
     },
@@ -4450,11 +4450,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -235, -235, -235, -235, -235, -235,   62, -235,  250,  250,
 
       250,  250,  250,  250,  250,  250,  250,  250, -235, -235,
-     -235, -235, -235, -235, -235, -235, -235, -235, -235,   65,
+     -235, -235, -235, -235, -235, -235, -235, -235,   65,   65,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235,   65, -235, -235, -235, -235, -235, -235, -235, -235,
+       65,   65, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235
     },
@@ -4467,11 +4467,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236,   62, -236,  251,  251,
       251,  251,  251,  251,  251,  251,  251,  251, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236,   65,
+     -236, -236, -236, -236, -236, -236, -236, -236,   65,   65,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236,   65, -236, -236, -236, -236, -236, -236, -236, -236,
+       65,   65, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
 
      -236, -236, -236, -236, -236, -236, -236, -236
@@ -4484,12 +4484,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237,   62, -237,  252,  252,
       252,  252,  252,  252,  252,  252,  252,  252, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237,   65,
+     -237, -237, -237, -237, -237, -237, -237, -237,   65,   65,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
 
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237,   65, -237, -237, -237, -237, -237, -237, -237, -237,
+       65,   65, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237
     },
@@ -4502,11 +4502,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -238, -238, -238, -238, -238, -238,   62, -238,  253,  253,
       253,  253,  253,  253,  253,  253,  253,  253, -238, -238,
 
-     -238, -238, -238, -238, -238, -238, -238, -238, -238,   65,
+     -238, -238, -238, -238, -238, -238, -238, -238,   65,   65,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238,   65, -238, -238, -238, -238, -238, -238, -238, -238,
+       65,   65, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238
     },
@@ -4519,11 +4519,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239,   62, -239,  254,  254,
       254,  254,  254,  254,  254,  254,  254,  254, -239, -239,
-     -239, -239, -239, -239, -239, -239, -239, -239, -239,   65,
+     -239, -239, -239, -239, -239, -239, -239, -239,   65,   65,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
-     -239,   65, -239, -239, -239, -239, -239, -239, -239, -239,
+       65,   65, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239
 
@@ -4536,12 +4536,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240,   62, -240,  255,  255,
       255,  255,  255,  255,  255,  255,  255,  255, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240,   65,
+     -240, -240, -240, -240, -240, -240, -240, -240,   65,   65,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
 
-     -240,   65, -240, -240, -240, -240, -240, -240, -240, -240,
+       65,   65, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240
     },
@@ -4553,12 +4553,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241,   62, -241,  256,  256,
       256,  256,  256,  256,  256,  256,  256,  256, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241,   65,
+     -241, -241, -241, -241, -241, -241, -241, -241,   65,   65,
 
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241,   65, -241, -241, -241, -241, -241, -241, -241, -241,
+       65,   65, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241
     },
@@ -4571,11 +4571,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -242, -242, -242, -242, -242, -242,   62, -242,  257,  257,
       257,  257,  257,  257,  257,  257,  257,  257, -242, -242,
-     -242, -242, -242, -242, -242, -242, -242, -242, -242,   65,
+     -242, -242, -242, -242, -242, -242, -242, -242,   65,   65,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
-     -242,   65, -242, -242, -242, -242, -242, -242, -242, -242,
+       65,   65, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242
     },
@@ -4640,11 +4640,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246,   62, -246,  262,  263,
       263,  263,  263,  263,  263,  263,  263,  263, -246, -246,
-     -246, -246, -246, -246, -246, -246, -246, -246, -246,   65,
+     -246, -246, -246, -246, -246, -246, -246, -246,   65,   65,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
-     -246,   65, -246, -246, -246, -246, -246, -246, -246, -246,
+       65,   65, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
 
      -246, -246, -246, -246, -246, -246, -246, -246
@@ -4657,12 +4657,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247,   62, -247,  264,  264,
       264,  264,  264,  264,  264,  264,  264,  264, -247, -247,
-     -247, -247, -247, -247, -247, -247, -247, -247, -247,   65,
+     -247, -247, -247, -247, -247, -247, -247, -247,   65,   65,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
 
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
-     -247,   65, -247, -247, -247, -247, -247, -247, -247, -247,
+       65,   65, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247
     },
@@ -4675,11 +4675,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -248, -248, -248, -248, -248, -248,   62, -248,  265,  265,
       265,  265,  265,  265,  265,  265,  265,  265, -248, -248,
 
-     -248, -248, -248, -248, -248, -248, -248, -248, -248,   65,
+     -248, -248, -248, -248, -248, -248, -248, -248,   65,   65,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248,   65, -248, -248, -248, -248, -248, -248, -248, -248,
+       65,   65, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248
     },
@@ -4692,11 +4692,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249,   62, -249,  266,  266,
       266,  266,  266,  266,  266,  266,  266,  266, -249, -249,
-     -249, -249, -249, -249, -249, -249, -249, -249, -249,   65,
+     -249, -249, -249, -249, -249, -249, -249, -249,   65,   65,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
-     -249,   65, -249, -249, -249, -249, -249, -249, -249, -249,
+       65,   65, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249
 
@@ -4709,12 +4709,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250,   62, -250,  267,  267,
       267,  267,  267,  267,  267,  267,  267,  267, -250, -250,
-     -250, -250, -250, -250, -250, -250, -250, -250, -250,   65,
+     -250, -250, -250, -250, -250, -250, -250, -250,   65,   65,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
 
-     -250,   65, -250, -250, -250, -250, -250, -250, -250, -250,
+       65,   65, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250
     },
@@ -4726,12 +4726,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251,   62, -251,  268,  268,
       268,  268,  268,  268,  268,  268,  268,  268, -251, -251,
-     -251, -251, -251, -251, -251, -251, -251, -251, -251,   65,
+     -251, -251, -251, -251, -251, -251, -251, -251,   65,   65,
 
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
-     -251,   65, -251, -251, -251, -251, -251, -251, -251, -251,
+       65,   65, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251
     },
@@ -4744,11 +4744,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -252, -252, -252, -252, -252, -252,   62, -252,  269,  269,
       269,  269,  269,  269,  269,  269,  269,  269, -252, -252,
-     -252, -252, -252, -252, -252, -252, -252, -252, -252,   65,
+     -252, -252, -252, -252, -252, -252, -252, -252,   65,   65,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-     -252,   65, -252, -252, -252, -252, -252, -252, -252, -252,
+       65,   65, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252
     },
@@ -4761,11 +4761,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253,   62, -253,  270,  270,
       270,  270,  270,  270,  270,  270,  270,  270, -253, -253,
-     -253, -253, -253, -253, -253, -253, -253, -253, -253,   65,
+     -253, -253, -253, -253, -253, -253, -253, -253,   65,   65,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
-     -253,   65, -253, -253, -253, -253, -253, -253, -253, -253,
+       65,   65, -253, -253, -253, -253, -253, -253, -253, -253,
 
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253
@@ -4778,12 +4778,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254,   62, -254,  271,  271,
       271,  271,  271,  271,  271,  271,  271,  271, -254, -254,
-     -254, -254, -254, -254, -254, -254, -254, -254, -254,   65,
+     -254, -254, -254, -254, -254, -254, -254, -254,   65,   65,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
 
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
-     -254,   65, -254, -254, -254, -254, -254, -254, -254, -254,
+       65,   65, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254
     },
@@ -4796,11 +4796,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -255, -255, -255, -255, -255, -255,   62, -255,  272,  272,
 
       272,  272,  272,  272,  272,  272,  272,  272, -255, -255,
-     -255, -255, -255, -255, -255, -255, -255, -255, -255,   65,
+     -255, -255, -255, -255, -255, -255, -255, -255,   65,   65,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
-     -255,   65, -255, -255, -255, -255, -255, -255, -255, -255,
+       65,   65, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255
     },
@@ -4813,11 +4813,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256,   62, -256,  273,  273,
       273,  273,  273,  273,  273,  273,  273,  273, -256, -256,
-     -256, -256, -256, -256, -256, -256, -256, -256, -256,   65,
+     -256, -256, -256, -256, -256, -256, -256, -256,   65,   65,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
-     -256,   65, -256, -256, -256, -256, -256, -256, -256, -256,
+       65,   65, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
 
      -256, -256, -256, -256, -256, -256, -256, -256
@@ -4830,12 +4830,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257,   62, -257,  274,  274,
       274,  274,  274,  274,  274,  274,  274,  274, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257, -257, -257,   65,
+     -257, -257, -257, -257, -257, -257, -257, -257,   65,   65,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
 
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
-     -257,   65, -257, -257, -257, -257, -257, -257, -257, -257,
+       65,   65, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257
     },
@@ -4917,11 +4917,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -262, -262, -262, -262, -262, -262,   62, -262,  277,  278,
       278,  278,  278,  278,  278,  278,  278,  278, -262, -262,
-     -262, -262, -262, -262, -262, -262, -262, -262, -262,   65,
+     -262, -262, -262, -262, -262, -262, -262, -262,   65,   65,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
-     -262,   65, -262, -262, -262, -262, -262, -262, -262, -262,
+       65,   65, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262
     },
@@ -4934,11 +4934,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263,   62, -263,  279,  279,
       279,  279,  279,  279,  279,  279,  279,  279, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263,   65,
+     -263, -263, -263, -263, -263, -263, -263, -263,   65,   65,
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263,   65, -263, -263, -263, -263, -263, -263, -263, -263,
+       65,   65, -263, -263, -263, -263, -263, -263, -263, -263,
 
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263, -263, -263
@@ -4951,12 +4951,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264,   62, -264,  280,  280,
       280,  280,  280,  280,  280,  280,  280,  280, -264, -264,
-     -264, -264, -264, -264, -264, -264, -264, -264, -264,   65,
+     -264, -264, -264, -264, -264, -264, -264, -264,   65,   65,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
 
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264,   65, -264, -264, -264, -264, -264, -264, -264, -264,
+       65,   65, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264
     },
@@ -4969,11 +4969,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -265, -265, -265, -265, -265, -265,   62, -265,  281,  281,
 
       281,  281,  281,  281,  281,  281,  281,  281, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265,   65,
+     -265, -265, -265, -265, -265, -265, -265, -265,   65,   65,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265,   65, -265, -265, -265, -265, -265, -265, -265, -265,
+       65,   65, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265
     },
@@ -4986,11 +4986,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266,   62, -266,  282,  282,
       282,  282,  282,  282,  282,  282,  282,  282, -266, -266,
-     -266, -266, -266, -266, -266, -266, -266, -266, -266,   65,
+     -266, -266, -266, -266, -266, -266, -266, -266,   65,   65,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
-     -266,   65, -266, -266, -266, -266, -266, -266, -266, -266,
+       65,   65, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
 
      -266, -266, -266, -266, -266, -266, -266, -266
@@ -5003,12 +5003,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267,   62, -267,  283,  283,
       283,  283,  283,  283,  283,  283,  283,  283, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267,   65,
+     -267, -267, -267, -267, -267, -267, -267, -267,   65,   65,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
 
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267,   65, -267, -267, -267, -267, -267, -267, -267, -267,
+       65,   65, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267
     },
@@ -5021,11 +5021,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -268, -268, -268, -268, -268, -268,   62, -268,  284,  284,
       284,  284,  284,  284,  284,  284,  284,  284, -268, -268,
 
-     -268, -268, -268, -268, -268, -268, -268, -268, -268,   65,
+     -268, -268, -268, -268, -268, -268, -268, -268,   65,   65,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268,   65, -268, -268, -268, -268, -268, -268, -268, -268,
+       65,   65, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268
     },
@@ -5038,11 +5038,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269,   62, -269,  285,  285,
       285,  285,  285,  285,  285,  285,  285,  285, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269,   65,
+     -269, -269, -269, -269, -269, -269, -269, -269,   65,   65,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269,   65, -269, -269, -269, -269, -269, -269, -269, -269,
+       65,   65, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269
 
@@ -5055,12 +5055,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270,   62, -270,  286,  286,
       286,  286,  286,  286,  286,  286,  286,  286, -270, -270,
-     -270, -270, -270, -270, -270, -270, -270, -270, -270,   65,
+     -270, -270, -270, -270, -270, -270, -270, -270,   65,   65,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
 
-     -270,   65, -270, -270, -270, -270, -270, -270, -270, -270,
+       65,   65, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270
     },
@@ -5072,12 +5072,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271,   62, -271,  287,  287,
       287,  287,  287,  287,  287,  287,  287,  287, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271,   65,
+     -271, -271, -271, -271, -271, -271, -271, -271,   65,   65,
 
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271,   65, -271, -271, -271, -271, -271, -271, -271, -271,
+       65,   65, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271
     },
@@ -5090,11 +5090,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -272, -272, -272, -272, -272, -272,   62, -272,  288,  288,
       288,  288,  288,  288,  288,  288,  288,  288, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272,   65,
+     -272, -272, -272, -272, -272, -272, -272, -272,   65,   65,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272,   65, -272, -272, -272, -272, -272, -272, -272, -272,
+       65,   65, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272
     },
@@ -5107,11 +5107,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273,   62, -273,  289,  289,
       289,  289,  289,  289,  289,  289,  289,  289, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273,   65,
+     -273, -273, -273, -273, -273, -273, -273, -273,   65,   65,
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273,   65, -273, -273, -273, -273, -273, -273, -273, -273,
+       65,   65, -273, -273, -273, -273, -273, -273, -273, -273,
 
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273, -273, -273
@@ -5124,12 +5124,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274,   62, -274,  290,  290,
       290,  290,  290,  290,  290,  290,  290,  290, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274,   65,
+     -274, -274, -274, -274, -274, -274, -274, -274,   65,   65,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
 
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274,   65, -274, -274, -274, -274, -274, -274, -274, -274,
+       65,   65, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274
     },
@@ -5176,12 +5176,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277,   62, -277,  293,  294,
       294,  294,  294,  294,  294,  294,  294,  294, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277,   65,
+     -277, -277, -277, -277, -277, -277, -277, -277,   65,   65,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
 
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277,   65, -277, -277, -277, -277, -277, -277, -277, -277,
+       65,   65, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277
     },
@@ -5194,11 +5194,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -278, -278, -278, -278, -278, -278,   62, -278,  295,  295,
       295,  295,  295,  295,  295,  295,  295,  295, -278, -278,
 
-     -278, -278, -278, -278, -278, -278, -278, -278, -278,   65,
+     -278, -278, -278, -278, -278, -278, -278, -278,   65,   65,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
-     -278,   65, -278, -278, -278, -278, -278, -278, -278, -278,
+       65,   65, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278
     },
@@ -5211,11 +5211,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279,   62, -279,  296,  296,
       296,  296,  296,  296,  296,  296,  296,  296, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279,   65,
+     -279, -279, -279, -279, -279, -279, -279, -279,   65,   65,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279,   65, -279, -279, -279, -279, -279, -279, -279, -279,
+       65,   65, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279
 
@@ -5228,12 +5228,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280,   62, -280,  297,  297,
       297,  297,  297,  297,  297,  297,  297,  297, -280, -280,
-     -280, -280, -280, -280, -280, -280, -280, -280, -280,   65,
+     -280, -280, -280, -280, -280, -280, -280, -280,   65,   65,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
 
-     -280,   65, -280, -280, -280, -280, -280, -280, -280, -280,
+       65,   65, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280
     },
@@ -5245,12 +5245,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281,   62, -281,  298,  298,
       298,  298,  298,  298,  298,  298,  298,  298, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281,   65,
+     -281, -281, -281, -281, -281, -281, -281, -281,   65,   65,
 
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281,   65, -281, -281, -281, -281, -281, -281, -281, -281,
+       65,   65, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281
     },
@@ -5263,11 +5263,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -282, -282, -282, -282, -282, -282,   62, -282,  299,  299,
       299,  299,  299,  299,  299,  299,  299,  299, -282, -282,
-     -282, -282, -282, -282, -282, -282, -282, -282, -282,   65,
+     -282, -282, -282, -282, -282, -282, -282, -282,   65,   65,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
-     -282,   65, -282, -282, -282, -282, -282, -282, -282, -282,
+       65,   65, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282
     },
@@ -5280,11 +5280,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283,   62, -283,  300,  300,
       300,  300,  300,  300,  300,  300,  300,  300, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283,   65,
+     -283, -283, -283, -283, -283, -283, -283, -283,   65,   65,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283,   65, -283, -283, -283, -283, -283, -283, -283, -283,
+       65,   65, -283, -283, -283, -283, -283, -283, -283, -283,
 
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283
@@ -5297,12 +5297,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284,   62, -284,  301,  301,
       301,  301,  301,  301,  301,  301,  301,  301, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284,   65,
+     -284, -284, -284, -284, -284, -284, -284, -284,   65,   65,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
 
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284,   65, -284, -284, -284, -284, -284, -284, -284, -284,
+       65,   65, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284
     },
@@ -5315,11 +5315,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -285, -285, -285, -285, -285, -285,   62, -285,  302,  302,
 
       302,  302,  302,  302,  302,  302,  302,  302, -285, -285,
-     -285, -285, -285, -285, -285, -285, -285, -285, -285,   65,
+     -285, -285, -285, -285, -285, -285, -285, -285,   65,   65,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285,   65, -285, -285, -285, -285, -285, -285, -285, -285,
+       65,   65, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285
     },
@@ -5332,11 +5332,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286,   62, -286,  303,  303,
       303,  303,  303,  303,  303,  303,  303,  303, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286,   65,
+     -286, -286, -286, -286, -286, -286, -286, -286,   65,   65,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286,   65, -286, -286, -286, -286, -286, -286, -286, -286,
+       65,   65, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
 
      -286, -286, -286, -286, -286, -286, -286, -286
@@ -5349,12 +5349,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287,   62, -287,  304,  304,
       304,  304,  304,  304,  304,  304,  304,  304, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287,   65,
+     -287, -287, -287, -287, -287, -287, -287, -287,   65,   65,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
 
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287,   65, -287, -287, -287, -287, -287, -287, -287, -287,
+       65,   65, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287
     },
@@ -5367,11 +5367,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -288, -288, -288, -288, -288, -288,   62, -288,  305,  305,
       305,  305,  305,  305,  305,  305,  305,  305, -288, -288,
 
-     -288, -288, -288, -288, -288, -288, -288, -288, -288,   65,
+     -288, -288, -288, -288, -288, -288, -288, -288,   65,   65,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288,   65, -288, -288, -288, -288, -288, -288, -288, -288,
+       65,   65, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288
     },
@@ -5384,11 +5384,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289,   62, -289,  306,  306,
       306,  306,  306,  306,  306,  306,  306,  306, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289,   65,
+     -289, -289, -289, -289, -289, -289, -289, -289,   65,   65,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289,   65, -289, -289, -289, -289, -289, -289, -289, -289,
+       65,   65, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289
 
@@ -5401,12 +5401,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290,   62, -290,  307,  307,
       307,  307,  307,  307,  307,  307,  307,  307, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290,   65,
+     -290, -290, -290, -290, -290, -290, -290, -290,   65,   65,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
 
-     -290,   65, -290, -290, -290, -290, -290, -290, -290, -290,
+       65,   65, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290
     },
@@ -5453,11 +5453,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293,   62, -293,  310,  311,
       311,  311,  311,  311,  311,  311,  311,  311, -293, -293,
-     -293, -293, -293, -293, -293, -293, -293, -293, -293,   65,
+     -293, -293, -293, -293, -293, -293, -293, -293,   65,   65,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-     -293,   65, -293, -293, -293, -293, -293, -293, -293, -293,
+       65,   65, -293, -293, -293, -293, -293, -293, -293, -293,
 
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293
@@ -5470,12 +5470,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294,   62, -294,  312,  312,
       312,  312,  312,  312,  312,  312,  312,  312, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294,   65,
+     -294, -294, -294, -294, -294, -294, -294, -294,   65,   65,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
 
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294,   65, -294, -294, -294, -294, -294, -294, -294, -294,
+       65,   65, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294
     },
@@ -5488,11 +5488,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -295, -295, -295, -295, -295, -295,   62, -295,  313,  313,
 
       313,  313,  313,  313,  313,  313,  313,  313, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295,   65,
+     -295, -295, -295, -295, -295, -295, -295, -295,   65,   65,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295,   65, -295, -295, -295, -295, -295, -295, -295, -295,
+       65,   65, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295
     },
@@ -5505,11 +5505,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296,   62, -296,  314,  314,
       314,  314,  314,  314,  314,  314,  314,  314, -296, -296,
-     -296, -296, -296, -296, -296, -296, -296, -296, -296,   65,
+     -296, -296, -296, -296, -296, -296, -296, -296,   65,   65,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
-     -296,   65, -296, -296, -296, -296, -296, -296, -296, -296,
+       65,   65, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
 
      -296, -296, -296, -296, -296, -296, -296, -296
@@ -5522,12 +5522,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297,   62, -297,  315,  315,
       315,  315,  315,  315,  315,  315,  315,  315, -297, -297,
-     -297, -297, -297, -297, -297, -297, -297, -297, -297,   65,
+     -297, -297, -297, -297, -297, -297, -297, -297,   65,   65,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
 
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
-     -297,   65, -297, -297, -297, -297, -297, -297, -297, -297,
+       65,   65, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297
     },
@@ -5540,11 +5540,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -298, -298, -298, -298, -298, -298,   62, -298,  316,  316,
       316,  316,  316,  316,  316,  316,  316,  316, -298, -298,
 
-     -298, -298, -298, -298, -298, -298, -298, -298, -298,   65,
+     -298, -298, -298, -298, -298, -298, -298, -298,   65,   65,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298,   65, -298, -298, -298, -298, -298, -298, -298, -298,
+       65,   65, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298
     },
@@ -5557,11 +5557,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299,   62, -299,  317,  317,
       317,  317,  317,  317,  317,  317,  317,  317, -299, -299,
-     -299, -299, -299, -299, -299, -299, -299, -299, -299,   65,
+     -299, -299, -299, -299, -299, -299, -299, -299,   65,   65,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
-     -299,   65, -299, -299, -299, -299, -299, -299, -299, -299,
+       65,   65, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299
 
@@ -5574,12 +5574,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300,   62, -300,  318,  318,
       318,  318,  318,  318,  318,  318,  318,  318, -300, -300,
-     -300, -300, -300, -300, -300, -300, -300, -300, -300,   65,
+     -300, -300, -300, -300, -300, -300, -300, -300,   65,   65,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
 
-     -300,   65, -300, -300, -300, -300, -300, -300, -300, -300,
+       65,   65, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300
     },
@@ -5591,12 +5591,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301,   62, -301,  319,  319,
       319,  319,  319,  319,  319,  319,  319,  319, -301, -301,
-     -301, -301, -301, -301, -301, -301, -301, -301, -301,   65,
+     -301, -301, -301, -301, -301, -301, -301, -301,   65,   65,
 
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
-     -301,   65, -301, -301, -301, -301, -301, -301, -301, -301,
+       65,   65, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301
     },
@@ -5609,11 +5609,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -302, -302, -302, -302, -302, -302,   62, -302,  320,  320,
       320,  320,  320,  320,  320,  320,  320,  320, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302,   65,
+     -302, -302, -302, -302, -302, -302, -302, -302,   65,   65,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302,   65, -302, -302, -302, -302, -302, -302, -302, -302,
+       65,   65, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302
     },
@@ -5626,11 +5626,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303,   62, -303,  321,  321,
       321,  321,  321,  321,  321,  321,  321,  321, -303, -303,
-     -303, -303, -303, -303, -303, -303, -303, -303, -303,   65,
+     -303, -303, -303, -303, -303, -303, -303, -303,   65,   65,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
-     -303,   65, -303, -303, -303, -303, -303, -303, -303, -303,
+       65,   65, -303, -303, -303, -303, -303, -303, -303, -303,
 
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303
@@ -5643,12 +5643,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304,   62, -304,  322,  322,
       322,  322,  322,  322,  322,  322,  322,  322, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304,   65,
+     -304, -304, -304, -304, -304, -304, -304, -304,   65,   65,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
 
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304,   65, -304, -304, -304, -304, -304, -304, -304, -304,
+       65,   65, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304
     },
@@ -5661,11 +5661,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -305, -305, -305, -305, -305, -305,   62, -305,  323,  323,
 
       323,  323,  323,  323,  323,  323,  323,  323, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305,   65,
+     -305, -305, -305, -305, -305, -305, -305, -305,   65,   65,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305,   65, -305, -305, -305, -305, -305, -305, -305, -305,
+       65,   65, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305
     },
@@ -5678,11 +5678,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306,   62, -306,  324,  324,
       324,  324,  324,  324,  324,  324,  324,  324, -306, -306,
-     -306, -306, -306, -306, -306, -306, -306, -306, -306,   65,
+     -306, -306, -306, -306, -306, -306, -306, -306,   65,   65,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
-     -306,   65, -306, -306, -306, -306, -306, -306, -306, -306,
+       65,   65, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
 
      -306, -306, -306, -306, -306, -306, -306, -306
@@ -5695,12 +5695,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307,   62, -307,  325,  325,
       325,  325,  325,  325,  325,  325,  325,  325, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307,   65,
+     -307, -307, -307, -307, -307, -307, -307, -307,   65,   65,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
 
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307,   65, -307, -307, -307, -307, -307, -307, -307, -307,
+       65,   65, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307
     },
@@ -5747,12 +5747,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310,   62, -310,  328,  329,
       329,  329,  329,  329,  329,  329,  329,  329, -310, -310,
-     -310, -310, -310, -310, -310, -310, -310, -310, -310,   65,
+     -310, -310, -310, -310, -310, -310, -310, -310,   65,   65,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
 
-     -310,   65, -310, -310, -310, -310, -310, -310, -310, -310,
+       65,   65, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310
     },
@@ -5764,12 +5764,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311,   62, -311,  330,  330,
       330,  330,  330,  330,  330,  330,  330,  330, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311,   65,
+     -311, -311, -311, -311, -311, -311, -311, -311,   65,   65,
 
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311,   65, -311, -311, -311, -311, -311, -311, -311, -311,
+       65,   65, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311
     },
@@ -5782,11 +5782,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -312, -312, -312, -312, -312, -312,   62, -312,  331,  331,
       331,  331,  331,  331,  331,  331,  331,  331, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312,   65,
+     -312, -312, -312, -312, -312, -312, -312, -312,   65,   65,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312,   65, -312, -312, -312, -312, -312, -312, -312, -312,
+       65,   65, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312
     },
@@ -5799,11 +5799,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313,   62, -313,  332,  332,
       332,  332,  332,  332,  332,  332,  332,  332, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313,   65,
+     -313, -313, -313, -313, -313, -313, -313, -313,   65,   65,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313,   65, -313, -313, -313, -313, -313, -313, -313, -313,
+       65,   65, -313, -313, -313, -313, -313, -313, -313, -313,
 
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313
@@ -5816,12 +5816,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314,   62, -314,  333,  333,
       333,  333,  333,  333,  333,  333,  333,  333, -314, -314,
-     -314, -314, -314, -314, -314, -314, -314, -314, -314,   65,
+     -314, -314, -314, -314, -314, -314, -314, -314,   65,   65,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
 
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
-     -314,   65, -314, -314, -314, -314, -314, -314, -314, -314,
+       65,   65, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314
     },
@@ -5834,11 +5834,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -315, -315, -315, -315, -315, -315,   62, -315,  334,  334,
 
       334,  334,  334,  334,  334,  334,  334,  334, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315,   65,
+     -315, -315, -315, -315, -315, -315, -315, -315,   65,   65,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315,   65, -315, -315, -315, -315, -315, -315, -315, -315,
+       65,   65, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315
     },
@@ -5851,11 +5851,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316,   62, -316,  335,  335,
       335,  335,  335,  335,  335,  335,  335,  335, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316,   65,
+     -316, -316, -316, -316, -316, -316, -316, -316,   65,   65,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316,   65, -316, -316, -316, -316, -316, -316, -316, -316,
+       65,   65, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
 
      -316, -316, -316, -316, -316, -316, -316, -316
@@ -5868,12 +5868,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317,   62, -317,  336,  336,
       336,  336,  336,  336,  336,  336,  336,  336, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317,   65,
+     -317, -317, -317, -317, -317, -317, -317, -317,   65,   65,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
 
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317,   65, -317, -317, -317, -317, -317, -317, -317, -317,
+       65,   65, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317
     },
@@ -5886,11 +5886,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -318, -318, -318, -318, -318, -318,   62, -318,  337,  337,
       337,  337,  337,  337,  337,  337,  337,  337, -318, -318,
 
-     -318, -318, -318, -318, -318, -318, -318, -318, -318,   65,
+     -318, -318, -318, -318, -318, -318, -318, -318,   65,   65,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
-     -318,   65, -318, -318, -318, -318, -318, -318, -318, -318,
+       65,   65, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318
     },
@@ -5903,11 +5903,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319,   62, -319,  338,  338,
       338,  338,  338,  338,  338,  338,  338,  338, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319,   65,
+     -319, -319, -319, -319, -319, -319, -319, -319,   65,   65,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319,   65, -319, -319, -319, -319, -319, -319, -319, -319,
+       65,   65, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319
 
@@ -5920,12 +5920,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320,   62, -320,  339,  339,
       339,  339,  339,  339,  339,  339,  339,  339, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320,   65,
+     -320, -320, -320, -320, -320, -320, -320, -320,   65,   65,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
 
-     -320,   65, -320, -320, -320, -320, -320, -320, -320, -320,
+       65,   65, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320
     },
@@ -5937,12 +5937,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321,   62, -321,  340,  340,
       340,  340,  340,  340,  340,  340,  340,  340, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321,   65,
+     -321, -321, -321, -321, -321, -321, -321, -321,   65,   65,
 
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321,   65, -321, -321, -321, -321, -321, -321, -321, -321,
+       65,   65, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321
     },
@@ -5955,11 +5955,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -322, -322, -322, -322, -322, -322,   62, -322,  341,  341,
       341,  341,  341,  341,  341,  341,  341,  341, -322, -322,
-     -322, -322, -322, -322, -322, -322, -322, -322, -322,   65,
+     -322, -322, -322, -322, -322, -322, -322, -322,   65,   65,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
-     -322,   65, -322, -322, -322, -322, -322, -322, -322, -322,
+       65,   65, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322
     },
@@ -5972,11 +5972,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323,   62, -323,  342,  342,
       342,  342,  342,  342,  342,  342,  342,  342, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323,   65,
+     -323, -323, -323, -323, -323, -323, -323, -323,   65,   65,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323,   65, -323, -323, -323, -323, -323, -323, -323, -323,
+       65,   65, -323, -323, -323, -323, -323, -323, -323, -323,
 
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323
@@ -5989,12 +5989,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324,   62, -324,  343,  343,
       343,  343,  343,  343,  343,  343,  343,  343, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324,   65,
+     -324, -324, -324, -324, -324, -324, -324, -324,   65,   65,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
 
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324,   65, -324, -324, -324, -324, -324, -324, -324, -324,
+       65,   65, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324
     },
@@ -6007,11 +6007,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -325, -325, -325, -325, -325, -325,   62, -325,  344,  344,
 
       344,  344,  344,  344,  344,  344,  344,  344, -325, -325,
-     -325, -325, -325, -325, -325, -325, -325, -325, -325,   65,
+     -325, -325, -325, -325, -325, -325, -325, -325,   65,   65,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-     -325,   65, -325, -325, -325, -325, -325, -325, -325, -325,
+       65,   65, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325
     },
@@ -6059,11 +6059,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -328, -328, -328, -328, -328, -328,   62, -328,  347,  348,
       348,  348,  348,  348,  348,  348,  348,  348, -328, -328,
 
-     -328, -328, -328, -328, -328, -328, -328, -328, -328,   65,
+     -328, -328, -328, -328, -328, -328, -328, -328,   65,   65,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
-     -328,   65, -328, -328, -328, -328, -328, -328, -328, -328,
+       65,   65, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328
     },
@@ -6076,11 +6076,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329,   62, -329,  349,  349,
       349,  349,  349,  349,  349,  349,  349,  349, -329, -329,
-     -329, -329, -329, -329, -329, -329, -329, -329, -329,   65,
+     -329, -329, -329, -329, -329, -329, -329, -329,   65,   65,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
-     -329,   65, -329, -329, -329, -329, -329, -329, -329, -329,
+       65,   65, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329
 
@@ -6093,12 +6093,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
      -330, -330, -330, -330, -330, -330,   62, -330,  350,  350,
       350,  350,  350,  350,  350,  350,  350,  350, -330, -330,
-     -330, -330, -330, -330, -330, -330, -330, -330, -330,   65,
+     -330, -330, -330, -330, -330, -330, -330, -330,   65,   65,
      -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
      -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
      -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
 
-     -330,   65, -330, -330, -330, -330, -330, -330, -330, -330,
+       65,   65, -330, -330, -330, -330, -330, -330, -330, -330,
      -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
      -330, -330, -330, -330, -330, -330, -330, -330
     },
@@ -6110,12 +6110,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331,   62, -331,  351,  351,
       351,  351,  351,  351,  351,  351,  351,  351, -331, -331,
-     -331, -331, -331, -331, -331, -331, -331, -331, -331,   65,
+     -331, -331, -331, -331, -331, -331, -331, -331,   65,   65,
 
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
-     -331,   65, -331, -331, -331, -331, -331, -331, -331, -331,
+       65,   65, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331
     },
@@ -6128,11 +6128,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -332, -332, -332, -332, -332, -332,   62, -332,  352,  352,
       352,  352,  352,  352,  352,  352,  352,  352, -332, -332,
-     -332, -332, -332, -332, -332, -332, -332, -332, -332,   65,
+     -332, -332, -332, -332, -332, -332, -332, -332,   65,   65,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
-     -332,   65, -332, -332, -332, -332, -332, -332, -332, -332,
+       65,   65, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332
     },
@@ -6145,11 +6145,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333,   62, -333,  353,  353,
       353,  353,  353,  353,  353,  353,  353,  353, -333, -333,
-     -333, -333, -333, -333, -333, -333, -333, -333, -333,   65,
+     -333, -333, -333, -333, -333, -333, -333, -333,   65,   65,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
-     -333,   65, -333, -333, -333, -333, -333, -333, -333, -333,
+       65,   65, -333, -333, -333, -333, -333, -333, -333, -333,
 
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333
@@ -6162,12 +6162,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334,   62, -334,  354,  354,
       354,  354,  354,  354,  354,  354,  354,  354, -334, -334,
-     -334, -334, -334, -334, -334, -334, -334, -334, -334,   65,
+     -334, -334, -334, -334, -334, -334, -334, -334,   65,   65,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
 
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-     -334,   65, -334, -334, -334, -334, -334, -334, -334, -334,
+       65,   65, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334
     },
@@ -6180,11 +6180,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -335, -335, -335, -335, -335, -335,   62, -335,  355,  355,
 
       355,  355,  355,  355,  355,  355,  355,  355, -335, -335,
-     -335, -335, -335, -335, -335, -335, -335, -335, -335,   65,
+     -335, -335, -335, -335, -335, -335, -335, -335,   65,   65,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
-     -335,   65, -335, -335, -335, -335, -335, -335, -335, -335,
+       65,   65, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335
     },
@@ -6197,11 +6197,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336,   62, -336,  356,  356,
       356,  356,  356,  356,  356,  356,  356,  356, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336,   65,
+     -336, -336, -336, -336, -336, -336, -336, -336,   65,   65,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336,   65, -336, -336, -336, -336, -336, -336, -336, -336,
+       65,   65, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
 
      -336, -336, -336, -336, -336, -336, -336, -336
@@ -6214,12 +6214,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337,   62, -337,  357,  357,
       357,  357,  357,  357,  357,  357,  357,  357, -337, -337,
-     -337, -337, -337, -337, -337, -337, -337, -337, -337,   65,
+     -337, -337, -337, -337, -337, -337, -337, -337,   65,   65,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
 
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
-     -337,   65, -337, -337, -337, -337, -337, -337, -337, -337,
+       65,   65, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337
     },
@@ -6232,11 +6232,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -338, -338, -338, -338, -338, -338,   62, -338,  358,  358,
       358,  358,  358,  358,  358,  358,  358,  358, -338, -338,
 
-     -338, -338, -338, -338, -338, -338, -338, -338, -338,   65,
+     -338, -338, -338, -338, -338, -338, -338, -338,   65,   65,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
-     -338,   65, -338, -338, -338, -338, -338, -338, -338, -338,
+       65,   65, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338
     },
@@ -6249,11 +6249,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339,   62, -339,  359,  359,
       359,  359,  359,  359,  359,  359,  359,  359, -339, -339,
-     -339, -339, -339, -339, -339, -339, -339, -339, -339,   65,
+     -339, -339, -339, -339, -339, -339, -339, -339,   65,   65,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
-     -339,   65, -339, -339, -339, -339, -339, -339, -339, -339,
+       65,   65, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339
 
@@ -6266,12 +6266,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340,   62, -340,  360,  360,
       360,  360,  360,  360,  360,  360,  360,  360, -340, -340,
-     -340, -340, -340, -340, -340, -340, -340, -340, -340,   65,
+     -340, -340, -340, -340, -340, -340, -340, -340,   65,   65,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
 
-     -340,   65, -340, -340, -340, -340, -340, -340, -340, -340,
+       65,   65, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340
     },
@@ -6283,12 +6283,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341,   62, -341,  361,  361,
       361,  361,  361,  361,  361,  361,  361,  361, -341, -341,
-     -341, -341, -341, -341, -341, -341, -341, -341, -341,   65,
+     -341, -341, -341, -341, -341, -341, -341, -341,   65,   65,
 
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
-     -341,   65, -341, -341, -341, -341, -341, -341, -341, -341,
+       65,   65, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341
     },
@@ -6301,11 +6301,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -342, -342, -342, -342, -342, -342,   62, -342,  362,  362,
       362,  362,  362,  362,  362,  362,  362,  362, -342, -342,
-     -342, -342, -342, -342, -342, -342, -342, -342, -342,   65,
+     -342, -342, -342, -342, -342, -342, -342, -342,   65,   65,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
-     -342,   65, -342, -342, -342, -342, -342, -342, -342, -342,
+       65,   65, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342
     },
@@ -6318,11 +6318,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343,   62, -343,  363,  363,
       363,  363,  363,  363,  363,  363,  363,  363, -343, -343,
-     -343, -343, -343, -343, -343, -343, -343, -343, -343,   65,
+     -343, -343, -343, -343, -343, -343, -343, -343,   65,   65,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
-     -343,   65, -343, -343, -343, -343, -343, -343, -343, -343,
+       65,   65, -343, -343, -343, -343, -343, -343, -343, -343,
 
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343
@@ -6335,12 +6335,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
      -344, -344, -344, -344, -344, -344,   62, -344,  364,  364,
       364,  364,  364,  364,  364,  364,  364,  364, -344, -344,
-     -344, -344, -344, -344, -344, -344, -344, -344, -344,   65,
+     -344, -344, -344, -344, -344, -344, -344, -344,   65,   65,
      -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
 
      -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
      -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
-     -344,   65, -344, -344, -344, -344, -344, -344, -344, -344,
+       65,   65, -344, -344, -344, -344, -344, -344, -344, -344,
      -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
      -344, -344, -344, -344, -344, -344, -344, -344
     },
@@ -6387,12 +6387,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347,   62, -347,  367,  368,
       368,  368,  368,  368,  368,  368,  368,  368, -347, -347,
-     -347, -347, -347, -347, -347, -347, -347, -347, -347,   65,
+     -347, -347, -347, -347, -347, -347, -347, -347,   65,   65,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
 
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
-     -347,   65, -347, -347, -347, -347, -347, -347, -347, -347,
+       65,   65, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347
     },
@@ -6405,11 +6405,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -348, -348, -348, -348, -348, -348,   62, -348,  369,  369,
       369,  369,  369,  369,  369,  369,  369,  369, -348, -348,
 
-     -348, -348, -348, -348, -348, -348, -348, -348, -348,   65,
+     -348, -348, -348, -348, -348, -348, -348, -348,   65,   65,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
-     -348,   65, -348, -348, -348, -348, -348, -348, -348, -348,
+       65,   65, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348
     },
@@ -6422,11 +6422,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349,   62, -349,  370,  370,
       370,  370,  370,  370,  370,  370,  370,  370, -349, -349,
-     -349, -349, -349, -349, -349, -349, -349, -349, -349,   65,
+     -349, -349, -349, -349, -349, -349, -349, -349,   65,   65,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
-     -349,   65, -349, -349, -349, -349, -349, -349, -349, -349,
+       65,   65, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349
 
@@ -6439,12 +6439,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350,   62, -350,  371,  371,
       371,  371,  371,  371,  371,  371,  371,  371, -350, -350,
-     -350, -350, -350, -350, -350, -350, -350, -350, -350,   65,
+     -350, -350, -350, -350, -350, -350, -350, -350,   65,   65,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
 
-     -350,   65, -350, -350, -350, -350, -350, -350, -350, -350,
+       65,   65, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350
     },
@@ -6456,12 +6456,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351,   62, -351,  372,  372,
       372,  372,  372,  372,  372,  372,  372,  372, -351, -351,
-     -351, -351, -351, -351, -351, -351, -351, -351, -351,   65,
+     -351, -351, -351, -351, -351, -351, -351, -351,   65,   65,
 
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
-     -351,   65, -351, -351, -351, -351, -351, -351, -351, -351,
+       65,   65, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351
     },
@@ -6474,11 +6474,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -352, -352, -352, -352, -352, -352,   62, -352,  373,  373,
       373,  373,  373,  373,  373,  373,  373,  373, -352, -352,
-     -352, -352, -352, -352, -352, -352, -352, -352, -352,   65,
+     -352, -352, -352, -352, -352, -352, -352, -352,   65,   65,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
-     -352,   65, -352, -352, -352, -352, -352, -352, -352, -352,
+       65,   65, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352
     },
@@ -6491,11 +6491,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353,   62, -353,  374,  374,
       374,  374,  374,  374,  374,  374,  374,  374, -353, -353,
-     -353, -353, -353, -353, -353, -353, -353, -353, -353,   65,
+     -353, -353, -353, -353, -353, -353, -353, -353,   65,   65,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
-     -353,   65, -353, -353, -353, -353, -353, -353, -353, -353,
+       65,   65, -353, -353, -353, -353, -353, -353, -353, -353,
 
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353
@@ -6508,12 +6508,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354,   62, -354,  375,  375,
       375,  375,  375,  375,  375,  375,  375,  375, -354, -354,
-     -354, -354, -354, -354, -354, -354, -354, -354, -354,   65,
+     -354, -354, -354, -354, -354, -354, -354, -354,   65,   65,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
 
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
-     -354,   65, -354, -354, -354, -354, -354, -354, -354, -354,
+       65,   65, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354
     },
@@ -6526,11 +6526,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -355, -355, -355, -355, -355, -355,   62, -355,  376,  376,
 
       376,  376,  376,  376,  376,  376,  376,  376, -355, -355,
-     -355, -355, -355, -355, -355, -355, -355, -355, -355,   65,
+     -355, -355, -355, -355, -355, -355, -355, -355,   65,   65,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
-     -355,   65, -355, -355, -355, -355, -355, -355, -355, -355,
+       65,   65, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355
     },
@@ -6543,11 +6543,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356,   62, -356,  377,  377,
       377,  377,  377,  377,  377,  377,  377,  377, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356,   65,
+     -356, -356, -356, -356, -356, -356, -356, -356,   65,   65,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356,   65, -356, -356, -356, -356, -356, -356, -356, -356,
+       65,   65, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
 
      -356, -356, -356, -356, -356, -356, -356, -356
@@ -6560,12 +6560,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357,   62, -357,  378,  378,
       378,  378,  378,  378,  378,  378,  378,  378, -357, -357,
-     -357, -357, -357, -357, -357, -357, -357, -357, -357,   65,
+     -357, -357, -357, -357, -357, -357, -357, -357,   65,   65,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
 
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
-     -357,   65, -357, -357, -357, -357, -357, -357, -357, -357,
+       65,   65, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357
     },
@@ -6578,11 +6578,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -358, -358, -358, -358, -358, -358,   62, -358,  379,  379,
       379,  379,  379,  379,  379,  379,  379,  379, -358, -358,
 
-     -358, -358, -358, -358, -358, -358, -358, -358, -358,   65,
+     -358, -358, -358, -358, -358, -358, -358, -358,   65,   65,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
-     -358,   65, -358, -358, -358, -358, -358, -358, -358, -358,
+       65,   65, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358
     },
@@ -6595,11 +6595,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359,   62, -359,  380,  380,
       380,  380,  380,  380,  380,  380,  380,  380, -359, -359,
-     -359, -359, -359, -359, -359, -359, -359, -359, -359,   65,
+     -359, -359, -359, -359, -359, -359, -359, -359,   65,   65,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
-     -359,   65, -359, -359, -359, -359, -359, -359, -359, -359,
+       65,   65, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359
 
@@ -6612,12 +6612,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360,   62, -360,  381,  381,
       381,  381,  381,  381,  381,  381,  381,  381, -360, -360,
-     -360, -360, -360, -360, -360, -360, -360, -360, -360,   65,
+     -360, -360, -360, -360, -360, -360, -360, -360,   65,   65,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
 
-     -360,   65, -360, -360, -360, -360, -360, -360, -360, -360,
+       65,   65, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360
     },
@@ -6629,12 +6629,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361,   62, -361,  382,  382,
       382,  382,  382,  382,  382,  382,  382,  382, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361,   65,
+     -361, -361, -361, -361, -361, -361, -361, -361,   65,   65,
 
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361,   65, -361, -361, -361, -361, -361, -361, -361, -361,
+       65,   65, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361
     },
@@ -6647,11 +6647,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -362, -362, -362, -362, -362, -362,   62, -362,  383,  383,
       383,  383,  383,  383,  383,  383,  383,  383, -362, -362,
-     -362, -362, -362, -362, -362, -362, -362, -362, -362,   65,
+     -362, -362, -362, -362, -362, -362, -362, -362,   65,   65,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362,   65, -362, -362, -362, -362, -362, -362, -362, -362,
+       65,   65, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362
     },
@@ -6664,11 +6664,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363,   62, -363,  384,  384,
       384,  384,  384,  384,  384,  384,  384,  384, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363, -363,   65,
+     -363, -363, -363, -363, -363, -363, -363, -363,   65,   65,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363,   65, -363, -363, -363, -363, -363, -363, -363, -363,
+       65,   65, -363, -363, -363, -363, -363, -363, -363, -363,
 
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363
@@ -6681,12 +6681,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364,   62, -364,  385,  385,
       385,  385,  385,  385,  385,  385,  385,  385, -364, -364,
-     -364, -364, -364, -364, -364, -364, -364, -364, -364,   65,
+     -364, -364, -364, -364, -364, -364, -364, -364,   65,   65,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
 
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364,   65, -364, -364, -364, -364, -364, -364, -364, -364,
+       65,   65, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364
     },
@@ -6733,12 +6733,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367,   62, -367,  388,  389,
       389,  389,  389,  389,  389,  389,  389,  389, -367, -367,
-     -367, -367, -367, -367, -367, -367, -367, -367, -367,   65,
+     -367, -367, -367, -367, -367, -367, -367, -367,   65,   65,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
 
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
-     -367,   65, -367, -367, -367, -367, -367, -367, -367, -367,
+       65,   65, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367
     },
@@ -6751,11 +6751,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -368, -368, -368, -368, -368, -368,   62, -368,  390,  390,
       390,  390,  390,  390,  390,  390,  390,  390, -368, -368,
 
-     -368, -368, -368, -368, -368, -368, -368, -368, -368,   65,
+     -368, -368, -368, -368, -368, -368, -368, -368,   65,   65,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
-     -368,   65, -368, -368, -368, -368, -368, -368, -368, -368,
+       65,   65, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368
     },
@@ -6768,11 +6768,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369,   62, -369,  391,  391,
       391,  391,  391,  391,  391,  391,  391,  391, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369, -369,   65,
+     -369, -369, -369, -369, -369, -369, -369, -369,   65,   65,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
-     -369,   65, -369, -369, -369, -369, -369, -369, -369, -369,
+       65,   65, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369
 
@@ -6785,12 +6785,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370,   62, -370,  392,  392,
       392,  392,  392,  392,  392,  392,  392,  392, -370, -370,
-     -370, -370, -370, -370, -370, -370, -370, -370, -370,   65,
+     -370, -370, -370, -370, -370, -370, -370, -370,   65,   65,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
 
-     -370,   65, -370, -370, -370, -370, -370, -370, -370, -370,
+       65,   65, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370
     },
@@ -6802,12 +6802,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371,   62, -371,  393,  393,
       393,  393,  393,  393,  393,  393,  393,  393, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371, -371,   65,
+     -371, -371, -371, -371, -371, -371, -371, -371,   65,   65,
 
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371,   65, -371, -371, -371, -371, -371, -371, -371, -371,
+       65,   65, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371
     },
@@ -6820,11 +6820,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -372, -372, -372, -372, -372, -372,   62, -372,  394,  394,
       394,  394,  394,  394,  394,  394,  394,  394, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372,   65,
+     -372, -372, -372, -372, -372, -372, -372, -372,   65,   65,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372,   65, -372, -372, -372, -372, -372, -372, -372, -372,
+       65,   65, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372
     },
@@ -6837,11 +6837,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373,   62, -373,  395,  395,
       395,  395,  395,  395,  395,  395,  395,  395, -373, -373,
-     -373, -373, -373, -373, -373, -373, -373, -373, -373,   65,
+     -373, -373, -373, -373, -373, -373, -373, -373,   65,   65,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
-     -373,   65, -373, -373, -373, -373, -373, -373, -373, -373,
+       65,   65, -373, -373, -373, -373, -373, -373, -373, -373,
 
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373
@@ -6854,12 +6854,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374,   62, -374,  396,  396,
       396,  396,  396,  396,  396,  396,  396,  396, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374,   65,
+     -374, -374, -374, -374, -374, -374, -374, -374,   65,   65,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
 
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374,   65, -374, -374, -374, -374, -374, -374, -374, -374,
+       65,   65, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374
     },
@@ -6872,11 +6872,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -375, -375, -375, -375, -375, -375,   62, -375,  397,  397,
 
       397,  397,  397,  397,  397,  397,  397,  397, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375,   65,
+     -375, -375, -375, -375, -375, -375, -375, -375,   65,   65,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375,   65, -375, -375, -375, -375, -375, -375, -375, -375,
+       65,   65, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375
     },
@@ -6889,11 +6889,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376,   62, -376,  398,  398,
       398,  398,  398,  398,  398,  398,  398,  398, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376,   65,
+     -376, -376, -376, -376, -376, -376, -376, -376,   65,   65,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376,   65, -376, -376, -376, -376, -376, -376, -376, -376,
+       65,   65, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
 
      -376, -376, -376, -376, -376, -376, -376, -376
@@ -6906,12 +6906,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377,   62, -377,  399,  399,
       399,  399,  399,  399,  399,  399,  399,  399, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377,   65,
+     -377, -377, -377, -377, -377, -377, -377, -377,   65,   65,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
 
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377,   65, -377, -377, -377, -377, -377, -377, -377, -377,
+       65,   65, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377
     },
@@ -6924,11 +6924,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -378, -378, -378, -378, -378, -378,   62, -378,  400,  400,
       400,  400,  400,  400,  400,  400,  400,  400, -378, -378,
 
-     -378, -378, -378, -378, -378, -378, -378, -378, -378,   65,
+     -378, -378, -378, -378, -378, -378, -378, -378,   65,   65,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378,   65, -378, -378, -378, -378, -378, -378, -378, -378,
+       65,   65, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378
     },
@@ -6941,11 +6941,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379,   62, -379,  401,  401,
       401,  401,  401,  401,  401,  401,  401,  401, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379,   65,
+     -379, -379, -379, -379, -379, -379, -379, -379,   65,   65,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379,   65, -379, -379, -379, -379, -379, -379, -379, -379,
+       65,   65, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379
 
@@ -6958,12 +6958,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380,   62, -380,  402,  402,
       402,  402,  402,  402,  402,  402,  402,  402, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380,   65,
+     -380, -380, -380, -380, -380, -380, -380, -380,   65,   65,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
 
-     -380,   65, -380, -380, -380, -380, -380, -380, -380, -380,
+       65,   65, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380
     },
@@ -6975,12 +6975,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381,   62, -381,  403,  403,
       403,  403,  403,  403,  403,  403,  403,  403, -381, -381,
-     -381, -381, -381, -381, -381, -381, -381, -381, -381,   65,
+     -381, -381, -381, -381, -381, -381, -381, -381,   65,   65,
 
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
-     -381,   65, -381, -381, -381, -381, -381, -381, -381, -381,
+       65,   65, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381
     },
@@ -6993,11 +6993,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -382, -382, -382, -382, -382, -382,   62, -382,  404,  404,
       404,  404,  404,  404,  404,  404,  404,  404, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382,   65,
+     -382, -382, -382, -382, -382, -382, -382, -382,   65,   65,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382,   65, -382, -382, -382, -382, -382, -382, -382, -382,
+       65,   65, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382
     },
@@ -7010,11 +7010,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383,   62, -383,  405,  405,
       405,  405,  405,  405,  405,  405,  405,  405, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383,   65,
+     -383, -383, -383, -383, -383, -383, -383, -383,   65,   65,
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383,   65, -383, -383, -383, -383, -383, -383, -383, -383,
+       65,   65, -383, -383, -383, -383, -383, -383, -383, -383,
 
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383, -383, -383
@@ -7027,12 +7027,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384,   62, -384,  406,  406,
       406,  406,  406,  406,  406,  406,  406,  406, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384,   65,
+     -384, -384, -384, -384, -384, -384, -384, -384,   65,   65,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
 
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384,   65, -384, -384, -384, -384, -384, -384, -384, -384,
+       65,   65, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384
     },
@@ -7045,11 +7045,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -385, -385, -385, -385, -385, -385,   62, -385,  407,  407,
 
       407,  407,  407,  407,  407,  407,  407,  407, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385,   65,
+     -385, -385, -385, -385, -385, -385, -385, -385,   65,   65,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385,   65, -385, -385, -385, -385, -385, -385, -385, -385,
+       65,   65, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385
     },
@@ -7097,11 +7097,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -388, -388, -388, -388, -388, -388,   62, -388,  410,  411,
       411,  411,  411,  411,  411,  411,  411,  411, -388, -388,
 
-     -388, -388, -388, -388, -388, -388, -388, -388, -388,   65,
+     -388, -388, -388, -388, -388, -388, -388, -388,   65,   65,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388,   65, -388, -388, -388, -388, -388, -388, -388, -388,
+       65,   65, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388
     },
@@ -7114,11 +7114,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389,   62, -389,  412,  412,
       412,  412,  412,  412,  412,  412,  412,  412, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389,   65,
+     -389, -389, -389, -389, -389, -389, -389, -389,   65,   65,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389,   65, -389, -389, -389, -389, -389, -389, -389, -389,
+       65,   65, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389
 
@@ -7131,12 +7131,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390,   62, -390,  413,  413,
       413,  413,  413,  413,  413,  413,  413,  413, -390, -390,
-     -390, -390, -390, -390, -390, -390, -390, -390, -390,   65,
+     -390, -390, -390, -390, -390, -390, -390, -390,   65,   65,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
 
-     -390,   65, -390, -390, -390, -390, -390, -390, -390, -390,
+       65,   65, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390
     },
@@ -7148,12 +7148,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391,   62, -391,  414,  414,
       414,  414,  414,  414,  414,  414,  414,  414, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391,   65,
+     -391, -391, -391, -391, -391, -391, -391, -391,   65,   65,
 
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391,   65, -391, -391, -391, -391, -391, -391, -391, -391,
+       65,   65, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391
     },
@@ -7166,11 +7166,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -392, -392, -392, -392, -392, -392,   62, -392,  415,  415,
       415,  415,  415,  415,  415,  415,  415,  415, -392, -392,
-     -392, -392, -392, -392, -392, -392, -392, -392, -392,   65,
+     -392, -392, -392, -392, -392, -392, -392, -392,   65,   65,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
-     -392,   65, -392, -392, -392, -392, -392, -392, -392, -392,
+       65,   65, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392
     },
@@ -7183,11 +7183,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393,   62, -393,  416,  416,
       416,  416,  416,  416,  416,  416,  416,  416, -393, -393,
-     -393, -393, -393, -393, -393, -393, -393, -393, -393,   65,
+     -393, -393, -393, -393, -393, -393, -393, -393,   65,   65,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
-     -393,   65, -393, -393, -393, -393, -393, -393, -393, -393,
+       65,   65, -393, -393, -393, -393, -393, -393, -393, -393,
 
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393
@@ -7200,12 +7200,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394,   62, -394,  417,  417,
       417,  417,  417,  417,  417,  417,  417,  417, -394, -394,
-     -394, -394, -394, -394, -394, -394, -394, -394, -394,   65,
+     -394, -394, -394, -394, -394, -394, -394, -394,   65,   65,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
 
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
-     -394,   65, -394, -394, -394, -394, -394, -394, -394, -394,
+       65,   65, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394
     },
@@ -7218,11 +7218,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -395, -395, -395, -395, -395, -395,   62, -395,  418,  418,
 
       418,  418,  418,  418,  418,  418,  418,  418, -395, -395,
-     -395, -395, -395, -395, -395, -395, -395, -395, -395,   65,
+     -395, -395, -395, -395, -395, -395, -395, -395,   65,   65,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
-     -395,   65, -395, -395, -395, -395, -395, -395, -395, -395,
+       65,   65, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395
     },
@@ -7235,11 +7235,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396,   62, -396,  419,  419,
       419,  419,  419,  419,  419,  419,  419,  419, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396,   65,
+     -396, -396, -396, -396, -396, -396, -396, -396,   65,   65,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396,   65, -396, -396, -396, -396, -396, -396, -396, -396,
+       65,   65, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
 
      -396, -396, -396, -396, -396, -396, -396, -396
@@ -7252,12 +7252,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397,   62, -397,  420,  420,
       420,  420,  420,  420,  420,  420,  420,  420, -397, -397,
-     -397, -397, -397, -397, -397, -397, -397, -397, -397,   65,
+     -397, -397, -397, -397, -397, -397, -397, -397,   65,   65,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
 
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
-     -397,   65, -397, -397, -397, -397, -397, -397, -397, -397,
+       65,   65, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397
     },
@@ -7270,11 +7270,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -398, -398, -398, -398, -398, -398,   62, -398,  421,  421,
       421,  421,  421,  421,  421,  421,  421,  421, -398, -398,
 
-     -398, -398, -398, -398, -398, -398, -398, -398, -398,   65,
+     -398, -398, -398, -398, -398, -398, -398, -398,   65,   65,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398,   65, -398, -398, -398, -398, -398, -398, -398, -398,
+       65,   65, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398
     },
@@ -7287,11 +7287,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399,   62, -399,  422,  422,
       422,  422,  422,  422,  422,  422,  422,  422, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399,   65,
+     -399, -399, -399, -399, -399, -399, -399, -399,   65,   65,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399,   65, -399, -399, -399, -399, -399, -399, -399, -399,
+       65,   65, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399
 
@@ -7304,12 +7304,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400,   62, -400,  423,  423,
       423,  423,  423,  423,  423,  423,  423,  423, -400, -400,
-     -400, -400, -400, -400, -400, -400, -400, -400, -400,   65,
+     -400, -400, -400, -400, -400, -400, -400, -400,   65,   65,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
 
-     -400,   65, -400, -400, -400, -400, -400, -400, -400, -400,
+       65,   65, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400
     },
@@ -7321,12 +7321,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401,   62, -401,  424,  424,
       424,  424,  424,  424,  424,  424,  424,  424, -401, -401,
-     -401, -401, -401, -401, -401, -401, -401, -401, -401,   65,
+     -401, -401, -401, -401, -401, -401, -401, -401,   65,   65,
 
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
-     -401,   65, -401, -401, -401, -401, -401, -401, -401, -401,
+       65,   65, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401
     },
@@ -7339,11 +7339,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -402, -402, -402, -402, -402, -402,   62, -402,  425,  425,
       425,  425,  425,  425,  425,  425,  425,  425, -402, -402,
-     -402, -402, -402, -402, -402, -402, -402, -402, -402,   65,
+     -402, -402, -402, -402, -402, -402, -402, -402,   65,   65,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
-     -402,   65, -402, -402, -402, -402, -402, -402, -402, -402,
+       65,   65, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402
     },
@@ -7356,11 +7356,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403,   62, -403,  426,  426,
       426,  426,  426,  426,  426,  426,  426,  426, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403,   65,
+     -403, -403, -403, -403, -403, -403, -403, -403,   65,   65,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403,   65, -403, -403, -403, -403, -403, -403, -403, -403,
+       65,   65, -403, -403, -403, -403, -403, -403, -403, -403,
 
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403
@@ -7373,12 +7373,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404,   62, -404,  427,  427,
       427,  427,  427,  427,  427,  427,  427,  427, -404, -404,
-     -404, -404, -404, -404, -404, -404, -404, -404, -404,   65,
+     -404, -404, -404, -404, -404, -404, -404, -404,   65,   65,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
 
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
-     -404,   65, -404, -404, -404, -404, -404, -404, -404, -404,
+       65,   65, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404
     },
@@ -7391,11 +7391,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -405, -405, -405, -405, -405, -405,   62, -405,  428,  428,
 
       428,  428,  428,  428,  428,  428,  428,  428, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405,   65,
+     -405, -405, -405, -405, -405, -405, -405, -405,   65,   65,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405,   65, -405, -405, -405, -405, -405, -405, -405, -405,
+       65,   65, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405
     },
@@ -7408,11 +7408,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406,   62, -406,  429,  429,
       429,  429,  429,  429,  429,  429,  429,  429, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406,   65,
+     -406, -406, -406, -406, -406, -406, -406, -406,   65,   65,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406,   65, -406, -406, -406, -406, -406, -406, -406, -406,
+       65,   65, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
 
      -406, -406, -406, -406, -406, -406, -406, -406
@@ -7425,12 +7425,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407,   62, -407,  430,  430,
       430,  430,  430,  430,  430,  430,  430,  430, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407,   65,
+     -407, -407, -407, -407, -407, -407, -407, -407,   65,   65,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
 
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407,   65, -407, -407, -407, -407, -407, -407, -407, -407,
+       65,   65, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407
     },
@@ -7477,12 +7477,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410,   62, -410,  410,  411,
       411,  411,  411,  411,  411,  411,  411,  411, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410,   65,
+     -410, -410, -410, -410, -410, -410, -410, -410,   65,   65,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
 
-     -410,   65, -410, -410, -410, -410, -410, -410, -410, -410,
+       65,   65, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410
     },
@@ -7494,12 +7494,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411,   62, -411,  412,  412,
       412,  412,  412,  412,  412,  412,  412,  412, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411,   65,
+     -411, -411, -411, -411, -411, -411, -411, -411,   65,   65,
 
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411,   65, -411, -411, -411, -411, -411, -411, -411, -411,
+       65,   65, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411
     },
@@ -7512,11 +7512,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -412, -412, -412, -412, -412, -412,   62, -412,  413,  413,
       413,  413,  413,  413,  413,  413,  413,  413, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412,   65,
+     -412, -412, -412, -412, -412, -412, -412, -412,   65,   65,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412,   65, -412, -412, -412, -412, -412, -412, -412, -412,
+       65,   65, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412
     },
@@ -7529,11 +7529,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413,   62, -413,  414,  414,
       414,  414,  414,  414,  414,  414,  414,  414, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413,   65,
+     -413, -413, -413, -413, -413, -413, -413, -413,   65,   65,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413,   65, -413, -413, -413, -413, -413, -413, -413, -413,
+       65,   65, -413, -413, -413, -413, -413, -413, -413, -413,
 
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413
@@ -7546,12 +7546,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414,   62, -414,  415,  415,
       415,  415,  415,  415,  415,  415,  415,  415, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414,   65,
+     -414, -414, -414, -414, -414, -414, -414, -414,   65,   65,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
 
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414,   65, -414, -414, -414, -414, -414, -414, -414, -414,
+       65,   65, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414
     },
@@ -7564,11 +7564,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -415, -415, -415, -415, -415, -415,   62, -415,  416,  416,
 
       416,  416,  416,  416,  416,  416,  416,  416, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415,   65,
+     -415, -415, -415, -415, -415, -415, -415, -415,   65,   65,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415,   65, -415, -415, -415, -415, -415, -415, -415, -415,
+       65,   65, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415
     },
@@ -7581,11 +7581,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416,   62, -416,  417,  417,
       417,  417,  417,  417,  417,  417,  417,  417, -416, -416,
-     -416, -416, -416, -416, -416, -416, -416, -416, -416,   65,
+     -416, -416, -416, -416, -416, -416, -416, -416,   65,   65,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
-     -416,   65, -416, -416, -416, -416, -416, -416, -416, -416,
+       65,   65, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
 
      -416, -416, -416, -416, -416, -416, -416, -416
@@ -7598,12 +7598,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417,   62, -417,  418,  418,
       418,  418,  418,  418,  418,  418,  418,  418, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417,   65,
+     -417, -417, -417, -417, -417, -417, -417, -417,   65,   65,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
 
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417,   65, -417, -417, -417, -417, -417, -417, -417, -417,
+       65,   65, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417
     },
@@ -7616,11 +7616,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -418, -418, -418, -418, -418, -418,   62, -418,  419,  419,
       419,  419,  419,  419,  419,  419,  419,  419, -418, -418,
 
-     -418, -418, -418, -418, -418, -418, -418, -418, -418,   65,
+     -418, -418, -418, -418, -418, -418, -418, -418,   65,   65,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418,   65, -418, -418, -418, -418, -418, -418, -418, -418,
+       65,   65, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418
     },
@@ -7633,11 +7633,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419,   62, -419,  420,  420,
       420,  420,  420,  420,  420,  420,  420,  420, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419,   65,
+     -419, -419, -419, -419, -419, -419, -419, -419,   65,   65,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419,   65, -419, -419, -419, -419, -419, -419, -419, -419,
+       65,   65, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419
 
@@ -7650,12 +7650,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420,   62, -420,  421,  421,
       421,  421,  421,  421,  421,  421,  421,  421, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420,   65,
+     -420, -420, -420, -420, -420, -420, -420, -420,   65,   65,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
 
-     -420,   65, -420, -420, -420, -420, -420, -420, -420, -420,
+       65,   65, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420
     },
@@ -7667,12 +7667,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421,   62, -421,  422,  422,
       422,  422,  422,  422,  422,  422,  422,  422, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421,   65,
+     -421, -421, -421, -421, -421, -421, -421, -421,   65,   65,
 
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421,   65, -421, -421, -421, -421, -421, -421, -421, -421,
+       65,   65, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421
     },
@@ -7685,11 +7685,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -422, -422, -422, -422, -422, -422,   62, -422,  423,  423,
       423,  423,  423,  423,  423,  423,  423,  423, -422, -422,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422,   65,
+     -422, -422, -422, -422, -422, -422, -422, -422,   65,   65,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422,   65, -422, -422, -422, -422, -422, -422, -422, -422,
+       65,   65, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422
     },
@@ -7702,11 +7702,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423,   62, -423,  424,  424,
       424,  424,  424,  424,  424,  424,  424,  424, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423,   65,
+     -423, -423, -423, -423, -423, -423, -423, -423,   65,   65,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423,   65, -423, -423, -423, -423, -423, -423, -423, -423,
+       65,   65, -423, -423, -423, -423, -423, -423, -423, -423,
 
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423
@@ -7719,12 +7719,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424,   62, -424,  425,  425,
       425,  425,  425,  425,  425,  425,  425,  425, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424,   65,
+     -424, -424, -424, -424, -424, -424, -424, -424,   65,   65,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
 
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424,   65, -424, -424, -424, -424, -424, -424, -424, -424,
+       65,   65, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424
     },
@@ -7737,11 +7737,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -425, -425, -425, -425, -425, -425,   62, -425,  426,  426,
 
       426,  426,  426,  426,  426,  426,  426,  426, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425,   65,
+     -425, -425, -425, -425, -425, -425, -425, -425,   65,   65,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425,   65, -425, -425, -425, -425, -425, -425, -425, -425,
+       65,   65, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425
     },
@@ -7754,11 +7754,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426,   62, -426,  427,  427,
       427,  427,  427,  427,  427,  427,  427,  427, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426,   65,
+     -426, -426, -426, -426, -426, -426, -426, -426,   65,   65,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426,   65, -426, -426, -426, -426, -426, -426, -426, -426,
+       65,   65, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
 
      -426, -426, -426, -426, -426, -426, -426, -426
@@ -7771,12 +7771,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427,   62, -427,  428,  428,
       428,  428,  428,  428,  428,  428,  428,  428, -427, -427,
-     -427, -427, -427, -427, -427, -427, -427, -427, -427,   65,
+     -427, -427, -427, -427, -427, -427, -427, -427,   65,   65,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
 
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
-     -427,   65, -427, -427, -427, -427, -427, -427, -427, -427,
+       65,   65, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427
     },
@@ -7789,11 +7789,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -428, -428, -428, -428, -428, -428,   62, -428,  429,  429,
       429,  429,  429,  429,  429,  429,  429,  429, -428, -428,
 
-     -428, -428, -428, -428, -428, -428, -428, -428, -428,   65,
+     -428, -428, -428, -428, -428, -428, -428, -428,   65,   65,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428,   65, -428, -428, -428, -428, -428, -428, -428, -428,
+       65,   65, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428
     },
@@ -7806,11 +7806,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429,   62, -429,  430,  430,
       430,  430,  430,  430,  430,  430,  430,  430, -429, -429,
-     -429, -429, -429, -429, -429, -429, -429, -429, -429,   65,
+     -429, -429, -429, -429, -429, -429, -429, -429,   65,   65,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
-     -429,   65, -429, -429, -429, -429, -429, -429, -429, -429,
+       65,   65, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429
 
@@ -7823,12 +7823,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
      -430, -430, -430, -430, -430, -430,   62, -430,  430,  430,
       430,  430,  430,  430,  430,  430,  430,  430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430,   65,
+     -430, -430, -430, -430, -430, -430, -430, -430,   65,   65,
      -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
      -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
      -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
 
-     -430,   65, -430, -430, -430, -430, -430, -430, -430, -430,
+       65,   65, -430, -430, -430, -430, -430, -430, -430, -430,
      -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
      -430, -430, -430, -430, -430, -430, -430, -430
     },
@@ -10083,7 +10083,7 @@ char *fitshdrtext;
 #line 1 "fitshdr.l"
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -10105,7 +10105,7 @@ char *fitshdrtext;
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: fitshdr.c,v 4.25.1.2 2015/01/06 01:06:52 mcalabre Exp mcalabre $
+  $Id: fitshdr.c,v 5.0 2015/04/05 09:18:14 mcalabre Exp $
 *=============================================================================
 *
 * fitshdr.l is a Flex description file containing a lexical scanner
diff --git a/C/flexed/wcsbth.c b/C/flexed/wcsbth.c
index 2d2d119..55ca12e 100644
--- a/C/flexed/wcsbth.c
+++ b/C/flexed/wcsbth.c
@@ -429,73 +429,38 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   84,
-       84,   84,   84,   84,   84,   84,   84,   84,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68
-    },
-
-    {
-       67,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   84,
-       84,   84,   84,   84,   84,   84,   84,   84,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68
-    },
+       67,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-    {
-       67,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       68,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   86,
+       68,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   85,   86,
+       86,   86,   86,   86,   86,   86,   86,   86,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-       86,   86,   86,   86,   86,   86,   86,   86,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84
     },
 
     {
-       67,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       68,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       67,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       68,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   85,   86,
+       86,   86,   86,   86,   86,   86,   86,   86,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-
-       85,   85,   85,   85,   85,   85,   85,   85
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84
     },
 
     {
@@ -504,11 +469,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   88,
+
        88,   88,   88,   88,   88,   88,   88,   88,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
-
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
@@ -518,17 +483,18 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        67,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        68,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   88,
        88,   88,   88,   88,   88,   88,   88,   88,   87,   87,
-
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
        87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+
        87,   87,   87,   87,   87,   87,   87,   87
     },
 
@@ -536,18 +502,17 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        68,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   90,
        90,   90,   90,   90,   90,   90,   90,   90,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89
-
     },
 
     {
@@ -557,11 +522,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   90,
        90,   90,   90,   90,   90,   90,   90,   90,   89,   89,
+
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
-
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
        89,   89,   89,   89,   89,   89,   89,   89
@@ -571,17 +536,18 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        68,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   92,
        92,   92,   92,   92,   92,   92,   92,   92,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
-
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91
+
     },
 
     {
@@ -589,13 +555,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
-
        91,   91,   91,   91,   91,   91,   91,   91,   91,   92,
        92,   92,   92,   92,   92,   92,   92,   92,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
        91,   91,   91,   91,   91,   91,   91,   91
@@ -603,18 +569,17 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
     {
        67,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-
        68,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-       93,   93,   93,   93,   93,   93,   93,   93,   94,   95,
-       95,   95,   95,   95,   95,   95,   95,   95,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93
     },
@@ -624,11 +589,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-       93,   93,   93,   93,   93,   93,   93,   93,   94,   95,
-       95,   95,   95,   95,   95,   95,   95,   95,   93,   93,
+
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
@@ -637,13 +602,48 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
+       67,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+
+       68,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   96,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95
+    },
+
+    {
+       67,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       68,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   96,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95
+    },
+
+    {
        67,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   96,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   98,
 
-       96,   96,   96,   96,   96,   96,   96,   96,   68,   68,
+       98,   98,   98,   98,   98,   98,   98,   98,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
@@ -659,8 +659,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   96,
-       96,   96,   96,   96,   96,   96,   96,   96,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
@@ -672,55 +672,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       68,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97
-    },
-
-    {
-       67,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       68,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   98,
-       98,   98,   98,   98,   98,   98,   98,   98,   97,   97,
-
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   97,   97,   97
-    },
-
-    {
        67,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        68,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,  100,
       100,  100,  100,  100,  100,  100,  100,  100,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99
-
     },
 
     {
@@ -730,11 +695,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,  100,
       100,  100,  100,  100,  100,  100,  100,  100,   99,   99,
+
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
        99,   99,   99,   99,   99,   99,   99,   99
@@ -744,17 +709,18 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  101,  101,  101,  101,  101,  101,  101,  101,  101,
        68,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  102,
       102,  102,  102,  102,  102,  102,  102,  102,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101
+
     },
 
     {
@@ -762,13 +728,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-
       101,  101,  101,  101,  101,  101,  101,  101,  101,  102,
       102,  102,  102,  102,  102,  102,  102,  102,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101
@@ -776,18 +742,17 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
     {
        67,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-
        68,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  104,
+      103,  103,  103,  103,  103,  103,  103,  103,  104,  104,
       104,  104,  104,  104,  104,  104,  104,  104,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103
     },
@@ -797,11 +762,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  104,
+
+      103,  103,  103,  103,  103,  103,  103,  103,  104,  104,
       104,  104,  104,  104,  104,  104,  104,  104,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
@@ -811,17 +776,18 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
     {
        67,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+
        68,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  106,
-
       106,  106,  106,  106,  106,  106,  106,  106,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105
     },
@@ -829,18 +795,17 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        67,  105,  105,  105,  105,  105,  105,  105,  105,  105,
        68,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  106,
       106,  106,  106,  106,  106,  106,  106,  106,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
-
       105,  105,  105,  105,  105,  105,  105,  105
     },
 
@@ -850,11 +815,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  108,
+
       108,  108,  108,  108,  108,  108,  108,  108,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
-
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
@@ -864,17 +829,18 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        67,  107,  107,  107,  107,  107,  107,  107,  107,  107,
        68,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  108,
       108,  108,  108,  108,  108,  108,  108,  108,  107,  107,
-
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+
       107,  107,  107,  107,  107,  107,  107,  107
     },
 
@@ -882,18 +848,17 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  109,  109,  109,  109,  109,  109,  109,  109,  109,
        68,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
-
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
-      109,  109,  109,  109,  109,  109,  109,  109,  109,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  110,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109
-
     },
 
     {
@@ -901,203 +866,169 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
-      109,  109,  109,  109,  109,  109,  109,  109,  109,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  110,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  109,  109,
+
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
-
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
       109,  109,  109,  109,  109,  109,  109,  109
     },
 
     {
-       67,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-       68,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  112,
-      112,  112,  112,  112,  112,  112,  112,  112,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111
-    },
+       67,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+       68,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
 
-    {
-       67,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-       68,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112
 
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  112,
-      112,  112,  112,  112,  112,  112,  112,  112,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111
     },
 
     {
-       67,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+       67,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+       68,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
 
-       68,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112
     },
 
     {
-       67,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-       68,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+       67,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+       68,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
 
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114
     },
 
     {
-       67,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-       68,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  116,
+       67,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+       68,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
 
-      116,  116,  116,  116,  116,  116,  116,  116,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114
     },
 
     {
-       67,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-       68,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+       67,  116,  116,  116,  116,  116,  116,  116,  116,  116,
 
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  116,
-      116,  116,  116,  116,  116,  116,  116,  116,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
-      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+       68,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
 
-      115,  115,  115,  115,  115,  115,  115,  115
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116
     },
 
     {
-       67,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-       68,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+       67,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+       68,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
 
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116
     },
 
     {
-       67,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-       68,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  117,  117,
+       67,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+       68,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  119,
 
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117,  117,  117,  117
+      119,  119,  119,  119,  119,  119,  119,  119,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118
     },
 
     {
-       67,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-       68,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119
+       67,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+       68,  118,  118,  118,  118,  118,  118,  118,  118,  118,
 
-    },
-
-    {
-       67,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-       68,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
 
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119
+      118,  118,  118,  118,  118,  118,  118,  118
     },
 
     {
        67,  120,  120,  120,  120,  120,  120,  120,  120,  120,
        68,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  121,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  121,  121,  121,  121,  121,
 
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120
@@ -1107,14 +1038,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  120,  120,  120,  120,  120,  120,  120,  120,  120,
        68,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  121,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  120,  120,
 
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  120,  120,  120,  120,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       120,  120,  120,  120,  120,  120,  120,  120
@@ -1122,20 +1053,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
     {
        67,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-
        68,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+
+      122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+      122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122,  122,  123,
-      123,  123,  123,  123,  123,  123,  123,  123,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122
+
     },
 
     {
@@ -1143,204 +1074,239 @@ static yyconst flex_int16_t yy_nxt[][128] =
        68,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122,  122,  123,
-      123,  123,  123,  123,  123,  123,  123,  123,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
-
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+
+      122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+      122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
       122,  122,  122,  122,  122,  122,  122,  122
     },
 
     {
-       67,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-       68,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  125,
+       67,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+       68,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  124,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  124,  124,  124,  124,  124,
 
-      125,  125,  125,  125,  125,  125,  125,  125,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124
+      124,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123
     },
 
     {
-       67,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-       68,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+       67,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+       68,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  124,  123,  123,  123,  123,  123,  123,  123,
 
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  124,  124,  124,  124,  124,
       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  125,
-      125,  125,  125,  125,  125,  125,  125,  125,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-
-      124,  124,  124,  124,  124,  124,  124,  124
+      124,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123
     },
 
     {
-       67,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-       68,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  127,
-      127,  127,  127,  127,  127,  127,  127,  127,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+       67,  125,  125,  125,  125,  125,  125,  125,  125,  125,
 
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126
+       68,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125
+    },
+
+    {
+       67,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+       68,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125
     },
 
     {
-       67,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-       68,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  127,
-      127,  127,  127,  127,  127,  127,  127,  127,  126,  126,
+       67,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+       68,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  128,
 
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126
+      128,  128,  128,  128,  128,  128,  128,  128,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127
     },
 
     {
-       67,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-       68,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+       67,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+       68,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
 
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  129,
-      129,  129,  129,  129,  129,  129,  129,  129,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128
+      127,  127,  127,  127,  127,  127,  127,  127
+    },
+
+    {
+       67,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+       68,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
 
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129
     },
 
     {
-       67,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-       68,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  129,
-      129,  129,  129,  129,  129,  129,  129,  129,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+       67,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+       68,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  129,  129,
 
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
-      128,  128,  128,  128,  128,  128,  128,  128
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129
     },
 
     {
-       67,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-       68,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  131,  130,  130,  130,  130,  130,  130,  130,  130,
+       67,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+       68,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131
 
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130
     },
 
     {
-       67,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-       68,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+       67,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+       68,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
 
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  131,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131
     },
 
     {
-       67,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+       67,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+       68,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  134,  133,  133,  133,  133,  133,  133,  133,  133,
 
-       68,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  133,  132,  133,  132,  132,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133
     },
 
     {
-       67,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-       68,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  133,  132,  133,  132,  132,  134,  134,
-      134,  134,  134,  134,  134,  134,  134,  134,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+       67,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+       68,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
 
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  134,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133
     },
 
     {
        67,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+
        68,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
-      135,  135,  135,  136,  135,  136,  137,  135,  138,  138,
-
-      138,  138,  138,  138,  138,  138,  138,  138,  135,  135,
+      135,  135,  135,  136,  135,  136,  135,  135,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135
     },
@@ -1348,192 +1314,226 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        67,  135,  135,  135,  135,  135,  135,  135,  135,  135,
        68,  135,  135,  135,  135,  135,  135,  135,  135,  135,
-
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
-      135,  135,  135,  136,  135,  136,  137,  135,  138,  138,
-      138,  138,  138,  138,  138,  138,  138,  138,  135,  135,
+      135,  135,  135,  136,  135,  136,  135,  135,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
-
       135,  135,  135,  135,  135,  135,  135,  135
     },
 
     {
-       67,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-       68,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  140,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+       67,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+       68,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  139,  138,  139,  140,  138,  141,  141,
 
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139
+      141,  141,  141,  141,  141,  141,  141,  141,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138
     },
 
     {
-       67,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-       68,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  140,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+       67,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+       68,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  139,  138,  139,  140,  138,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
 
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139
+      138,  138,  138,  138,  138,  138,  138,  138
     },
 
     {
-       67,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-       68,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-
-      141,  141,  142,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  143,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141
+       67,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+       68,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  143,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
 
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142
     },
 
     {
-       67,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-       68,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  142,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  143,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+       67,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+       68,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  143,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
 
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
-      141,  141,  141,  141,  141,  141,  141,  141
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142
     },
 
     {
        67,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-       68,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+
+      144,  144,  146,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  147,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144
+
     },
 
     {
        67,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-       68,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
-
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  146,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  147,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
       144,  144,  144,  144,  144,  144,  144,  144
     },
 
     {
-       67,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+       67,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      149,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
 
-       68,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148
+    },
+
+    {
+       67,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      149,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148
+    },
+
+    {
+       67,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+
+      151,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
 
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150
     },
 
     {
-       67,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-       68,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
+       67,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      151,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
 
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150
     },
 
     {
-       67,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      147,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+       67,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
-       67,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      147,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+       67,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-      146,  146,  146,  146,  146,  146,  146,  146
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
@@ -1593,11 +1593,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
-      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  148,  148,
-      148,  148,  148,  148,  148,  148,  148,  148,  -70,  -70,
-      -70,  -70,  -70,  -70,  -70,  -70,  -70,  149,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  155,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
-      150,  -70,  -70,  151,  -70,  -70,  152,  -70,  -70,  -70,
+      156,  -70,  -70,  157,  -70,  -70,  158,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
 
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
@@ -1612,10 +1612,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
-      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  153,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  159,  -71,
 
-      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  154,  -71,
-      -71,  -71,  155,  156,  157,  158,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  160,  -71,
+      -71,  -71,  161,  162,  163,  164,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
@@ -1630,8 +1630,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
-      -72,  -72,  -72,  -72,  -72,  159,  -72,  -72,  -72,  -72,
-      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  160,
+      -72,  -72,  -72,  -72,  -72,  165,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  166,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
@@ -1648,8 +1648,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
       -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
       -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
-      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  161,  -73,
-      162,  163,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  167,  -73,
+      168,  169,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
       -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
       -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
 
@@ -1664,8 +1664,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
-      -74,  -74,  -74,  -74,  -74,  164,  -74,  -74,  -74,  -74,
-      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  165,
+      -74,  -74,  -74,  -74,  -74,  170,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  171,
 
       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
       -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
@@ -1683,7 +1683,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  166,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  172,  -75,  -75,  -75,  -75,  -75,
       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
       -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
@@ -1699,7 +1699,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
-      -76,  -76,  -76,  -76,  -76,  -76,  167,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  173,  -76,  -76,  -76,
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
       -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
@@ -1716,9 +1716,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
-      -77,  -77,  -77,  -77,  -77,  -77,  -77,  168,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  174,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
-      -77,  -77,  169,  170,  -77,  -77,  171,  -77,  -77,  -77,
+      -77,  -77,  175,  176,  -77,  -77,  177,  -77,  -77,  -77,
 
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
       -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
@@ -1734,9 +1734,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
 
-      -78,  -78,  -78,  -78,  -78,  172,  -78,  -78,  -78,  173,
-      174,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
-      -78,  -78,  -78,  -78,  -78,  -78,  -78,  175,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  178,  -78,  -78,  -78,  179,
+      180,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  181,  -78,  -78,
       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
       -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
@@ -1752,8 +1752,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
-      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  176,
-      177,  -79,  -79,  178,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  182,
+      183,  -79,  -79,  184,  -79,  -79,  -79,  -79,  -79,  -79,
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
       -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
@@ -1768,9 +1768,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  179,  -80,  -80,
-      180,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      181,  -80,  -80,  182,  -80,  -80,  183,  184,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  185,  -80,  -80,
+      186,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      187,  -80,  -80,  188,  -80,  -80,  189,  190,  -80,  -80,
       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
 
       -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
@@ -1785,10 +1785,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
-      -81,  -81,  -81,  -81,  -81,  185,  -81,  -81,  -81,  186,
+      -81,  -81,  -81,  -81,  -81,  191,  -81,  -81,  -81,  192,
 
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
-      -81,  -81,  -81,  187,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  193,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
@@ -1803,7 +1803,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  188,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  194,  -82,  -82,
       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
       -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
@@ -1822,7 +1822,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  189,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  195,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
 
@@ -1834,14 +1834,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  190,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  191,  191,
-      191,  191,  191,  191,  191,  191,  191,  191,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  190,  190,  190,  190,  190,
-      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
-
-      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
-      190,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
       -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84
@@ -1851,14 +1851,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  196,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  197,  198,
 
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      198,  198,  198,  198,  198,  198,  198,  198,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
@@ -1869,13 +1869,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
 
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
-      -86,  -86,  192,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
-      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  193,  193,
-      193,  193,  193,  193,  193,  193,  193,  193,  -86,  -86,
-      -86,  -86,  -86,  -86,  -86,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
-      192,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  199,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  200,  200,
+      200,  200,  200,  200,  200,  200,  200,  200,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  199,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
 
@@ -1903,14 +1903,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
-      -88,  -88,  194,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
-      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  195,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  -88,  -88,
+      -88,  -88,  201,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  -88,  -88,
 
-      -88,  -88,  -88,  -88,  -88,  196,  196,  196,  196,  196,
-      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
-      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
-      196,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  201,  201,  201,  201,  201,
+      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88
@@ -1938,13 +1938,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  197,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  198,  198,
-      198,  198,  198,  198,  198,  198,  198,  198,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  197,  197,  197,  197,  197,
-      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
-      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
-      197,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  203,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
 
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
@@ -1972,14 +1972,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-      -92,  -92,  199,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-
-      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  200,  200,
-      200,  200,  200,  200,  200,  200,  200,  200,  -92,  -92,
-      -92,  -92,  -92,  -92,  -92,  201,  201,  201,  201,  201,
-      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
-      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
-      201,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  206,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  206,  206,  206,  206,  206,
+      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
+      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
+      206,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92
@@ -2007,14 +2007,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  202,  202,
-      202,  202,  202,  202,  202,  202,  202,  202,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  208,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  210,  210,  210,  210,  210,
+      210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
+
+      210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
+      210,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94
@@ -2025,13 +2025,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  203,  203,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
 
-      203,  203,  203,  203,  203,  203,  203,  203,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,  -95,  -95,  204,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95
@@ -2042,13 +2042,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
 
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
-      -96,  -96,  205,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
-      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  206,  206,
-      206,  206,  206,  206,  206,  206,  206,  206,  -96,  -96,
-      -96,  -96,  -96,  -96,  -96,  205,  205,  205,  205,  205,
-      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
-      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
-      205,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  211,  -96,  -96,  212,  213,
+      213,  213,  213,  213,  213,  213,  213,  213,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  214,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
 
@@ -2060,13 +2060,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  211,  -97,  -97,  215,  215,
+      215,  215,  215,  215,  215,  215,  215,  215,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
 
-      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  216,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97
@@ -2076,14 +2076,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  207,  207,
-      207,  207,  207,  207,  207,  207,  207,  207,  -98,  -98,
-
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
-      -98,  -98,  -98,  -98,  -98,  208,  -98,  -98,  -98,  -98,
+      -98,  -98,  217,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  218,  218,
+      218,  218,  218,  218,  218,  218,  218,  218,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  217,  217,  217,  217,  217,
+      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
+      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
+      217,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98
@@ -2112,12 +2112,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100, -100, -100, -100, -100, -100,  209,  209,
-      209,  209,  209,  209,  209,  209,  209,  209, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100,  219,  219,
+      219,  219,  219,  219,  219,  219,  219,  219, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100, -100, -100,  210, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100,  220, -100, -100, -100, -100,
 
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
@@ -2145,14 +2145,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
-     -102, -102,  211, -102, -102, -102, -102, -102, -102, -102,
-
-     -102, -102, -102, -102, -102, -102, -102, -102,  212,  212,
-      212,  212,  212,  212,  212,  212,  212,  212, -102, -102,
-     -102, -102, -102, -102, -102,  213,  213,  213,  213,  213,
-      213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
-      213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
-      213, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+
+     -102, -102, -102, -102, -102, -102, -102, -102,  221,  221,
+      221,  221,  221,  221,  221,  221,  221,  221, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102,  222, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102
@@ -2180,14 +2180,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-     -104, -104,  214, -104, -104, -104, -104, -104, -104, -104,
-     -104, -104, -104, -104, -104, -104, -104, -104,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215, -104, -104,
-     -104, -104, -104, -104, -104,  216,  216,  216,  216,  216,
-      216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
-
-      216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
-      216, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104,  223, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224, -104, -104,
+     -104, -104, -104, -104, -104,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104
@@ -2215,13 +2215,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
 
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-     -106, -106,  217, -106, -106, -106, -106, -106, -106, -106,
-     -106, -106, -106, -106, -106, -106, -106, -106,  218,  218,
-      218,  218,  218,  218,  218,  218,  218,  218, -106, -106,
-     -106, -106, -106, -106, -106,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106,  225, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106,  226,  226,
+      226,  226,  226,  226,  226,  226,  226,  226, -106, -106,
+     -106, -106, -106, -106, -106,  227,  227,  227,  227,  227,
+      227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
+      227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
+      227, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
 
@@ -2249,14 +2249,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108, -108, -108, -108, -108, -108,  220,  220,
-      220,  220,  220,  220,  220,  220,  220,  220, -108, -108,
-
-     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108, -108, -108, -108,  221, -108, -108, -108, -108,
+     -108, -108,  228, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229, -108, -108,
+
+     -108, -108, -108, -108, -108,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108
@@ -2285,12 +2285,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110, -110, -110, -110, -110, -110,  222,  222,
-      222,  222,  222,  222,  222,  222,  222,  222, -110, -110,
+     -110, -110, -110, -110, -110,  231, -110, -110,  232,  233,
+      233,  233,  233,  233,  233,  233,  233,  233, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110, -110, -110, -110,  223, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110,  234, -110, -110, -110, -110,
 
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
@@ -2302,13 +2302,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111,  231, -111, -111,  235,  235,
+      235,  235,  235,  235,  235,  235,  235,  235, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
 
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111,  236, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111
@@ -2320,12 +2320,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
 
-     -112, -112, -112, -112, -112, -112, -112, -112,  224,  224,
-      224,  224,  224,  224,  224,  224,  224,  224, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-     -112, -112, -112, -112, -112,  225, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112
@@ -2337,12 +2337,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113,  237,  237,
+      237,  237,  237,  237,  237,  237,  237,  237, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113,  238, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
 
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
@@ -2354,13 +2354,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114, -114, -114, -114,  226,  226,
-      226,  226,  226,  226,  226,  226,  226,  226, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
 
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114,  227, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114
@@ -2371,13 +2371,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115,  239,  239,
 
+      239,  239,  239,  239,  239,  239,  239,  239, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115,  240, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115
@@ -2389,12 +2389,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116, -116, -116, -116, -116, -116,  228,  228,
-      228,  228,  228,  228,  228,  228,  228,  228, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116, -116, -116,  229, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
 
@@ -2406,13 +2406,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117,  241,  241,
+      241,  241,  241,  241,  241,  241,  241,  241, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
 
-     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117,  242, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117
@@ -2422,7 +2422,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118,  230, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
 
@@ -2441,12 +2441,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
 
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119,  243,  243,
+      243,  243,  243,  243,  243,  243,  243,  243, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119,  244, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119
@@ -2474,9 +2474,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121,  245, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121,  246,  246,
+      246,  246,  246,  246,  246,  246,  246,  246, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
 
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
@@ -2509,13 +2509,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123,  231, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123, -123, -123, -123, -123, -123, -123,  232,  232,
-      232,  232,  232,  232,  232,  232,  232,  232, -123, -123,
-     -123, -123, -123, -123, -123,  231,  231,  231,  231,  231,
-      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
-      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
-      231, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
@@ -2543,14 +2543,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125,  233, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125, -125, -125, -125, -125, -125, -125,  234,  234,
-
-      234,  234,  234,  234,  234,  234,  234,  234, -125, -125,
-     -125, -125, -125, -125, -125,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
-      233, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125
@@ -2561,13 +2561,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126,  247, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126,  248,  248,
+      248,  248,  248,  248,  248,  248,  248,  248, -126, -126,
+     -126, -126, -126, -126, -126,  247,  247,  247,  247,  247,
+      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
+      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
+      247, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
      -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
@@ -2578,9 +2578,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127,  235, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127, -127, -127, -127, -127, -127, -127,  236,  236,
-      236,  236,  236,  236,  236,  236,  236,  236, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
@@ -2595,14 +2595,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128,  249, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128,  250,  250,
+      250,  250,  250,  250,  250,  250,  250,  250, -128, -128,
+
+     -128, -128, -128, -128, -128,  249,  249,  249,  249,  249,
+      249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
+      249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
+      249, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128
@@ -2613,9 +2613,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
 
-     -129, -129,  237, -129, -129, -129, -129, -129, -129, -129,
-     -129, -129, -129, -129, -129, -129, -129, -129,  238,  238,
-      238,  238,  238,  238,  238,  238,  238,  238, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
      -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
@@ -2630,9 +2630,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130,  251, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130,  252,  252,
+      252,  252,  252,  252,  252,  252,  252,  252, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
      -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
@@ -2647,7 +2647,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -131, -131, -131, -131, -131, -131, -131, -131, -131,
      -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
      -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-     -131, -131,  239, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
      -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
      -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
      -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
@@ -2664,10 +2664,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132,  253, -132, -132, -132, -132, -132, -132, -132,
 
-     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132,  254,  254,
+      254,  254,  254,  254,  254,  254,  254,  254, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
      -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
@@ -2683,8 +2683,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-     -133, -133, -133, -133, -133, -133, -133, -133,  240,  240,
-      240,  240,  240,  240,  240,  240,  240,  240, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
      -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
@@ -2699,9 +2699,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134,  255, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-     -134, -134, -134, -134, -134, -134, -134, -134,  240,  240,
-      240,  240,  240,  240,  240,  240,  240,  240, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
 
@@ -2735,8 +2735,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-     -136, -136, -136, -136, -136, -136,  241, -136,  242,  242,
-      242,  242,  242,  242,  242,  242,  242,  242, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136,  256,  256,
+      256,  256,  256,  256,  256,  256,  256,  256, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
@@ -2752,8 +2752,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137,  243,  243,
-      243,  243,  243,  243,  243,  243,  243,  243, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137,  256,  256,
+      256,  256,  256,  256,  256,  256,  256,  256, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
@@ -2769,14 +2769,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138, -138, -138,  244, -138,  245,  245,
-      245,  245,  245,  245,  245,  245,  245,  245, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
 
-     -138, -138, -138, -138, -138, -138, -138, -138, -138,  246,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138,  246, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138
     },
@@ -2787,8 +2787,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
 
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139,  257, -139,  258,  258,
+      258,  258,  258,  258,  258,  258,  258,  258, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
@@ -2800,20 +2800,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  248,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
+       67, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140,  259,  259,
+      259,  259,  259,  259,  259,  259,  259,  259, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
 
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140
     },
 
     {
@@ -2821,14 +2821,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141,  260, -141,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141,  262,  262,
 
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+      262,  262, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141
     },
@@ -2837,9 +2837,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142,  249, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
 
-     -142, -142, -142, -142, -142, -142, -142,  250, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
      -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
@@ -2851,107 +2851,107 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+       67,  263,  263,  263,  263,  263,  263,  263,  263,  263,
 
-     -143,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  264,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
 
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263
     },
 
     {
-       67,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-     -144,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
+       67,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      266,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  267,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  268,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
 
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265
     },
 
     {
-       67,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-     -145,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
+       67, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
 
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145
     },
 
     {
-       67,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      255,  254,  254,  254,  254,  254,  254,  254,  254,  254,
+       67,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      270,  269,  269,  269,  269,  269,  269,  269,  269,  269,
 
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  271,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  272,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
 
-      254,  254,  254,  254,  254,  254,  254,  254
+      269,  269,  269,  269,  269,  269,  269,  269
     },
 
     {
-       67, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+       67,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      274,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  275,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
 
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273
     },
 
     {
-       67, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+       67,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      278,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
 
-     -148, -148, -148, -148, -148, -148, -148,  256, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-      257, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277
     },
 
     {
@@ -2962,9 +2962,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-     -149, -149, -149, -149, -149, -149, -149, -149,  258, -149,
-     -149, -149, -149, -149, -149, -149, -149, -149,  259, -149,
-     -149, -149,  260,  261,  262,  263, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
@@ -2973,20 +2973,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150,  264, -150, -150,  265, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+       67,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      280,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
 
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279
     },
 
     {
@@ -3007,20 +3007,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+       67,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      282,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
 
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281
     },
 
     {
@@ -3031,7 +3031,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-     -153, -153, -153, -153, -153, -153, -153, -153, -153,  266,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
@@ -3048,10 +3048,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154,  267, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154,  283, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
 
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+      284, -154, -154, -154, -154, -154, -154, -154, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
      -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
@@ -3066,9 +3066,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
 
      -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155,  268, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155,  269,
-      270, -155, -155, -155, -155, -155,  271, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155,  285, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155,  286, -155,
+     -155, -155,  287,  288,  289,  290, -155, -155, -155, -155,
      -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
      -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
      -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
@@ -3085,7 +3085,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156,  272,
+     -156, -156, -156,  291, -156, -156,  292, -156, -156, -156,
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
      -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
@@ -3102,7 +3102,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
-     -157, -157, -157, -157, -157, -157, -157, -157, -157,  273,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
 
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
@@ -3119,7 +3119,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
 
      -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158,  274, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
      -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
      -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
      -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
@@ -3135,9 +3135,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159,  293,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
-     -159, -159, -159, -159,  275, -159,  276, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
@@ -3152,7 +3152,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160,  277, -160, -160, -160,
+     -160, -160, -160, -160, -160,  294, -160, -160, -160, -160,
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
      -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
@@ -3169,10 +3169,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-     -161, -161, -161, -161, -161, -161, -161, -161,  278, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161,  295, -161,
 
-     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161,  296,
+      297, -161, -161, -161, -161, -161,  298, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
@@ -3188,8 +3188,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
-     -162, -162, -162, -162, -162, -162, -162, -162, -162,  279,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162,  299,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
@@ -3206,7 +3206,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163,  280, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163,  300,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
 
@@ -3222,9 +3222,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164,  301, -164,
 
-     -164, -164, -164, -164,  281, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
@@ -3240,8 +3240,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-     -165, -165, -165, -165, -165, -165, -165, -165,  282, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165,  302, -165,  303, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
@@ -3256,7 +3256,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
-     -166, -166, -166, -166, -166, -166, -166, -166,  283, -166,
+     -166, -166, -166, -166, -166, -166,  304, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
@@ -3273,9 +3273,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167,  305, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-     -167, -167, -167,  284, -167, -167, -167, -167, -167, -167,
 
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
@@ -3292,7 +3292,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
 
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168,  306,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
@@ -3309,8 +3309,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169, -169,  285,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169,  307, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
@@ -3327,7 +3327,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170,  308, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
 
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
@@ -3344,7 +3344,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
 
-     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171,  309, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
@@ -3360,7 +3360,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172, -172, -172, -172, -172, -172, -172,  286, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172,  310, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
@@ -3379,7 +3379,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173,  287, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173,  311, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
 
@@ -3397,7 +3397,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
 
-     -174, -174,  288, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
@@ -3412,8 +3412,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
 
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175, -175, -175,  289, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175,  312,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
@@ -3429,7 +3429,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176, -176, -176, -176, -176,  290, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
@@ -3446,7 +3446,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177, -177,  291,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
 
@@ -3464,9 +3464,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
 
+     -178, -178, -178, -178, -178, -178, -178, -178,  313, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
-     -178, -178,  292, -178, -178, -178, -178, -178, -178,  293,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
@@ -3481,9 +3481,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
-     -179, -179, -179, -179, -179, -179, -179, -179,  294, -179,
-     -179, -179, -179, -179, -179, -179, -179, -179,  295, -179,
-     -179, -179,  296,  297,  298,  299, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179,  314, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
@@ -3499,8 +3499,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
-     -180, -180, -180,  300, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180,  315, -180, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
 
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
@@ -3515,10 +3515,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-     -181, -181, -181, -181, -181, -181, -181,  301, -181, -181,
+     -181, -181, -181, -181, -181,  316, -181, -181, -181, -181,
 
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-     -181, -181, -181,  302, -181, -181,  303, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
@@ -3533,7 +3533,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
-     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182,  317, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
@@ -3550,7 +3550,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183,  318,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
@@ -3567,10 +3567,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-     -184, -184, -184, -184, -184, -184, -184,  304, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+
+     -184, -184,  319, -184, -184, -184, -184, -184, -184,  320,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
@@ -3585,9 +3585,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
 
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185,  305, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185,  321, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185,  322, -185,
+     -185, -185,  323,  324,  325,  326, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
@@ -3603,7 +3603,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186, -186, -186, -186, -186,  306, -186, -186, -186,
+     -186, -186, -186,  327, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
@@ -3619,9 +3619,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187,  328, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187, -187, -187, -187, -187, -187, -187, -187, -187,  307,
-     -187, -187, -187, -187, -187, -187, -187, -187, -187,  308,
+     -187, -187, -187,  329, -187, -187,  330, -187, -187, -187,
 
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
@@ -3637,9 +3637,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
 
-     -188, -188, -188, -188, -188,  309, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188, -188, -188,  310, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
@@ -3655,7 +3655,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-     -189, -189, -189, -189, -189, -189, -189, -189, -189,  311,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
@@ -3668,10 +3668,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-     -190, -190,  312, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190,  331, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
@@ -3685,14 +3685,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
-     -191, -191,  313, -191, -191, -191, -191, -191, -191, -191,
-     -191, -191, -191, -191, -191, -191, -191, -191,  314,  314,
-      314,  314,  314,  314,  314,  314,  314,  314, -191, -191,
-     -191, -191, -191, -191, -191,  313,  313,  313,  313,  313,
-
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
-      313, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+
+     -191, -191, -191, -191, -191, -191, -191, -191,  332, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191
@@ -3702,12 +3702,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192, -192,  315, -192, -192, -192, -192, -192, -192, -192,
-
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192,  333, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
@@ -3720,13 +3720,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193,  316, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193, -193, -193, -193, -193, -193, -193,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317, -193, -193,
-     -193, -193, -193, -193, -193,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193,  334,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193,  335,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
 
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
@@ -3737,13 +3737,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194, -194,  318, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194,  336, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
 
-     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194,  337, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
@@ -3754,14 +3754,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195,  319, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195, -195, -195, -195, -195, -195,  320,  320,
-
-      320,  320,  320,  320,  320,  320,  320,  320, -195, -195,
-     -195, -195, -195, -195, -195,  321,  321,  321,  321,  321,
-      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      321, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195,  338,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195
@@ -3772,7 +3772,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
 
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-     -196, -196,  322, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196,  339, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
@@ -3789,14 +3789,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197,  323, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-
-     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197,  340, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197,  341,  342,
+      342,  342,  342,  342,  342,  342,  342,  342, -197, -197,
+     -197, -197, -197, -197, -197,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+
+      340, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197
@@ -3806,14 +3806,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-     -198, -198,  324, -198, -198, -198, -198, -198, -198, -198,
-     -198, -198, -198, -198, -198, -198, -198, -198,  325,  325,
-      325,  325,  325,  325,  325,  325,  325,  325, -198, -198,
-
-     -198, -198, -198, -198, -198,  324,  324,  324,  324,  324,
-      324,  324,  324,  324,  324,  324,  324,  324,  324,  324,
-      324,  324,  324,  324,  324,  324,  324,  324,  324,  324,
-      324, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198,  343, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341, -198, -198,
+
+     -198, -198, -198, -198, -198,  343,  343,  343,  343,  343,
+      343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
+      343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
+      343, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198
@@ -3824,7 +3824,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
 
-     -199, -199,  326, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199,  344, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
@@ -3841,13 +3841,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-     -200, -200,  327, -200, -200, -200, -200, -200, -200, -200,
-     -200, -200, -200, -200, -200, -200, -200, -200,  328,  328,
-      328,  328,  328,  328,  328,  328,  328,  328, -200, -200,
-     -200, -200, -200, -200, -200,  329,  329,  329,  329,  329,
-      329,  329,  329,  329,  329,  329,  329,  329,  329,  329,
-      329,  329,  329,  329,  329,  329,  329,  329,  329,  329,
-      329, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200,  345, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200,  341,  341,
+      341,  341,  341,  341,  341,  341,  341,  341, -200, -200,
+     -200, -200, -200, -200, -200,  345,  345,  345,  345,  345,
+      345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
+      345,  345,  345,  345,  345,  345,  345,  345,  345,  345,
+      345, -200, -200, -200, -200, -200, -200, -200, -200, -200,
 
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
@@ -3858,7 +3858,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-     -201, -201,  330, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201,  346, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
@@ -3875,14 +3875,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-
-     -202, -202, -202, -202, -202, -202, -202, -202,  331,  331,
-      331,  331,  331,  331,  331,  331,  331,  331, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202,  347, -202, -202, -202, -202, -202, -202, -202,
+
+     -202, -202, -202, -202, -202, -202, -202, -202,  348,  348,
+      348,  348,  348,  348,  348,  348,  348,  348, -202, -202,
+     -202, -202, -202, -202, -202,  347,  347,  347,  347,  347,
+      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
+      347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
+      347, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202
@@ -3893,13 +3893,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203,  349, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203, -203, -203, -203, -203, -203,  332,  332,
-      332,  332,  332,  332,  332,  332,  332,  332, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203, -203, -203,  333, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
 
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
@@ -3910,14 +3910,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204,  334,
-      334,  334,  334,  334,  334,  334,  334,  334, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204,  350, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351, -204, -204,
+     -204, -204, -204, -204, -204,  352,  352,  352,  352,  352,
+      352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
+
+      352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
+      352, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204
@@ -3927,7 +3927,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205, -205,  335, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205,  353, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
 
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
@@ -3945,13 +3945,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
 
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206,  336, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206, -206, -206, -206, -206, -206, -206,  337,  337,
-      337,  337,  337,  337,  337,  337,  337,  337, -206, -206,
-     -206, -206, -206, -206, -206,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
-      336, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206,  354, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
 
@@ -3962,14 +3962,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207,  338,  338,
-      338,  338,  338,  338,  338,  338,  338,  338, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-
-     -207, -207, -207, -207, -207,  339, -207, -207, -207, -207,
+     -207, -207,  355, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207,  356,  356,
+      356,  356,  356,  356,  356,  356,  356,  356, -207, -207,
+     -207, -207, -207, -207, -207,  355,  355,  355,  355,  355,
+      355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
+      355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
+
+      355, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207
@@ -3979,9 +3979,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208,  357, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208, -208, -208, -208, -208, -208, -208,  340,
-      340,  340,  340,  340,  340,  340,  340,  340, -208, -208,
 
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
@@ -3997,13 +3997,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
 
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209,  341,  341,
-      341,  341,  341,  341,  341,  341,  341,  341, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209,  342, -209, -209, -209, -209,
+     -209, -209,  358, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209,  359,  359,
+      359,  359,  359,  359,  359,  359,  359,  359, -209, -209,
+     -209, -209, -209, -209, -209,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209
@@ -4014,9 +4014,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210,  361, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-     -210, -210, -210, -210, -210, -210, -210, -210, -210,  343,
-      343,  343,  343,  343,  343,  343,  343,  343, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
@@ -4031,9 +4031,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
-     -211, -211,  344, -211, -211, -211, -211, -211, -211, -211,
-     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
 
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
@@ -4048,14 +4048,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212,  345, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
 
+     -212, -212, -212, -212, -212,  363, -212, -212,  364,  365,
+      365,  365,  365,  365,  365,  365,  365,  365, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212,  346,  346,  346,  346,  346,
-      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
-      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
-      346, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212,  366, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212
@@ -4066,13 +4066,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213,  347, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213,  363, -213, -213,  367,  367,
+      367,  367,  367,  367,  367,  367,  367,  367, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213,  368, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
@@ -4083,9 +4083,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214,  348, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214,  369,  369,
+      369,  369,  369,  369,  369,  369,  369,  369, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
 
@@ -4100,14 +4100,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
-     -215, -215,  349, -215, -215, -215, -215, -215, -215, -215,
-     -215, -215, -215, -215, -215, -215, -215, -215,  350,  350,
-
-      350,  350,  350,  350,  350,  350,  350,  350, -215, -215,
-     -215, -215, -215, -215, -215,  351,  351,  351,  351,  351,
-      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
-      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
-      351, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215,  363, -215, -215,  370,  370,
+
+      370,  370,  370,  370,  370,  370,  370,  370, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215,  371, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215
@@ -4118,9 +4118,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
 
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216,  352, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216,  372,  373,
+      373,  373,  373,  373,  373,  373,  373,  373, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
@@ -4135,7 +4135,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
-     -217, -217,  353, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217,  374, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
@@ -4152,14 +4152,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218,  354, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218, -218, -218, -218, -218, -218, -218,  355,  355,
-      355,  355,  355,  355,  355,  355,  355,  355, -218, -218,
-
-     -218, -218, -218, -218, -218,  356,  356,  356,  356,  356,
-      356,  356,  356,  356,  356,  356,  356,  356,  356,  356,
-      356,  356,  356,  356,  356,  356,  356,  356,  356,  356,
-      356, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218,  375, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218,  376,  376,
+      376,  376,  376,  376,  376,  376,  376,  376, -218, -218,
+
+     -218, -218, -218, -218, -218,  375,  375,  375,  375,  375,
+      375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
+      375,  375,  375,  375,  375,  375,  375,  375,  375,  375,
+      375, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218
@@ -4170,13 +4170,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
 
-     -219, -219,  357, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219,  377,  377,
+      377,  377,  377,  377,  377,  377,  377,  377, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219,  378, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219
@@ -4188,12 +4188,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
-     -220, -220, -220, -220, -220, -220, -220, -220,  358,  358,
-      358,  358,  358,  358,  358,  358,  358,  358, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220,  379,
+      379,  379,  379,  379,  379,  379,  379,  379, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
-     -220, -220, -220, -220, -220,  359, -220, -220, -220, -220,
 
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
@@ -4205,13 +4205,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
-     -221, -221, -221, -221, -221, -221, -221, -221,  360,  361,
-      361,  361,  361,  361,  361,  361,  361,  361, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221,  380,  380,
+      380,  380,  380,  380,  380,  380,  380,  380, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
 
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
-     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221,  381, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221
@@ -4223,12 +4223,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
 
-     -222, -222, -222, -222, -222, -222, -222, -222,  362,  362,
-      362,  362,  362,  362,  362,  362,  362,  362, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222,  382,
+      382,  382,  382,  382,  382,  382,  382,  382, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222, -222, -222, -222, -222,  363, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222
@@ -4239,9 +4239,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223,  383, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223,  364,  365,
-      365,  365,  365,  365,  365,  365,  365,  365, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
@@ -4256,14 +4256,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224,  366,  366,
-      366,  366,  366,  366,  366,  366,  366,  366, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224,  367, -224, -224, -224, -224,
+     -224, -224,  384, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385, -224, -224,
+     -224, -224, -224, -224, -224,  384,  384,  384,  384,  384,
+      384,  384,  384,  384,  384,  384,  384,  384,  384,  384,
+
+      384,  384,  384,  384,  384,  384,  384,  384,  384,  384,
+      384, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224
@@ -4273,10 +4273,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225,  386, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225,  368,  369,
 
-      369,  369,  369,  369,  369,  369,  369,  369, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
@@ -4291,13 +4291,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
 
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226,  370,  370,
-      370,  370,  370,  370,  370,  370,  370,  370, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226,  371, -226, -226, -226, -226,
+     -226, -226,  387, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226,  388,  388,
+      388,  388,  388,  388,  388,  388,  388,  388, -226, -226,
+     -226, -226, -226, -226, -226,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
 
@@ -4308,9 +4308,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227,  390, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
-     -227, -227, -227, -227, -227, -227, -227, -227,  372,  373,
-      373,  373,  373,  373,  373,  373,  373,  373, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
@@ -4325,14 +4325,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228,  391, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228, -228, -228, -228, -228, -228,  374,  374,
-      374,  374,  374,  374,  374,  374,  374,  374, -228, -228,
 
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228, -228, -228,  375, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228
@@ -4343,13 +4343,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
      -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
 
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229,  376,  377,
-      377,  377,  377,  377,  377,  377,  377,  377, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229,  392, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229,  393,  393,
+      393,  393,  393,  393,  393,  393,  393,  393, -229, -229,
+     -229, -229, -229, -229, -229,  394,  394,  394,  394,  394,
+      394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
+      394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
+      394, -229, -229, -229, -229, -229, -229, -229, -229, -229,
      -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
      -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
      -229, -229, -229, -229, -229, -229, -229, -229
@@ -4360,7 +4360,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230,  378, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230,  395, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
      -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
@@ -4377,9 +4377,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
-     -231, -231,  379, -231, -231, -231, -231, -231, -231, -231,
-     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
 
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
@@ -4394,14 +4394,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232,  380, -232, -232, -232, -232, -232, -232, -232,
-
-     -232, -232, -232, -232, -232, -232, -232, -232,  381,  381,
-      381,  381,  381,  381,  381,  381,  381,  381, -232, -232,
-     -232, -232, -232, -232, -232,  380,  380,  380,  380,  380,
-      380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
-      380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
-      380, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+
+     -232, -232, -232, -232, -232,  397, -232, -232,  398,  399,
+      399,  399,  399,  399,  399,  399,  399,  399, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232,  400, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
      -232, -232, -232, -232, -232, -232, -232, -232
@@ -4412,13 +4412,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233,  382, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233,  397, -233, -233,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233,  402, -233, -233, -233, -233,
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
 
      -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
@@ -4429,14 +4429,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234,  383, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234,  384,  384,
-      384,  384,  384,  384,  384,  384,  384,  384, -234, -234,
-     -234, -234, -234, -234, -234,  383,  383,  383,  383,  383,
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
-
-      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
-      383, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234,  403,  403,
+      403,  403,  403,  403,  403,  403,  403,  403, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
      -234, -234, -234, -234, -234, -234, -234, -234
@@ -4446,14 +4446,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235,  385, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235,  397, -235, -235,  404,  404,
 
+      404,  404,  404,  404,  404,  404,  404,  404, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235,  405, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235
@@ -4464,9 +4464,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
 
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236,  386, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236,  387,  387,
-      387,  387,  387,  387,  387,  387,  387,  387, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236,  406,  407,
+      407,  407,  407,  407,  407,  407,  407,  407, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
      -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
@@ -4481,14 +4481,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237,  388, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237,  408,  408,
+      408,  408,  408,  408,  408,  408,  408,  408, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
 
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237,  409, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
      -237, -237, -237, -237, -237, -237, -237, -237
@@ -4498,9 +4498,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238,  389, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390, -238, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238,  410,  411,
+      411,  411,  411,  411,  411,  411,  411,  411, -238, -238,
 
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
      -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
@@ -4516,13 +4516,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
 
-     -239, -239,  239, -239, -239, -239, -239, -239, -239, -239,
-     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
-     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239,  413, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239
@@ -4534,8 +4534,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240,  240,  240,
-      240,  240,  240,  240,  240,  240,  240,  240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240,  414,  415,
+      415,  415,  415,  415,  415,  415,  415,  415, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
      -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
@@ -4551,13 +4551,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241,  243,  243,
-      243,  243,  243,  243,  243,  243,  243,  243, -241, -241,
+     -241, -241, -241, -241, -241, -241, -241, -241,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
 
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241, -241,  417, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
      -241, -241, -241, -241, -241, -241, -241, -241
@@ -4569,13 +4569,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
 
-     -242, -242, -242, -242, -242, -242,  244, -242,  245,  245,
-      245,  245,  245,  245,  245,  245,  245,  245, -242, -242,
-     -242, -242, -242, -242, -242, -242, -242, -242, -242,  246,
+     -242, -242, -242, -242, -242, -242, -242, -242,  418,  419,
+      419,  419,  419,  419,  419,  419,  419,  419, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
-     -242,  246, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242
     },
@@ -4586,13 +4586,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
-     -243, -243, -243, -243, -243, -243, -243, -243,  243,  243,
-      243,  243,  243,  243,  243,  243,  243,  243, -243, -243,
-     -243, -243, -243, -243, -243, -243, -243, -243, -243,  246,
+     -243, -243, -243, -243, -243, -243, -243, -243,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243,  421, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
-     -243,  246, -243, -243, -243, -243, -243, -243, -243, -243,
 
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243
@@ -4603,14 +4603,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
-     -244, -244, -244, -244, -244, -244, -244, -244,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391, -244, -244,
-     -244, -244, -244, -244, -244, -244, -244, -244, -244,  246,
+     -244, -244, -244, -244, -244, -244, -244, -244,  422,  423,
+      423,  423,  423,  423,  423,  423,  423,  423, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
 
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
-     -244,  246, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244
     },
@@ -4619,15 +4619,15 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245,  424, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
-     -245, -245, -245, -245, -245, -245,  244, -245,  245,  245,
 
-      245,  245,  245,  245,  245,  245,  245,  245, -245, -245,
-     -245, -245, -245, -245, -245, -245, -245, -245, -245,  246,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
-     -245,  246, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245
     },
@@ -4637,9 +4637,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
 
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
-     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
-     -246, -246, -246,  392, -246,  392, -246, -246,  393,  393,
-      393,  393,  393,  393,  393,  393,  393,  393, -246, -246,
+     -246, -246,  425, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246,  426,  426,
+      426,  426,  426,  426,  426,  426,  426,  426, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
@@ -4651,46 +4651,46 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  248,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
+       67, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247,  427, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
 
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
-      247,  247,  247,  247,  247,  247,  247,  247
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247
     },
 
     {
        67, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248,  247,
+     -248, -248,  428, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248,  429,  429,
+      429,  429,  429,  429,  429,  429,  429,  429, -248, -248,
+
+     -248, -248, -248, -248, -248,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248, -248, -248, -248, -248, -248, -248
-    },
+     -248, -248, -248, -248, -248, -248, -248, -248
+    },
 
     {
        67, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
 
-     -249, -249,  249, -249, -249, -249, -249, -249, -249, -249,
-     -249, -249, -249, -249, -249, -249, -249,  250, -249, -249,
+     -249, -249,  430, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
@@ -4703,96 +4703,96 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-     -250,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+       67, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250,  431, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250,  432,  432,
+      432,  432,  432,  432,  432,  432,  432,  432, -250, -250,
+     -250, -250, -250, -250, -250,  431,  431,  431,  431,  431,
+      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
+      431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
+      431, -250, -250, -250, -250, -250, -250, -250, -250, -250,
 
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250
     },
 
     {
-       67,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-     -251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
+       67, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251,  433, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
 
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
-      251,  251,  251,  251,  251,  251,  251,  251
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251
     },
 
     {
-       67,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-     -252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
+       67, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252,  434, -252, -252, -252, -252, -252, -252, -252,
 
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
-      252,  252,  252,  252,  252,  252,  252,  252
+     -252, -252, -252, -252, -252, -252, -252, -252,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  435, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252
     },
 
     {
-       67,  253,  253,  253,  253,  253,  253,  253,  253,  253,
+       67, -253, -253, -253, -253, -253, -253, -253, -253, -253,
 
-     -253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253,  436, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
 
-      253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
-      253,  253,  253,  253,  253,  253,  253,  253
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253
     },
 
     {
-       67,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      255,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
+       67, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254,  437, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254,  438,  438,
+      438,  438,  438,  438,  438,  438,  438,  438, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
 
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254
     },
 
     {
        67, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
-     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255,  255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
 
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
@@ -4811,10 +4811,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256,  256,  256,
+      256,  256,  256,  256,  256,  256,  256,  256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
-     -256, -256, -256, -256, -256, -256, -256, -256,  394, -256,
-     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
@@ -4828,10 +4828,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257,  259,  259,
+      259,  259,  259,  259,  259,  259,  259,  259, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257,  395, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
 
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
@@ -4845,14 +4845,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
-     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
-     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258,  260, -258,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261, -258, -258,
 
-     -258, -258, -258, -258, -258, -258, -258, -258, -258,  396,
-     -258, -258, -258, -258, -258, -258,  397, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258,  262,  262,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+      262,  262, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258
     },
@@ -4863,13 +4863,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
 
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
-     -259, -259, -259, -259, -259,  398, -259, -259, -259, -259,
-     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259,  259,  259,
+      259,  259,  259,  259,  259,  259,  259,  259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259,  262,  262,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+      262,  262, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259
 
@@ -4880,14 +4880,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260,  439,  439,
+      439,  439,  439,  439,  439,  439,  439,  439, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260,  262,  262,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
-     -260, -260, -260, -260, -260, -260, -260, -260,  399, -260,
-     -260, -260, -260, -260, -260, -260, -260, -260, -260,  400,
-      401, -260, -260, -260, -260, -260,  402, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
 
-     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+      262,  262, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260
     },
@@ -4897,14 +4897,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261,  260, -261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261,  262,  262,
 
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261,  403,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+      262,  262, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261
     },
@@ -4915,40 +4915,40 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
 
+     -262, -262, -262,  440, -262,  440, -262, -262,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
-     -262, -262, -262, -262, -262, -262, -262, -262, -262,  404,
-     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262
     },
 
     {
-       67, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+       67,  263,  263,  263,  263,  263,  263,  263,  263,  263,
 
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263,  405, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  264,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
 
-     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263
+      263,  263,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  263,  263,  263
     },
 
     {
        67, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264,  263,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
@@ -4962,20 +4962,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+       67,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      266,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  267,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  268,  265,  265,
 
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265, -265, -265, -265
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265
     },
 
     {
@@ -4987,7 +4987,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
-     -266, -266, -266, -266, -266, -266,  406, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
@@ -4997,54 +4997,54 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267,  407, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+       67,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      266,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  267,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  268,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
 
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267, -267, -267, -267, -267, -267, -267
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442
     },
 
     {
-       67, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+       67,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      444,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  445,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  446,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
 
-     -268, -268, -268, -268, -268, -268, -268, -268, -268,  408,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443
     },
 
     {
-       67, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+       67,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      448,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
 
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269,  409, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
-     -269, -269, -269, -269, -269, -269, -269, -269
+      447,  447,  449,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  450,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447
 
     },
 
@@ -5056,7 +5056,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
-     -270, -270, -270,  410, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
 
@@ -5066,55 +5066,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271,  411, -271, -271, -271, -271,
+       67,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      452,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  453,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  454,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
 
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451
     },
 
     {
-       67, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+       67,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      274,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  275,  273,  273,  273,  273,  273,  273,  273,
 
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272,  412,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272
+      273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273
     },
 
     {
-       67, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+       67,  273,  273,  273,  273,  273,  273,  273,  273,  273,
 
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-      413, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+      274,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  275,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
 
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273
     },
 
     {
@@ -5125,7 +5125,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274,  414, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
 
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
@@ -5135,62 +5135,62 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+       67,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      274,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  275,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
 
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275,  415,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275, -275, -275, -275, -275, -275, -275
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273
     },
 
     {
-       67, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+       67,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      274,  273,  273,  273,  273,  273,  273,  273,  273,  273,
 
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276,  416, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  275,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  276,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
 
-     -276, -276, -276, -276, -276, -276, -276, -276
+      273,  273,  273,  273,  273,  273,  273,  273
     },
 
     {
-       67, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277,  417, -277, -277, -277, -277, -277, -277,
+       67,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      278,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
 
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
+      277,  277,  277,  277,  277,  277,  277,  277
     },
 
     {
        67, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
-     -278, -278,  418, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
 
@@ -5204,20 +5204,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+       67,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      280,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
 
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279,  419, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  279,  279,  279,  279,  279
 
     },
 
@@ -5229,7 +5229,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
-     -280, -280, -280,  420, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
 
@@ -5239,20 +5239,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+       67,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      282,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
 
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-      421, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281
     },
 
     {
@@ -5265,7 +5265,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
-      422, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
@@ -5278,10 +5278,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283,  423, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283,  424, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283,  425,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283,  455, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
@@ -5297,8 +5297,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284,  456, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284,  426, -284, -284, -284, -284, -284, -284, -284, -284,
 
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
@@ -5315,8 +5315,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
 
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285, -285, -285, -285,  427, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285,  457,
+     -285, -285, -285, -285, -285, -285,  458, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
@@ -5332,7 +5332,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286,  428,
+     -286, -286, -286, -286, -286,  459, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
@@ -5349,9 +5349,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287,  429, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287,  460, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287,  461,
+      462, -287, -287, -287, -287, -287,  463, -287, -287, -287,
 
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
@@ -5369,7 +5369,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288,  430, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288,  464,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
@@ -5386,7 +5386,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289,  431, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289,  465,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
@@ -5402,8 +5402,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290,  466, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290,  432, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
 
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
@@ -5418,7 +5418,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
-     -291, -291, -291, -291, -291, -291, -291,  433, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
 
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
@@ -5436,7 +5436,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
-     -292, -292, -292, -292, -292, -292, -292,  434, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
@@ -5454,8 +5454,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293,  467, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-     -293, -293, -293,  435, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
 
@@ -5470,8 +5470,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294,  436,
-     -294, -294, -294, -294, -294, -294,  437, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294,  468, -294, -294,
 
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
@@ -5488,7 +5488,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
 
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295,  438, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295,  469,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
@@ -5505,9 +5505,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
-     -296, -296, -296, -296, -296, -296, -296, -296,  439, -296,
-     -296, -296, -296, -296, -296, -296, -296, -296, -296,  440,
-      441, -296, -296, -296, -296, -296,  442, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296,  470, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
@@ -5523,8 +5523,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297,  471, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
-     -297, -297, -297, -297, -297, -297, -297, -297, -297,  443,
 
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
@@ -5540,9 +5540,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
 
+     -298, -298, -298, -298, -298,  472, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298, -298, -298, -298, -298, -298, -298, -298, -298,  444,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
@@ -5557,8 +5557,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299,  473,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
-     -299, -299, -299, -299, -299, -299, -299, -299,  445, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
@@ -5574,9 +5574,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
-     -300, -300, -300, -300, -300, -300, -300, -300, -300,  446,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+      474, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
 
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
@@ -5593,7 +5593,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
 
-     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301,  475, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
@@ -5609,7 +5609,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302,  476,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
@@ -5627,7 +5627,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
-     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303,  477, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
@@ -5646,7 +5646,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
 
-     -304, -304, -304,  447, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304,  478, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
@@ -5657,12 +5657,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305,  479, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
 
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305,  448, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
@@ -5678,9 +5678,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
-     -306, -306, -306, -306, -306,  449, -306, -306, -306, -306,
-     -306, -306, -306, -306, -306, -306, -306, -306, -306,  450,
-     -306, -306,  451, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306,  480, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
@@ -5696,8 +5696,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307, -307,  481, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307,  452, -307, -307, -307, -307,
 
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
@@ -5715,7 +5715,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308,  453, -308, -308, -308, -308, -308, -308,
+      482, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
@@ -5732,7 +5732,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309,  454, -309,
+      483, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
@@ -5745,11 +5745,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310,  484, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310,  485, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310,  486,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
-     -310, -310, -310, -310, -310,  455, -310, -310, -310, -310,
-     -310, -310, -310, -310, -310, -310, -310, -310,  456, -310,
-     -310, -310, -310, -310,  457, -310, -310, -310,  458, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
 
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
@@ -5766,8 +5766,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
 
+     -311,  487, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311,  459, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
@@ -5783,7 +5783,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312,  488, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
@@ -5799,7 +5799,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313,  489,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
@@ -5819,7 +5819,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
 
-     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314,  490, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
      -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
@@ -5830,13 +5830,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315,  460, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315,  491, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
      -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
@@ -5848,12 +5848,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
 
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316,  461, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316,  492, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
      -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
@@ -5865,14 +5865,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317,  462, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317,  462,  462,  462,  462,  462,
-      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
-      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317,  493, -317, -317, -317, -317, -317, -317,
 
-      462, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
      -317, -317, -317, -317, -317, -317, -317, -317
@@ -5886,7 +5886,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
 
-     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318,  494, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
@@ -5903,7 +5903,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319, -319, -319, -319, -319,  495, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
      -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
@@ -5922,7 +5922,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320,  496, -320, -320, -320, -320, -320, -320,
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
 
      -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
@@ -5937,9 +5937,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321,  497,
 
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321,  498, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
      -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
@@ -5955,7 +5955,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
-     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322,  499, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
      -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
@@ -5969,12 +5969,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323,  463, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323,  500, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323, -323,  501,
+      502, -323, -323, -323, -323, -323,  503, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
      -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
 
@@ -5986,13 +5986,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324,  464, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+
+     -324, -324, -324, -324, -324, -324, -324, -324, -324,  504,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
      -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
@@ -6003,14 +6003,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-     -325, -325,  465, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
 
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-     -325, -325, -325, -325, -325,  465,  465,  465,  465,  465,
-      465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
-      465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
-      465, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325,  505,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325
@@ -6025,7 +6025,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
-     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326,  506, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
@@ -6041,7 +6041,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
-     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327,  507,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
 
@@ -6108,12 +6108,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
-     -331, -331, -331, -331, -331, -331, -331, -331,  466,  466,
-      466,  466,  466,  466,  466,  466,  466,  466, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
-
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331,  508, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
@@ -6126,12 +6126,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
 
-     -332, -332, -332, -332, -332, -332, -332, -332,  467,  467,
-      467,  467,  467,  467,  467,  467,  467,  467, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
-     -332, -332, -332, -332, -332,  468, -332, -332, -332, -332,
+     -332,  509, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
      -332, -332, -332, -332, -332, -332, -332, -332
@@ -6143,11 +6143,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
-     -333, -333, -333, -333, -333, -333, -333, -333, -333,  469,
-      469,  469,  469,  469,  469,  469,  469,  469, -333, -333,
-     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333,  510, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333,  511,
+     -333, -333,  512, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
      -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
 
@@ -6159,14 +6159,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-     -334, -334,  470, -334, -334, -334, -334, -334, -334, -334,
-     -334, -334, -334, -334, -334, -334, -334, -334,  471,  471,
-      471,  471,  471,  471,  471,  471,  471,  471, -334, -334,
-     -334, -334, -334, -334, -334,  470,  470,  470,  470,  470,
-      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
-
-      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
-      470, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+
+     -334, -334, -334, -334, -334,  513, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334
@@ -6176,13 +6176,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
-     -335, -335,  472, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
-
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335,  514, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
@@ -6194,12 +6194,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
 
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336,  473, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336,  515, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
@@ -6211,14 +6211,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
-     -337, -337,  474, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
-     -337, -337, -337, -337, -337,  474,  474,  474,  474,  474,
-      474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
-      474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337,  516, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337,  517, -337,
+     -337, -337, -337, -337,  518, -337, -337, -337,  519, -337,
 
-      474, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337
@@ -6229,13 +6229,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
-     -338, -338, -338, -338, -338, -338, -338, -338,  475,  475,
-      475,  475,  475,  475,  475,  475,  475,  475, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
 
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338,  520, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
-     -338, -338, -338, -338, -338,  476, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338
@@ -6247,8 +6247,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
 
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
-     -339, -339, -339, -339, -339, -339, -339, -339, -339,  477,
-      477,  477,  477,  477,  477,  477,  477,  477, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
@@ -6263,13 +6263,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
-     -340, -340,  478, -340, -340, -340, -340, -340, -340, -340,
-     -340, -340, -340, -340, -340, -340, -340, -340,  479,  479,
-      479,  479,  479,  479,  479,  479,  479,  479, -340, -340,
-     -340, -340, -340, -340, -340,  478,  478,  478,  478,  478,
-      478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
-      478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
-      478, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
 
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
@@ -6287,7 +6287,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
-     -341, -341, -341, -341, -341,  480, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341
@@ -6299,8 +6299,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
 
-     -342, -342, -342, -342, -342, -342, -342, -342, -342,  481,
-      481,  481,  481,  481,  481,  481,  481,  481, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
@@ -6315,13 +6315,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
-     -343, -343,  482, -343, -343, -343, -343, -343, -343, -343,
-     -343, -343, -343, -343, -343, -343, -343, -343,  483,  483,
-      483,  483,  483,  483,  483,  483,  483,  483, -343, -343,
-     -343, -343, -343, -343, -343,  482,  482,  482,  482,  482,
-      482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
-      482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
-      482, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
 
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
@@ -6367,7 +6367,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
 
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
-     -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346,  521, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
@@ -6384,7 +6384,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
-     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347,  522, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
@@ -6401,14 +6401,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348,  523, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
 
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348,  523,  523,  523,  523,  523,
+      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
+      523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
+      523, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348
@@ -6505,7 +6505,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
-     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354,  524, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
@@ -6522,7 +6522,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
-     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355,  525, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
 
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
@@ -6540,13 +6540,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
 
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356,  526, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356,  526,  526,  526,  526,  526,
+      526,  526,  526,  526,  526,  526,  526,  526,  526,  526,
+      526,  526,  526,  526,  526,  526,  526,  526,  526,  526,
+      526, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
 
@@ -6575,13 +6575,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
-     -358, -358, -358, -358, -358, -358, -358, -358,  484,  484,
-      484,  484,  484,  484,  484,  484,  484,  484, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
 
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
-     -358, -358, -358, -358, -358,  485, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358
@@ -6593,8 +6593,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
 
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
-     -359, -359, -359, -359, -359, -359, -359, -359,  486,  487,
-      487,  487,  487,  487,  487,  487,  487,  487, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
@@ -6609,13 +6609,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
-     -360, -360,  488, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
-     -360, -360, -360, -360, -360,  488,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
-      488, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
 
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
@@ -6626,14 +6626,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361,  488, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361,  489,  489,
-      489,  489,  489,  489,  489,  489,  489,  489, -361, -361,
-     -361, -361, -361, -361, -361,  488,  488,  488,  488,  488,
-
-      488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  488,  488,  488,  488,
-      488, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361
@@ -6643,14 +6643,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-
-     -362, -362, -362, -362, -362, -362, -362, -362,  490,  490,
-      490,  490,  490,  490,  490,  490,  490,  490, -362, -362,
-     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362, -362, -362, -362, -362,  491, -362, -362, -362, -362,
+     -362, -362,  527, -362, -362, -362, -362, -362, -362, -362,
+
+     -362, -362, -362, -362, -362, -362, -362, -362,  528,  528,
+      528,  528,  528,  528,  528,  528,  528,  528, -362, -362,
+     -362, -362, -362, -362, -362,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527,  527,  527,  527,  527,  527,  527,  527,  527,  527,
+      527, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362
@@ -6662,8 +6662,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363,  492,  493,
-      493,  493,  493,  493,  493,  493,  493,  493, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363,  529,  529,
+      529,  529,  529,  529,  529,  529,  529,  529, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
@@ -6678,14 +6678,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364,  494, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364,  530, -364, -364,  531,  532,
+      532,  532,  532,  532,  532,  532,  532,  532, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364, -364, -364, -364,  494,  494,  494,  494,  494,
-      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
 
-      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
-      494, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364,  533, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364
@@ -6695,14 +6695,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
-     -365, -365,  494, -365, -365, -365, -365, -365, -365, -365,
-     -365, -365, -365, -365, -365, -365, -365, -365,  495,  495,
-
-      495,  495,  495,  495,  495,  495,  495,  495, -365, -365,
-     -365, -365, -365, -365, -365,  494,  494,  494,  494,  494,
-      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
-      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
-      494, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365,  530, -365, -365,  534,  534,
+
+      534,  534,  534,  534,  534,  534,  534,  534, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365,  535, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365
@@ -6714,13 +6714,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366,  536,  536,
+      536,  536,  536,  536,  536,  536,  536,  536, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
-     -366, -366, -366, -366, -366,  496, -366, -366, -366, -366,
-     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
 
      -366, -366, -366, -366, -366, -366, -366, -366
@@ -6731,13 +6731,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
-     -367, -367, -367, -367, -367, -367, -367, -367,  497,  498,
-      498,  498,  498,  498,  498,  498,  498,  498, -367, -367,
+     -367, -367, -367, -367, -367,  530, -367, -367,  531,  531,
+      531,  531,  531,  531,  531,  531,  531,  531, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
 
-     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367,  537, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367
@@ -6747,14 +6747,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
-     -368, -368,  499, -368, -368, -368, -368, -368, -368, -368,
-     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368,  538,  539,
+      539,  539,  539,  539,  539,  539,  539,  539, -368, -368,
 
-     -368, -368, -368, -368, -368,  499,  499,  499,  499,  499,
-      499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
-      499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
-      499, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368
@@ -6765,13 +6765,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
 
-     -369, -369,  499, -369, -369, -369, -369, -369, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369,  500,  500,
-      500,  500,  500,  500,  500,  500,  500,  500, -369, -369,
-     -369, -369, -369, -369, -369,  499,  499,  499,  499,  499,
-      499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
-      499,  499,  499,  499,  499,  499,  499,  499,  499,  499,
-      499, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369,  540, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369,  541,  541,
+      541,  541,  541,  541,  541,  541,  541,  541, -369, -369,
+     -369, -369, -369, -369, -369,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369
@@ -6783,12 +6783,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
-     -370, -370, -370, -370, -370, -370, -370, -370,  501,  501,
-      501,  501,  501,  501,  501,  501,  501,  501, -370, -370,
+     -370, -370, -370, -370, -370,  530, -370, -370,  531,  531,
+      531,  531,  531,  531,  531,  531,  531,  531, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
-     -370, -370, -370, -370, -370,  502, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370,  533, -370, -370, -370, -370,
 
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
@@ -6800,8 +6800,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371,  503,  504,
-      504,  504,  504,  504,  504,  504,  504,  504, -371, -371,
+     -371, -371, -371, -371, -371, -371, -371, -371,  542,  543,
+      543,  543,  543,  543,  543,  543,  543,  543, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
 
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
@@ -6816,14 +6816,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372,  505, -372, -372, -372, -372, -372, -372, -372,
-
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372,  505,  505,  505,  505,  505,
-      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-      505, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372,  540, -372, -372, -372, -372, -372, -372, -372,
+
+     -372, -372, -372, -372, -372, -372, -372, -372,  544,  545,
+      545,  545,  545,  545,  545,  545,  545,  545, -372, -372,
+     -372, -372, -372, -372, -372,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372
@@ -6834,13 +6834,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
-     -373, -373,  505, -373, -373, -373, -373, -373, -373, -373,
-     -373, -373, -373, -373, -373, -373, -373, -373,  506,  506,
-      506,  506,  506,  506,  506,  506,  506,  506, -373, -373,
-     -373, -373, -373, -373, -373,  505,  505,  505,  505,  505,
-      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
-      505, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373,  546, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373,  547,  547,
+      547,  547,  547,  547,  547,  547,  547,  547, -373, -373,
+     -373, -373, -373, -373, -373,  546,  546,  546,  546,  546,
+      546,  546,  546,  546,  546,  546,  546,  546,  546,  546,
+      546,  546,  546,  546,  546,  546,  546,  546,  546,  546,
+      546, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
 
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
@@ -6851,14 +6851,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374,  548, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
 
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374,  507, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374
@@ -6868,10 +6868,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375,  549, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375,  508,  509,
 
-      509,  509,  509,  509,  509,  509,  509,  509, -375, -375,
+     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
@@ -6886,13 +6886,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
 
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376,  510, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376,  550, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376,  510,  510,  510,  510,  510,
-      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
-      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
-      510, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376,  550,  550,  550,  550,  550,
+      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
+      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
+      550, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
 
@@ -6903,14 +6903,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377,  510, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377,  511,  511,
-      511,  511,  511,  511,  511,  511,  511,  511, -377, -377,
-     -377, -377, -377, -377, -377,  510,  510,  510,  510,  510,
-      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
-      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
-
-      510, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377,  551,  551,
+      551,  551,  551,  551,  551,  551,  551,  551, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+
+     -377, -377, -377, -377, -377,  552, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377
@@ -6921,8 +6921,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378, -378, -378,  553,
+      553,  553,  553,  553,  553,  553,  553,  553, -378, -378,
 
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
@@ -6938,13 +6938,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
 
-     -379, -379,  512, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
-     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379,  554, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379, -379, -379, -379, -379, -379,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555, -379, -379,
+     -379, -379, -379, -379, -379,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379
@@ -6955,13 +6955,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380,  513, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
+     -380, -380, -380, -380, -380,  556, -380, -380, -380, -380,
 
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
@@ -6972,14 +6972,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
-     -381, -381,  514, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381,  557,
+      557,  557,  557,  557,  557,  557,  557,  557, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
-     -381, -381, -381, -381, -381,  514,  514,  514,  514,  514,
 
-      514,  514,  514,  514,  514,  514,  514,  514,  514,  514,
-      514,  514,  514,  514,  514,  514,  514,  514,  514,  514,
-      514, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381
@@ -6989,14 +6989,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
+     -382, -382,  558, -382, -382, -382, -382, -382, -382, -382,
+
+     -382, -382, -382, -382, -382, -382, -382, -382,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559, -382, -382,
+     -382, -382, -382, -382, -382,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382
@@ -7041,7 +7041,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385,  515, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
 
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
@@ -7059,7 +7059,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
 
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
-     -386, -386,  516, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
@@ -7076,9 +7076,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387,  517, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387,  518,  518,
-      518,  518,  518,  518,  518,  518,  518,  518, -387, -387,
+     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
+     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
+     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
@@ -7146,14 +7146,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391,  246,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
 
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391,  246, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391
     },
@@ -7164,8 +7164,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
 
-     -392, -392, -392, -392, -392, -392, -392, -392,  393,  393,
-      393,  393,  393,  393,  393,  393,  393,  393, -392, -392,
+     -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
+     -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
@@ -7181,8 +7181,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
-     -393, -393, -393, -393, -393, -393, -393, -393,  393,  393,
-      393,  393,  393,  393,  393,  393,  393,  393, -393, -393,
+     -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
+     -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
@@ -7232,13 +7232,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
 
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396,  560, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396,  561,  561,
+      561,  561,  561,  561,  561,  561,  561,  561, -396, -396,
+     -396, -396, -396, -396, -396,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
+      560, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
 
@@ -7250,11 +7250,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397, -397, -397, -397, -397, -397, -397,  562,  562,
+      562,  562,  562,  562,  562,  562,  562,  562, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
-     -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
-     -397, -397, -397, -397,  519, -397, -397, -397, -397, -397,
 
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
@@ -7267,13 +7267,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398,  563, -398, -398,  564,  565,
+      565,  565,  565,  565,  565,  565,  565,  565, -398, -398,
 
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398,  520, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398,  566, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398
@@ -7285,12 +7285,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
 
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399,  521,
+     -399, -399, -399, -399, -399,  563, -399, -399,  567,  567,
+      567,  567,  567,  567,  567,  567,  567,  567, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399,  568, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399
@@ -7302,12 +7302,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
-     -400, -400, -400, -400,  522, -400, -400, -400, -400, -400,
-     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
 
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
@@ -7319,13 +7319,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
-     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
-     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401,  563, -401, -401,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
 
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
-     -401, -401, -401, -401, -401, -401, -401, -401,  523, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401,  570, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401
@@ -7337,11 +7337,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
 
+     -402, -402, -402, -402, -402, -402, -402, -402,  571,  572,
+      572,  572,  572,  572,  572,  572,  572,  572, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
-     -402, -402, -402, -402, -402, -402,  524, -402, -402, -402,
-     -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
@@ -7353,13 +7353,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403,  525,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403,  573, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403, -403, -403, -403,  574,  574,
+      574,  574,  574,  574,  574,  574,  574,  574, -403, -403,
+     -403, -403, -403, -403, -403,  573,  573,  573,  573,  573,
+      573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
+      573,  573,  573,  573,  573,  573,  573,  573,  573,  573,
+      573, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
 
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
@@ -7371,13 +7371,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
-     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
-     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404,  563, -404, -404,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
 
-      526, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404,  566, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404
@@ -7388,11 +7388,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405, -405,  575,  576,
 
+      576,  576,  576,  576,  576,  576,  576,  576, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405,  527, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
@@ -7405,13 +7405,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
 
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406,  528, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406,  577, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406, -406, -406,  578,  579,
+      579,  579,  579,  579,  579,  579,  579,  579, -406, -406,
+     -406, -406, -406, -406, -406,  577,  577,  577,  577,  577,
+      577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
+      577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
+      577, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
 
@@ -7422,14 +7422,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407,  529,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-
-     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407,  577, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407, -407, -407, -407, -407, -407, -407,  580,  580,
+      580,  580,  580,  580,  580,  580,  580,  580, -407, -407,
+     -407, -407, -407, -407, -407,  577,  577,  577,  577,  577,
+      577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
+      577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
+
+      577, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407
@@ -7440,13 +7440,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408, -408, -408, -408,  581,  581,
+      581,  581,  581,  581,  581,  581,  581,  581, -408, -408,
 
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408,  530, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408,  582, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408
@@ -7458,10 +7458,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
 
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409,  583,  584,
+      584,  584,  584,  584,  584,  584,  584,  584, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409,  531, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
@@ -7474,13 +7474,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410,  585, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410,  532, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410,  585,  585,  585,  585,  585,
+      585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
+      585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
+      585, -410, -410, -410, -410, -410, -410, -410, -410, -410,
 
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
@@ -7491,14 +7491,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-
-     -411, -411, -411, -411, -411, -411,  533, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411,  585, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411, -411, -411, -411, -411, -411, -411,  586,  586,
+      586,  586,  586,  586,  586,  586,  586,  586, -411, -411,
+     -411, -411, -411, -411, -411,  585,  585,  585,  585,  585,
+
+      585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
+      585,  585,  585,  585,  585,  585,  585,  585,  585,  585,
+      585, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411
@@ -7514,8 +7514,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412,  534, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412, -412, -412,  587, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412
@@ -7527,10 +7527,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413, -413, -413,  588,  589,
+      589,  589,  589,  589,  589,  589,  589,  589, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413,  535,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
@@ -7543,14 +7543,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414,  590, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414, -414, -414, -414,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
 
-     -414, -414, -414, -414,  536, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+      590, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414
@@ -7560,14 +7560,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415,  537, -415, -415, -415, -415,
+     -415, -415,  590, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415, -415, -415, -415, -415, -415, -415,  591,  591,
 
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
+      591,  591,  591,  591,  591,  591,  591,  591, -415, -415,
+     -415, -415, -415, -415, -415,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+      590, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415
@@ -7579,12 +7579,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416, -416, -416, -416, -416, -416, -416,  592,  592,
+      592,  592,  592,  592,  592,  592,  592,  592, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
-     -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
-     -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
-     -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416, -416, -416, -416,  593, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
 
@@ -7596,8 +7596,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417,  538,
-      538,  538,  538,  538,  538,  538,  538,  538, -417, -417,
+     -417, -417, -417, -417, -417, -417, -417, -417,  594,  595,
+      595,  595,  595,  595,  595,  595,  595,  595, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
@@ -7612,14 +7612,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418, -418,  539, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418,  596, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
 
-     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418, -418, -418, -418,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418
@@ -7630,13 +7630,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
 
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419,  540, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419,  596, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419,  597,  597,
+      597,  597,  597,  597,  597,  597,  597,  597, -419, -419,
+     -419, -419, -419, -419, -419,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
+      596, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419
@@ -7651,9 +7651,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420,  541, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420,  598, -420, -420, -420, -420,
 
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
@@ -7665,11 +7665,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421, -421,  599,  600,
+      600,  600,  600,  600,  600,  600,  600,  600, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
 
-     -421, -421, -421, -421, -421, -421, -421, -421, -421,  542,
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
@@ -7681,14 +7681,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422,  601, -422, -422, -422, -422, -422, -422, -422,
 
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422,  543,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422,  601,  601,  601,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
+      601, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422
@@ -7699,13 +7699,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423,  544, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423,  545,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423,  601, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423,  602,  602,
+      602,  602,  602,  602,  602,  602,  602,  602, -423, -423,
+     -423, -423, -423, -423, -423,  601,  601,  601,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
+      601, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
 
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
@@ -7737,7 +7737,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
 
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425,  546, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
@@ -7754,10 +7754,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426,  547,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426,  548,  549,
-      550, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
 
@@ -7768,12 +7768,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427,  603, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
-      551, -427, -427, -427, -427, -427, -427, -427, -427, -427,
 
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
@@ -7785,13 +7785,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428,  604, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
 
-     -428, -428, -428, -428, -428, -428, -428,  552, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428,  553, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
      -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
@@ -7803,13 +7803,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
 
+     -429, -429,  605, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
-     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
-     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
-      554, -429, -429, -429, -429, -429, -429, -429, -429, -429,
-     -429, -429, -429, -429, -429, -429, -429,  555, -429, -429,
-     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429,  605,  605,  605,  605,  605,
+      605,  605,  605,  605,  605,  605,  605,  605,  605,  605,
+      605,  605,  605,  605,  605,  605,  605,  605,  605,  605,
+      605, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429
@@ -7872,12 +7872,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433,  606, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
-     -433, -433, -433,  556, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
 
@@ -7889,7 +7889,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
-     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434,  607, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
@@ -7906,13 +7906,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
-     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
-     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435,  608, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435,  609,  609,
 
+      609,  609,  609,  609,  609,  609,  609,  609, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
-     -435, -435, -435, -435, -435, -435, -435, -435, -435,  557,
-     -435, -435, -435,  558, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
@@ -7946,7 +7946,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
      -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
      -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437,  559, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
 
      -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
      -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
@@ -7963,7 +7963,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
 
      -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438,  560, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
      -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
      -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
      -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
@@ -7977,13 +7977,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
 
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439,  561,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439,  439,  439,
+      439,  439,  439,  439,  439,  439,  439,  439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439,  262,  262,
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+      262,  262, -439, -439, -439, -439, -439, -439, -439, -439,
      -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
      -439, -439, -439, -439, -439, -439, -439, -439
 
@@ -7994,12 +7994,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440,  562, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
 
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
      -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
@@ -8011,12 +8011,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
-     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
-     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441,  441,  441,
+      441,  441,  441,  441,  441,  441,  441,  441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
 
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
-     -441, -441, -441, -441, -441, -441, -441, -441,  563, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
      -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
@@ -8024,38 +8024,38 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+       67,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      610,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  611,  442,  442,  442,  442,  442,  442,  442,
 
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442,  564, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
-     -442, -442, -442, -442, -442, -442, -442, -442
+      442,  442,  442,  442,  442,  442,  442,  612,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442
     },
 
     {
-       67, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+       67,  443,  443,  443,  443,  443,  443,  443,  443,  443,
 
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443,  565,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+      444,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  445,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  446,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
 
-     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
-     -443, -443, -443, -443, -443, -443, -443, -443
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443
     },
 
     {
@@ -8068,7 +8068,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
      -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
 
-      566, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
      -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
      -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
      -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
@@ -8076,55 +8076,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+       67,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      444,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  445,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  446,  443,  443,
 
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445,  567, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
-     -445, -445, -445, -445, -445, -445, -445, -445
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443
     },
 
     {
-       67, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+       67,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      444,  443,  443,  443,  443,  443,  443,  443,  443,  443,
 
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446,  568, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
-     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  445,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  446,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
 
-     -446, -446, -446, -446, -446, -446, -446, -446
+      443,  443,  443,  443,  443,  443,  443,  443
     },
 
     {
-       67, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+       67,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      448,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  449,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  450,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
 
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
-     -447, -447, -447, -447, -447, -447, -447, -447
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447
     },
 
     {
@@ -8145,55 +8145,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+       67,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      448,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
 
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449,  569, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
-     -449, -449, -449, -449, -449, -449, -449, -449
+      447,  447,  449,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  450,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447
 
     },
 
     {
-       67, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450,  570, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+       67,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      614,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  615,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  616,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
 
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
-     -450, -450, -450, -450, -450, -450, -450, -450
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613
     },
 
     {
-       67, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451,  571,
+       67,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      448,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  449,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  450,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
 
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
-     -451, -451, -451, -451, -451, -451, -451, -451
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447
     },
 
     {
@@ -8202,11 +8202,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
 
-     -452, -452, -452, -452, -452, -452, -452, -452, -452,  572,
-      572,  572,  572,  572,  572,  572,  572,  572, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
-     -452, -452,  573, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
      -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
@@ -8214,38 +8214,38 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+       67,  451,  451,  451,  451,  451,  451,  451,  451,  451,
 
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+      452,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  453,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  454,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
 
-     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
-     -453, -453, -453, -453, -453, -453, -453, -453
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451
     },
 
     {
-       67, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454,  574,
-      574,  574,  574,  574,  574,  574,  574,  574, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+       67,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      618,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  619,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  620,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
 
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
-     -454, -454, -454, -454, -454, -454, -454, -454
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617
     },
 
     {
@@ -8258,7 +8258,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
-     -455, -455, -455, -455, -455, -455, -455, -455,  575, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
      -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
@@ -8273,7 +8273,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
-     -456, -456, -456, -456, -456,  576, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
      -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
@@ -8288,8 +8288,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
-     -457, -457, -457, -457, -457, -457, -457, -457, -457,  577,
-      577,  577,  577,  577,  577,  577,  577,  577, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
      -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
@@ -8305,12 +8305,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
-     -458, -458, -458, -458, -458, -458, -458, -458, -458,  578,
-      578,  578,  578,  578,  578,  578,  578,  578, -458, -458,
-
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458,  621, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
      -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
@@ -8326,8 +8326,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459,  622, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
-     -459, -459,  579, -459, -459, -459, -459, -459, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
      -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
@@ -8342,7 +8342,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
-     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460,  623,
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
      -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
@@ -8362,7 +8362,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
 
      -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
-     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461,  624, -461, -461, -461, -461, -461,
      -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
      -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
      -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
@@ -8379,7 +8379,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
-     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462,  625, -462,
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
      -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
@@ -8395,7 +8395,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
-     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463,  626, -463, -463, -463,
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
      -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
@@ -8411,7 +8411,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
      -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
      -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
-     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464,  627,
      -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
 
      -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
@@ -8431,7 +8431,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
-     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+      628, -465, -465, -465, -465, -465, -465, -465, -465, -465,
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
      -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
@@ -8444,11 +8444,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
-     -466, -466, -466, -466, -466, -466, -466, -466,  580,  580,
-      580,  580,  580,  580,  580,  580,  580,  580, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466,  629, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
      -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
@@ -8461,13 +8461,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
-     -467, -467, -467, -467, -467, -467, -467, -467,  580,  580,
-      580,  580,  580,  580,  580,  580,  580,  580, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467,  630, -467, -467, -467, -467, -467,
 
-     -467, -467, -467, -467, -467,  581, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
      -467, -467, -467, -467, -467, -467, -467, -467
@@ -8478,11 +8478,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
-     -468, -468, -468, -468, -468, -468, -468, -468, -468,  582,
-      582,  582,  582,  582,  582,  582,  582,  582, -468, -468,
-
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+
+     -468, -468, -468, -468, -468, -468, -468, -468, -468,  631,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
      -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
@@ -8495,13 +8495,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
      -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
 
-     -469, -469,  583, -469, -469, -469, -469, -469, -469, -469,
-     -469, -469, -469, -469, -469, -469, -469, -469,  584,  584,
-      584,  584,  584,  584,  584,  584,  584,  584, -469, -469,
-     -469, -469, -469, -469, -469,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
-      583, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469,  632, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
      -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
      -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
      -469, -469, -469, -469, -469, -469, -469, -469
@@ -8512,10 +8512,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
-     -470, -470,  585, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470,  633, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
      -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
@@ -8529,14 +8529,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -471, -471, -471, -471, -471, -471, -471, -471, -471,
      -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
      -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
-     -471, -471,  586, -471, -471, -471, -471, -471, -471, -471,
-     -471, -471, -471, -471, -471, -471, -471, -471,  587,  587,
-      587,  587,  587,  587,  587,  587,  587,  587, -471, -471,
-     -471, -471, -471, -471, -471,  586,  586,  586,  586,  586,
-
-      586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
-      586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
-      586, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471,  634, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
      -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
      -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
      -471, -471, -471, -471, -471, -471, -471, -471
@@ -8551,7 +8551,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
-     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472,  635, -472, -472, -472,
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
      -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
@@ -8569,7 +8569,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
      -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
      -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
-     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473,  636, -473, -473, -473, -473, -473, -473, -473,
      -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
      -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
 
@@ -8584,7 +8584,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
      -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
      -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
-     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474,  637,
      -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
 
      -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
@@ -8604,8 +8604,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475,  638, -475, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
-     -475, -475, -475, -475, -475,  588, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
      -475, -475, -475, -475, -475, -475, -475, -475
@@ -8617,8 +8617,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
      -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
-     -476, -476, -476, -476, -476, -476, -476, -476, -476,  589,
-      589,  589,  589,  589,  589,  589,  589,  589, -476, -476,
+     -476, -476, -476, -476, -476,  639, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
      -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
      -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
      -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
@@ -8633,14 +8633,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -477, -477, -477, -477, -477, -477, -477, -477, -477,
      -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
      -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
-     -477, -477,  590, -477, -477, -477, -477, -477, -477, -477,
-     -477, -477, -477, -477, -477, -477, -477, -477,  591,  591,
-      591,  591,  591,  591,  591,  591,  591,  591, -477, -477,
-     -477, -477, -477, -477, -477,  590,  590,  590,  590,  590,
-      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
-      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
 
-      590, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
      -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
      -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
      -477, -477, -477, -477, -477, -477, -477, -477
@@ -8650,9 +8650,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -478, -478, -478, -478, -478, -478, -478, -478, -478,
      -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
      -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
-     -478, -478,  592, -478, -478, -478, -478, -478, -478, -478,
-     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
      -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478,  640,
+      640,  640,  640,  640,  640,  640,  640,  640, -478, -478,
 
      -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
      -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
@@ -8668,13 +8668,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
      -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
 
-     -479, -479,  593, -479, -479, -479, -479, -479, -479, -479,
-     -479, -479, -479, -479, -479, -479, -479, -479,  594,  594,
-      594,  594,  594,  594,  594,  594,  594,  594, -479, -479,
-     -479, -479, -479, -479, -479,  593,  593,  593,  593,  593,
-      593,  593,  593,  593,  593,  593,  593,  593,  593,  593,
-      593,  593,  593,  593,  593,  593,  593,  593,  593,  593,
-      593, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479,  641, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
      -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
      -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
      -479, -479, -479, -479, -479, -479, -479, -479
@@ -8686,11 +8686,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
-     -480, -480, -480, -480, -480, -480, -480, -480, -480,  595,
-      595,  595,  595,  595,  595,  595,  595,  595, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480,  642, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
 
      -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
@@ -8702,14 +8702,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -481, -481, -481, -481, -481, -481, -481, -481, -481,
      -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
      -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
-     -481, -481,  596, -481, -481, -481, -481, -481, -481, -481,
-     -481, -481, -481, -481, -481, -481, -481, -481,  597,  597,
-      597,  597,  597,  597,  597,  597,  597,  597, -481, -481,
-     -481, -481, -481, -481, -481,  596,  596,  596,  596,  596,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
 
-      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
-      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
-      596, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481,  643, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
      -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
      -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
      -481, -481, -481, -481, -481, -481, -481, -481
@@ -8719,12 +8719,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
-     -482, -482,  598, -482, -482, -482, -482, -482, -482, -482,
-
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482,  644,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
      -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
@@ -8737,13 +8737,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
      -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
-     -483, -483,  599, -483, -483, -483, -483, -483, -483, -483,
-     -483, -483, -483, -483, -483, -483, -483, -483,  600,  600,
-      600,  600,  600,  600,  600,  600,  600,  600, -483, -483,
-     -483, -483, -483, -483, -483,  599,  599,  599,  599,  599,
-      599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
-      599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
-      599, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483,  645,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
      -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
 
      -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
@@ -8757,11 +8757,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
-     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
-     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484,  646, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484,  647,
 
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
-     -484, -484, -484, -484, -484,  601, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
      -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
      -484, -484, -484, -484, -484, -484, -484, -484
@@ -8772,9 +8772,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
-     -485, -485, -485, -485, -485, -485, -485, -485,  602,  603,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
 
-      603,  603,  603,  603,  603,  603,  603,  603, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
      -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
@@ -8789,13 +8789,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
 
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
-     -486, -486,  604, -486, -486, -486, -486, -486, -486, -486,
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
-     -486, -486, -486, -486, -486,  604,  604,  604,  604,  604,
-      604,  604,  604,  604,  604,  604,  604,  604,  604,  604,
-      604,  604,  604,  604,  604,  604,  604,  604,  604,  604,
-      604, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486,  648, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
      -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
 
@@ -8806,14 +8806,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -487, -487, -487, -487, -487, -487, -487, -487, -487,
      -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
      -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
-     -487, -487,  604, -487, -487, -487, -487, -487, -487, -487,
-     -487, -487, -487, -487, -487, -487, -487, -487,  605,  605,
-      605,  605,  605,  605,  605,  605,  605,  605, -487, -487,
-     -487, -487, -487, -487, -487,  604,  604,  604,  604,  604,
-      604,  604,  604,  604,  604,  604,  604,  604,  604,  604,
-      604,  604,  604,  604,  604,  604,  604,  604,  604,  604,
-
-      604, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487,  649,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487,  650,  651,
+
+      652, -487, -487, -487, -487, -487, -487, -487, -487, -487,
      -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
      -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
      -487, -487, -487, -487, -487, -487, -487, -487
@@ -8823,13 +8823,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
-     -488, -488,  606, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
-
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+      653, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
      -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
@@ -8841,13 +8841,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
      -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
 
-     -489, -489,  607, -489, -489, -489, -489, -489, -489, -489,
-     -489, -489, -489, -489, -489, -489, -489, -489,  608,  608,
-      608,  608,  608,  608,  608,  608,  608,  608, -489, -489,
-     -489, -489, -489, -489, -489,  607,  607,  607,  607,  607,
-      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
-      607,  607,  607,  607,  607,  607,  607,  607,  607,  607,
-      607, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489,  654, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489,  655, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
      -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
      -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
      -489, -489, -489, -489, -489, -489, -489, -489
@@ -8862,9 +8862,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+      656, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490,  657, -490, -490,
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
-     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
-     -490, -490, -490, -490, -490,  609, -490, -490, -490, -490,
 
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
      -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
@@ -8876,8 +8876,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
      -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
      -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
-     -491, -491, -491, -491, -491, -491, -491, -491,  610,  611,
-      611,  611,  611,  611,  611,  611,  611,  611, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
      -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
 
      -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
@@ -8892,14 +8892,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
-     -492, -492,  612, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
 
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
-     -492, -492, -492, -492, -492,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
      -492, -492, -492, -492, -492, -492, -492, -492
@@ -8910,13 +8910,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
      -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
-     -493, -493,  612, -493, -493, -493, -493, -493, -493, -493,
-     -493, -493, -493, -493, -493, -493, -493, -493,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613, -493, -493,
-     -493, -493, -493, -493, -493,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612,  612,  612,  612,  612,  612,  612,  612,  612,  612,
-      612, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
      -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
 
      -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
@@ -8927,13 +8927,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
-     -494, -494,  614, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
-
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+
+     -494, -494, -494,  658, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
      -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
@@ -8944,14 +8944,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -495, -495, -495, -495, -495, -495, -495, -495, -495,
      -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
      -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
-     -495, -495,  615, -495, -495, -495, -495, -495, -495, -495,
-     -495, -495, -495, -495, -495, -495, -495, -495,  616,  616,
-
-      616,  616,  616,  616,  616,  616,  616,  616, -495, -495,
-     -495, -495, -495, -495, -495,  615,  615,  615,  615,  615,
-      615,  615,  615,  615,  615,  615,  615,  615,  615,  615,
-      615,  615,  615,  615,  615,  615,  615,  615,  615,  615,
-      615, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
      -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
      -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
      -495, -495, -495, -495, -495, -495, -495, -495
@@ -8963,11 +8963,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
-     -496, -496, -496, -496, -496, -496, -496, -496,  617,  617,
-      617,  617,  617,  617,  617,  617,  617,  617, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496,  659,
+     -496, -496, -496,  660, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
      -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
@@ -8979,14 +8979,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
-     -497, -497,  618, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
-     -497, -497, -497, -497, -497,  618,  618,  618,  618,  618,
-      618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
-      618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
 
-      618, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
      -497, -497, -497, -497, -497, -497, -497, -497
@@ -8996,14 +8996,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -498, -498, -498, -498, -498, -498, -498, -498, -498,
      -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
      -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
-     -498, -498,  618, -498, -498, -498, -498, -498, -498, -498,
-     -498, -498, -498, -498, -498, -498, -498, -498,  619,  619,
-      619,  619,  619,  619,  619,  619,  619,  619, -498, -498,
-
-     -498, -498, -498, -498, -498,  618,  618,  618,  618,  618,
-      618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
-      618,  618,  618,  618,  618,  618,  618,  618,  618,  618,
-      618, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498,  661, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
      -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
      -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
      -498, -498, -498, -498, -498, -498, -498, -498
@@ -9014,11 +9014,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
 
-     -499, -499,  620, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499,  662, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
      -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
@@ -9031,13 +9031,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -500, -500, -500, -500, -500, -500, -500, -500, -500,
      -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
      -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
-     -500, -500,  621, -500, -500, -500, -500, -500, -500, -500,
-     -500, -500, -500, -500, -500, -500, -500, -500,  622,  622,
-      622,  622,  622,  622,  622,  622,  622,  622, -500, -500,
-     -500, -500, -500, -500, -500,  621,  621,  621,  621,  621,
-      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
-      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
-      621, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500,  663,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
 
      -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
      -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
@@ -9054,8 +9054,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
 
      -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501,  664, -501, -501, -501, -501, -501,
      -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
-     -501, -501, -501, -501, -501,  623, -501, -501, -501, -501,
      -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
      -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
      -501, -501, -501, -501, -501, -501, -501, -501
@@ -9067,12 +9067,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
 
-     -502, -502, -502, -502, -502, -502, -502, -502,  624,  625,
-      625,  625,  625,  625,  625,  625,  625,  625, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502,  665, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
      -502, -502, -502, -502, -502, -502, -502, -502
@@ -9083,13 +9083,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
-     -503, -503,  626, -503, -503, -503, -503, -503, -503, -503,
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
-     -503, -503, -503, -503, -503,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503,  666, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
 
      -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
@@ -9100,14 +9100,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -504, -504, -504, -504, -504, -504, -504, -504, -504,
      -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
      -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
-     -504, -504,  626, -504, -504, -504, -504, -504, -504, -504,
-     -504, -504, -504, -504, -504, -504, -504, -504,  627,  627,
-      627,  627,  627,  627,  627,  627,  627,  627, -504, -504,
-     -504, -504, -504, -504, -504,  626,  626,  626,  626,  626,
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-
-      626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
-      626, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504,  667,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
      -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
      -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
      -504, -504, -504, -504, -504, -504, -504, -504
@@ -9117,13 +9117,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
-     -505, -505,  628, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
-
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+      668, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
      -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
@@ -9135,13 +9135,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
 
      -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
-     -506, -506,  629, -506, -506, -506, -506, -506, -506, -506,
-     -506, -506, -506, -506, -506, -506, -506, -506,  630,  630,
-      630,  630,  630,  630,  630,  630,  630,  630, -506, -506,
-     -506, -506, -506, -506, -506,  629,  629,  629,  629,  629,
-      629,  629,  629,  629,  629,  629,  629,  629,  629,  629,
-      629,  629,  629,  629,  629,  629,  629,  629,  629,  629,
-      629, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506,  669, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
      -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
      -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
 
@@ -9153,11 +9153,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
-     -507, -507, -507, -507, -507, -507, -507, -507,  631,  631,
-      631,  631,  631,  631,  631,  631,  631,  631, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507,  670, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
 
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
      -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
@@ -9169,14 +9169,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
-     -508, -508,  632, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
 
-     -508, -508, -508, -508, -508,  632,  632,  632,  632,  632,
-      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
-      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
-      632, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
      -508, -508, -508, -508, -508, -508, -508, -508
@@ -9187,13 +9187,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
      -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
 
-     -509, -509,  632, -509, -509, -509, -509, -509, -509, -509,
-     -509, -509, -509, -509, -509, -509, -509, -509,  633,  633,
-      633,  633,  633,  633,  633,  633,  633,  633, -509, -509,
-     -509, -509, -509, -509, -509,  632,  632,  632,  632,  632,
-      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
-      632,  632,  632,  632,  632,  632,  632,  632,  632,  632,
-      632, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
      -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
      -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
      -509, -509, -509, -509, -509, -509, -509, -509
@@ -9204,11 +9204,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
-     -510, -510,  634, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510,  671, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
      -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
 
@@ -9221,14 +9221,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -511, -511, -511, -511, -511, -511, -511, -511, -511,
      -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
      -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
-     -511, -511,  635, -511, -511, -511, -511, -511, -511, -511,
-     -511, -511, -511, -511, -511, -511, -511, -511,  636,  636,
-      636,  636,  636,  636,  636,  636,  636,  636, -511, -511,
-     -511, -511, -511, -511, -511,  635,  635,  635,  635,  635,
-
-      635,  635,  635,  635,  635,  635,  635,  635,  635,  635,
-      635,  635,  635,  635,  635,  635,  635,  635,  635,  635,
-      635, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511,  672, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
      -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
      -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
      -511, -511, -511, -511, -511, -511, -511, -511
@@ -9242,7 +9242,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
      -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
-     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512,  673,
      -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
      -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
      -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
@@ -9257,11 +9257,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513,  674,
+      674,  674,  674,  674,  674,  674,  674,  674, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
-     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
-     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
-     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513,  675, -513, -513, -513, -513, -513, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
      -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
 
@@ -9291,9 +9291,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
-     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515,  676,
 
-     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+      676,  676,  676,  676,  676,  676,  676,  676, -515, -515,
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
      -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
@@ -9313,7 +9313,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
-     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516,  677, -516,
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
      -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
@@ -9328,7 +9328,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
      -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
      -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
-     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517,  678, -517, -517, -517, -517,
      -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
      -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
 
@@ -9343,8 +9343,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
      -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
      -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
-     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
-     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518,  679,
+      679,  679,  679,  679,  679,  679,  679,  679, -518, -518,
 
      -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
      -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
@@ -9361,8 +9361,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
 
      -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
-     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
-     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519,  680,
+      680,  680,  680,  680,  680,  680,  680,  680, -519, -519,
      -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
      -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
      -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
@@ -9382,7 +9382,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
      -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
      -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
-     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520,  681, -520, -520, -520, -520, -520, -520, -520,
      -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
 
      -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
@@ -9498,7 +9498,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -527, -527, -527, -527, -527, -527, -527, -527, -527,
      -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
      -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
-     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527,  682, -527, -527, -527, -527, -527, -527, -527,
      -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
      -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
      -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
@@ -9515,14 +9515,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -528, -528, -528, -528, -528, -528, -528, -528, -528,
      -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
      -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
-     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528,  683, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528,  684,  684,
+      684,  684,  684,  684,  684,  684,  684,  684, -528, -528,
+
+     -528, -528, -528, -528, -528,  683,  683,  683,  683,  683,
+      683,  683,  683,  683,  683,  683,  683,  683,  683,  683,
+      683,  683,  683,  683,  683,  683,  683,  683,  683,  683,
+      683, -528, -528, -528, -528, -528, -528, -528, -528, -528,
      -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
      -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
      -528, -528, -528, -528, -528, -528, -528, -528
@@ -9533,13 +9533,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
      -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
 
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
-     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529,  685, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529,  686,  686,
+      686,  686,  686,  686,  686,  686,  686,  686, -529, -529,
+     -529, -529, -529, -529, -529,  685,  685,  685,  685,  685,
+      685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
+      685,  685,  685,  685,  685,  685,  685,  685,  685,  685,
+      685, -529, -529, -529, -529, -529, -529, -529, -529, -529,
      -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
      -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
      -529, -529, -529, -529, -529, -529, -529, -529
@@ -9551,8 +9551,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
-     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
-     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530,  687,  687,
+      687,  687,  687,  687,  687,  687,  687,  687, -530, -530,
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
      -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
@@ -9568,13 +9568,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
-     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
-     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531,  688, -531, -531,  689,  689,
+      689,  689,  689,  689,  689,  689,  689,  689, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
 
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
-     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531,  690, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
      -531, -531, -531, -531, -531, -531, -531, -531
@@ -9586,12 +9586,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
 
+     -532, -532, -532, -532, -532,  688, -532, -532,  689,  689,
+      689,  689,  689,  689,  689,  689,  689,  689, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
-     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
-     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
-     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532,  691, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
      -532, -532, -532, -532, -532, -532, -532, -532
@@ -9603,8 +9603,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
-     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
-     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533,  692,  692,
+      692,  692,  692,  692,  692,  692,  692,  692, -533, -533,
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
      -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
@@ -9620,13 +9620,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
-     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
-     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534,  688, -534, -534,  689,  689,
+      689,  689,  689,  689,  689,  689,  689,  689, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
 
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
-     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534,  693, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
      -534, -534, -534, -534, -534, -534, -534, -534
@@ -9637,9 +9637,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
-     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535,  694,  695,
 
-     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+      695,  695,  695,  695,  695,  695,  695,  695, -535, -535,
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
      -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
@@ -9654,13 +9654,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
 
      -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
-     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536,  696, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536,  697,  697,
+      697,  697,  697,  697,  697,  697,  697,  697, -536, -536,
+     -536, -536, -536, -536, -536,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696, -536, -536, -536, -536, -536, -536, -536, -536, -536,
      -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
      -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
 
@@ -9672,10 +9672,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537,  698,  699,
+      699,  699,  699,  699,  699,  699,  699,  699, -537, -537,
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
-     -537, -537, -537, -537, -537,  637, -537, -537, -537, -537,
-     -537, -537, -537, -537, -537, -537, -537, -537, -537,  638,
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
 
      -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
@@ -9688,14 +9688,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -538, -538, -538, -538, -538, -538, -538, -538, -538,
      -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
      -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
-     -538, -538,  639, -538, -538, -538, -538, -538, -538, -538,
-     -538, -538, -538, -538, -538, -538, -538, -538,  640,  640,
-      640,  640,  640,  640,  640,  640,  640,  640, -538, -538,
-
-     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
-     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
-     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
-     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538,  696, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538,  700,  701,
+      701,  701,  701,  701,  701,  701,  701,  701, -538, -538,
+
+     -538, -538, -538, -538, -538,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696, -538, -538, -538, -538, -538, -538, -538, -538, -538,
      -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
      -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
      -538, -538, -538, -538, -538, -538, -538, -538
@@ -9706,13 +9706,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
      -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
 
-     -539, -539,  641, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
-     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539,  702, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539,  703,  703,
+      703,  703,  703,  703,  703,  703,  703,  703, -539, -539,
+     -539, -539, -539, -539, -539,  702,  702,  702,  702,  702,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
+      702,  702,  702,  702,  702,  702,  702,  702,  702,  702,
+      702, -539, -539, -539, -539, -539, -539, -539, -539, -539,
      -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
      -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
      -539, -539, -539, -539, -539, -539, -539, -539
@@ -9723,13 +9723,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -540, -540, -540, -540, -540, -540, -540, -540, -540,
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
-     -540, -540,  642, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540,  704, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
-     -540, -540, -540, -540, -540,  642,  642,  642,  642,  642,
-      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
-      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
-      642, -540, -540, -540, -540, -540, -540, -540, -540, -540,
 
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
      -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
@@ -9740,14 +9740,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -541, -541, -541, -541, -541, -541, -541, -541, -541,
      -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
      -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-
-     -541, -541, -541, -541, -541, -541, -541, -541, -541,  643,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
-     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541,  705, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541,  706,  706,
+      706,  706,  706,  706,  706,  706,  706,  706, -541, -541,
+     -541, -541, -541, -541, -541,  705,  705,  705,  705,  705,
+
+      705,  705,  705,  705,  705,  705,  705,  705,  705,  705,
+      705,  705,  705,  705,  705,  705,  705,  705,  705,  705,
+      705, -541, -541, -541, -541, -541, -541, -541, -541, -541,
      -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
      -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
      -541, -541, -541, -541, -541, -541, -541, -541
@@ -9757,14 +9757,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -542, -542, -542, -542, -542, -542, -542, -542, -542,
      -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
      -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542,  644, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
-     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542,  696, -542, -542, -542, -542, -542, -542, -542,
+
+     -542, -542, -542, -542, -542, -542, -542, -542,  707,  708,
+      708,  708,  708,  708,  708,  708,  708,  708, -542, -542,
+     -542, -542, -542, -542, -542,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696,  696,  696,  696,  696,  696,  696,  696,  696,  696,
+      696, -542, -542, -542, -542, -542, -542, -542, -542, -542,
      -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
      -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
      -542, -542, -542, -542, -542, -542, -542, -542
@@ -9775,13 +9775,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
      -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543,  645, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
-     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543,  709, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543,  710,  710,
+      710,  710,  710,  710,  710,  710,  710,  710, -543, -543,
+     -543, -543, -543, -543, -543,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709, -543, -543, -543, -543, -543, -543, -543, -543, -543,
      -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
 
      -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
@@ -9792,14 +9792,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -544, -544, -544, -544, -544, -544, -544, -544, -544,
      -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
      -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
-
-     -544, -544, -544, -544, -544, -544,  646, -544, -544, -544,
-     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544,  705, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544,  711,  712,
+      712,  712,  712,  712,  712,  712,  712,  712, -544, -544,
+     -544, -544, -544, -544, -544,  705,  705,  705,  705,  705,
+      705,  705,  705,  705,  705,  705,  705,  705,  705,  705,
+
+      705,  705,  705,  705,  705,  705,  705,  705,  705,  705,
+      705, -544, -544, -544, -544, -544, -544, -544, -544, -544,
      -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
      -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
      -544, -544, -544, -544, -544, -544, -544, -544
@@ -9809,14 +9809,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -545, -545, -545, -545, -545, -545, -545, -545, -545,
      -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
      -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545,  647, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
-     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545,  713, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545,  714,  714,
+
+      714,  714,  714,  714,  714,  714,  714,  714, -545, -545,
+     -545, -545, -545, -545, -545,  713,  713,  713,  713,  713,
+      713,  713,  713,  713,  713,  713,  713,  713,  713,  713,
+      713,  713,  713,  713,  713,  713,  713,  713,  713,  713,
+      713, -545, -545, -545, -545, -545, -545, -545, -545, -545,
      -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
      -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
      -545, -545, -545, -545, -545, -545, -545, -545
@@ -9827,7 +9827,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
 
      -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
-     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546,  715, -546, -546, -546, -546, -546, -546, -546,
      -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
      -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
      -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
@@ -9844,14 +9844,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -547, -547, -547, -547, -547, -547, -547, -547, -547,
      -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
      -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547,  648,
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
-
-     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547,  716, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547,  706,  706,
+      706,  706,  706,  706,  706,  706,  706,  706, -547, -547,
+     -547, -547, -547, -547, -547,  716,  716,  716,  716,  716,
+      716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
+      716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
+
+      716, -547, -547, -547, -547, -547, -547, -547, -547, -547,
      -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
      -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
      -547, -547, -547, -547, -547, -547, -547, -547
@@ -9920,7 +9920,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
      -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
-     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551,  717, -551, -551, -551, -551,
      -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
      -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
      -551, -551, -551, -551, -551, -551, -551, -551
@@ -9932,12 +9932,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
 
+     -552, -552, -552, -552, -552, -552, -552, -552, -552,  718,
+      718,  718,  718,  718,  718,  718,  718,  718, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
-     -552, -552, -552,  649, -552, -552, -552, -552, -552, -552,
-     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
      -552, -552, -552, -552, -552, -552, -552, -552
@@ -9948,13 +9948,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
      -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553,  650,
-     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553,  719, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553,  720,  720,
+      720,  720,  720,  720,  720,  720,  720,  720, -553, -553,
+     -553, -553, -553, -553, -553,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
+      719, -553, -553, -553, -553, -553, -553, -553, -553, -553,
      -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
 
      -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
@@ -9965,13 +9965,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
-     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554,  721, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
 
-     -554, -554,  651, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
      -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
@@ -9982,14 +9982,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -555, -555, -555, -555, -555, -555, -555, -555, -555,
      -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
      -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555,  652, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
-     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555,  722, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555,  723,  723,
+
+      723,  723,  723,  723,  723,  723,  723,  723, -555, -555,
+     -555, -555, -555, -555, -555,  722,  722,  722,  722,  722,
+      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
+      722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
+      722, -555, -555, -555, -555, -555, -555, -555, -555, -555,
      -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
      -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
      -555, -555, -555, -555, -555, -555, -555, -555
@@ -10001,12 +10001,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556,  724,
+      724,  724,  724,  724,  724,  724,  724,  724, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
-     -556, -556, -556, -556, -556, -556, -556, -556, -556,  653,
-     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
      -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
 
@@ -10017,14 +10017,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -557, -557, -557, -557, -557, -557, -557, -557, -557,
      -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
      -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557,  654, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
-
-     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557,  725, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557,  726,  726,
+      726,  726,  726,  726,  726,  726,  726,  726, -557, -557,
+     -557, -557, -557, -557, -557,  725,  725,  725,  725,  725,
+      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+      725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
+
+      725, -557, -557, -557, -557, -557, -557, -557, -557, -557,
      -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
      -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
      -557, -557, -557, -557, -557, -557, -557, -557
@@ -10034,13 +10034,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
-     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558,  727, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
 
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
-     -558, -558,  655, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
      -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
@@ -10052,13 +10052,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
      -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
 
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
-     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559,  728, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559,  729,  729,
+      729,  729,  729,  729,  729,  729,  729,  729, -559, -559,
+     -559, -559, -559, -559, -559,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
+      728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
+      728, -559, -559, -559, -559, -559, -559, -559, -559, -559,
      -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
      -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
      -559, -559, -559, -559, -559, -559, -559, -559
@@ -10069,7 +10069,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -560, -560, -560, -560, -560, -560, -560, -560, -560,
      -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
      -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
-     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560,  730, -560, -560, -560, -560, -560, -560, -560,
      -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
      -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
      -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
@@ -10086,14 +10086,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -561, -561, -561, -561, -561, -561, -561, -561, -561,
      -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
      -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
-     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561,  731, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561,  732,  732,
+      732,  732,  732,  732,  732,  732,  732,  732, -561, -561,
+     -561, -561, -561, -561, -561,  731,  731,  731,  731,  731,
+
+      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
+      731, -561, -561, -561, -561, -561, -561, -561, -561, -561,
      -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
      -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
      -561, -561, -561, -561, -561, -561, -561, -561
@@ -10103,14 +10103,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -562, -562, -562, -562, -562, -562, -562, -562, -562,
      -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
      -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
-     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562,  733, -562, -562, -562, -562, -562, -562, -562,
+
+     -562, -562, -562, -562, -562, -562, -562, -562,  734,  734,
+      734,  734,  734,  734,  734,  734,  734,  734, -562, -562,
+     -562, -562, -562, -562, -562,  733,  733,  733,  733,  733,
+      733,  733,  733,  733,  733,  733,  733,  733,  733,  733,
+      733,  733,  733,  733,  733,  733,  733,  733,  733,  733,
+      733, -562, -562, -562, -562, -562, -562, -562, -562, -562,
      -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
      -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
      -562, -562, -562, -562, -562, -562, -562, -562
@@ -10122,8 +10122,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
-     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
-     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563,  735,  735,
+      735,  735,  735,  735,  735,  735,  735,  735, -563, -563,
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
      -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
@@ -10139,13 +10139,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
-     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564,  736, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
 
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
-     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564,  737, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
      -564, -564, -564, -564, -564, -564, -564, -564
@@ -10156,13 +10156,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
-     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565,  736, -565, -565, -565, -565,
 
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
-     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565,  738, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
      -565, -565, -565, -565, -565, -565, -565, -565
@@ -10174,8 +10174,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
      -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
-     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
-     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566,  739,  739,
+      739,  739,  739,  739,  739,  739,  739,  739, -566, -566,
      -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
      -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
      -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
@@ -10191,13 +10191,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
-     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567,  736, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
 
-     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567,  740, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
      -567, -567, -567, -567, -567, -567, -567, -567
@@ -10208,10 +10208,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
-     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
-     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568,  741,  742,
+      742,  742,  742,  742,  742,  742,  742,  742, -568, -568,
 
-     -568, -568, -568, -568, -568, -568, -568, -568,  656, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
      -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
@@ -10225,13 +10225,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
      -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
 
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569,  657, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
-     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569,  743, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569,  744,  744,
+      744,  744,  744,  744,  744,  744,  744,  744, -569, -569,
+     -569, -569, -569, -569, -569,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743,  743,  743,  743,  743,  743,  743,  743,  743,  743,
+      743, -569, -569, -569, -569, -569, -569, -569, -569, -569,
      -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
      -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
      -569, -569, -569, -569, -569, -569, -569, -569
@@ -10243,12 +10243,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570,  745,  746,
+      746,  746,  746,  746,  746,  746,  746,  746, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
-     -570, -570, -570, -570, -570, -570, -570, -570, -570,  658,
-     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
 
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
      -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
@@ -10259,14 +10259,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -571, -571, -571, -571, -571, -571, -571, -571, -571,
      -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
      -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571,  747, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571,  748,  749,
+      749,  749,  749,  749,  749,  749,  749,  749, -571, -571,
+     -571, -571, -571, -571, -571,  747,  747,  747,  747,  747,
 
-      659, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
-     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747, -571, -571, -571, -571, -571, -571, -571, -571, -571,
      -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
      -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
      -571, -571, -571, -571, -571, -571, -571, -571
@@ -10276,14 +10276,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -572, -572, -572, -572, -572, -572, -572, -572, -572,
      -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
      -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
-     -572, -572,  660, -572, -572, -572, -572, -572, -572, -572,
-
-     -572, -572, -572, -572, -572, -572, -572, -572,  661,  661,
-      661,  661,  661,  661,  661,  661,  661,  661, -572, -572,
-     -572, -572, -572, -572, -572,  660,  660,  660,  660,  660,
-      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
-      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
-      660, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572,  747, -572, -572, -572, -572, -572, -572, -572,
+
+     -572, -572, -572, -572, -572, -572, -572, -572,  750,  750,
+      750,  750,  750,  750,  750,  750,  750,  750, -572, -572,
+     -572, -572, -572, -572, -572,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
+      747, -572, -572, -572, -572, -572, -572, -572, -572, -572,
      -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
      -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
      -572, -572, -572, -572, -572, -572, -572, -572
@@ -10294,10 +10294,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573,  751, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
-     -573, -573, -573, -573, -573, -573, -573,  662, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
      -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
@@ -10311,14 +10311,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -574, -574, -574, -574, -574, -574, -574, -574, -574,
      -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
      -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
-     -574, -574,  663, -574, -574, -574, -574, -574, -574, -574,
-     -574, -574, -574, -574, -574, -574, -574, -574,  664,  664,
-      664,  664,  664,  664,  664,  664,  664,  664, -574, -574,
-     -574, -574, -574, -574, -574,  663,  663,  663,  663,  663,
-      663,  663,  663,  663,  663,  663,  663,  663,  663,  663,
-
-      663,  663,  663,  663,  663,  663,  663,  663,  663,  663,
-      663, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574,  752, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753, -574, -574,
+     -574, -574, -574, -574, -574,  752,  752,  752,  752,  752,
+      752,  752,  752,  752,  752,  752,  752,  752,  752,  752,
+
+      752,  752,  752,  752,  752,  752,  752,  752,  752,  752,
+      752, -574, -574, -574, -574, -574, -574, -574, -574, -574,
      -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
      -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
      -574, -574, -574, -574, -574, -574, -574, -574
@@ -10328,14 +10328,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -575, -575, -575, -575, -575, -575, -575, -575, -575,
      -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
      -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575,  665,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
-     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575,  754, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575,  755,  756,
+
+      756,  756,  756,  756,  756,  756,  756,  756, -575, -575,
+     -575, -575, -575, -575, -575,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754, -575, -575, -575, -575, -575, -575, -575, -575, -575,
      -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
      -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
      -575, -575, -575, -575, -575, -575, -575, -575
@@ -10346,13 +10346,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
 
      -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576,  666, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
-     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576,  754, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576,  757,  757,
+      757,  757,  757,  757,  757,  757,  757,  757, -576, -576,
+     -576, -576, -576, -576, -576,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
+      754, -576, -576, -576, -576, -576, -576, -576, -576, -576,
      -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
      -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
 
@@ -10363,14 +10363,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -577, -577, -577, -577, -577, -577, -577, -577, -577,
      -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
      -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
-     -577, -577,  667, -577, -577, -577, -577, -577, -577, -577,
-     -577, -577, -577, -577, -577, -577, -577, -577,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668, -577, -577,
-     -577, -577, -577, -577, -577,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-
-      667, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577,  758, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
      -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
      -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
      -577, -577, -577, -577, -577, -577, -577, -577
@@ -10380,14 +10380,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -578, -578, -578, -578, -578, -578, -578, -578, -578,
      -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
      -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
-     -578, -578,  669, -578, -578, -578, -578, -578, -578, -578,
-     -578, -578, -578, -578, -578, -578, -578, -578,  670,  670,
-      670,  670,  670,  670,  670,  670,  670,  670, -578, -578,
-
-     -578, -578, -578, -578, -578,  669,  669,  669,  669,  669,
-      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
-      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
-      669, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578,  759, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578,  760,  761,
+      761,  761,  761,  761,  761,  761,  761,  761, -578, -578,
+
+     -578, -578, -578, -578, -578,  759,  759,  759,  759,  759,
+      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759, -578, -578, -578, -578, -578, -578, -578, -578, -578,
      -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
      -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
      -578, -578, -578, -578, -578, -578, -578, -578
@@ -10398,13 +10398,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
      -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
 
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579,  671, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
-     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579,  759, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579,  762,  762,
+      762,  762,  762,  762,  762,  762,  762,  762, -579, -579,
+     -579, -579, -579, -579, -579,  759,  759,  759,  759,  759,
+      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
+      759, -579, -579, -579, -579, -579, -579, -579, -579, -579,
      -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
      -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
      -579, -579, -579, -579, -579, -579, -579, -579
@@ -10415,13 +10415,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -580, -580, -580, -580, -580, -580, -580, -580, -580,
      -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
      -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580,  672,  672,
-      672,  672,  672,  672,  672,  672,  672,  672, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
-     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580,  763, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580,  753,  753,
+      753,  753,  753,  753,  753,  753,  753,  753, -580, -580,
+     -580, -580, -580, -580, -580,  763,  763,  763,  763,  763,
+      763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
+      763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
+      763, -580, -580, -580, -580, -580, -580, -580, -580, -580,
 
      -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
      -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
@@ -10433,13 +10433,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
-     -581, -581, -581, -581, -581, -581, -581, -581, -581,  673,
-      673,  673,  673,  673,  673,  673,  673,  673, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
-
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581,  764, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
      -581, -581, -581, -581, -581, -581, -581, -581
@@ -10449,14 +10449,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -582, -582, -582, -582, -582, -582, -582, -582, -582,
      -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
      -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
-     -582, -582,  674, -582, -582, -582, -582, -582, -582, -582,
-
-     -582, -582, -582, -582, -582, -582, -582, -582,  675,  675,
-      675,  675,  675,  675,  675,  675,  675,  675, -582, -582,
-     -582, -582, -582, -582, -582,  674,  674,  674,  674,  674,
-      674,  674,  674,  674,  674,  674,  674,  674,  674,  674,
-      674,  674,  674,  674,  674,  674,  674,  674,  674,  674,
-      674, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+
+     -582, -582, -582, -582, -582, -582, -582, -582,  765,  766,
+      766,  766,  766,  766,  766,  766,  766,  766, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
      -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
      -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
      -582, -582, -582, -582, -582, -582, -582, -582
@@ -10467,13 +10467,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
-     -583, -583,  676, -583, -583, -583, -583, -583, -583, -583,
-     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
-     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
-     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
-     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583,  767, -583, -583, -583, -583, -583, -583, -583,
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  767,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  767,  767,  767,  767,  767,  767,
+      767, -583, -583, -583, -583, -583, -583, -583, -583, -583,
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
 
      -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
@@ -10484,14 +10484,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -584, -584, -584, -584, -584, -584, -584, -584, -584,
      -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
      -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
-     -584, -584,  677, -584, -584, -584, -584, -584, -584, -584,
-     -584, -584, -584, -584, -584, -584, -584, -584,  678,  678,
-      678,  678,  678,  678,  678,  678,  678,  678, -584, -584,
-     -584, -584, -584, -584, -584,  677,  677,  677,  677,  677,
-      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
-
-      677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
-      677, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584,  767, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584,  768,  768,
+      768,  768,  768,  768,  768,  768,  768,  768, -584, -584,
+     -584, -584, -584, -584, -584,  767,  767,  767,  767,  767,
+      767,  767,  767,  767,  767,  767,  767,  767,  767,  767,
+
+      767,  767,  767,  767,  767,  767,  767,  767,  767,  767,
+      767, -584, -584, -584, -584, -584, -584, -584, -584, -584,
      -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
      -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
      -584, -584, -584, -584, -584, -584, -584, -584
@@ -10501,7 +10501,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -585, -585, -585, -585, -585, -585, -585, -585, -585,
      -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
      -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
-     -585, -585,  679, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585,  769, -585, -585, -585, -585, -585, -585, -585,
      -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
 
      -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
@@ -10519,13 +10519,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
 
      -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586,  680, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
-     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586,  770, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586,  771,  771,
+      771,  771,  771,  771,  771,  771,  771,  771, -586, -586,
+     -586, -586, -586, -586, -586,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
+      770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
+      770, -586, -586, -586, -586, -586, -586, -586, -586, -586,
      -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
      -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
 
@@ -10536,14 +10536,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -587, -587, -587, -587, -587, -587, -587, -587, -587,
      -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
      -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
-     -587, -587,  681, -587, -587, -587, -587, -587, -587, -587,
-     -587, -587, -587, -587, -587, -587, -587, -587,  682,  682,
-      682,  682,  682,  682,  682,  682,  682,  682, -587, -587,
-     -587, -587, -587, -587, -587,  681,  681,  681,  681,  681,
-      681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
-      681,  681,  681,  681,  681,  681,  681,  681,  681,  681,
-
-      681, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587,  772,  772,
+      772,  772,  772,  772,  772,  772,  772,  772, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
      -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
      -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
      -587, -587, -587, -587, -587, -587, -587, -587
@@ -10553,14 +10553,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
-     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
-     -588, -588, -588, -588, -588, -588, -588, -588, -588,  683,
-      683,  683,  683,  683,  683,  683,  683,  683, -588, -588,
-
-     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
-     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588,  773, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+
+     -588, -588, -588, -588, -588,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
      -588, -588, -588, -588, -588, -588, -588, -588
@@ -10571,13 +10571,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
      -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
 
-     -589, -589,  684, -589, -589, -589, -589, -589, -589, -589,
-     -589, -589, -589, -589, -589, -589, -589, -589,  685,  685,
-      685,  685,  685,  685,  685,  685,  685,  685, -589, -589,
-     -589, -589, -589, -589, -589,  684,  684,  684,  684,  684,
-      684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
-      684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
-      684, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589,  773, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774, -589, -589,
+     -589, -589, -589, -589, -589,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773,  773,  773,  773,  773,  773,  773,  773,  773,  773,
+      773, -589, -589, -589, -589, -589, -589, -589, -589, -589,
      -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
      -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
      -589, -589, -589, -589, -589, -589, -589, -589
@@ -10588,7 +10588,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -590, -590, -590, -590, -590, -590, -590, -590, -590,
      -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
      -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
-     -590, -590,  686, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590,  775, -590, -590, -590, -590, -590, -590, -590,
      -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
      -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
      -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
@@ -10605,14 +10605,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -591, -591, -591, -591, -591, -591, -591, -591, -591,
      -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
      -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
-     -591, -591,  687, -591, -591, -591, -591, -591, -591, -591,
-     -591, -591, -591, -591, -591, -591, -591, -591,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688, -591, -591,
-     -591, -591, -591, -591, -591,  687,  687,  687,  687,  687,
-
-      687,  687,  687,  687,  687,  687,  687,  687,  687,  687,
-      687,  687,  687,  687,  687,  687,  687,  687,  687,  687,
-      687, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591,  776, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591,  777,  777,
+      777,  777,  777,  777,  777,  777,  777,  777, -591, -591,
+     -591, -591, -591, -591, -591,  776,  776,  776,  776,  776,
+
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
+      776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
+      776, -591, -591, -591, -591, -591, -591, -591, -591, -591,
      -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
      -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
      -591, -591, -591, -591, -591, -591, -591, -591
@@ -10622,14 +10622,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
-     -592, -592,  689, -592, -592, -592, -592, -592, -592, -592,
-
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592,  778, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
      -592, -592, -592, -592, -592, -592, -592, -592
@@ -10640,9 +10640,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
-     -593, -593,  690, -593, -593, -593, -593, -593, -593, -593,
-     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593,  779,  780,
+      780,  780,  780,  780,  780,  780,  780,  780, -593, -593,
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
      -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
@@ -10657,14 +10657,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -594, -594, -594, -594, -594, -594, -594, -594, -594,
      -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
      -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
-     -594, -594,  691, -594, -594, -594, -594, -594, -594, -594,
-     -594, -594, -594, -594, -594, -594, -594, -594,  692,  692,
-      692,  692,  692,  692,  692,  692,  692,  692, -594, -594,
-     -594, -594, -594, -594, -594,  691,  691,  691,  691,  691,
-      691,  691,  691,  691,  691,  691,  691,  691,  691,  691,
-
-      691,  691,  691,  691,  691,  691,  691,  691,  691,  691,
-      691, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594,  781, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781, -594, -594, -594, -594, -594, -594, -594, -594, -594,
      -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
      -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
      -594, -594, -594, -594, -594, -594, -594, -594
@@ -10674,14 +10674,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -595, -595, -595, -595, -595, -595, -595, -595, -595,
      -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
      -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
-     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595,  781, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595,  782,  782,
+
+      782,  782,  782,  782,  782,  782,  782,  782, -595, -595,
+     -595, -595, -595, -595, -595,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
+      781, -595, -595, -595, -595, -595, -595, -595, -595, -595,
      -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
      -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
      -595, -595, -595, -595, -595, -595, -595, -595
@@ -10692,7 +10692,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
 
      -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
-     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596,  783, -596, -596, -596, -596, -596, -596, -596,
      -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
      -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
      -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
@@ -10709,14 +10709,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -597, -597, -597, -597, -597, -597, -597, -597, -597,
      -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
      -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
-
-     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597,  784, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597,  785,  785,
+      785,  785,  785,  785,  785,  785,  785,  785, -597, -597,
+     -597, -597, -597, -597, -597,  784,  784,  784,  784,  784,
+      784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
+      784,  784,  784,  784,  784,  784,  784,  784,  784,  784,
+
+      784, -597, -597, -597, -597, -597, -597, -597, -597, -597,
      -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
      -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
      -597, -597, -597, -597, -597, -597, -597, -597
@@ -10727,8 +10727,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
      -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
      -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
-     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
-     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598,  786,  786,
+      786,  786,  786,  786,  786,  786,  786,  786, -598, -598,
 
      -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
      -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
@@ -10744,13 +10744,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
 
+     -599, -599,  787, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
-     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
-     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
-     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
-     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
-     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599,  787,  787,  787,  787,  787,
+      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
+      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
+      787, -599, -599, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
      -599, -599, -599, -599, -599, -599, -599, -599
@@ -10761,13 +10761,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -600, -600, -600, -600, -600, -600, -600, -600, -600,
      -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
      -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
-     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600,  787, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600,  788,  788,
+      788,  788,  788,  788,  788,  788,  788,  788, -600, -600,
+     -600, -600, -600, -600, -600,  787,  787,  787,  787,  787,
+      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
+      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
+      787, -600, -600, -600, -600, -600, -600, -600, -600, -600,
 
      -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
      -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
@@ -10778,9 +10778,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -601, -601, -601, -601, -601, -601, -601, -601, -601,
      -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
      -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601,  789, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
      -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
-     -601, -601, -601, -601, -601, -601, -601, -601,  693,  693,
-      693,  693,  693,  693,  693,  693,  693,  693, -601, -601,
      -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
 
      -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
@@ -10795,14 +10795,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -602, -602, -602, -602, -602, -602, -602, -602, -602,
      -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
      -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
-     -602, -602,  694, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602,  790, -602, -602, -602, -602, -602, -602, -602,
 
-     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
-     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
-     -602, -602, -602, -602, -602,  694,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  694,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  694,  694,  694,  694,  694,
-      694, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602,  791,  791,
+      791,  791,  791,  791,  791,  791,  791,  791, -602, -602,
+     -602, -602, -602, -602, -602,  790,  790,  790,  790,  790,
+      790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
+      790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
+      790, -602, -602, -602, -602, -602, -602, -602, -602, -602,
      -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
      -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
      -602, -602, -602, -602, -602, -602, -602, -602
@@ -10813,13 +10813,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
      -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
-     -603, -603,  694, -603, -603, -603, -603, -603, -603, -603,
-     -603, -603, -603, -603, -603, -603, -603, -603,  695,  695,
-      695,  695,  695,  695,  695,  695,  695,  695, -603, -603,
-     -603, -603, -603, -603, -603,  694,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  694,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  694,  694,  694,  694,  694,
-      694, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
      -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
 
      -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
@@ -10830,7 +10830,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -604, -604, -604, -604, -604, -604, -604, -604, -604,
      -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
      -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
-     -604, -604,  696, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
      -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
      -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
      -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
@@ -10847,14 +10847,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -605, -605, -605, -605, -605, -605, -605, -605, -605,
      -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
      -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
-     -605, -605,  697, -605, -605, -605, -605, -605, -605, -605,
-     -605, -605, -605, -605, -605, -605, -605, -605,  698,  698,
-
-      698,  698,  698,  698,  698,  698,  698,  698, -605, -605,
-     -605, -605, -605, -605, -605,  697,  697,  697,  697,  697,
-      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
-      697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
-      697, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
      -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
      -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
      -605, -605, -605, -605, -605, -605, -605, -605
@@ -10865,7 +10865,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
 
      -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
-     -606, -606,  699, -606, -606, -606, -606, -606, -606, -606,
+     -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
      -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
      -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
      -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
@@ -10882,7 +10882,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -607, -607, -607, -607, -607, -607, -607, -607, -607,
      -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
      -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
-     -607, -607,  700, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
      -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
      -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
      -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
@@ -10899,14 +10899,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -608, -608, -608, -608, -608, -608, -608, -608, -608,
      -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
      -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
-     -608, -608,  701, -608, -608, -608, -608, -608, -608, -608,
-     -608, -608, -608, -608, -608, -608, -608, -608,  702,  702,
-      702,  702,  702,  702,  702,  702,  702,  702, -608, -608,
-
-     -608, -608, -608, -608, -608,  701,  701,  701,  701,  701,
-      701,  701,  701,  701,  701,  701,  701,  701,  701,  701,
-      701,  701,  701,  701,  701,  701,  701,  701,  701,  701,
-      701, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
      -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
      -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
      -608, -608, -608, -608, -608, -608, -608, -608
@@ -10918,8 +10918,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
 
      -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
-     -609, -609, -609, -609, -609, -609, -609, -609,  703,  703,
-      703,  703,  703,  703,  703,  703,  703,  703, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
      -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
      -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
      -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
@@ -10934,13 +10934,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -610, -610, -610, -610, -610, -610, -610, -610, -610,
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
-     -610, -610,  704, -610, -610, -610, -610, -610, -610, -610,
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
-     -610, -610, -610, -610, -610,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
 
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
      -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
@@ -10948,62 +10948,62 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611,  704, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611,  705,  705,
-      705,  705,  705,  705,  705,  705,  705,  705, -611, -611,
-     -611, -611, -611, -611, -611,  704,  704,  704,  704,  704,
+       67,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      610,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  611,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  612,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
 
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704,  704,  704,  704,  704,  704,  704,  704,  704,  704,
-      704, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
-     -611, -611, -611, -611, -611, -611, -611, -611
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  442,  442,  442
     },
 
     {
-       67, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612,  706, -612, -612, -612, -612, -612, -612, -612,
+       67,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      793,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  794,  792,  792,  792,  792,  792,  792,  792,
 
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
-     -612, -612, -612, -612, -612, -612, -612, -612
+      792,  792,  792,  792,  792,  792,  792,  795,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792
     },
 
     {
-       67, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+       67,  613,  613,  613,  613,  613,  613,  613,  613,  613,
 
-     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
-     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
-     -613, -613,  707, -613, -613, -613, -613, -613, -613, -613,
-     -613, -613, -613, -613, -613, -613, -613, -613,  708,  708,
-      708,  708,  708,  708,  708,  708,  708,  708, -613, -613,
-     -613, -613, -613, -613, -613,  707,  707,  707,  707,  707,
-      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
-      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
-      707, -613, -613, -613, -613, -613, -613, -613, -613, -613,
-     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+      614,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  615,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  616,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
 
-     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
-     -613, -613, -613, -613, -613, -613, -613, -613
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613
     },
 
     {
        67, -614, -614, -614, -614, -614, -614, -614, -614, -614,
      -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
      -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
-     -614, -614,  709, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
      -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
      -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
      -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
@@ -11017,55 +11017,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615,  710, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+       67,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      614,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  615,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  616,  613,  613,
 
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
-     -615, -615, -615, -615, -615, -615, -615, -615
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613
     },
 
     {
-       67, -616, -616, -616, -616, -616, -616, -616, -616, -616,
-     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+       67,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      614,  613,  613,  613,  613,  613,  613,  613,  613,  613,
 
-     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
-     -616, -616,  711, -616, -616, -616, -616, -616, -616, -616,
-     -616, -616, -616, -616, -616, -616, -616, -616,  712,  712,
-      712,  712,  712,  712,  712,  712,  712,  712, -616, -616,
-     -616, -616, -616, -616, -616,  711,  711,  711,  711,  711,
-      711,  711,  711,  711,  711,  711,  711,  711,  711,  711,
-      711,  711,  711,  711,  711,  711,  711,  711,  711,  711,
-      711, -616, -616, -616, -616, -616, -616, -616, -616, -616,
-     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
-     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  615,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  616,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
+      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
 
-     -616, -616, -616, -616, -616, -616, -616, -616
+      613,  613,  613,  613,  613,  613,  613,  613
     },
 
     {
-       67, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+       67,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      618,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  619,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  620,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
 
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
-     -617, -617, -617, -617, -617, -617, -617, -617
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617
     },
 
     {
@@ -11086,38 +11086,38 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+       67,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      618,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
 
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
-     -619, -619, -619, -619, -619, -619, -619, -619
+      617,  617,  619,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  620,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617
 
     },
 
     {
-       67, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+       67,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      618,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  619,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  620,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
 
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
-     -620, -620, -620, -620, -620, -620, -620, -620
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  617,  617,
+      617,  617,  617,  617,  617,  617,  617,  617
     },
 
     {
@@ -11160,8 +11160,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
-     -623, -623, -623, -623, -623, -623, -623, -623,  713,  713,
-      713,  713,  713,  713,  713,  713,  713,  713, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
      -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
@@ -11176,14 +11176,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
-     -624, -624,  714, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
-     -624, -624, -624, -624, -624,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
 
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
      -624, -624, -624, -624, -624, -624, -624, -624
@@ -11193,14 +11193,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -625, -625, -625, -625, -625, -625, -625, -625, -625,
      -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
      -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
-     -625, -625,  714, -625, -625, -625, -625, -625, -625, -625,
-     -625, -625, -625, -625, -625, -625, -625, -625,  715,  715,
-
-      715,  715,  715,  715,  715,  715,  715,  715, -625, -625,
-     -625, -625, -625, -625, -625,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
-      714, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
      -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
      -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
      -625, -625, -625, -625, -625, -625, -625, -625
@@ -11211,7 +11211,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
 
      -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
-     -626, -626,  716, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
      -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
      -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
      -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
@@ -11228,14 +11228,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -627, -627, -627, -627, -627, -627, -627, -627, -627,
      -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
      -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
-     -627, -627,  717, -627, -627, -627, -627, -627, -627, -627,
-     -627, -627, -627, -627, -627, -627, -627, -627,  718,  718,
-      718,  718,  718,  718,  718,  718,  718,  718, -627, -627,
-     -627, -627, -627, -627, -627,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
      -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
      -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
      -627, -627, -627, -627, -627, -627, -627, -627
@@ -11245,7 +11245,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -628, -628, -628, -628, -628, -628, -628, -628, -628,
      -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
      -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
-     -628, -628,  719, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
      -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
      -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
 
@@ -11263,7 +11263,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
      -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
 
-     -629, -629,  720, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
      -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
      -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
      -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
@@ -11280,13 +11280,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -630, -630, -630, -630, -630, -630, -630, -630, -630,
      -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
      -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
-     -630, -630,  721, -630, -630, -630, -630, -630, -630, -630,
-     -630, -630, -630, -630, -630, -630, -630, -630,  722,  722,
-      722,  722,  722,  722,  722,  722,  722,  722, -630, -630,
-     -630, -630, -630, -630, -630,  721,  721,  721,  721,  721,
-      721,  721,  721,  721,  721,  721,  721,  721,  721,  721,
-      721,  721,  721,  721,  721,  721,  721,  721,  721,  721,
-      721, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
 
      -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
      -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
@@ -11406,7 +11406,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
      -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
      -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
-     -637, -637, -637, -637, -637, -637,  723, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
 
      -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
      -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
@@ -11422,7 +11422,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
      -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
 
-     -638, -638, -638, -638, -638, -638,  724, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
      -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
      -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
      -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
@@ -11436,11 +11436,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
 
-     -639, -639,  725, -639, -639, -639, -639, -639, -639, -639,
-     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639,  796, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639,  797,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
      -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
@@ -11453,9 +11453,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -640, -640, -640, -640, -640, -640, -640, -640, -640,
      -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
      -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
-     -640, -640,  726, -640, -640, -640, -640, -640, -640, -640,
-     -640, -640, -640, -640, -640, -640, -640, -640,  727,  727,
-      727,  727,  727,  727,  727,  727,  727,  727, -640, -640,
+     -640, -640,  798, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640,  799,  799,
+      799,  799,  799,  799,  799,  799,  799,  799, -640, -640,
      -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
      -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
      -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
@@ -11470,7 +11470,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -641, -641, -641, -641, -641, -641, -641, -641, -641,
      -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
      -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
-     -641, -641,  728, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641,  800, -641, -641, -641, -641, -641, -641, -641,
      -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
      -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
      -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
@@ -11487,14 +11487,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
-     -642, -642,  729, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642,  801, -642, -642, -642, -642, -642, -642, -642,
 
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
-     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
-     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
-     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
-     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642,  801,  801,  801,  801,  801,
+      801,  801,  801,  801,  801,  801,  801,  801,  801,  801,
+      801,  801,  801,  801,  801,  801,  801,  801,  801,  801,
+      801, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
      -642, -642, -642, -642, -642, -642, -642, -642
@@ -11509,8 +11509,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643,  802,
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
-     -643, -643, -643, -643, -643, -643, -643, -643,  730, -643,
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
      -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
 
@@ -11525,8 +11525,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
-     -644, -644, -644, -644, -644, -644, -644, -644, -644,  731,
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644,  803, -644, -644, -644,
 
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
      -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
@@ -11543,8 +11543,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
 
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
-     -645, -645, -645, -645, -645, -645, -645, -645, -645,  732,
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645,  804, -645, -645, -645,
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
      -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
@@ -11561,8 +11561,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
-     -646,  733, -646, -646, -646, -646, -646, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646,  805, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
      -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
@@ -11577,9 +11577,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647,  806, -647, -647, -647,
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
-     -647, -647, -647,  734, -647, -647, -647, -647, -647, -647,
 
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
      -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
@@ -11592,7 +11592,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
      -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
      -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
-     -648, -648, -648, -648, -648,  735, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
      -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
 
      -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
@@ -11613,8 +11613,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649,  807,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
-     -649, -649, -649, -649, -649, -649, -649, -649, -649,  736,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
      -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
@@ -11631,7 +11631,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
      -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
      -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
-     -650, -650, -650,  737, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
      -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
 
      -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
@@ -11646,10 +11646,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
-     -651, -651, -651, -651, -651, -651, -651, -651, -651,  738,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
 
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
-     -651,  739, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
      -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
@@ -11666,7 +11666,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
-     -652, -652, -652, -652, -652, -652,  740, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
      -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
@@ -11683,7 +11683,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
      -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
      -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
-     -653, -653, -653,  741, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
      -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
      -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
 
@@ -11701,7 +11701,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
      -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
 
-     -654, -654, -654,  742, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654,  808, -654, -654, -654, -654, -654, -654,
      -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
      -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
      -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
@@ -11716,9 +11716,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
 
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
-     -655, -655, -655, -655, -655, -655, -655,  743, -655, -655,
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655,  809,
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
      -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
@@ -11735,7 +11735,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
-     -656, -656, -656,  744, -656, -656, -656, -656, -656, -656,
+     -656, -656,  810, -656, -656, -656, -656, -656, -656, -656,
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
      -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
@@ -11750,8 +11750,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657,  811, -657, -657, -657, -657,
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
-     -657, -657, -657, -657, -657, -657,  745, -657, -657, -657,
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
 
      -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
@@ -11770,7 +11770,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
      -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
-     -658, -658, -658,  746, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658,  812,
      -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
      -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
      -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
@@ -11782,13 +11782,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
 
-     -659, -659,  747, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
-     -659, -659, -659, -659, -659,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
-      747, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659,  813, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
      -659, -659, -659, -659, -659, -659, -659, -659
@@ -11799,12 +11799,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
-     -660, -660,  748, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660,  814, -660, -660, -660, -660, -660, -660, -660,
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
 
      -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
@@ -11816,14 +11816,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -661, -661, -661, -661, -661, -661, -661, -661, -661,
      -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
      -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
-     -661, -661,  749, -661, -661, -661, -661, -661, -661, -661,
-     -661, -661, -661, -661, -661, -661, -661, -661,  750,  750,
-      750,  750,  750,  750,  750,  750,  750,  750, -661, -661,
-     -661, -661, -661, -661, -661,  749,  749,  749,  749,  749,
-
-      749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
-      749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
-      749, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
      -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
      -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
      -661, -661, -661, -661, -661, -661, -661, -661
@@ -11837,7 +11837,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
      -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
-     -662, -662, -662, -662, -662, -662, -662, -662, -662,  751,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
      -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
      -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
      -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
@@ -11851,7 +11851,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
      -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
-     -663, -663,  752, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
      -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
      -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
      -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
@@ -11868,14 +11868,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -664, -664, -664, -664, -664, -664, -664, -664, -664,
      -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
      -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
-     -664, -664,  753, -664, -664, -664, -664, -664, -664, -664,
-     -664, -664, -664, -664, -664, -664, -664, -664,  754,  754,
-      754,  754,  754,  754,  754,  754,  754,  754, -664, -664,
-     -664, -664, -664, -664, -664,  753,  753,  753,  753,  753,
-      753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
-
-      753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
-      753, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
      -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
      -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
      -664, -664, -664, -664, -664, -664, -664, -664
@@ -11891,7 +11891,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
-     -665, -665, -665,  755, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
      -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
@@ -11906,7 +11906,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
-     -666, -666, -666, -666, -666, -666, -666, -666, -666,  756,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
      -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
@@ -11920,7 +11920,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -667, -667, -667, -667, -667, -667, -667, -667, -667,
      -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
      -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
-     -667, -667,  757, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
      -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
      -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
      -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
@@ -11937,14 +11937,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -668, -668, -668, -668, -668, -668, -668, -668, -668,
      -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
      -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
-     -668, -668,  758, -668, -668, -668, -668, -668, -668, -668,
-     -668, -668, -668, -668, -668, -668, -668, -668,  759,  759,
-      759,  759,  759,  759,  759,  759,  759,  759, -668, -668,
-
-     -668, -668, -668, -668, -668,  758,  758,  758,  758,  758,
-      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
-      758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
-      758, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
      -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
      -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
      -668, -668, -668, -668, -668, -668, -668, -668
@@ -11955,7 +11955,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
      -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
 
-     -669, -669,  760, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
      -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
      -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
      -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
@@ -11972,13 +11972,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -670, -670, -670, -670, -670, -670, -670, -670, -670,
      -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
      -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
-     -670, -670,  761, -670, -670, -670, -670, -670, -670, -670,
-     -670, -670, -670, -670, -670, -670, -670, -670,  762,  762,
-      762,  762,  762,  762,  762,  762,  762,  762, -670, -670,
-     -670, -670, -670, -670, -670,  761,  761,  761,  761,  761,
-      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
-      761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
-      761, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670,  815, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
 
      -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
      -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
@@ -11992,9 +11992,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
-     -671, -671, -671, -671, -671, -671, -671, -671, -671,  763,
-
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+
+     -671,  816, -671, -671, -671, -671, -671, -671, -671, -671,
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
      -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
@@ -12012,7 +12012,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
-     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672,  817,
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
      -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
@@ -12028,7 +12028,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
-     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+      818, -673, -673, -673, -673, -673, -673, -673, -673, -673,
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
      -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
@@ -12041,14 +12041,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -674, -674, -674, -674, -674, -674, -674, -674, -674,
      -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
      -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
-     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674,  819, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674, -674, -674, -674, -674, -674, -674,  820,  820,
+      820,  820,  820,  820,  820,  820,  820,  820, -674, -674,
+     -674, -674, -674, -674, -674,  819,  819,  819,  819,  819,
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+
+      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
+      819, -674, -674, -674, -674, -674, -674, -674, -674, -674,
      -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
      -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
      -674, -674, -674, -674, -674, -674, -674, -674
@@ -12062,7 +12062,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
 
      -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
-     -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
+     -675, -675, -675, -675, -675, -675, -675,  821, -675, -675,
      -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
      -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
      -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
@@ -12076,13 +12076,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
 
      -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
-     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
+     -676, -676,  822, -676, -676, -676, -676, -676, -676, -676,
+     -676, -676, -676, -676, -676, -676, -676, -676,  823,  823,
+      823,  823,  823,  823,  823,  823,  823,  823, -676, -676,
+     -676, -676, -676, -676, -676,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
+      822, -676, -676, -676, -676, -676, -676, -676, -676, -676,
      -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
      -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
 
@@ -12096,7 +12096,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
      -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
      -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
-     -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
+     -677, -677, -677, -677, -677, -677, -677, -677, -677,  824,
      -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
      -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
 
@@ -12115,7 +12115,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
 
      -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
-     -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
+     -678, -678, -678, -678, -678, -678, -678,  825, -678, -678,
      -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
      -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
      -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
@@ -12128,13 +12128,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
      -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
 
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
-     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679,  826, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679, -679, -679, -679,  827,  827,
+      827,  827,  827,  827,  827,  827,  827,  827, -679, -679,
+     -679, -679, -679, -679, -679,  826,  826,  826,  826,  826,
+      826,  826,  826,  826,  826,  826,  826,  826,  826,  826,
+      826,  826,  826,  826,  826,  826,  826,  826,  826,  826,
+      826, -679, -679, -679, -679, -679, -679, -679, -679, -679,
      -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
      -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
      -679, -679, -679, -679, -679, -679, -679, -679
@@ -12145,13 +12145,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -680, -680, -680, -680, -680, -680, -680, -680, -680,
      -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
      -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
-     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680,  828, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680, -680, -680, -680, -680, -680,  829,  829,
+      829,  829,  829,  829,  829,  829,  829,  829, -680, -680,
+     -680, -680, -680, -680, -680,  828,  828,  828,  828,  828,
+      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
+      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
+      828, -680, -680, -680, -680, -680, -680, -680, -680, -680,
 
      -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
      -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
@@ -12165,7 +12165,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
      -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
      -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
-     -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+     -681, -681, -681, -681, -681, -681, -681,  830, -681, -681,
 
      -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
      -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
@@ -12179,7 +12179,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -682, -682, -682, -682, -682, -682, -682, -682, -682,
      -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
      -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
-     -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
+     -682, -682,  831, -682, -682, -682, -682, -682, -682, -682,
 
      -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
      -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
@@ -12197,7 +12197,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
      -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
-     -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683,  832, -683, -683, -683, -683, -683, -683, -683,
      -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
      -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
      -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
@@ -12214,14 +12214,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -684, -684, -684, -684, -684, -684, -684, -684, -684,
      -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
      -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
-     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
+     -684, -684,  833, -684, -684, -684, -684, -684, -684, -684,
+     -684, -684, -684, -684, -684, -684, -684, -684,  834,  834,
+      834,  834,  834,  834,  834,  834,  834,  834, -684, -684,
+     -684, -684, -684, -684, -684,  833,  833,  833,  833,  833,
+      833,  833,  833,  833,  833,  833,  833,  833,  833,  833,
+
+      833,  833,  833,  833,  833,  833,  833,  833,  833,  833,
+      833, -684, -684, -684, -684, -684, -684, -684, -684, -684,
      -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
      -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
      -684, -684, -684, -684, -684, -684, -684, -684
@@ -12231,7 +12231,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -685, -685, -685, -685, -685, -685, -685, -685, -685,
      -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
      -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
-     -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
+     -685, -685,  835, -685, -685, -685, -685, -685, -685, -685,
      -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
 
      -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
@@ -12249,13 +12249,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
 
      -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
-     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686,  836, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686, -686, -686, -686, -686,  837,  837,
+      837,  837,  837,  837,  837,  837,  837,  837, -686, -686,
+     -686, -686, -686, -686, -686,  836,  836,  836,  836,  836,
+      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
+      836,  836,  836,  836,  836,  836,  836,  836,  836,  836,
+      836, -686, -686, -686, -686, -686, -686, -686, -686, -686,
      -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
      -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
 
@@ -12266,14 +12266,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -687, -687, -687, -687, -687, -687, -687, -687, -687,
      -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
      -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
-
-     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687,  838, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687, -687, -687, -687, -687, -687, -687,  839,  839,
+      839,  839,  839,  839,  839,  839,  839,  839, -687, -687,
+     -687, -687, -687, -687, -687,  838,  838,  838,  838,  838,
+      838,  838,  838,  838,  838,  838,  838,  838,  838,  838,
+      838,  838,  838,  838,  838,  838,  838,  838,  838,  838,
+
+      838, -687, -687, -687, -687, -687, -687, -687, -687, -687,
      -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
      -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
      -687, -687, -687, -687, -687, -687, -687, -687
@@ -12284,8 +12284,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
      -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
      -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
-     -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
-     -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
+     -688, -688, -688, -688, -688, -688, -688, -688,  840,  840,
+      840,  840,  840,  840,  840,  840,  840,  840, -688, -688,
 
      -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
      -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
@@ -12302,8 +12302,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
 
      -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
-     -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
-     -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689, -689, -689, -689, -689,  841,  841,
+      841,  841,  841,  841,  841,  841,  841,  841, -689, -689,
      -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
      -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
      -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
@@ -12319,8 +12319,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
-     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
-     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
+     -690, -690, -690, -690, -690, -690, -690, -690,  842,  842,
+      842,  842,  842,  842,  842,  842,  842,  842, -690, -690,
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
      -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
@@ -12336,8 +12336,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
      -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
      -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
-     -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
-     -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
+     -691, -691, -691, -691, -691, -691, -691, -691,  842,  843,
+      843,  843,  843,  843,  843,  843,  843,  843, -691, -691,
      -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
 
      -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
@@ -12352,14 +12352,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -692, -692, -692, -692, -692, -692, -692, -692, -692,
      -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
      -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
-     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+     -692, -692,  844, -692, -692, -692, -692, -692, -692, -692,
+
+     -692, -692, -692, -692, -692, -692, -692, -692,  845,  845,
+      845,  845,  845,  845,  845,  845,  845,  845, -692, -692,
+     -692, -692, -692, -692, -692,  844,  844,  844,  844,  844,
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+      844, -692, -692, -692, -692, -692, -692, -692, -692, -692,
      -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
      -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
      -692, -692, -692, -692, -692, -692, -692, -692
@@ -12371,8 +12371,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
-     -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
-     -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693, -693, -693, -693, -693, -693,  842,  846,
+      846,  846,  846,  846,  846,  846,  846,  846, -693, -693,
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
      -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
@@ -12387,14 +12387,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -694, -694, -694, -694, -694, -694, -694, -694, -694,
      -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
      -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
-     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
+     -694, -694,  844, -694, -694, -694, -694, -694, -694, -694,
+     -694, -694, -694, -694, -694, -694, -694, -694,  845,  847,
+      847,  847,  847,  847,  847,  847,  847,  847, -694, -694,
+     -694, -694, -694, -694, -694,  844,  844,  844,  844,  844,
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+      844, -694, -694, -694, -694, -694, -694, -694, -694, -694,
      -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
      -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
      -694, -694, -694, -694, -694, -694, -694, -694
@@ -12404,14 +12404,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -695, -695, -695, -695, -695, -695, -695, -695, -695,
      -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
      -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
-     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695,  848, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695, -695, -695, -695, -695, -695,  849,  849,
+
+      849,  849,  849,  849,  849,  849,  849,  849, -695, -695,
+     -695, -695, -695, -695, -695,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
+      848, -695, -695, -695, -695, -695, -695, -695, -695, -695,
      -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
      -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
      -695, -695, -695, -695, -695, -695, -695, -695
@@ -12422,7 +12422,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
 
      -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
-     -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696,  850, -696, -696, -696, -696, -696, -696, -696,
      -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
      -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
      -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
@@ -12439,14 +12439,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -697, -697, -697, -697, -697, -697, -697, -697, -697,
      -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
      -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697,  851, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697, -697, -697, -697, -697, -697, -697,  852,  852,
+      852,  852,  852,  852,  852,  852,  852,  852, -697, -697,
+     -697, -697, -697, -697, -697,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
 
-     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+      851, -697, -697, -697, -697, -697, -697, -697, -697, -697,
      -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
      -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
      -697, -697, -697, -697, -697, -697, -697, -697
@@ -12456,14 +12456,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -698, -698, -698, -698, -698, -698, -698, -698, -698,
      -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
      -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
-     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
+     -698, -698,  844, -698, -698, -698, -698, -698, -698, -698,
+     -698, -698, -698, -698, -698, -698, -698, -698,  845,  853,
+      853,  853,  853,  853,  853,  853,  853,  853, -698, -698,
+
+     -698, -698, -698, -698, -698,  844,  844,  844,  844,  844,
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
+      844, -698, -698, -698, -698, -698, -698, -698, -698, -698,
      -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
      -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
      -698, -698, -698, -698, -698, -698, -698, -698
@@ -12474,13 +12474,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
      -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
 
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
-     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
+     -699, -699,  854, -699, -699, -699, -699, -699, -699, -699,
+     -699, -699, -699, -699, -699, -699, -699, -699,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855, -699, -699,
+     -699, -699, -699, -699, -699,  854,  854,  854,  854,  854,
+      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
+      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
+      854, -699, -699, -699, -699, -699, -699, -699, -699, -699,
      -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
      -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
      -699, -699, -699, -699, -699, -699, -699, -699
@@ -12491,13 +12491,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -700, -700, -700, -700, -700, -700, -700, -700, -700,
      -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
      -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
-     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700,  851, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700, -700, -700, -700, -700,  852,  856,
+      856,  856,  856,  856,  856,  856,  856,  856, -700, -700,
+     -700, -700, -700, -700, -700,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851, -700, -700, -700, -700, -700, -700, -700, -700, -700,
 
      -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
      -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
@@ -12508,14 +12508,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -701, -701, -701, -701, -701, -701, -701, -701, -701,
      -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
      -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+     -701, -701,  857, -701, -701, -701, -701, -701, -701, -701,
+     -701, -701, -701, -701, -701, -701, -701, -701,  858,  858,
+      858,  858,  858,  858,  858,  858,  858,  858, -701, -701,
+     -701, -701, -701, -701, -701,  857,  857,  857,  857,  857,
 
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
-     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857, -701, -701, -701, -701, -701, -701, -701, -701, -701,
      -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
      -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
      -701, -701, -701, -701, -701, -701, -701, -701
@@ -12525,7 +12525,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -702, -702, -702, -702, -702, -702, -702, -702, -702,
      -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
      -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
-     -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+     -702, -702,  859, -702, -702, -702, -702, -702, -702, -702,
 
      -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
      -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
@@ -12543,13 +12543,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
      -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
-     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703,  860, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703, -703, -703, -703, -703, -703,  852,  852,
+      852,  852,  852,  852,  852,  852,  852,  852, -703, -703,
+     -703, -703, -703, -703, -703,  860,  860,  860,  860,  860,
+      860,  860,  860,  860,  860,  860,  860,  860,  860,  860,
+      860,  860,  860,  860,  860,  860,  860,  860,  860,  860,
+      860, -703, -703, -703, -703, -703, -703, -703, -703, -703,
      -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
 
      -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
@@ -12560,7 +12560,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -704, -704, -704, -704, -704, -704, -704, -704, -704,
      -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
      -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
-     -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704, -704,  861, -704, -704, -704, -704, -704, -704, -704,
      -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
      -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
      -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
@@ -12577,7 +12577,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -705, -705, -705, -705, -705, -705, -705, -705, -705,
      -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
      -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
-     -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
+     -705, -705,  862, -705, -705, -705, -705, -705, -705, -705,
      -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
 
      -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
@@ -12595,13 +12595,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
 
      -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
-     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706,  863, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706, -706, -706, -706, -706, -706, -706,  864,  864,
+      864,  864,  864,  864,  864,  864,  864,  864, -706, -706,
+     -706, -706, -706, -706, -706,  863,  863,  863,  863,  863,
+      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
+      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
+      863, -706, -706, -706, -706, -706, -706, -706, -706, -706,
      -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
      -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
 
@@ -12612,14 +12612,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -707, -707, -707, -707, -707, -707, -707, -707, -707,
      -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
      -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+     -707, -707,  851, -707, -707, -707, -707, -707, -707, -707,
+     -707, -707, -707, -707, -707, -707, -707, -707,  852,  865,
+      865,  865,  865,  865,  865,  865,  865,  865, -707, -707,
+     -707, -707, -707, -707, -707,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
 
-     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+      851, -707, -707, -707, -707, -707, -707, -707, -707, -707,
      -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
      -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
      -707, -707, -707, -707, -707, -707, -707, -707
@@ -12629,14 +12629,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -708, -708, -708, -708, -708, -708, -708, -708, -708,
      -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
      -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
-     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708,  866, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708, -708, -708, -708, -708, -708, -708,  867,  867,
+      867,  867,  867,  867,  867,  867,  867,  867, -708, -708,
+
+     -708, -708, -708, -708, -708,  866,  866,  866,  866,  866,
+      866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
+      866,  866,  866,  866,  866,  866,  866,  866,  866,  866,
+      866, -708, -708, -708, -708, -708, -708, -708, -708, -708,
      -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
      -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
      -708, -708, -708, -708, -708, -708, -708, -708
@@ -12647,7 +12647,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
      -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
 
-     -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
+     -709, -709,  868, -709, -709, -709, -709, -709, -709, -709,
      -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
      -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
      -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
@@ -12664,13 +12664,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -710, -710, -710, -710, -710, -710, -710, -710, -710,
      -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
      -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
-     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710,  869, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710, -710, -710, -710, -710, -710, -710,  852,  852,
+      852,  852,  852,  852,  852,  852,  852,  852, -710, -710,
+     -710, -710, -710, -710, -710,  869,  869,  869,  869,  869,
+      869,  869,  869,  869,  869,  869,  869,  869,  869,  869,
+      869,  869,  869,  869,  869,  869,  869,  869,  869,  869,
+      869, -710, -710, -710, -710, -710, -710, -710, -710, -710,
 
      -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
      -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
@@ -12681,14 +12681,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -711, -711, -711, -711, -711, -711, -711, -711, -711,
      -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
      -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
-     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711,  863, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711, -711, -711, -711, -711, -711, -711,  864,  870,
+      870,  870,  870,  870,  870,  870,  870,  870, -711, -711,
+     -711, -711, -711, -711, -711,  863,  863,  863,  863,  863,
+
+      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
+      863,  863,  863,  863,  863,  863,  863,  863,  863,  863,
+      863, -711, -711, -711, -711, -711, -711, -711, -711, -711,
      -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
      -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
      -711, -711, -711, -711, -711, -711, -711, -711
@@ -12698,14 +12698,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -712, -712, -712, -712, -712, -712, -712, -712, -712,
      -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
      -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
-     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
+     -712, -712,  871, -712, -712, -712, -712, -712, -712, -712,
+
+     -712, -712, -712, -712, -712, -712, -712, -712,  872,  872,
+      872,  872,  872,  872,  872,  872,  872,  872, -712, -712,
+     -712, -712, -712, -712, -712,  871,  871,  871,  871,  871,
+      871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
+      871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
+      871, -712, -712, -712, -712, -712, -712, -712, -712, -712,
      -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
      -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
      -712, -712, -712, -712, -712, -712, -712, -712
@@ -12716,7 +12716,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
      -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
-     -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
+     -713, -713,  873, -713, -713, -713, -713, -713, -713, -713,
      -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
      -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
      -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
@@ -12733,14 +12733,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -714, -714, -714, -714, -714, -714, -714, -714, -714,
      -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
      -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
-     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714,  874, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714, -714, -714, -714, -714,  864,  864,
+      864,  864,  864,  864,  864,  864,  864,  864, -714, -714,
+     -714, -714, -714, -714, -714,  874,  874,  874,  874,  874,
+      874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
+
+      874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
+      874, -714, -714, -714, -714, -714, -714, -714, -714, -714,
      -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
      -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
      -714, -714, -714, -714, -714, -714, -714, -714
@@ -12750,7 +12750,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -715, -715, -715, -715, -715, -715, -715, -715, -715,
      -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
      -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
-     -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+     -715, -715,  875, -715, -715, -715, -715, -715, -715, -715,
      -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
 
      -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
@@ -12768,7 +12768,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
 
      -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
-     -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
+     -716, -716,  876, -716, -716, -716, -716, -716, -716, -716,
      -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
      -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
      -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
@@ -12786,8 +12786,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
-     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
-     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
+     -717, -717, -717, -717, -717, -717, -717, -717, -717,  877,
+      877,  877,  877,  877,  877,  877,  877,  877, -717, -717,
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
      -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
@@ -12802,14 +12802,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -718, -718, -718, -718, -718, -718, -718, -718, -718,
      -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
      -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
-     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718,  878, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718, -718, -718, -718, -718, -718,  879,  879,
+      879,  879,  879,  879,  879,  879,  879,  879, -718, -718,
+
+     -718, -718, -718, -718, -718,  878,  878,  878,  878,  878,
+      878,  878,  878,  878,  878,  878,  878,  878,  878,  878,
+      878,  878,  878,  878,  878,  878,  878,  878,  878,  878,
+      878, -718, -718, -718, -718, -718, -718, -718, -718, -718,
      -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
      -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
      -718, -718, -718, -718, -718, -718, -718, -718
@@ -12820,7 +12820,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
      -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
 
-     -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719,  880, -719, -719, -719, -719, -719, -719, -719,
      -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
      -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
      -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
@@ -12837,13 +12837,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -720, -720, -720, -720, -720, -720, -720, -720, -720,
      -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
      -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
-     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720,  881, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720, -720, -720, -720, -720, -720, -720,  882,  882,
+      882,  882,  882,  882,  882,  882,  882,  882, -720, -720,
+     -720, -720, -720, -720, -720,  881,  881,  881,  881,  881,
+      881,  881,  881,  881,  881,  881,  881,  881,  881,  881,
+      881,  881,  881,  881,  881,  881,  881,  881,  881,  881,
+      881, -720, -720, -720, -720, -720, -720, -720, -720, -720,
 
      -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
      -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
@@ -12854,7 +12854,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -721, -721, -721, -721, -721, -721, -721, -721, -721,
      -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
      -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
-     -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
+     -721, -721,  883, -721, -721, -721, -721, -721, -721, -721,
      -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
      -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
      -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
@@ -12871,7 +12871,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -722, -722, -722, -722, -722, -722, -722, -722, -722,
      -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
      -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
-     -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
+     -722, -722,  884, -722, -722, -722, -722, -722, -722, -722,
 
      -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
      -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
@@ -12889,13 +12889,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
      -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723,  764, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
-     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723,  885, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723, -723, -723, -723, -723,  886,  886,
+      886,  886,  886,  886,  886,  886,  886,  886, -723, -723,
+     -723, -723, -723, -723, -723,  885,  885,  885,  885,  885,
+      885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
+      885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
+      885, -723, -723, -723, -723, -723, -723, -723, -723, -723,
      -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
 
      -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
@@ -12912,7 +12912,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
      -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
 
-     -724, -724, -724,  765, -724, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
      -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
      -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
      -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
@@ -12923,7 +12923,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -725, -725, -725, -725, -725, -725, -725, -725, -725,
      -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
      -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
-     -725, -725,  766, -725, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
      -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
 
      -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
@@ -12941,7 +12941,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
 
      -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
-     -726, -726,  767, -726, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
      -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
      -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
      -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
@@ -12958,7 +12958,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -727, -727, -727, -727, -727, -727, -727, -727, -727,
      -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
      -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
-     -727, -727,  768, -727, -727, -727, -727, -727, -727, -727,
+     -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
      -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
      -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
      -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
@@ -12975,7 +12975,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -728, -728, -728, -728, -728, -728, -728, -728, -728,
      -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
      -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
-     -728, -728,  769, -728, -728, -728, -728, -728, -728, -728,
+     -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
      -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
      -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
 
@@ -12993,7 +12993,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
      -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
 
-     -729, -729,  770, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
      -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
      -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
      -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
@@ -13010,7 +13010,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -730, -730, -730, -730, -730, -730, -730, -730, -730,
      -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
      -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
-     -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
+     -730, -730,  887, -730, -730, -730, -730, -730, -730, -730,
      -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
      -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
      -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
@@ -13027,7 +13027,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -731, -731, -731, -731, -731, -731, -731, -731, -731,
      -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
      -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
-     -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
+     -731, -731,  888, -731, -731, -731, -731, -731, -731, -731,
      -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
      -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
      -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
@@ -13044,14 +13044,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -732, -732, -732, -732, -732, -732, -732, -732, -732,
      -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
      -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
-     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
+     -732, -732,  889, -732, -732, -732, -732, -732, -732, -732,
+
+     -732, -732, -732, -732, -732, -732, -732, -732,  890,  890,
+      890,  890,  890,  890,  890,  890,  890,  890, -732, -732,
+     -732, -732, -732, -732, -732,  889,  889,  889,  889,  889,
+      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
+      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
+      889, -732, -732, -732, -732, -732, -732, -732, -732, -732,
      -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
      -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
      -732, -732, -732, -732, -732, -732, -732, -732
@@ -13062,7 +13062,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
      -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
-     -733, -733,  771, -733, -733, -733, -733, -733, -733, -733,
+     -733, -733,  891, -733, -733, -733, -733, -733, -733, -733,
      -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
      -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
      -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
@@ -13079,14 +13079,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -734, -734, -734, -734, -734, -734, -734, -734, -734,
      -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
      -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734,  772, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
-     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734,  892, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734, -734, -734, -734, -734, -734, -734,  893,  893,
+      893,  893,  893,  893,  893,  893,  893,  893, -734, -734,
+     -734, -734, -734, -734, -734,  892,  892,  892,  892,  892,
+      892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
+
+      892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
+      892, -734, -734, -734, -734, -734, -734, -734, -734, -734,
      -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
      -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
      -734, -734, -734, -734, -734, -734, -734, -734
@@ -13096,14 +13096,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -735, -735, -735, -735, -735, -735, -735, -735, -735,
      -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
      -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-
-     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
-     -735, -735, -735, -735, -735, -735, -735, -735,  773,  774,
-      775, -735, -735, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735,  894, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735, -735, -735, -735, -735, -735, -735,  895,  895,
+
+      895,  895,  895,  895,  895,  895,  895,  895, -735, -735,
+     -735, -735, -735, -735, -735,  894,  894,  894,  894,  894,
+      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
+      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
+      894, -735, -735, -735, -735, -735, -735, -735, -735, -735,
      -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
      -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
      -735, -735, -735, -735, -735, -735, -735, -735
@@ -13115,12 +13115,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
+     -736, -736, -736, -736, -736, -736, -736, -736,  896,  896,
+      896,  896,  896,  896,  896,  896,  896,  896, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
-     -736, -736, -736,  776, -736, -736, -736, -736, -736, -736,
-     -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
      -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
 
@@ -13132,8 +13132,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
-     -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
-     -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
+     -737, -737, -737, -737, -737, -737, -737, -737,  897,  897,
+      897,  897,  897,  897,  897,  897,  897,  897, -737, -737,
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
      -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
@@ -13149,12 +13149,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
-     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
-     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+     -738, -738, -738, -738, -738, -738, -738, -738,  898,  898,
+      898,  898,  898,  898,  898,  898,  898,  898, -738, -738,
 
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
-     -738,  777, -738, -738, -738, -738, -738, -738, -738, -738,
+     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
      -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
@@ -13166,13 +13166,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
      -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
 
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
-     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739,  899, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739, -739, -739, -739, -739, -739,  900,  900,
+      900,  900,  900,  900,  900,  900,  900,  900, -739, -739,
+     -739, -739, -739, -739, -739,  899,  899,  899,  899,  899,
+      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
+      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
+      899, -739, -739, -739, -739, -739, -739, -739, -739, -739,
      -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
      -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
      -739, -739, -739, -739, -739, -739, -739, -739
@@ -13184,8 +13184,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
-     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
-     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
+     -740, -740, -740, -740, -740, -740, -740, -740,  901,  901,
+      901,  901,  901,  901,  901,  901,  901,  901, -740, -740,
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
      -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
@@ -13200,14 +13200,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -741, -741, -741, -741, -741, -741, -741, -741, -741,
      -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
      -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
-     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741,  902, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741, -741, -741, -741, -741, -741,  903,  903,
+      903,  903,  903,  903,  903,  903,  903,  903, -741, -741,
+     -741, -741, -741, -741, -741,  902,  902,  902,  902,  902,
+
+      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
+      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
+      902, -741, -741, -741, -741, -741, -741, -741, -741, -741,
      -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
      -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
      -741, -741, -741, -741, -741, -741, -741, -741
@@ -13217,14 +13217,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -742, -742, -742, -742, -742, -742, -742, -742, -742,
      -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
      -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
-     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742,  902, -742, -742, -742, -742, -742, -742, -742,
+
+     -742, -742, -742, -742, -742, -742, -742, -742,  904,  904,
+      904,  904,  904,  904,  904,  904,  904,  904, -742, -742,
+     -742, -742, -742, -742, -742,  902,  902,  902,  902,  902,
+      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
+      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
+      902, -742, -742, -742, -742, -742, -742, -742, -742, -742,
      -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
      -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
      -742, -742, -742, -742, -742, -742, -742, -742
@@ -13235,7 +13235,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
      -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
-     -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743,  905, -743, -743, -743, -743, -743, -743, -743,
      -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
      -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
      -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
@@ -13252,14 +13252,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -744, -744, -744, -744, -744, -744, -744, -744, -744,
      -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
      -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744,  778, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
-     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
+     -744, -744,  906, -744, -744, -744, -744, -744, -744, -744,
+     -744, -744, -744, -744, -744, -744, -744, -744,  907,  907,
+      907,  907,  907,  907,  907,  907,  907,  907, -744, -744,
+     -744, -744, -744, -744, -744,  906,  906,  906,  906,  906,
+      906,  906,  906,  906,  906,  906,  906,  906,  906,  906,
+
+      906,  906,  906,  906,  906,  906,  906,  906,  906,  906,
+      906, -744, -744, -744, -744, -744, -744, -744, -744, -744,
      -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
      -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
      -744, -744, -744, -744, -744, -744, -744, -744
@@ -13269,14 +13269,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -745, -745, -745, -745, -745, -745, -745, -745, -745,
      -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
      -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
-     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
+     -745, -745,  908, -745, -745, -745, -745, -745, -745, -745,
+     -745, -745, -745, -745, -745, -745, -745, -745,  909,  909,
+
+      909,  909,  909,  909,  909,  909,  909,  909, -745, -745,
+     -745, -745, -745, -745, -745,  908,  908,  908,  908,  908,
+      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
+      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
+      908, -745, -745, -745, -745, -745, -745, -745, -745, -745,
      -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
      -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
      -745, -745, -745, -745, -745, -745, -745, -745
@@ -13287,13 +13287,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
 
      -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
-     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746,  908, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746, -746, -746, -746, -746,  910,  910,
+      910,  910,  910,  910,  910,  910,  910,  910, -746, -746,
+     -746, -746, -746, -746, -746,  908,  908,  908,  908,  908,
+      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
+      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
+      908, -746, -746, -746, -746, -746, -746, -746, -746, -746,
      -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
      -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
 
@@ -13304,7 +13304,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -747, -747, -747, -747, -747, -747, -747, -747, -747,
      -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
      -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
-     -747, -747,  779, -747, -747, -747, -747, -747, -747, -747,
+     -747, -747,  911, -747, -747, -747, -747, -747, -747, -747,
      -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
      -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
      -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
@@ -13321,14 +13321,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -748, -748, -748, -748, -748, -748, -748, -748, -748,
      -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
      -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748,  780, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
-     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748,  912, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748, -748, -748, -748, -748, -748,  913,  913,
+      913,  913,  913,  913,  913,  913,  913,  913, -748, -748,
+
+     -748, -748, -748, -748, -748,  912,  912,  912,  912,  912,
+      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
+      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
+      912, -748, -748, -748, -748, -748, -748, -748, -748, -748,
      -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
      -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
      -748, -748, -748, -748, -748, -748, -748, -748
@@ -13339,13 +13339,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
      -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
 
-     -749, -749,  781, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
-     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749,  912, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749, -749, -749, -749,  914,  914,
+      914,  914,  914,  914,  914,  914,  914,  914, -749, -749,
+     -749, -749, -749, -749, -749,  912,  912,  912,  912,  912,
+      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
+      912,  912,  912,  912,  912,  912,  912,  912,  912,  912,
+      912, -749, -749, -749, -749, -749, -749, -749, -749, -749,
      -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
      -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
      -749, -749, -749, -749, -749, -749, -749, -749
@@ -13356,13 +13356,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -750, -750, -750, -750, -750, -750, -750, -750, -750,
      -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
      -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
-     -750, -750,  782, -750, -750, -750, -750, -750, -750, -750,
-     -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
-     -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
-     -750, -750, -750, -750, -750,  782,  782,  782,  782,  782,
-      782,  782,  782,  782,  782,  782,  782,  782,  782,  782,
-      782,  782,  782,  782,  782,  782,  782,  782,  782,  782,
-      782, -750, -750, -750, -750, -750, -750, -750, -750, -750,
+     -750, -750,  915, -750, -750, -750, -750, -750, -750, -750,
+     -750, -750, -750, -750, -750, -750, -750, -750,  907,  907,
+      907,  907,  907,  907,  907,  907,  907,  907, -750, -750,
+     -750, -750, -750, -750, -750,  915,  915,  915,  915,  915,
+      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
+      915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
+      915, -750, -750, -750, -750, -750, -750, -750, -750, -750,
 
      -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
      -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
@@ -13373,14 +13373,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
-     -751, -751,  783, -751, -751, -751, -751, -751, -751, -751,
+     -751, -751,  916, -751, -751, -751, -751, -751, -751, -751,
+     -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
-     -751, -751, -751, -751, -751,  783,  783,  783,  783,  783,
 
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783,  783,  783,  783,  783,  783,  783,  783,  783,  783,
-      783, -751, -751, -751, -751, -751, -751, -751, -751, -751,
+     -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
+     -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
+     -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751, -751, -751,
      -751, -751, -751, -751, -751, -751, -751, -751
@@ -13390,7 +13390,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -752, -752, -752, -752, -752, -752, -752, -752, -752,
      -752, -752, -752, -752, -752, -752, -752, -752, -752, -752,
      -752, -752, -752, -752, -752, -752, -752, -752, -752, -752,
-     -752, -752,  784, -752, -752, -752, -752, -752, -752, -752,
+     -752, -752,  917, -752, -752, -752, -752, -752, -752, -752,
 
      -752, -752, -752, -752, -752, -752, -752, -752, -752, -752,
      -752, -752, -752, -752, -752, -752, -752, -752, -752, -752,
@@ -13408,13 +13408,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
      -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753,  785, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
-     -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
+     -753, -753,  918, -753, -753, -753, -753, -753, -753, -753,
+     -753, -753, -753, -753, -753, -753, -753, -753,  919,  919,
+      919,  919,  919,  919,  919,  919,  919,  919, -753, -753,
+     -753, -753, -753, -753, -753,  918,  918,  918,  918,  918,
+      918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
+      918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
+      918, -753, -753, -753, -753, -753, -753, -753, -753, -753,
      -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
 
      -753, -753, -753, -753, -753, -753, -753, -753, -753, -753,
@@ -13425,14 +13425,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
-     -754, -754,  786, -754, -754, -754, -754, -754, -754, -754,
+     -754, -754,  920, -754, -754, -754, -754, -754, -754, -754,
+     -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
+     -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
-     -754, -754, -754, -754, -754,  786,  786,  786,  786,  786,
-      786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
 
-      786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
-      786, -754, -754, -754, -754, -754, -754, -754, -754, -754,
+     -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
+     -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754, -754, -754,
      -754, -754, -754, -754, -754, -754, -754, -754
@@ -13442,14 +13442,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -755, -755, -755, -755, -755, -755, -755, -755, -755,
      -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
      -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
-     -755, -755,  787, -755, -755, -755, -755, -755, -755, -755,
-     -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
-
-     -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
-     -755, -755, -755, -755, -755,  787,  787,  787,  787,  787,
-      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
-      787,  787,  787,  787,  787,  787,  787,  787,  787,  787,
-      787, -755, -755, -755, -755, -755, -755, -755, -755, -755,
+     -755, -755,  921, -755, -755, -755, -755, -755, -755, -755,
+     -755, -755, -755, -755, -755, -755, -755, -755,  922,  922,
+
+      922,  922,  922,  922,  922,  922,  922,  922, -755, -755,
+     -755, -755, -755, -755, -755,  921,  921,  921,  921,  921,
+      921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
+      921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
+      921, -755, -755, -755, -755, -755, -755, -755, -755, -755,
      -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
      -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
      -755, -755, -755, -755, -755, -755, -755, -755
@@ -13460,13 +13460,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
 
      -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
-     -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
+     -756, -756,  921, -756, -756, -756, -756, -756, -756, -756,
+     -756, -756, -756, -756, -756, -756, -756, -756,  923,  923,
+      923,  923,  923,  923,  923,  923,  923,  923, -756, -756,
+     -756, -756, -756, -756, -756,  921,  921,  921,  921,  921,
+      921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
+      921,  921,  921,  921,  921,  921,  921,  921,  921,  921,
+      921, -756, -756, -756, -756, -756, -756, -756, -756, -756,
      -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
      -756, -756, -756, -756, -756, -756, -756, -756, -756, -756,
 
@@ -13477,14 +13477,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -757, -757, -757, -757, -757, -757, -757, -757, -757,
      -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
      -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757,  788, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
-
-     -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
+     -757, -757,  924, -757, -757, -757, -757, -757, -757, -757,
+     -757, -757, -757, -757, -757, -757, -757, -757,  907,  907,
+      907,  907,  907,  907,  907,  907,  907,  907, -757, -757,
+     -757, -757, -757, -757, -757,  924,  924,  924,  924,  924,
+      924,  924,  924,  924,  924,  924,  924,  924,  924,  924,
+      924,  924,  924,  924,  924,  924,  924,  924,  924,  924,
+
+      924, -757, -757, -757, -757, -757, -757, -757, -757, -757,
      -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
      -757, -757, -757, -757, -757, -757, -757, -757, -757, -757,
      -757, -757, -757, -757, -757, -757, -757, -757
@@ -13494,7 +13494,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -758, -758, -758, -758, -758, -758, -758, -758, -758,
      -758, -758, -758, -758, -758, -758, -758, -758, -758, -758,
      -758, -758, -758, -758, -758, -758, -758, -758, -758, -758,
-     -758, -758,  789, -758, -758, -758, -758, -758, -758, -758,
+     -758, -758,  925, -758, -758, -758, -758, -758, -758, -758,
      -758, -758, -758, -758, -758, -758, -758, -758, -758, -758,
      -758, -758, -758, -758, -758, -758, -758, -758, -758, -758,
 
@@ -13512,13 +13512,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
 
-     -759, -759,  790, -759, -759, -759, -759, -759, -759, -759,
+     -759, -759,  926, -759, -759, -759, -759, -759, -759, -759,
+     -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
+     -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
+     -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
+     -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
-     -759, -759, -759, -759, -759,  790,  790,  790,  790,  790,
-      790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
-      790,  790,  790,  790,  790,  790,  790,  790,  790,  790,
-      790, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759, -759, -759,
      -759, -759, -759, -759, -759, -759, -759, -759
@@ -13529,13 +13529,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -760, -760, -760, -760, -760, -760, -760, -760, -760,
      -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
      -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760,  791, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
-     -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
+     -760, -760,  927, -760, -760, -760, -760, -760, -760, -760,
+     -760, -760, -760, -760, -760, -760, -760, -760,  928,  928,
+      928,  928,  928,  928,  928,  928,  928,  928, -760, -760,
+     -760, -760, -760, -760, -760,  927,  927,  927,  927,  927,
+      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
+      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
+      927, -760, -760, -760, -760, -760, -760, -760, -760, -760,
 
      -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
      -760, -760, -760, -760, -760, -760, -760, -760, -760, -760,
@@ -13546,14 +13546,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -761, -761, -761, -761, -761, -761, -761, -761, -761,
      -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
      -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761,  792, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
-     -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
+     -761, -761,  927, -761, -761, -761, -761, -761, -761, -761,
+     -761, -761, -761, -761, -761, -761, -761, -761,  929,  929,
+      929,  929,  929,  929,  929,  929,  929,  929, -761, -761,
+     -761, -761, -761, -761, -761,  927,  927,  927,  927,  927,
+
+      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
+      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
+      927, -761, -761, -761, -761, -761, -761, -761, -761, -761,
      -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
      -761, -761, -761, -761, -761, -761, -761, -761, -761, -761,
      -761, -761, -761, -761, -761, -761, -761, -761
@@ -13563,14 +13563,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -762, -762, -762, -762, -762, -762, -762, -762, -762,
      -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
      -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
-     -762, -762,  793, -762, -762, -762, -762, -762, -762, -762,
-
-     -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
-     -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
-     -762, -762, -762, -762, -762,  793,  793,  793,  793,  793,
-      793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
-      793,  793,  793,  793,  793,  793,  793,  793,  793,  793,
-      793, -762, -762, -762, -762, -762, -762, -762, -762, -762,
+     -762, -762,  930, -762, -762, -762, -762, -762, -762, -762,
+
+     -762, -762, -762, -762, -762, -762, -762, -762,  919,  919,
+      919,  919,  919,  919,  919,  919,  919,  919, -762, -762,
+     -762, -762, -762, -762, -762,  930,  930,  930,  930,  930,
+      930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
+      930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
+      930, -762, -762, -762, -762, -762, -762, -762, -762, -762,
      -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
      -762, -762, -762, -762, -762, -762, -762, -762, -762, -762,
      -762, -762, -762, -762, -762, -762, -762, -762
@@ -13581,7 +13581,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
      -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
-     -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
+     -763, -763,  931, -763, -763, -763, -763, -763, -763, -763,
      -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
      -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
      -763, -763, -763, -763, -763, -763, -763, -763, -763, -763,
@@ -13599,8 +13599,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
      -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
      -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
-     -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
-     -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
+     -764, -764, -764, -764, -764, -764, -764, -764,  932,  932,
+      932,  932,  932,  932,  932,  932,  932,  932, -764, -764,
      -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
      -764, -764, -764, -764, -764, -764, -764, -764, -764, -764,
 
@@ -13615,14 +13615,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -765, -765, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
-     -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
+     -765, -765,  933, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
 
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
-     -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
-     -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
-     -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
-     -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
+     -765, -765, -765, -765, -765,  933,  933,  933,  933,  933,
+      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
+      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
+      933, -765, -765, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765, -765, -765,
      -765, -765, -765, -765, -765, -765, -765, -765
@@ -13633,13 +13633,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
 
      -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
-     -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
+     -766, -766,  933, -766, -766, -766, -766, -766, -766, -766,
+     -766, -766, -766, -766, -766, -766, -766, -766,  934,  934,
+      934,  934,  934,  934,  934,  934,  934,  934, -766, -766,
+     -766, -766, -766, -766, -766,  933,  933,  933,  933,  933,
+      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
+      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
+      933, -766, -766, -766, -766, -766, -766, -766, -766, -766,
      -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
      -766, -766, -766, -766, -766, -766, -766, -766, -766, -766,
 
@@ -13650,7 +13650,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -767, -767, -767, -767, -767, -767, -767, -767, -767,
      -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
      -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
-     -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
+     -767, -767,  935, -767, -767, -767, -767, -767, -767, -767,
      -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
      -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
      -767, -767, -767, -767, -767, -767, -767, -767, -767, -767,
@@ -13667,14 +13667,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -768, -768, -768, -768, -768, -768, -768, -768, -768,
      -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
      -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
-     -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
+     -768, -768,  936, -768, -768, -768, -768, -768, -768, -768,
+     -768, -768, -768, -768, -768, -768, -768, -768,  937,  937,
+      937,  937,  937,  937,  937,  937,  937,  937, -768, -768,
+
+     -768, -768, -768, -768, -768,  936,  936,  936,  936,  936,
+      936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
+      936,  936,  936,  936,  936,  936,  936,  936,  936,  936,
+      936, -768, -768, -768, -768, -768, -768, -768, -768, -768,
      -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
      -768, -768, -768, -768, -768, -768, -768, -768, -768, -768,
      -768, -768, -768, -768, -768, -768, -768, -768
@@ -13685,7 +13685,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
      -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
 
-     -769, -769,  794, -769, -769, -769, -769, -769, -769, -769,
+     -769, -769,  938, -769, -769, -769, -769, -769, -769, -769,
      -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
      -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
      -769, -769, -769, -769, -769, -769, -769, -769, -769, -769,
@@ -13702,7 +13702,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -770, -770, -770, -770, -770, -770, -770, -770, -770,
      -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
      -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
-     -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
+     -770, -770,  939, -770, -770, -770, -770, -770, -770, -770,
      -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
      -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
      -770, -770, -770, -770, -770, -770, -770, -770, -770, -770,
@@ -13719,14 +13719,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -771, -771, -771, -771, -771, -771, -771, -771, -771,
      -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
      -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
-     -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
+     -771, -771,  940, -771, -771, -771, -771, -771, -771, -771,
+     -771, -771, -771, -771, -771, -771, -771, -771,  941,  941,
+      941,  941,  941,  941,  941,  941,  941,  941, -771, -771,
+     -771, -771, -771, -771, -771,  940,  940,  940,  940,  940,
+
+      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
+      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
+      940, -771, -771, -771, -771, -771, -771, -771, -771, -771,
      -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
      -771, -771, -771, -771, -771, -771, -771, -771, -771, -771,
      -771, -771, -771, -771, -771, -771, -771, -771
@@ -13841,10 +13841,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
-     -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
-     -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
+     -778, -778, -778, -778, -778, -778, -778, -778,  942,  942,
+      942,  942,  942,  942,  942,  942,  942,  942, -778, -778,
 
-     -778,  795, -778, -778, -778, -778, -778, -778, -778, -778,
+     -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
      -778, -778, -778, -778, -778, -778, -778, -778, -778, -778,
@@ -13858,13 +13858,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
 
+     -779, -779,  943, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
-     -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
-     -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
-     -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
-     -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
-     -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
+     -779, -779, -779, -779, -779,  943,  943,  943,  943,  943,
+      943,  943,  943,  943,  943,  943,  943,  943,  943,  943,
+      943,  943,  943,  943,  943,  943,  943,  943,  943,  943,
+      943, -779, -779, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779, -779, -779,
      -779, -779, -779, -779, -779, -779, -779, -779
@@ -13875,13 +13875,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -780, -780, -780, -780, -780, -780, -780, -780, -780,
      -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
      -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
-     -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
+     -780, -780,  943, -780, -780, -780, -780, -780, -780, -780,
+     -780, -780, -780, -780, -780, -780, -780, -780,  944,  944,
+      944,  944,  944,  944,  944,  944,  944,  944, -780, -780,
+     -780, -780, -780, -780, -780,  943,  943,  943,  943,  943,
+      943,  943,  943,  943,  943,  943,  943,  943,  943,  943,
+      943,  943,  943,  943,  943,  943,  943,  943,  943,  943,
+      943, -780, -780, -780, -780, -780, -780, -780, -780, -780,
 
      -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
      -780, -780, -780, -780, -780, -780, -780, -780, -780, -780,
@@ -13892,7 +13892,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -781, -781, -781, -781, -781, -781, -781, -781, -781,
      -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
      -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
-     -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
+     -781, -781,  945, -781, -781, -781, -781, -781, -781, -781,
      -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
      -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
      -781, -781, -781, -781, -781, -781, -781, -781, -781, -781,
@@ -13909,14 +13909,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -782, -782, -782, -782, -782, -782, -782, -782, -782,
      -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
      -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
-     -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
+     -782, -782,  946, -782, -782, -782, -782, -782, -782, -782,
+
+     -782, -782, -782, -782, -782, -782, -782, -782,  947,  947,
+      947,  947,  947,  947,  947,  947,  947,  947, -782, -782,
+     -782, -782, -782, -782, -782,  946,  946,  946,  946,  946,
+      946,  946,  946,  946,  946,  946,  946,  946,  946,  946,
+      946,  946,  946,  946,  946,  946,  946,  946,  946,  946,
+      946, -782, -782, -782, -782, -782, -782, -782, -782, -782,
      -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
      -782, -782, -782, -782, -782, -782, -782, -782, -782, -782,
      -782, -782, -782, -782, -782, -782, -782, -782
@@ -13927,7 +13927,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
      -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
-     -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
+     -783, -783,  948, -783, -783, -783, -783, -783, -783, -783,
      -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
      -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
      -783, -783, -783, -783, -783, -783, -783, -783, -783, -783,
@@ -13944,10 +13944,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -784, -784, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
+     -784, -784,  949, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
-     -784,  796, -784, -784, -784, -784, -784, -784, -784, -784,
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
 
      -784, -784, -784, -784, -784, -784, -784, -784, -784, -784,
@@ -13961,14 +13961,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -785, -785, -785, -785, -785, -785, -785, -785, -785,
      -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
      -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785,  797, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
-     -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
+     -785, -785,  950, -785, -785, -785, -785, -785, -785, -785,
+     -785, -785, -785, -785, -785, -785, -785, -785,  951,  951,
+
+      951,  951,  951,  951,  951,  951,  951,  951, -785, -785,
+     -785, -785, -785, -785, -785,  950,  950,  950,  950,  950,
+      950,  950,  950,  950,  950,  950,  950,  950,  950,  950,
+      950,  950,  950,  950,  950,  950,  950,  950,  950,  950,
+      950, -785, -785, -785, -785, -785, -785, -785, -785, -785,
      -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
      -785, -785, -785, -785, -785, -785, -785, -785, -785, -785,
      -785, -785, -785, -785, -785, -785, -785, -785
@@ -13982,7 +13982,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
-     -786,  798, -786, -786, -786, -786, -786, -786, -786, -786,
+     -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
      -786, -786, -786, -786, -786, -786, -786, -786, -786, -786,
@@ -13999,7 +13999,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
      -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
      -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
-     -787,  799, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
      -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
      -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
 
@@ -14017,7 +14017,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
      -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
 
-     -788,  800, -788, -788, -788, -788, -788, -788, -788, -788,
+     -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
      -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
      -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
      -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
@@ -14034,7 +14034,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
-     -789,  801, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
      -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
@@ -14051,7 +14051,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
-     -790,  802, -790, -790, -790, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
      -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
@@ -14068,7 +14068,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
      -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
      -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
-     -791,  803, -791, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
 
      -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
      -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
@@ -14079,20 +14079,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+       67,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      793,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  794,  792,  792,  792,  792,  792,  792,  792,
 
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792,  804, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
-     -792, -792, -792, -792, -792, -792, -792, -792
+      792,  792,  792,  792,  792,  792,  792,  795,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792
     },
 
     {
@@ -14103,7 +14103,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
-     -793,  805, -793, -793, -793, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
      -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
@@ -14114,37 +14114,37 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794,  806, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
+       67,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      793,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  794,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  795,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
 
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
-     -794, -794, -794, -794, -794, -794, -794, -794
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792
     },
 
     {
-       67, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795,  807, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+       67,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      793,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  794,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  795,  792,  792,
 
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
-     -795, -795, -795, -795, -795, -795, -795, -795
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792,  792,  792,
+      792,  792,  792,  792,  792,  792,  792,  792
     },
 
     {
@@ -14152,12 +14152,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
 
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
-     -796, -796,  808, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, -796, -796,  952, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
      -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
@@ -14169,10 +14169,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -797, -797, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
-     -797, -797,  809, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797, -797,  953, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
      -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
 
@@ -14186,7 +14186,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -798, -798, -798, -798, -798, -798, -798, -798, -798,
      -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
      -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
-     -798, -798,  810, -798, -798, -798, -798, -798, -798, -798,
+     -798, -798,  954, -798, -798, -798, -798, -798, -798, -798,
      -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
      -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
 
@@ -14204,9 +14204,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
      -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
 
-     -799, -799,  811, -799, -799, -799, -799, -799, -799, -799,
-     -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
-     -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799,  955, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, -799, -799, -799, -799,  956,  956,
+      956,  956,  956,  956,  956,  956,  956,  956, -799, -799,
      -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
      -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
      -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
@@ -14221,7 +14221,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -800, -800, -800, -800, -800, -800, -800, -800, -800,
      -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
      -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
-     -800, -800,  812, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800,  957, -800, -800, -800, -800, -800, -800, -800,
      -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
      -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
      -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
@@ -14238,7 +14238,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -801, -801, -801, -801, -801, -801, -801, -801, -801,
      -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
      -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
-     -801, -801,  813, -801, -801, -801, -801, -801, -801, -801,
+     -801, -801,  958, -801, -801, -801, -801, -801, -801, -801,
      -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
      -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
      -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
@@ -14255,13 +14255,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
-     -802, -802,  814, -802, -802, -802, -802, -802, -802, -802,
-
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+     -802, -802, -802, -802, -802, -802, -802, -802,  959, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
      -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
@@ -14273,10 +14273,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
-     -803, -803,  815, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803, -803, -803, -803, -803,  960,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
      -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
@@ -14290,10 +14290,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -804, -804, -804, -804, -804, -804, -804, -804, -804,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
-     -804, -804,  816, -804, -804, -804, -804, -804, -804, -804,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
+     -804, -804, -804, -804, -804, -804, -804, -804, -804,  961,
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
 
      -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
@@ -14307,12 +14307,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -805, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
-     -805, -805,  817, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
-
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+     -805,  962, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
      -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
@@ -14325,12 +14325,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
 
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
-     -806, -806,  818, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
+     -806, -806, -806,  963, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
      -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
@@ -14342,9 +14342,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -807, -807, -807, -807, -807, -807, -807, -807, -807,
      -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
      -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
-     -807, -807,  819, -807, -807, -807, -807, -807, -807, -807,
-     -807, -807, -807,  820, -807,  820, -807, -807,  821,  821,
-      821,  821,  821,  821,  821,  821,  821,  821, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807,  964, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
      -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
      -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
      -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
@@ -14359,13 +14359,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
-     -808, -808,  822, -808, -808, -808, -808, -808, -808, -808,
-     -808, -808, -808,  823, -808,  823, -808, -808,  824,  824,
-      824,  824,  824,  824,  824,  824,  824,  824, -808, -808,
-
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+
+     -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, -808, -808, -808, -808, -808, -808, -808,  965,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
      -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
@@ -14377,14 +14377,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
 
-     -809, -809,  825, -809, -809, -809, -809, -809, -809, -809,
-     -809, -809, -809,  826, -809,  826, -809, -809,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809,  966, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
      -809, -809, -809, -809, -809, -809, -809, -809
 
@@ -14394,12 +14394,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -810, -810, -810, -810, -810, -810, -810, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
-     -810, -810,  828, -810, -810, -810, -810, -810, -810, -810,
-     -810, -810, -810,  829, -810,  829, -810, -810,  830,  830,
-      830,  830,  830,  830,  830,  830,  830,  830, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, -810, -810, -810, -810, -810, -810, -810, -810,  967,
+     -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810,  968, -810, -810, -810, -810, -810, -810, -810, -810,
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
 
      -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
@@ -14411,14 +14411,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
-     -811, -811,  831, -811, -811, -811, -811, -811, -811, -811,
-     -811, -811, -811,  832, -811,  832, -811, -811,  833,  833,
-      833,  833,  833,  833,  833,  833,  833,  833, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
-
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811,  969, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
      -811, -811, -811, -811, -811, -811, -811, -811
@@ -14428,13 +14428,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
-     -812, -812,  834, -812, -812, -812, -812, -812, -812,  835,
-
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812,  970, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
      -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
@@ -14446,12 +14446,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
-     -813, -813,  836, -813, -813, -813, -813, -813, -813,  837,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, -813,  971, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
      -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
 
@@ -14463,10 +14463,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -814, -814, -814, -814, -814, -814, -814, -814, -814,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
-     -814, -814,  838, -814, -814, -814, -814, -814, -814,  839,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
+     -814, -814, -814, -814, -814, -814, -814,  972, -814, -814,
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
 
      -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
@@ -14480,13 +14480,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
-     -815, -815,  840, -815, -815, -815, -815, -815, -815,  841,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
-
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+     -815, -815, -815,  973, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
      -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
@@ -14498,11 +14498,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
 
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
-     -816, -816,  842, -816, -816, -816, -816, -816, -816,  843,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, -816, -816, -816,  974, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
      -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
@@ -14515,12 +14515,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
-     -817, -817,  844, -817, -817, -817, -817, -817, -817,  845,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
+     -817, -817, -817,  975, -817, -817, -817, -817, -817, -817,
 
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
      -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
@@ -14532,14 +14532,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
-     -818, -818,  846, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818,  976, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
 
-     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
-     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
-     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
-     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818,  976,  976,  976,  976,  976,
+      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
+      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
+      976, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
      -818, -818, -818, -818, -818, -818, -818, -818
@@ -14550,9 +14550,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
      -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
 
-     -819, -819,  819, -819, -819, -819, -819, -819, -819, -819,
-     -819, -819, -819,  820, -819,  820, -819, -819,  821,  821,
-      821,  821,  821,  821,  821,  821,  821,  821, -819, -819,
+     -819, -819,  977, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
      -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
      -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
      -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
@@ -14567,13 +14567,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -820, -820, -820, -820, -820, -820, -820, -820, -820,
      -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
      -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820,  821,  821,
-      821,  821,  821,  821,  821,  821,  821,  821, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
-     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820,  978, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, -820, -820, -820, -820, -820,  979,  979,
+      979,  979,  979,  979,  979,  979,  979,  979, -820, -820,
+     -820, -820, -820, -820, -820,  978,  978,  978,  978,  978,
+      978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
+      978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
+      978, -820, -820, -820, -820, -820, -820, -820, -820, -820,
 
      -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
      -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
@@ -14585,9 +14585,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
-     -821, -821, -821, -821, -821, -821, -821, -821,  821,  821,
-      821,  821,  821,  821,  821,  821,  821,  821, -821, -821,
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, -821, -821,  980,
 
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
      -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
@@ -14601,10 +14601,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -822, -822, -822, -822, -822, -822, -822, -822, -822,
      -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
      -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
-     -822, -822,  822, -822, -822, -822, -822, -822, -822, -822,
+     -822, -822,  981, -822, -822, -822, -822, -822, -822, -822,
 
-     -822, -822, -822,  823, -822,  823, -822, -822,  824,  824,
-      824,  824,  824,  824,  824,  824,  824,  824, -822, -822,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
      -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
      -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
      -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
@@ -14619,13 +14619,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
      -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823,  824,  824,
-      824,  824,  824,  824,  824,  824,  824,  824, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
-     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823,  982, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823,  983,  983,
+      983,  983,  983,  983,  983,  983,  983,  983, -823, -823,
+     -823, -823, -823, -823, -823,  982,  982,  982,  982,  982,
+      982,  982,  982,  982,  982,  982,  982,  982,  982,  982,
+      982,  982,  982,  982,  982,  982,  982,  982,  982,  982,
+      982, -823, -823, -823, -823, -823, -823, -823, -823, -823,
      -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
 
      -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
@@ -14637,13 +14637,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
-     -824, -824, -824, -824, -824, -824, -824, -824,  824,  824,
-      824,  824,  824,  824,  824,  824,  824,  824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
-
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
+
+     -824, -824, -824,  984, -824, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
      -824, -824, -824, -824, -824, -824, -824, -824
@@ -14653,11 +14653,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -825, -825, -825, -825, -825, -825, -825, -825, -825,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
-     -825, -825,  825, -825, -825, -825, -825, -825, -825, -825,
-     -825, -825, -825,  826, -825,  826, -825, -825,  827,  827,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
 
-      827,  827,  827,  827,  827,  827,  827,  827, -825, -825,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825,  985,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
      -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
@@ -14671,9 +14671,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
 
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826,  986, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
-     -826, -826, -826, -826, -826, -826, -826, -826,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827, -826, -826,
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
      -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
@@ -14688,14 +14688,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -827, -827, -827, -827, -827, -827, -827, -827, -827,
      -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
      -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
-     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
-     -827, -827, -827, -827, -827, -827, -827, -827,  827,  827,
-      827,  827,  827,  827,  827,  827,  827,  827, -827, -827,
-     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
-     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
-     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
-
-     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
+     -827, -827,  987, -827, -827, -827, -827, -827, -827, -827,
+     -827, -827, -827, -827, -827, -827, -827, -827,  988,  988,
+      988,  988,  988,  988,  988,  988,  988,  988, -827, -827,
+     -827, -827, -827, -827, -827,  987,  987,  987,  987,  987,
+      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
+      987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
+
+      987, -827, -827, -827, -827, -827, -827, -827, -827, -827,
      -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
      -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
      -827, -827, -827, -827, -827, -827, -827, -827
@@ -14705,9 +14705,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -828, -828, -828, -828, -828, -828, -828, -828, -828,
      -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
      -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
-     -828, -828,  828, -828, -828, -828, -828, -828, -828, -828,
-     -828, -828, -828,  829, -828,  829, -828, -828,  830,  830,
-      830,  830,  830,  830,  830,  830,  830,  830, -828, -828,
+     -828, -828,  989, -828, -828, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
 
      -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
      -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
@@ -14723,13 +14723,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
      -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
 
-     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
-     -829, -829, -829, -829, -829, -829, -829, -829,  830,  830,
-      830,  830,  830,  830,  830,  830,  830,  830, -829, -829,
-     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
-     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
-     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
-     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829,  990, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829, -829, -829, -829,  991,  991,
+      991,  991,  991,  991,  991,  991,  991,  991, -829, -829,
+     -829, -829, -829, -829, -829,  990,  990,  990,  990,  990,
+      990,  990,  990,  990,  990,  990,  990,  990,  990,  990,
+      990,  990,  990,  990,  990,  990,  990,  990,  990,  990,
+      990, -829, -829, -829, -829, -829, -829, -829, -829, -829,
      -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
      -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
      -829, -829, -829, -829, -829, -829, -829, -829
@@ -14741,10 +14741,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
-     -830, -830, -830, -830, -830, -830, -830, -830,  830,  830,
-      830,  830,  830,  830,  830,  830,  830,  830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, -830, -830, -830, -830, -830, -830, -830,  992,
+     -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
      -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
 
@@ -14757,9 +14757,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -831, -831, -831, -831, -831, -831, -831, -831, -831,
      -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
      -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
-     -831, -831,  831, -831, -831, -831, -831, -831, -831, -831,
-     -831, -831, -831,  832, -831,  832, -831, -831,  833,  833,
-      833,  833,  833,  833,  833,  833,  833,  833, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
      -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
 
      -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
@@ -14776,8 +14776,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
      -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
 
-     -832, -832, -832, -832, -832, -832, -832, -832,  833,  833,
-      833,  833,  833,  833,  833,  833,  833,  833, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
      -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
      -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
      -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
@@ -14793,8 +14793,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
-     -833, -833, -833, -833, -833, -833, -833, -833,  833,  833,
-      833,  833,  833,  833,  833,  833,  833,  833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
      -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
@@ -14809,7 +14809,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -834, -834, -834, -834, -834, -834, -834, -834, -834,
      -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
      -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
-     -834, -834,  834, -834, -834, -834, -834, -834, -834,  835,
+     -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
      -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
      -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
      -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
@@ -14823,20 +14823,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  848,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
+       67, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
 
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835
     },
 
     {
@@ -14844,7 +14844,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
 
      -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
-     -836, -836,  836, -836, -836, -836, -836, -836, -836,  837,
+     -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
      -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
      -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
      -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
@@ -14858,27 +14858,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  850,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
+       67, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
 
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837
     },
 
     {
        67, -838, -838, -838, -838, -838, -838, -838, -838, -838,
      -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
      -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
-     -838, -838,  838, -838, -838, -838, -838, -838, -838,  839,
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
      -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
      -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
 
@@ -14892,20 +14892,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+       67, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
 
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  852,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839
 
     },
 
@@ -14913,7 +14913,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -840, -840, -840, -840, -840, -840, -840, -840, -840,
      -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
      -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
-     -840, -840,  840, -840, -840, -840, -840, -840, -840,  841,
+     -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
      -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
      -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
      -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
@@ -14927,27 +14927,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  854,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+       67, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
 
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841
     },
 
     {
        67, -842, -842, -842, -842, -842, -842, -842, -842, -842,
      -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
      -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
-     -842, -842,  842, -842, -842, -842, -842, -842, -842,  843,
+     -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
 
      -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
      -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
@@ -14961,28 +14961,28 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+       67, -843, -843, -843, -843, -843, -843, -843, -843, -843,
 
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  856,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
 
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843
     },
 
     {
        67, -844, -844, -844, -844, -844, -844, -844, -844, -844,
      -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
      -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
-     -844, -844,  844, -844, -844, -844, -844, -844, -844,  845,
+     -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
      -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
      -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
      -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
@@ -14996,20 +14996,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  858,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+       67, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
 
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845
     },
 
     {
@@ -15017,7 +15017,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
 
      -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
-     -846, -846,  859, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
      -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
      -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
      -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
@@ -15031,27 +15031,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  848,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
+       67, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
 
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  847
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847
     },
 
     {
        67, -848, -848, -848, -848, -848, -848, -848, -848, -848,
      -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
      -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
-     -848, -848, -848, -848, -848, -848, -848, -848, -848,  847,
+     -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
      -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
      -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
 
@@ -15065,20 +15065,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
+       67, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
 
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  850,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849,  849,  849,
-      849,  849,  849,  849,  849,  849,  849,  849
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849
 
     },
 
@@ -15086,7 +15086,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -850, -850, -850, -850, -850, -850, -850, -850, -850,
      -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
      -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
-     -850, -850, -850, -850, -850, -850, -850, -850, -850,  849,
+     -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
      -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
      -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
      -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
@@ -15100,27 +15100,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  852,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
+       67, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
 
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  851,  851,  851,  851
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851
     },
 
     {
        67, -852, -852, -852, -852, -852, -852, -852, -852, -852,
      -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
      -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
-     -852, -852, -852, -852, -852, -852, -852, -852, -852,  851,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
 
      -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
      -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
@@ -15134,28 +15134,28 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+       67, -853, -853, -853, -853, -853, -853, -853, -853, -853,
 
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  854,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
 
-      853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
-      853,  853,  853,  853,  853,  853,  853,  853
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853
     },
 
     {
        67, -854, -854, -854, -854, -854, -854, -854, -854, -854,
      -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
      -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
-     -854, -854, -854, -854, -854, -854, -854, -854, -854,  853,
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
      -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
      -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
      -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
@@ -15169,20 +15169,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  856,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+       67, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
 
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  855,  855
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855
     },
 
     {
@@ -15190,7 +15190,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
 
      -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
-     -856, -856, -856, -856, -856, -856, -856, -856, -856,  855,
+     -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
      -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
      -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
      -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
@@ -15204,27 +15204,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       67,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  858,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+       67, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
 
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857
     },
 
     {
        67, -858, -858, -858, -858, -858, -858, -858, -858, -858,
      -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
      -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
-     -858, -858, -858, -858, -858, -858, -858, -858, -858,  857,
+     -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
      -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
      -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
 
@@ -15242,7 +15242,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
      -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
 
-     -859, -859,  860, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
      -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
      -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
      -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
@@ -15259,7 +15259,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -860, -860, -860, -860, -860, -860, -860, -860, -860,
      -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
      -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
-     -860, -860,  861, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
      -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
      -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
      -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
@@ -15276,7 +15276,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -861, -861, -861, -861, -861, -861, -861, -861, -861,
      -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
      -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
-     -861, -861,  862, -861, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
      -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
      -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
      -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
@@ -15293,7 +15293,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -862, -862, -862, -862, -862, -862, -862, -862, -862,
      -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
      -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
-     -862, -862,  863, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
 
      -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
      -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
@@ -15311,7 +15311,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
      -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
-     -863, -863,  864, -863, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
      -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
      -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
      -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
@@ -15328,7 +15328,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -864, -864, -864, -864, -864, -864, -864, -864, -864,
      -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
      -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
-     -864, -864,  865, -864, -864, -864, -864, -864, -864, -864,
+     -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
      -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
      -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
      -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
@@ -15345,7 +15345,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -865, -865, -865, -865, -865, -865, -865, -865, -865,
      -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
      -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
-     -865, -865,  866, -865, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
      -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
 
      -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
@@ -15363,7 +15363,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
 
      -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
-     -866, -866,  867, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
      -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
      -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
      -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
@@ -15380,7 +15380,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -867, -867, -867, -867, -867, -867, -867, -867, -867,
      -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
      -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
-     -867, -867,  868, -867, -867, -867, -867, -867, -867, -867,
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
      -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
      -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
      -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
@@ -15397,7 +15397,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -868, -868, -868, -868, -868, -868, -868, -868, -868,
      -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
      -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
-     -868, -868,  869, -868, -868, -868, -868, -868, -868, -868,
+     -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
      -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
      -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
 
@@ -15415,7 +15415,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
      -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
 
-     -869, -869,  870, -869, -869, -869, -869, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
      -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
      -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
      -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
@@ -15432,7 +15432,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -870, -870, -870, -870, -870, -870, -870, -870, -870,
      -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
      -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
-     -870, -870,  871, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
      -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
      -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
      -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
@@ -15449,7 +15449,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -871, -871, -871, -871, -871, -871, -871, -871, -871,
      -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
      -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
-     -871, -871,  872, -871, -871, -871, -871, -871, -871, -871,
+     -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
      -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
      -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
      -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
@@ -15466,7 +15466,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -872, -872, -872, -872, -872, -872, -872, -872, -872,
      -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
      -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
-     -872, -872,  873, -872, -872, -872, -872, -872, -872, -872,
+     -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
 
      -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
      -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
@@ -15484,7 +15484,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
      -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
-     -873, -873,  874, -873, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
      -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
      -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
      -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
@@ -15501,7 +15501,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -874, -874, -874, -874, -874, -874, -874, -874, -874,
      -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
      -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
-     -874, -874,  875, -874, -874, -874, -874, -874, -874, -874,
+     -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
      -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
      -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
      -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
@@ -15518,7 +15518,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -875, -875, -875, -875, -875, -875, -875, -875, -875,
      -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
      -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
-     -875, -875,  876, -875, -875, -875, -875, -875, -875, -875,
+     -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
      -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
 
      -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
@@ -15536,7 +15536,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
 
      -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
-     -876, -876,  877, -876, -876, -876, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
      -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
      -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
      -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
@@ -15553,7 +15553,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -877, -877, -877, -877, -877, -877, -877, -877, -877,
      -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
      -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
-     -877, -877,  878, -877, -877, -877, -877, -877, -877, -877,
+     -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
      -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
      -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
      -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
@@ -15570,7 +15570,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -878, -878, -878, -878, -878, -878, -878, -878, -878,
      -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
      -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
-     -878, -878,  879, -878, -878, -878, -878, -878, -878, -878,
+     -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
      -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
      -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
 
@@ -15588,7 +15588,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
      -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
 
-     -879, -879,  880, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
      -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
      -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
      -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
@@ -15605,7 +15605,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -880, -880, -880, -880, -880, -880, -880, -880, -880,
      -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
      -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
-     -880, -880,  881, -880, -880, -880, -880, -880, -880, -880,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
      -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
      -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
      -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
@@ -15622,7 +15622,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -881, -881, -881, -881, -881, -881, -881, -881, -881,
      -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
      -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
-     -881, -881,  882, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
      -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
      -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
      -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
@@ -15639,7 +15639,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -882, -882, -882, -882, -882, -882, -882, -882, -882,
      -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
      -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
-     -882, -882,  883, -882, -882, -882, -882, -882, -882, -882,
+     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
 
      -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
      -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
@@ -15657,7 +15657,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
      -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
-     -883, -883,  884, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
      -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
      -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
      -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
@@ -15674,7 +15674,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -884, -884, -884, -884, -884, -884, -884, -884, -884,
      -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
      -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
-     -884, -884,  885, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
      -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
      -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
      -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
@@ -15691,7 +15691,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -885, -885, -885, -885, -885, -885, -885, -885, -885,
      -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
      -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
-     -885, -885,  886, -885, -885, -885, -885, -885, -885, -885,
+     -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
      -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
 
      -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
@@ -15709,7 +15709,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
 
      -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
-     -886, -886,  887, -886, -886, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
      -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
      -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
      -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
@@ -15726,7 +15726,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -887, -887, -887, -887, -887, -887, -887, -887, -887,
      -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
      -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
-     -887, -887,  888, -887, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
      -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
      -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
      -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
@@ -15743,7 +15743,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -888, -888, -888, -888, -888, -888, -888, -888, -888,
      -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
      -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
-     -888, -888,  889, -888, -888, -888, -888, -888, -888, -888,
+     -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
      -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
      -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
 
@@ -15761,7 +15761,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
      -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
 
-     -889, -889,  890, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
      -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
      -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
      -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
@@ -15778,7 +15778,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -890, -890, -890, -890, -890, -890, -890, -890, -890,
      -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
      -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
-     -890, -890,  891, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
      -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
      -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
      -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
@@ -15795,7 +15795,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -891, -891, -891, -891, -891, -891, -891, -891, -891,
      -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
      -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
-     -891, -891,  892, -891, -891, -891, -891, -891, -891, -891,
+     -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
      -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
      -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
      -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
@@ -15812,7 +15812,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -892, -892, -892, -892, -892, -892, -892, -892, -892,
      -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
      -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
-     -892, -892,  893, -892, -892, -892, -892, -892, -892, -892,
+     -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
 
      -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
      -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
@@ -15830,7 +15830,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
      -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
-     -893, -893,  894, -893, -893, -893, -893, -893, -893, -893,
+     -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
      -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
      -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
      -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
@@ -15847,7 +15847,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -894, -894, -894, -894, -894, -894, -894, -894, -894,
      -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
      -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
-     -894, -894,  895, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
      -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
      -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
      -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
@@ -15864,7 +15864,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -895, -895, -895, -895, -895, -895, -895, -895, -895,
      -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
      -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
-     -895, -895,  896, -895, -895, -895, -895, -895, -895, -895,
+     -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
      -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
 
      -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
@@ -15882,7 +15882,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
 
      -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
-     -896, -896,  897, -896, -896, -896, -896, -896, -896, -896,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
      -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
      -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
      -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
@@ -15899,7 +15899,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -897, -897, -897, -897, -897, -897, -897, -897, -897,
      -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
      -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
-     -897, -897,  898, -897, -897, -897, -897, -897, -897, -897,
+     -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
      -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
      -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
      -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
@@ -15916,7 +15916,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -898, -898, -898, -898, -898, -898, -898, -898, -898,
      -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
      -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
-     -898, -898,  899, -898, -898, -898, -898, -898, -898, -898,
+     -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
      -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
      -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
 
@@ -15934,7 +15934,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
      -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
 
-     -899, -899,  900, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
      -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
      -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
      -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
@@ -15951,7 +15951,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -900, -900, -900, -900, -900, -900, -900, -900, -900,
      -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
      -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
-     -900, -900,  901, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
      -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
      -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
      -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
@@ -15968,7 +15968,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -901, -901, -901, -901, -901, -901, -901, -901, -901,
      -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
      -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
-     -901, -901,  902, -901, -901, -901, -901, -901, -901, -901,
+     -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
      -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
      -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
      -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
@@ -15985,7 +15985,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -902, -902, -902, -902, -902, -902, -902, -902, -902,
      -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
      -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
-     -902, -902,  903, -902, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
 
      -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
      -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
@@ -16003,7 +16003,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
      -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
-     -903, -903,  904, -903, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
      -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
      -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
      -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
@@ -16020,7 +16020,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -904, -904, -904, -904, -904, -904, -904, -904, -904,
      -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
      -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
-     -904, -904,  905, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
      -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
      -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
      -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
@@ -16037,7 +16037,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -905, -905, -905, -905, -905, -905, -905, -905, -905,
      -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
      -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
-     -905, -905,  906, -905, -905, -905, -905, -905, -905, -905,
+     -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
      -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
 
      -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
@@ -16055,7 +16055,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
 
      -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
-     -906, -906,  907, -906, -906, -906, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
      -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
      -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
      -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
@@ -16072,7 +16072,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -907, -907, -907, -907, -907, -907, -907, -907, -907,
      -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
      -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
-     -907, -907,  908, -907, -907, -907, -907, -907, -907, -907,
+     -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
      -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
      -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
      -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
@@ -16089,7 +16089,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -908, -908, -908, -908, -908, -908, -908, -908, -908,
      -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
      -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
-     -908, -908,  909, -908, -908, -908, -908, -908, -908, -908,
+     -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
      -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
      -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
 
@@ -16107,7 +16107,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
      -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
 
-     -909, -909,  910, -909, -909, -909, -909, -909, -909, -909,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
      -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
      -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
      -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
@@ -16124,7 +16124,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -910, -910, -910, -910, -910, -910, -910, -910, -910,
      -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
      -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
-     -910, -910,  911, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
      -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
      -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
      -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
@@ -16141,7 +16141,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -911, -911, -911, -911, -911, -911, -911, -911, -911,
      -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
      -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
-     -911, -911,  912, -911, -911, -911, -911, -911, -911, -911,
+     -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
      -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
      -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
      -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
@@ -16158,7 +16158,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -912, -912, -912, -912, -912, -912, -912, -912, -912,
      -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
      -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
-     -912, -912,  913, -912, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
 
      -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
      -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
@@ -16176,7 +16176,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
      -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
-     -913, -913,  914, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
      -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
      -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
      -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
@@ -16193,7 +16193,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -914, -914, -914, -914, -914, -914, -914, -914, -914,
      -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
      -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
-     -914, -914,  915, -914, -914, -914, -914, -914, -914, -914,
+     -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
      -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
      -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
      -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
@@ -16210,7 +16210,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -915, -915, -915, -915, -915, -915, -915, -915, -915,
      -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
      -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
-     -915, -915,  916, -915, -915, -915, -915, -915, -915, -915,
+     -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
      -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
 
      -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
@@ -16228,7 +16228,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
 
      -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
-     -916, -916,  917, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
      -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
      -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
      -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
@@ -16245,7 +16245,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -917, -917, -917, -917, -917, -917, -917, -917, -917,
      -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
      -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
-     -917, -917,  918, -917, -917, -917, -917, -917, -917, -917,
+     -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
      -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
      -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
      -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
@@ -16262,7 +16262,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -918, -918, -918, -918, -918, -918, -918, -918, -918,
      -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
      -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
-     -918, -918,  919, -918, -918, -918, -918, -918, -918, -918,
+     -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
      -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
      -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
 
@@ -16280,7 +16280,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
      -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
 
-     -919, -919,  920, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
      -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
      -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
      -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
@@ -16297,7 +16297,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -920, -920, -920, -920, -920, -920, -920, -920, -920,
      -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
      -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
-     -920, -920,  921, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
      -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
      -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
      -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
@@ -16314,7 +16314,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -921, -921, -921, -921, -921, -921, -921, -921, -921,
      -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
      -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
-     -921, -921,  922, -921, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
      -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
      -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
      -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
@@ -16331,7 +16331,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -922, -922, -922, -922, -922, -922, -922, -922, -922,
      -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
      -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
-     -922, -922,  923, -922, -922, -922, -922, -922, -922, -922,
+     -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
 
      -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
      -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
@@ -16349,7 +16349,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
      -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
-     -923, -923,  924, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
      -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
      -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
      -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
@@ -16366,7 +16366,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -924, -924, -924, -924, -924, -924, -924, -924, -924,
      -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
      -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
-     -924, -924,  925, -924, -924, -924, -924, -924, -924, -924,
+     -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
      -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
      -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
      -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
@@ -16383,7 +16383,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        67, -925, -925, -925, -925, -925, -925, -925, -925, -925,
      -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
      -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
-     -925, -925,  926, -925, -925, -925, -925, -925, -925, -925,
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
      -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
 
      -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
@@ -16414,347 +16414,4359 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -926, -926, -926, -926, -926, -926, -926, -926
     },
 
-    } ;
+    {
+       67, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
 
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927
+    },
 
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up wcsbthtext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	wcsbthleng = (size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
+    {
+       67, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
 
-#define YY_NUM_RULES 283
-#define YY_END_OF_BUFFER 284
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[927] =
-    {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  278,  278,
-      280,  280,  281,  281,    0,    0,  284,  283,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  283,  148,  148,  140,  140,  149,  149,
-      141,  141,  161,  161,  161,  283,  182,  182,  171,  171,
-
-      187,  187,  198,  198,  199,  199,  230,  230,  265,  265,
-      243,  243,  266,  266,  244,  244,  268,  268,  201,  202,
-      200,  209,  209,  210,  210,  218,  218,  219,  219,  270,
-      270,  272,  272,  271,  274,  274,  274,  273,  276,  276,
-      279,  278,  277,  280,  281,  283,  282,    0,    0,    0,
-       64,   58,   21,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   17,    0,   63,
-       57,    0,    0,    0,    0,    0,    0,    0,   23,    0,
-       19,   66,   60,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928
+    },
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  269,  271,
-        0,  273,  273,  273,  273,    0,    0,  275,  278,  277,
-      277,  280,  281,    0,  282,    0,    0,    0,    0,    0,
-        0,    0,    0,   65,   59,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   24,    0,    0,    0,    0,    0,    0,
+    {
+       67, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
 
-       20,   67,   61,    0,    0,    0,    0,    0,    0,    0,
-        0,  127,  128,  129,    0,    0,    0,  130,  131,  132,
-      137,  136,    0,    0,    0,  133,  134,  135,  139,  138,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  183,  184,  186,  185,  188,  189,  190,
-      195,  194,  191,  192,  193,  197,  196,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  267,    0,    0,
-        0,  206,  207,  208,    0,    0,    0,  215,  216,  217,
-      273,    0,  273,   22,   18,   26,    0,   69,   74,    0,
-
-       13,   44,   79,   39,   34,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   84,    0,    0,    0,   91,
-       51,   49,    0,   93,    0,    0,    0,  103,    0,   54,
-       56,  108,  106,  110,    0,   28,    0,   71,   76,    0,
-       15,   46,   81,   41,   36,    0,  122,  114,    0,    0,
-        0,    0,  112,    0,    0,  121,    0,    0,  124,  142,
-      143,  144,  145,  146,  147,    0,    0,    0,    0,    0,
-        0,  162,  163,  164,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  203,  204,  205,  211,  212,  213,  214,   27,   70,
-       75,   31,   14,   45,   80,   40,   35,   25,   68,   73,
-       30,   12,   43,   78,   38,   33,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   95,    0,   97,   99,  101,
-       62,    0,    0,    0,    0,    0,    0,    0,   29,   72,
-       77,   32,   16,   47,   82,   42,   37,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  170,  167,  169,  165,  166,  168,
+    },
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  236,  234,  235,  231,
-      232,  233,    0,    0,    0,    0,    0,    0,    0,    0,
-      242,  240,  241,  237,  238,  239,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  160,  159,  155,  158,  152,  153,  157,  150,  151,
-      154,  156,  181,  177,  180,  174,  176,  179,  172,  173,
-      175,  178,  229,  225,  228,  222,  223,  227,  220,  221,
-
-      224,  226,  260,  250,  259,  248,  249,  258,  245,  246,
-      247,  257,  264,  256,  263,  254,  255,  262,  251,  252,
-      253,  261,    0,    0,    0,    0,    0,    0,    0,   90,
-       50,   48,    0,    0,    0,    0,  102,    0,   52,   55,
-      105,  107,  109,    0,  113,  111,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  120,    0,    0,    0,    0,
-        0,    0,  123,   83,   85,   86,   87,   88,    0,   89,
-       92,   94,   96,   98,  100,  104,   53,    0,  115,  117,
-      118,  119,  116,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    {
+       67, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        1,    0,    0,    3,    0,    0,    4,    0,    0,    5,
-        0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    6,    0,    7,
-        0,    8,    0,    9,    0,   10,    0,   11,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930
+    },
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  125
-    } ;
+    {
+       67, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
 
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931
+    },
 
-static yyconst yy_state_type yy_NUL_trans[927] =
-    {   0,
-       68,   69,   68,   68,   85,   85,   87,   87,   89,   89,
-       91,   91,   93,   93,   68,   68,   97,   97,   99,   99,
-      101,  101,  103,  103,  105,  105,  107,  107,  109,  109,
-      111,  111,  113,  113,  115,  115,  117,  117,  119,  119,
-      120,  120,  122,  122,  124,  124,  126,  126,  128,  128,
-      130,  130,  132,  132,  135,  135,  139,  139,  141,  141,
-      144,  144,  145,  145,  146,  146,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    {
+       67, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  247,
-        0,    0,  251,  252,  253,  254,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932
+    },
+
+    {
+       67, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  247,    0,    0,  251,
-      251,  252,  253,  254,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933
+    },
+
+    {
+       67, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934
+    },
+
+    {
+       67, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935
+    },
+
+    {
+       67, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+
+     -936, -936, -936, -936, -936, -936, -936, -936
+    },
+
+    {
+       67, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937
+    },
+
+    {
+       67, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938
+    },
+
+    {
+       67, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  847,    0,  849,    0,  851,    0,
-      853,    0,  855,    0,  857,    0,  847,    0,  849,    0,
-      851,    0,  853,    0,  855,    0,  857,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939
+
+    },
+
+    {
+       67, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0
-    } ;
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940
+    },
+
+    {
+       67, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
 
-extern int wcsbth_flex_debug;
-int wcsbth_flex_debug = 0;
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941
+    },
+
+    {
+       67, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
 
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *wcsbthtext;
-#line 1 "wcsbth.l"
-/*============================================================================
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942
+    },
+
+    {
+       67, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
-  Copyright (C) 1995-2015, Mark Calabretta
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943
+    },
+
+    {
+       67, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
 
-  This file is part of WCSLIB.
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944
+    },
+
+    {
+       67, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
 
-  WCSLIB is free software: you can redistribute it and/or modify it under the
-  terms of the GNU Lesser General Public License as published by the Free
-  Software Foundation, either version 3 of the License, or (at your option)
-  any later version.
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945
+    },
+
+    {
+       67, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
 
-  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
-  more details.
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+
+     -946, -946, -946, -946, -946, -946, -946, -946
+    },
+
+    {
+       67, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
 
-  You should have received a copy of the GNU Lesser General Public License
-  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947
+    },
+
+    {
+       67, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
 
-  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948
+    },
+
+    {
+       67, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
 
-  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
-  http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsbth.c,v 4.25.1.2 2015/01/06 01:06:52 mcalabre Exp mcalabre $
-*=============================================================================
-*
-* wcsbth.l is a Flex description file containing the definition of a lexical
-* scanner for parsing the WCS keyrecords for one or more image arrays and/or
-* pixel lists in a FITS binary table header.  It can also handle primary image
-* and image extension headers.
-*
-* wcsbth.l requires Flex v2.5.4 or later.  Refer to wcshdr.h for a description
-* of the user interface and operating notes.
-*
-* Implementation notes
-* --------------------
-* wcsbth() may be invoked with an option that causes it to recognise the
-* image-header form of WCS keywords as defaults for each alternate coordinate
-* representation (up to 27).  By design, with this option enabled wcsbth() can
-* also handle primary image and image extension headers, effectively treating
-* them as a single-column binary table though with WCS keywords of a different
-* form.
-*
-* NAXIS is always 2 for binary tables, it refers to the two-dimensional nature
-* of the table.  Thus NAXIS does not count the number of image axes in either
-* image arrays or pixels lists and for the latter there is not even a formal
-* equivalent of WCSAXESa.  Hence NAXIS is always ignored and a first pass
-* through the header is required to determine the number of images, the number
-* of alternate coordinate representations for each image (up to 27), and the
-* number of coordinate axes in each representation; this pass also counts the
-* number of iPVn_ma and iPSn_ma or TVk_ma and TSk_ma keywords in each
-* representation.
-*
-* On completion of the first pass, the association between column number and
-* axis number is defined for each representation of a pixel list.  Memory is
-* allocated for an array of the required number of wcsprm structs and each of
-* these is initialized appropriately.  These structs are filled in the second
-* pass.
-*
-* It is permissible for a scalar table column to contain degenerate (single-
-* point) image arrays and simultaneously form one axis of a pixel list.
-*
-* The parser does not check for duplicated keywords, for most keywords it
-* accepts the last encountered.
-*
-* wcsbth() does not currently handle the Green Bank convention.
-*
-*===========================================================================*/
-/* Options. */
-/* Indices for parameterized keywords. */
-/* Alternate coordinate system identifier. */
-/* Keyvalue data types. */
-/* Exclusive start states. */
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949
+
+    },
+
+    {
+       67, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
 
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950
+    },
+
+    {
+       67, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
 
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951
+    },
+
+    {
+       67, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
 
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952,  993, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952
+    },
+
+    {
+       67, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953,  994, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
 
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953
+    },
+
+    {
+       67, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954,  995, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
 
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954
+    },
+
+    {
+       67, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955,  996, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
 
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955
+    },
+
+    {
+       67, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
 
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956,  997, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+
+     -956, -956, -956, -956, -956, -956, -956, -956
+    },
+
+    {
+       67, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957,  998, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
 
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957
+    },
+
+    {
+       67, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958,  999, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
 
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958
+    },
+
+    {
+       67, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
 
-#line 106 "wcsbth.l"
-#include <math.h>
-#include <setjmp.h>
-#include <stdio.h>
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959
+
+    },
+
+    {
+       67, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960
+    },
+
+    {
+       67, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961
+    },
+
+    {
+       67, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, 1000, -962, -962, -962, -962, -962, -962, -962,
+
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962
+    },
+
+    {
+       67, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, 1001, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963
+    },
+
+    {
+       67, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+
+     -964, -964, -964, -964, -964, -964, -964, -964, 1002, 1003,
+     1004, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964
+    },
+
+    {
+       67, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, 1005, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965
+    },
+
+    {
+       67, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+
+     -966, -966, -966, -966, -966, -966, -966, -966
+    },
+
+    {
+       67, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, 1006, -967, -967, -967, -967, -967, -967, -967, -967,
+
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967
+    },
+
+    {
+       67, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968
+    },
+
+    {
+       67, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969
+
+    },
+
+    {
+       67, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970
+    },
+
+    {
+       67, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971
+    },
+
+    {
+       67, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972
+    },
+
+    {
+       67, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, 1007, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973
+    },
+
+    {
+       67, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974
+    },
+
+    {
+       67, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975
+    },
+
+    {
+       67, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, 1008, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+
+     -976, -976, -976, -976, -976, -976, -976, -976
+    },
+
+    {
+       67, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, 1009, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977
+    },
+
+    {
+       67, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, 1010, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978
+    },
+
+    {
+       67, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+
+     -979, -979, 1011, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, 1011, 1011, 1011, 1011, 1011,
+     1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+     1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
+     1011, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979
+
+    },
+
+    {
+       67, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, 1012, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, 1012, 1012, 1012, 1012, 1012,
+     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+     1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+     1012, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980
+    },
+
+    {
+       67, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, 1013, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981
+    },
+
+    {
+       67, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, 1014, -982, -982, -982, -982, -982, -982, -982,
+
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982
+    },
+
+    {
+       67, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, 1015, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, 1015, 1015, 1015, 1015, 1015,
+     1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
+     1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
+     1015, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983
+    },
+
+    {
+       67, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, 1016, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, 1016, 1016, 1016, 1016, 1016,
+     1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+
+     1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+     1016, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984
+    },
+
+    {
+       67, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985
+    },
+
+    {
+       67, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, 1017, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+
+     -986, -986, -986, -986, -986, -986, -986, -986
+    },
+
+    {
+       67, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, 1018, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987
+    },
+
+    {
+       67, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, 1019, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+
+     -988, -988, -988, -988, -988, 1019, 1019, 1019, 1019, 1019,
+     1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
+     1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
+     1019, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988
+    },
+
+    {
+       67, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+
+     -989, -989, 1020, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989
+
+    },
+
+    {
+       67, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, 1021, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990
+    },
+
+    {
+       67, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, 1022, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, 1022, 1022, 1022, 1022, 1022,
+
+     1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+     1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+     1022, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991
+    },
+
+    {
+       67, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992
+    },
+
+    {
+       67, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993
+    },
+
+    {
+       67, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994
+    },
+
+    {
+       67, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995
+    },
+
+    {
+       67, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+
+     -996, -996, -996, -996, -996, -996, -996, -996
+    },
+
+    {
+       67, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997
+    },
+
+    {
+       67, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, 1023, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998
+    },
+
+    {
+       67, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999
+
+    },
+
+    {
+       67,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
+    -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000
+    },
+
+    {
+       67,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001,
+    -1001,-1001,-1001,-1001,-1001,-1001,-1001,-1001
+    },
+
+    {
+       67,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002,
+    -1002,-1002,-1002,-1002,-1002,-1002,-1002,-1002
+    },
+
+    {
+       67,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003
+    },
+
+    {
+       67,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004,
+    -1004,-1004,-1004,-1004,-1004,-1004,-1004,-1004
+    },
+
+    {
+       67,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005,
+    -1005,-1005,-1005,-1005,-1005,-1005,-1005,-1005
+    },
+
+    {
+       67,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006
+    },
+
+    {
+       67,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007, 1024,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007,
+    -1007,-1007,-1007,-1007,-1007,-1007,-1007,-1007
+    },
+
+    {
+       67,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008,
+    -1008,-1008,-1008,-1008,-1008,-1008,-1008,-1008
+    },
+
+    {
+       67,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009,
+    -1009,-1009,-1009,-1009,-1009,-1009,-1009,-1009
+
+    },
+
+    {
+       67,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010
+    },
+
+    {
+       67,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011,
+    -1011,-1011,-1011,-1011,-1011,-1011,-1011,-1011
+    },
+
+    {
+       67,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012,
+    -1012,-1012,-1012,-1012,-1012,-1012,-1012,-1012
+    },
+
+    {
+       67,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013, 1025,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013,
+    -1013,-1013,-1013,-1013,-1013,-1013,-1013,-1013
+    },
+
+    {
+       67,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014, 1026,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014,
+    -1014,-1014,-1014,-1014,-1014,-1014,-1014,-1014
+    },
+
+    {
+       67,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015, 1027,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015,
+    -1015,-1015,-1015,-1015,-1015,-1015,-1015,-1015
+    },
+
+    {
+       67,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016, 1028,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016,
+
+    -1016,-1016,-1016,-1016,-1016,-1016,-1016,-1016
+    },
+
+    {
+       67,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017, 1029,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017
+    },
+
+    {
+       67,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+
+    -1018, 1030,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018,
+    -1018,-1018,-1018,-1018,-1018,-1018,-1018,-1018
+    },
+
+    {
+       67,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019, 1031,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019,
+    -1019,-1019,-1019,-1019,-1019,-1019,-1019,-1019
+
+    },
+
+    {
+       67,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020, 1032,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020,
+    -1020,-1020,-1020,-1020,-1020,-1020,-1020,-1020
+    },
+
+    {
+       67,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021, 1033,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021,
+    -1021,-1021,-1021,-1021,-1021,-1021,-1021,-1021
+    },
+
+    {
+       67,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022, 1034,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022,
+    -1022,-1022,-1022,-1022,-1022,-1022,-1022,-1022
+    },
+
+    {
+       67,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023, 1035,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023,
+    -1023,-1023,-1023,-1023,-1023,-1023,-1023,-1023
+    },
+
+    {
+       67,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024, 1036,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024
+    },
+
+    {
+       67,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025, 1037,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025,
+    -1025,-1025,-1025,-1025,-1025,-1025,-1025,-1025
+    },
+
+    {
+       67,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026, 1038,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026
+    },
+
+    {
+       67,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027, 1039,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027,
+    -1027,-1027,-1027,-1027,-1027,-1027,-1027,-1027
+    },
+
+    {
+       67,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028, 1040,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028
+    },
+
+    {
+       67,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+
+    -1029,-1029, 1041,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029
+
+    },
+
+    {
+       67,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030, 1042,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030,
+    -1030,-1030,-1030,-1030,-1030,-1030,-1030,-1030
+    },
+
+    {
+       67,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031, 1043,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031,
+    -1031,-1031,-1031,-1031,-1031,-1031,-1031,-1031
+    },
+
+    {
+       67,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032, 1044,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032,
+    -1032,-1032,-1032,-1032,-1032,-1032,-1032,-1032
+    },
+
+    {
+       67,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033, 1045,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033,
+    -1033,-1033,-1033,-1033,-1033,-1033,-1033,-1033
+    },
+
+    {
+       67,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034, 1046,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034,
+    -1034,-1034,-1034,-1034,-1034,-1034,-1034,-1034
+    },
+
+    {
+       67,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035, 1047,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035,
+    -1035,-1035,-1035,-1035,-1035,-1035,-1035,-1035
+    },
+
+    {
+       67,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036, 1048,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036, 1049,-1036, 1049,-1036,-1036, 1050, 1050,
+     1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036,
+
+    -1036,-1036,-1036,-1036,-1036,-1036,-1036,-1036
+    },
+
+    {
+       67,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037, 1051,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037, 1052,-1037, 1052,-1037,-1037, 1053, 1053,
+     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037,
+    -1037,-1037,-1037,-1037,-1037,-1037,-1037,-1037
+    },
+
+    {
+       67,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038, 1054,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038, 1055,-1038, 1055,-1038,-1038, 1056, 1056,
+     1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056,-1038,-1038,
+
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038,
+    -1038,-1038,-1038,-1038,-1038,-1038,-1038,-1038
+    },
+
+    {
+       67,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+
+    -1039,-1039, 1057,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039, 1058,-1039, 1058,-1039,-1039, 1059, 1059,
+     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039,
+    -1039,-1039,-1039,-1039,-1039,-1039,-1039,-1039
+
+    },
+
+    {
+       67,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040, 1060,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040, 1061,-1040, 1061,-1040,-1040, 1062, 1062,
+     1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040
+    },
+
+    {
+       67,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041, 1063,-1041,-1041,-1041,-1041,-1041,-1041, 1064,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041
+    },
+
+    {
+       67,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042, 1065,-1042,-1042,-1042,-1042,-1042,-1042, 1066,
+
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042
+    },
+
+    {
+       67,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043, 1067,-1043,-1043,-1043,-1043,-1043,-1043, 1068,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043
+    },
+
+    {
+       67,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044, 1069,-1044,-1044,-1044,-1044,-1044,-1044, 1070,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044
+    },
+
+    {
+       67,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045, 1071,-1045,-1045,-1045,-1045,-1045,-1045, 1072,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045
+    },
+
+    {
+       67,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046, 1073,-1046,-1046,-1046,-1046,-1046,-1046, 1074,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046
+    },
+
+    {
+       67,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047, 1075,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047
+    },
+
+    {
+       67,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048, 1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048, 1049,-1048, 1049,-1048,-1048, 1050, 1050,
+     1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,-1048,-1048,
+
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048
+    },
+
+    {
+       67,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049, 1050, 1050,
+     1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049
+
+    },
+
+    {
+       67,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050, 1050, 1050,
+     1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050
+    },
+
+    {
+       67,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051, 1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051, 1052,-1051, 1052,-1051,-1051, 1053, 1053,
+     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051
+    },
+
+    {
+       67,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052, 1053, 1053,
+     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052
+    },
+
+    {
+       67,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053, 1053, 1053,
+     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053
+    },
+
+    {
+       67,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054, 1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054, 1055,-1054, 1055,-1054,-1054, 1056, 1056,
+     1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054
+    },
+
+    {
+       67,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055, 1056, 1056,
+
+     1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055
+    },
+
+    {
+       67,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056, 1056, 1056,
+     1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056
+    },
+
+    {
+       67,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057, 1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057, 1058,-1057, 1058,-1057,-1057, 1059, 1059,
+     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057
+    },
+
+    {
+       67,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058, 1059, 1059,
+     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,-1058,-1058,
+
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058
+    },
+
+    {
+       67,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059, 1059, 1059,
+     1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059
+
+    },
+
+    {
+       67,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060, 1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060, 1061,-1060, 1061,-1060,-1060, 1062, 1062,
+     1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060
+    },
+
+    {
+       67,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061, 1062, 1062,
+     1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061
+    },
+
+    {
+       67,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062, 1062, 1062,
+     1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062
+    },
+
+    {
+       67,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063, 1063,-1063,-1063,-1063,-1063,-1063,-1063, 1064,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063
+    },
+
+    {
+       67, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1077,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076
+    },
+
+    {
+       67,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065, 1065,-1065,-1065,-1065,-1065,-1065,-1065, 1066,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065
+    },
+
+    {
+       67, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1079,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078
+    },
+
+    {
+       67,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067, 1067,-1067,-1067,-1067,-1067,-1067,-1067, 1068,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067
+    },
+
+    {
+       67, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080
+    },
+
+    {
+       67,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+
+    -1069,-1069, 1069,-1069,-1069,-1069,-1069,-1069,-1069, 1070,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069
+
+    },
+
+    {
+       67, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082
+    },
+
+    {
+       67,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071, 1071,-1071,-1071,-1071,-1071,-1071,-1071, 1072,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071
+    },
+
+    {
+       67, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085,
+
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084
+    },
+
+    {
+       67,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073, 1073,-1073,-1073,-1073,-1073,-1073,-1073, 1074,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073
+    },
+
+    {
+       67, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1087,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086
+    },
+
+    {
+       67,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075, 1088,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075
+    },
+
+    {
+       67, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1077,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,
+
+     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076
+    },
+
+    {
+       67,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077, 1076,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077
+    },
+
+    {
+       67, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1079,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078
+    },
+
+    {
+       67,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079, 1078,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079
+
+    },
+
+    {
+       67, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080
+    },
+
+    {
+       67,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081, 1080,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081
+    },
+
+    {
+       67, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1083,
+
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
+     1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082
+    },
+
+    {
+       67,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083, 1082,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083
+    },
+
+    {
+       67, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+     1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084
+    },
+
+    {
+       67,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085, 1084,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085
+    },
+
+    {
+       67, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1087,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+
+     1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086
+    },
+
+    {
+       67,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087, 1086,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087
+    },
+
+    {
+       67,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088, 1089,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088
+    },
+
+    {
+       67,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+
+    -1089,-1089, 1090,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089
+
+    },
+
+    {
+       67,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090, 1091,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090
+    },
+
+    {
+       67,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091, 1092,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091
+    },
+
+    {
+       67,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092, 1093,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092
+    },
+
+    {
+       67,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093, 1094,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093
+    },
+
+    {
+       67,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094, 1095,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094
+    },
+
+    {
+       67,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095, 1096,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095
+    },
+
+    {
+       67,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096, 1097,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096
+    },
+
+    {
+       67,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097, 1098,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097
+    },
+
+    {
+       67,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098, 1099,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098
+    },
+
+    {
+       67,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+
+    -1099,-1099, 1100,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099
+
+    },
+
+    {
+       67,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100, 1101,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100
+    },
+
+    {
+       67,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101, 1102,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101
+    },
+
+    {
+       67,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102, 1103,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102
+    },
+
+    {
+       67,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103, 1104,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103
+    },
+
+    {
+       67,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104, 1105,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104
+    },
+
+    {
+       67,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105, 1106,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105
+    },
+
+    {
+       67,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106, 1107,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106
+    },
+
+    {
+       67,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107, 1108,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107
+    },
+
+    {
+       67,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108, 1109,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108
+    },
+
+    {
+       67,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+
+    -1109,-1109, 1110,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109
+
+    },
+
+    {
+       67,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110, 1111,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110
+    },
+
+    {
+       67,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111, 1112,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111
+    },
+
+    {
+       67,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112, 1113,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112
+    },
+
+    {
+       67,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113, 1114,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113
+    },
+
+    {
+       67,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114, 1115,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114
+    },
+
+    {
+       67,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115, 1116,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115
+    },
+
+    {
+       67,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116, 1117,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116
+    },
+
+    {
+       67,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117, 1118,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117
+    },
+
+    {
+       67,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118, 1119,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118
+    },
+
+    {
+       67,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+
+    -1119,-1119, 1120,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119
+
+    },
+
+    {
+       67,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120, 1121,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120
+    },
+
+    {
+       67,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121, 1122,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121
+    },
+
+    {
+       67,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122, 1123,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122
+    },
+
+    {
+       67,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123, 1124,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123
+    },
+
+    {
+       67,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124, 1125,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124
+    },
+
+    {
+       67,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125, 1126,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125
+    },
+
+    {
+       67,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126, 1127,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126
+    },
+
+    {
+       67,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127, 1128,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127
+    },
+
+    {
+       67,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128, 1129,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128
+    },
+
+    {
+       67,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+
+    -1129,-1129, 1130,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129
+
+    },
+
+    {
+       67,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130, 1131,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130
+    },
+
+    {
+       67,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131, 1132,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131
+    },
+
+    {
+       67,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132, 1133,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132
+    },
+
+    {
+       67,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133, 1134,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133
+    },
+
+    {
+       67,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134, 1135,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134
+    },
+
+    {
+       67,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135, 1136,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135
+    },
+
+    {
+       67,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136, 1137,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136
+    },
+
+    {
+       67,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137, 1138,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137
+    },
+
+    {
+       67,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138, 1139,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138
+    },
+
+    {
+       67,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+
+    -1139,-1139, 1140,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139
+
+    },
+
+    {
+       67,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140, 1141,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140
+    },
+
+    {
+       67,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141, 1142,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141
+    },
+
+    {
+       67,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142, 1143,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142
+    },
+
+    {
+       67,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143, 1144,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143
+    },
+
+    {
+       67,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144, 1145,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144
+    },
+
+    {
+       67,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145, 1146,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145
+    },
+
+    {
+       67,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146, 1147,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146
+    },
+
+    {
+       67,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147, 1148,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147
+    },
+
+    {
+       67,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148, 1149,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148
+    },
+
+    {
+       67,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+
+    -1149,-1149, 1150,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149
+
+    },
+
+    {
+       67,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150, 1151,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150
+    },
+
+    {
+       67,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151, 1152,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151
+    },
+
+    {
+       67,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152, 1153,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152
+    },
+
+    {
+       67,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153, 1154,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153
+    },
+
+    {
+       67,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154, 1155,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154
+    },
+
+    {
+       67,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up wcsbthtext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	wcsbthleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 361
+#define YY_END_OF_BUFFER 362
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[1156] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  362,  361,  126,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+      126,  126,  126,  134,  134,  134,  153,  153,  145,  145,
+      154,  154,  146,  146,  201,  201,  201,  361,  222,  222,
+
+      211,  211,  226,  226,  237,  237,  238,  238,  304,  304,
+      304,  339,  339,  317,  317,  340,  340,  318,  318,  344,
+      344,  240,  241,  239,  248,  248,  249,  249,  257,  257,
+      258,  258,  346,  346,  348,  348,  347,  350,  350,  350,
+      349,  352,  352,  361,  353,  361,  361,  361,  358,  361,
+      359,  361,  360,    0,    0,    0,   64,   58,   21,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   17,    0,   63,   57,    0,    0,    0,
+        0,    0,    0,    0,   23,    0,   19,   66,   60,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  345,  347,    0,  349,  349,  349,
+      349,    0,    0,  351,    0,  355,    0,    0,    0,  353,
+        0,    0,    0,  353,    0,    0,    0,  358,    0,  359,
+        0,  360,    0,    0,    0,    0,    0,    0,    0,    0,
+       65,   59,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       24,    0,    0,    0,    0,    0,    0,   20,   67,   61,
+        0,    0,    0,    0,    0,    0,    0,    0,  131,  132,
+      133,  130,  129,  127,  128,    0,    0,    0,  135,  136,
+      137,  142,  141,    0,    0,    0,  138,  139,  140,  144,
+      143,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  223,  224,  225,  227,  228,  229,  234,  233,
+      230,  231,  232,  236,  235,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  341,  342,  343,    0,    0,    0,  245,
+      246,  247,    0,    0,    0,  254,  255,  256,  349,    0,
+      349,    0,    0,  354,    0,    0,    0,  356,    0,    0,
+        0,  353,    0,    0,   22,   18,   26,    0,   69,   74,
+        0,   13,   44,   79,   39,   34,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   84,    0,    0,    0,
+       91,   51,   49,    0,   93,    0,    0,    0,  103,    0,
+       54,   56,  108,  106,  110,    0,   28,    0,   71,   76,
+
+        0,   15,   46,   81,   41,   36,    0,  122,  112,    0,
+        0,    0,    0,  114,    0,    0,  121,    0,    0,  124,
+      147,  148,  149,  150,  151,  152,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  202,  203,  204,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,  242,  243,  244,  250,  251,  252,  253,  357,
+        0,    0,    0,  354,    0,    0,    0,  353,    0,    0,
+       27,   70,   75,   31,   14,   45,   80,   40,   35,   25,
+       68,   73,   30,   12,   43,   78,   38,   33,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   95,    0,   97,
+       99,  101,   62,    0,    0,    0,    0,    0,    0,    0,
+       29,   72,   77,   32,   16,   47,   82,   42,   37,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  210,  207,  209,  205,  206,  208,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  310,  308,  309,  305,  306,  307,    0,    0,    0,
+        0,    0,    0,    0,    0,  316,  314,  315,  311,  312,
+      313,    0,  354,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      190,  192,  195,  199,  191,  194,  198,  193,  197,  196,
+      200,  186,  164,  183,  187,  175,  165,  161,  170,  181,
+      184,  188,  176,  173,  178,  166,  162,  171,  159,  168,
+      180,  182,  185,  189,  177,  174,  179,  157,  158,  167,
+      163,  172,  160,  169,  155,  156,  221,  217,  220,  214,
+      216,  219,  212,  213,  215,  218,  294,  296,  299,  303,
+      295,  298,  302,  297,  301,  300,  290,  268,  287,  291,
+
+      279,  265,  269,  274,  285,  288,  292,  277,  280,  282,
+      263,  266,  270,  275,  272,  284,  286,  289,  293,  261,
+      278,  281,  283,  262,  259,  264,  267,  271,  276,  273,
+      260,  334,  324,  333,  322,  323,  332,  319,  320,  321,
+      331,  338,  330,  337,  328,  329,  336,  325,  326,  327,
+      335,    0,    0,    0,    0,    0,    0,    0,   90,   50,
+       48,    0,    0,    0,    0,  102,    0,   53,   55,  105,
+      107,  109,    0,  111,  113,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  120,    0,    0,    0,    0,    0,
+        0,  123,   83,   85,   86,   87,   88,    0,   89,   92,
+
+       94,   96,   98,  100,  104,   52,    0,  115,  117,  118,
+      119,  116,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
+        0,    0,    3,    0,    0,    4,    0,    0,    5,    0,
+        0,    2,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    6,    0,    7,    0,
+        8,    0,    9,    0,   10,    0,   11,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  125
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+static yyconst yy_state_type yy_NUL_trans[1156] =
+    {   0,
+       68,   69,   84,   84,   87,   87,   89,   89,   91,   91,
+       93,   93,   95,   95,   68,   68,   99,   99,  101,  101,
+      103,  103,  105,  105,  107,  107,  109,  109,  112,  112,
+      114,  114,  116,  116,  118,  118,  120,  120,  122,  122,
+      123,  123,  125,  125,  127,  127,  129,  129,  131,  131,
+      133,  133,  135,  135,  138,  138,  142,  142,  144,  144,
+      148,  148,  150,  150,  152,  152,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  263,  265,    0,  269,  273,  277,    0,  279,
+        0,  281,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  263,    0,  265,    0,  442,  443,  447,    0,
+      451,  273,  273,    0,  273,  273,  277,    0,  279,    0,
+      281,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  442,  443,    0,  443,  443,  447,    0,  447,  613,
+      447,    0,  451,  617,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      442,  792,  613,    0,  613,  613,  617,    0,  617,  617,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  792,    0,  792,  792,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0, 1076,    0, 1078,    0, 1080,    0, 1082,
+        0, 1084,    0, 1086,    0, 1076,    0, 1078,    0, 1080,
+        0, 1082,    0, 1084,    0, 1086,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0
+    } ;
+
+extern int wcsbth_flex_debug;
+int wcsbth_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *wcsbthtext;
+#line 1 "wcsbth.l"
+/*============================================================================
+
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
+  Copyright (C) 1995-2015, Mark Calabretta
+
+  This file is part of WCSLIB.
+
+  WCSLIB is free software: you can redistribute it and/or modify it under the
+  terms of the GNU Lesser General Public License as published by the Free
+  Software Foundation, either version 3 of the License, or (at your option)
+  any later version.
+
+  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+  more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+
+  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+
+  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+  http://www.atnf.csiro.au/people/Mark.Calabretta
+  $Id: wcsbth.c,v 5.0 2015/04/05 09:18:14 mcalabre Exp $
+*=============================================================================
+*
+* wcsbth.l is a Flex description file containing the definition of a lexical
+* scanner for parsing the WCS keyrecords for one or more image arrays and/or
+* pixel lists in a FITS binary table header.  It can also handle primary image
+* and image extension headers.
+*
+* wcsbth.l requires Flex v2.5.4 or later.  Refer to wcshdr.h for a description
+* of the user interface and operating notes.
+*
+* Implementation notes
+* --------------------
+* wcsbth() may be invoked with an option that causes it to recognize the
+* image-header form of WCS keywords as defaults for each alternate coordinate
+* representation (up to 27).  By design, with this option enabled wcsbth() can
+* also handle primary image and image extension headers, effectively treating
+* them as a single-column binary table though with WCS keywords of a different
+* form.
+*
+* NAXIS is always 2 for binary tables, it refers to the two-dimensional nature
+* of the table.  Thus NAXIS does not count the number of image axes in either
+* image arrays or pixels lists and for the latter there is not even a formal
+* equivalent of WCSAXESa.  Hence NAXIS is always ignored and a first pass
+* through the header is required to determine the number of images, the number
+* of alternate coordinate representations for each image (up to 27), and the
+* number of coordinate axes in each representation; this pass also counts the
+* number of iPVn_ma and iPSn_ma or TVk_ma and TSk_ma keywords in each
+* representation.
+*
+* On completion of the first pass, the association between column number and
+* axis number is defined for each representation of a pixel list.  Memory is
+* allocated for an array of the required number of wcsprm structs and each of
+* these is initialized appropriately.  These structs are filled in the second
+* pass.
+*
+* It is permissible for a scalar table column to contain degenerate (single-
+* point) image arrays and simultaneously form one axis of a pixel list.
+*
+* The parser does not check for duplicated keywords, for most keywords it
+* accepts the last encountered.
+*
+* wcsbth() does not currently handle the Green Bank convention.
+*
+*===========================================================================*/
+/* Options. */
+/* Indices for parameterized keywords. */
+/* Alternate coordinate system identifier. */
+/* Keyvalue data types. */
+/* Inline comment syntax. */
+/* Exclusive start states. */
+
+
+
+
+
+
+
+
+
+
+#line 113 "wcsbth.l"
+#include <math.h>
+#include <setjmp.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -16802,9 +20814,9 @@ char *wcsbthtext;
 /* A convenience macro to get around incompatibilities between unput() and
    yyless(): put wcsbthtext followed by a blank back onto the input stream. */
 #define WCSBTH_PUTBACK \
-  sprintf(stmp, "%s ", wcsbthtext); \
-  itmp = strlen(stmp); \
-  while (itmp) unput(stmp[--itmp]);
+  sprintf(strtmp, "%s ", wcsbthtext); \
+  itmp = strlen(strtmp); \
+  while (itmp) unput(strtmp[--itmp]);
 
 /* These global variables are required by YY_INPUT. */
 char *wcsbth_hdr;
@@ -16837,12 +20849,12 @@ struct wcsprm *wcsbth_idx(struct wcsprm *wcs, struct wcsbth_alts *alts,
         int keytype, int n, char a);
 int wcsbth_colax(struct wcsprm *wcs, struct wcsbth_alts *alts, int k, char a);
 
-int wcsbth_epoch(void *wptr);
-int wcsbth_vsource(void *wptr);
+int wcsbth_epoch(double *wptr, double epoch);
+int wcsbth_vsource(double *wptr, double vsource);
 
 int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 
-#line 16846 "wcsbth.c"
+#line 20858 "wcsbth.c"
 
 #define INITIAL 0
 #define CCCCCia 1
@@ -17048,20 +21060,21 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 198 "wcsbth.l"
+#line 205 "wcsbth.l"
 
 	/* Keyword indices, as used in the WCS papers, e.g. iVn_ma, TPn_ka. */
 	char a;
 	int  i, j, k, m, n;
 	
-	char *cptr, *errmsg, errtxt[80], exclude[1000], *extkey, *hptr, ptype,
-	     stmp[16];
-	int  altlin, ialt, icol, incl, ipass, ipx, itmp, ix, jx, keytype,
-	     nsel, npass, status, valtype, voff;
+	char *cptr, *errmsg, errtxt[80], exclude[1000], gotone, *hptr, *keep,
+	     *keyname, *keyrec, ptype, strtmp[80];
+	int  altlin, ialt, icol, incl, inttmp, ipass, ipx, itmp, ix, jx,
+	     keytype, nother, nsel, npass, nvalid, status, valtype, voff;
+	double dbltmp;
 	void   *vptr, *wptr;
 	struct wcsbth_alts alts;
 	struct wcsprm *wcsp, wcstem;
-	int (*special)(void *);
+	int (*special)(double *, double);
 	int wcsbthlex_destroy(void);
 	
 	/* The data structures produced. */
@@ -17073,8 +21086,17 @@ YY_DECL
 	wcsbth_nkeyrec = nkeyrec;
 	
 	/* Our handle on the input stream. */
+	keyrec = header;
 	hptr = header;
+	keep = 0x0;
+	
+	/* For keeping tallies of keywords found. */
 	*nreject = 0;
+	nvalid = 0;
+	nother = 0;
+	
+	/* If strict, then also reject. */
+	if (relax & WCSHDR_strict) relax |= WCSHDR_reject;
 	
 	/* Keyword parameters. */
 	i = j = 0;
@@ -17101,8 +21123,8 @@ YY_DECL
 	vptr    = 0x0;
 	
 	/* For keywords that require special handling. */
-	altlin = 0;
-	ptype  = ' ';
+	altlin  = 0;
+	ptype   = ' ';
 	special = 0x0;
 	
 	/* Selection by column number. */
@@ -17143,7 +21165,7 @@ YY_DECL
 	BEGIN(INITIAL);
 
 
-#line 17147 "wcsbth.c"
+#line 21169 "wcsbth.c"
 
 	if ( !(yy_init) )
 		{
@@ -17217,14 +21239,14 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 292 "wcsbth.l"
+#line 309 "wcsbth.l"
 {
 	  if (ipass == 1) {
 	    if (alts.ncol == 0) {
 	      sscanf(wcsbthtext, "TFIELDS = %d", &(alts.ncol));
 	      BEGIN(FLUSH);
 	    } else {
-	      errmsg = "Duplicate or out-of-sequence TFIELDS keyword";
+	      errmsg = "duplicate or out-of-sequence TFIELDS keyword";
 	      BEGIN(ERROR);
 	    }
 	
@@ -17235,25 +21257,31 @@ YY_RULE_SETUP
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 307 "wcsbth.l"
+#line 324 "wcsbth.l"
 {
-	  keytype = IMGAXIS;
-	
-	  if (!(keytype & keysel)) {
+	  if (!(keysel & IMGAXIS)) {
 	    /* Ignore this key type. */
 	    BEGIN(DISCARD);
 	
 	  } else {
 	    if (relax & WCSHDR_ALLIMG) {
-	      if (ipass == 1) {
-	        sscanf(wcsbthtext, "WCSAXES%c= %d", &a, &i);
-	        wcsbth_pass1(IMGAXIS, i, 0, 0, 0, a, ' ', &alts);
-	      }
+	      sscanf(wcsbthtext, "WCSAXES%c= %d", &a, &i);
 	
-	      BEGIN(FLUSH);
+	      if (i < 0) {
+	        errmsg = "negative value of WCSAXESa ignored";
+	        BEGIN(ERROR);
+	
+	      } else {
+	        valtype = INTEGER;
+	        vptr    = 0x0;
+	
+	        keyname = "WCSAXESa";
+	        keytype = IMGAXIS;
+	        BEGIN(COMMENT);
+	      }
 	
 	    } else if (relax & WCSHDR_reject) {
-	      errmsg = "Image-header keyword WCSAXESa in binary table";
+	      errmsg = "image-header keyword WCSAXESa in binary table";
 	      BEGIN(ERROR);
 	
 	    } else {
@@ -17264,1183 +21292,1258 @@ YY_RULE_SETUP
 	}
 	YY_BREAK
 case 3:
-#line 335 "wcsbth.l"
+#line 358 "wcsbth.l"
 case 4:
-#line 336 "wcsbth.l"
+#line 359 "wcsbth.l"
 case 5:
 YY_RULE_SETUP
-#line 336 "wcsbth.l"
+#line 359 "wcsbth.l"
 {
-	  keytype = BIMGARR;
+	  keyname = "WCAXna";
 	
 	  /* Note that a blank in the sscanf() format string matches zero or
 	     more of them in the input. */
 	  sscanf(wcsbthtext, "WCAX%d%c = %d", &n, &a, &i);
 	
-	  if (!(keytype & keysel) || exclude[n]) {
+	  if (!(keysel & BIMGARR) || exclude[n]) {
 	    /* Ignore this key type or column. */
 	    BEGIN(DISCARD);
+	
+	  } else if (i < 0) {
+	    errmsg = "negative value of WCSAXESa ignored";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    if (ipass == 1) {
-	      wcsbth_pass1(BIMGARR, i, 0, n, 0, a, ' ', &alts);
-	    }
-	    BEGIN(FLUSH);
+	    valtype = INTEGER;
+	    vptr    = 0x0;
+	
+	    keyname = "WCAXna";
+	    keytype = IMGAXIS;
+	    BEGIN(COMMENT);
 	  }
 	}
 	YY_BREAK
 case 6:
 /* rule 6 can match eol */
-#line 355 "wcsbth.l"
+#line 385 "wcsbth.l"
 case 7:
 /* rule 7 can match eol */
-#line 356 "wcsbth.l"
+#line 386 "wcsbth.l"
 case 8:
 /* rule 8 can match eol */
 YY_RULE_SETUP
-#line 356 "wcsbth.l"
+#line 386 "wcsbth.l"
 {
 	  /* Cross-reference supplier. */
-	  keytype = BIMGARR;
-	  errmsg = "Cross-references are not currently implemented";
+	  keyname = "WCSTna";
+	  errmsg = "cross-references are not implemented";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
 case 9:
 /* rule 9 can match eol */
-#line 364 "wcsbth.l"
+#line 394 "wcsbth.l"
 case 10:
 /* rule 10 can match eol */
-#line 365 "wcsbth.l"
+#line 395 "wcsbth.l"
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 365 "wcsbth.l"
+#line 395 "wcsbth.l"
 {
 	  /* Cross-reference consumer. */
-	  keytype = BIMGARR;
-	  errmsg = "Cross-references are not currently implemented";
+	  keyname = "WCSXna";
+	  errmsg = "cross-references are not implemented";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 372 "wcsbth.l"
+#line 402 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
-	
-	  extkey = "CRPIXja";
+	  vptr    = &(wcstem.crpix);
+
+	  keyname = "CRPIXja";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 13:
-#line 381 "wcsbth.l"
+#line 411 "wcsbth.l"
 case 14:
 YY_RULE_SETUP
-#line 381 "wcsbth.l"
+#line 411 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
+	  vptr    = &(wcstem.crpix);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "jCRPna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "jCRPXn";
+	    keyname = "jCRPXn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 15:
-#line 396 "wcsbth.l"
+#line 427 "wcsbth.l"
 case 16:
 YY_RULE_SETUP
-#line 396 "wcsbth.l"
+#line 427 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
+	  vptr    = &(wcstem.crpix);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCRPna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCRPXn";
+	    keyname = "TCRPXn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 408 "wcsbth.l"
+#line 440 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
+	  vptr    = &(wcstem.pc);
 	  altlin = 1;
 	
-	  extkey = "PCi_ja";
+	  keyname = "PCi_ja";
 	  BEGIN(CCi_ja);
 	}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 417 "wcsbth.l"
+#line 449 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
-	  altlin = 1;
+	  vptr    = &(wcstem.pc);
+	  altlin  = 1;
 	
 	  sscanf(wcsbthtext, "%1d%1d", &i, &j);
 	
+	  keyname = "ijPCna";
 	  BEGIN(ijCCna);
 	}
 	YY_BREAK
 case 19:
-#line 428 "wcsbth.l"
+#line 461 "wcsbth.l"
 case 20:
 YY_RULE_SETUP
-#line 428 "wcsbth.l"
+#line 461 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
-	  altlin = 1;
+	  vptr    = &(wcstem.pc);
+	  altlin  = 1;
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "TPn_ka";
 	    BEGIN(TCn_ka);
 	  } else {
-	    extkey = "TPCn_ka";
+	    keyname = "TPCn_ka";
 	    BEGIN(TCCn_ka);
 	  }
 	}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 441 "wcsbth.l"
+#line 475 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
-	  extkey = "CDi_ja";
+	  keyname = "CDi_ja";
 	  BEGIN(CCi_ja);
 	}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 450 "wcsbth.l"
+#line 484 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
 	  sscanf(wcsbthtext, "%1d%1d", &i, &j);
 	
+	  keyname = "ijCDna";
 	  BEGIN(ijCCna);
 	}
 	YY_BREAK
 case 23:
-#line 461 "wcsbth.l"
+#line 496 "wcsbth.l"
 case 24:
 YY_RULE_SETUP
-#line 461 "wcsbth.l"
+#line 496 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "TCn_ka";
 	    BEGIN(TCn_ka);
 	  } else {
-	    extkey = "TCDn_ka";
+	    keyname = "TCDn_ka";
 	    BEGIN(TCCn_ka);
 	  }
 	}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 474 "wcsbth.l"
+#line 510 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
-	  extkey = "CDELTia";
+	  keyname = "CDELTia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 26:
-#line 483 "wcsbth.l"
+#line 519 "wcsbth.l"
 case 27:
 YY_RULE_SETUP
-#line 483 "wcsbth.l"
+#line 519 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCDEna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCDLTn";
+	    keyname = "iCDLTn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 28:
-#line 498 "wcsbth.l"
+#line 535 "wcsbth.l"
 case 29:
 YY_RULE_SETUP
-#line 498 "wcsbth.l"
+#line 535 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCDEna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCDLTn";
+	    keyname = "TCDLTn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 510 "wcsbth.l"
+#line 548 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
-	  extkey = "CROTAi";
+	  keyname = "CROTAi";
 	  BEGIN(CROTAi);
 	}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 519 "wcsbth.l"
+#line 557 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
-	  extkey = "iCROTn";
+	  keyname = "iCROTn";
 	  BEGIN(iCROTn);
 	}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 530 "wcsbth.l"
+#line 568 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
-	  extkey = "TCROTn";
+	  keyname = "TCROTn";
 	  BEGIN(TCROTn);
 	}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 539 "wcsbth.l"
+#line 577 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
-	  extkey = "CUNITia";
+	  keyname = "CUNITia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 34:
-#line 548 "wcsbth.l"
+#line 586 "wcsbth.l"
 case 35:
 YY_RULE_SETUP
-#line 548 "wcsbth.l"
+#line 586 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCUNna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCUNIn";
+	    keyname = "iCUNIn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 36:
-#line 563 "wcsbth.l"
+#line 602 "wcsbth.l"
 case 37:
 YY_RULE_SETUP
-#line 563 "wcsbth.l"
+#line 602 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCUNna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCUNIn";
+	    keyname = "TCUNIn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 575 "wcsbth.l"
+#line 615 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
-	  extkey = "CTYPEia";
+	  keyname = "CTYPEia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 39:
-#line 584 "wcsbth.l"
+#line 624 "wcsbth.l"
 case 40:
 YY_RULE_SETUP
-#line 584 "wcsbth.l"
+#line 624 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCTYna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCTYPn";
+	    keyname = "iCTYPn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 41:
-#line 599 "wcsbth.l"
+#line 640 "wcsbth.l"
 case 42:
 YY_RULE_SETUP
-#line 599 "wcsbth.l"
+#line 640 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCTYna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCTYPn";
+	    keyname = "TCTYPn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 611 "wcsbth.l"
+#line 653 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
-	  extkey = "CRVALia";
+	  keyname = "CRVALia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 44:
-#line 620 "wcsbth.l"
+#line 662 "wcsbth.l"
 case 45:
 YY_RULE_SETUP
-#line 620 "wcsbth.l"
+#line 662 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCRVna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCRVLn";
+	    keyname = "iCRVLn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 46:
-#line 635 "wcsbth.l"
+#line 678 "wcsbth.l"
 case 47:
 YY_RULE_SETUP
-#line 635 "wcsbth.l"
+#line 678 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCRVna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCRVLn";
+	    keyname = "TCRVLn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 48:
-#line 648 "wcsbth.l"
+#line 692 "wcsbth.l"
 case 49:
 YY_RULE_SETUP
-#line 648 "wcsbth.l"
+#line 692 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.lonpole);
+	  vptr    = &(wcstem.lonpole);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "LONPOLEa";
+	    keyname = "LONPOLEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "LONPna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 50:
-#line 661 "wcsbth.l"
+#line 706 "wcsbth.l"
 case 51:
 YY_RULE_SETUP
-#line 661 "wcsbth.l"
+#line 706 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.latpole);
+	  vptr    = &(wcstem.latpole);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "LATPOLEa";
+	    keyname = "LATPOLEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "LATPna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 52:
-#line 674 "wcsbth.l"
+#line 720 "wcsbth.l"
 case 53:
-#line 675 "wcsbth.l"
+#line 721 "wcsbth.l"
 case 54:
 YY_RULE_SETUP
-#line 675 "wcsbth.l"
+#line 721 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.restfrq);
+	  vptr    = &(wcstem.restfrq);
 	
 	  if (wcsbthleng == 8) {
-	    unput(' ');
-	    extkey = "RESTFREQ";
-	    BEGIN(CCCCCCCa);
+	    if (relax & WCSHDR_strict) {
+	      errmsg = "the RESTFREQ keyword is deprecated, use RESTFRQa";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      unput(' ');
+	
+	      keyname = "RESTFREQ";
+	      BEGIN(CCCCCCCa);
+	    }
+	
 	  } else if (wcsbthleng == 7) {
-	    extkey = "RESTFRQa";
+	    keyname = "RESTFRQa";
 	    BEGIN(CCCCCCCa);
+	
 	  } else {
+	    keyname = "RFRQna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 55:
-#line 692 "wcsbth.l"
+#line 748 "wcsbth.l"
 case 56:
 YY_RULE_SETUP
-#line 692 "wcsbth.l"
+#line 748 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.restwav);
+	  vptr    = &(wcstem.restwav);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "RESTWAVa";
+	    keyname = "RESTWAVa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "RWAVna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 704 "wcsbth.l"
+#line 761 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
-	  extkey = "PVi_ma";
+	  keyname = "PVi_ma";
 	  BEGIN(CCi_ma);
 	}
 	YY_BREAK
 case 58:
-#line 714 "wcsbth.l"
+#line 771 "wcsbth.l"
 case 59:
 YY_RULE_SETUP
-#line 714 "wcsbth.l"
+#line 771 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "iVn_ma";
 	    BEGIN(iCn_ma);
 	  } else {
-	    extkey = "iPVn_ma";
+	    keyname = "iPVn_ma";
 	    BEGIN(iCCn_ma);
 	  }
 	}
 	YY_BREAK
 case 60:
-#line 730 "wcsbth.l"
+#line 788 "wcsbth.l"
 case 61:
 YY_RULE_SETUP
-#line 730 "wcsbth.l"
+#line 788 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "TVn_ma";
 	    BEGIN(TCn_ma);
 	  } else {
-	    extkey = "TPVn_ma";
+	    keyname = "TPVn_ma";
 	    BEGIN(TCCn_ma);
 	  }
 	}
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 743 "wcsbth.l"
+#line 802 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
+	  keyname = "PROJPm";
 	  BEGIN(PROJPm);
 	}
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 751 "wcsbth.l"
+#line 811 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
-	  extkey = "PSi_ma";
+	  keyname = "PSi_ma";
 	  BEGIN(CCi_ma);
 	}
 	YY_BREAK
 case 64:
-#line 761 "wcsbth.l"
+#line 821 "wcsbth.l"
 case 65:
 YY_RULE_SETUP
-#line 761 "wcsbth.l"
+#line 821 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "iSn_ma";
 	    BEGIN(iCn_ma);
 	  } else {
-	    extkey = "iPSn_ma";
+	    keyname = "iPSn_ma";
 	    BEGIN(iCCn_ma);
 	  }
 	}
 	YY_BREAK
 case 66:
-#line 777 "wcsbth.l"
+#line 838 "wcsbth.l"
 case 67:
 YY_RULE_SETUP
-#line 777 "wcsbth.l"
+#line 838 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
 	  if (wcsbthleng == 2) {
+	    keyname = "TSn_ma";
 	    BEGIN(TCn_ma);
 	  } else {
-	    extkey = "TPSn_ma";
+	    keyname = "TPSn_ma";
 	    BEGIN(TCCn_ma);
 	  }
 	}
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 790 "wcsbth.l"
+#line 852 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
-	  extkey = "CNAMEia";
+	  keyname = "CNAMEia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 69:
-#line 799 "wcsbth.l"
+#line 861 "wcsbth.l"
 case 70:
 YY_RULE_SETUP
-#line 799 "wcsbth.l"
+#line 861 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCNAna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCNAMn";
+	    keyname = "iCNAMn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 71:
-#line 815 "wcsbth.l"
+#line 878 "wcsbth.l"
 case 72:
 YY_RULE_SETUP
-#line 815 "wcsbth.l"
+#line 878 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCNAna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCNAMn";
+	    keyname = "TCNAMn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 828 "wcsbth.l"
+#line 892 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
-	  extkey = "CRDERia";
+	  keyname = "CRDERia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 74:
-#line 837 "wcsbth.l"
+#line 901 "wcsbth.l"
 case 75:
 YY_RULE_SETUP
-#line 837 "wcsbth.l"
+#line 901 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCRDna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCRDEn";
+	    keyname = "iCRDEn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 76:
-#line 853 "wcsbth.l"
+#line 918 "wcsbth.l"
 case 77:
 YY_RULE_SETUP
-#line 853 "wcsbth.l"
+#line 918 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCRDna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCRDEn";
+	    keyname = "TCRDEn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 866 "wcsbth.l"
+#line 932 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
-	  extkey = "CSYERia";
+	  keyname = "CSYERia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 79:
-#line 875 "wcsbth.l"
+#line 941 "wcsbth.l"
 case 80:
 YY_RULE_SETUP
-#line 875 "wcsbth.l"
+#line 941 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
 	  sscanf(wcsbthtext, "%d", &i);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "iCSYna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCSYEn";
+	    keyname = "iCSYEn";
 	    BEGIN(iCCCCn);
 	  }
 	}
 	YY_BREAK
 case 81:
-#line 891 "wcsbth.l"
+#line 958 "wcsbth.l"
 case 82:
 YY_RULE_SETUP
-#line 891 "wcsbth.l"
+#line 958 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
 	  if (wcsbthleng == 4) {
+	    keyname = "TCSYna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCSYEn";
+	    keyname = "TCSYEn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 	YY_BREAK
 case 83:
-#line 905 "wcsbth.l"
+#line 973 "wcsbth.l"
 case 84:
 YY_RULE_SETUP
-#line 905 "wcsbth.l"
+#line 973 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.dateavg;
+	  vptr    = wcstem.dateavg;
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "DATE-AVG";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "DATE-AVG";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "DAVGna";
 	    BEGIN(CCCCn);
 	  }
 	}
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 917 "wcsbth.l"
+#line 987 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.dateobs;
+	  vptr    = wcstem.dateobs;
 	
-	  extkey = "DATE-OBS";
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "DATE-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 86:
-#line 926 "wcsbth.l"
+#line 998 "wcsbth.l"
 case 87:
-#line 927 "wcsbth.l"
+#line 999 "wcsbth.l"
 case 88:
 YY_RULE_SETUP
-#line 927 "wcsbth.l"
+#line 999 "wcsbth.l"
 {
-	  if (relax & WCSHDR_DOBSn) {
-	    valtype = STRING;
-	    vptr = wcstem.dateobs;
+	  valtype = STRING;
+	  vptr    = wcstem.dateobs;
 	
+	  if (relax & WCSHDR_DOBSn) {
 	    yyless(4);
+	
+	    keyname = "DOBSna";
 	    BEGIN(CCCCn);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "DOBSna keyword is non-standard";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = BINTAB;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "DOBSna keyword is non-standard";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 946 "wcsbth.l"
+#line 1018 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "EPOCH%c", &a);
 	
-	  if (a == ' ' || (relax & WCSHDR_EPOCHa)) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the EPOCH keyword is deprecated, use EQUINOXa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || (relax & WCSHDR_EPOCHa)) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.equinox);
+	    vptr    = &(wcstem.equinox);
 	    special = wcsbth_epoch;
 	
 	    unput(a);
-	    extkey = "EPOCH";
+	
+	    keyname = "EPOCH";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "EPOCH keyword may not have an alternate version code";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "EPOCH keyword may not have an alternate version code";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 90:
-#line 970 "wcsbth.l"
+#line 1045 "wcsbth.l"
 case 91:
 YY_RULE_SETUP
-#line 970 "wcsbth.l"
+#line 1045 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.equinox);
+	  vptr    = &(wcstem.equinox);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "EQUINOXa";
+	    keyname = "EQUINOXa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "EQUIna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 92:
-#line 983 "wcsbth.l"
+#line 1059 "wcsbth.l"
 case 93:
 YY_RULE_SETUP
-#line 983 "wcsbth.l"
+#line 1059 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.mjdavg);
+	  vptr    = &(wcstem.mjdavg);
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "MJD-AVG";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "MJD-AVG";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "MJDAn";
 	    BEGIN(CCCCn);
 	  }
 	}
 	YY_BREAK
 case 94:
-#line 996 "wcsbth.l"
+#line 1074 "wcsbth.l"
 case 95:
 YY_RULE_SETUP
-#line 996 "wcsbth.l"
+#line 1074 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.mjdobs);
+	  vptr    = &(wcstem.mjdobs);
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "MJD-OBS";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "MJD-OBS";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "MJDOn";
 	    BEGIN(CCCCCn);
 	  }
 	}
 	YY_BREAK
 case 96:
-#line 1009 "wcsbth.l"
+#line 1089 "wcsbth.l"
 case 97:
 YY_RULE_SETUP
-#line 1009 "wcsbth.l"
+#line 1089 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo;
+	  vptr    = wcstem.obsgeo;
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "OBSGEO-X";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-X";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGXn";
 	    BEGIN(CCCCCn);
 	  }
 	}
 	YY_BREAK
 case 98:
-#line 1022 "wcsbth.l"
+#line 1104 "wcsbth.l"
 case 99:
 YY_RULE_SETUP
-#line 1022 "wcsbth.l"
+#line 1104 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo + 1;
+	  vptr    = wcstem.obsgeo + 1;
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "OBSGEO-Y";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-Y";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGYn";
 	    BEGIN(CCCCCn);
 	  }
 	}
 	YY_BREAK
 case 100:
-#line 1035 "wcsbth.l"
+#line 1119 "wcsbth.l"
 case 101:
 YY_RULE_SETUP
-#line 1035 "wcsbth.l"
+#line 1119 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo + 2;
+	  vptr    = wcstem.obsgeo + 2;
 	
 	  if (wcsbthleng == 8) {
-	    extkey = "OBSGEO-Z";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-Z";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGZn";
 	    BEGIN(CCCCCn);
 	  }
 	}
 	YY_BREAK
 case 102:
-#line 1048 "wcsbth.l"
+#line 1134 "wcsbth.l"
 case 103:
 YY_RULE_SETUP
-#line 1048 "wcsbth.l"
+#line 1134 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.radesys;
+	  vptr    = wcstem.radesys;
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "RADESYSa";
+	    keyname = "RADESYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "RADEna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1060 "wcsbth.l"
+#line 1147 "wcsbth.l"
 {
 	  if (relax & WCSHDR_RADECSYS) {
 	    valtype = STRING;
-	    vptr = wcstem.radesys;
+	    vptr    = wcstem.radesys;
 	
 	    unput(' ');
-	    extkey = "RADECSYS";
+	
+	    keyname = "RADECSYS";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "the RADECSYS keyword is deprecated, use RADESYSa";
+	    BEGIN(ERROR);
+
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "RADECSYS keyword is non-standard";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 105:
-#line 1081 "wcsbth.l"
+#line 1167 "wcsbth.l"
 case 106:
 YY_RULE_SETUP
-#line 1081 "wcsbth.l"
+#line 1167 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.specsys;
+	  vptr    = wcstem.specsys;
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "SPECSYSa";
+	    keyname = "SPECSYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SPECna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 107:
-#line 1094 "wcsbth.l"
+#line 1181 "wcsbth.l"
 case 108:
 YY_RULE_SETUP
-#line 1094 "wcsbth.l"
+#line 1181 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.ssysobs;
+	  vptr    = wcstem.ssysobs;
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "SSYSOBSa";
+	    keyname = "SSYSOBSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SOBSna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 109:
-#line 1107 "wcsbth.l"
+#line 1195 "wcsbth.l"
 case 110:
 YY_RULE_SETUP
-#line 1107 "wcsbth.l"
+#line 1195 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.ssyssrc;
+	  vptr    = wcstem.ssyssrc;
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "SSYSSRCa";
+	    keyname = "SSYSSRCa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SSRCna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 111:
-#line 1120 "wcsbth.l"
+#line 1209 "wcsbth.l"
 case 112:
 YY_RULE_SETUP
-#line 1120 "wcsbth.l"
+#line 1209 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.velosys);
+	  vptr    = &(wcstem.velangl);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "VELOSYSa";
+	    keyname = "VELANGLa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "VANGna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 113:
-#line 1133 "wcsbth.l"
+#line 1223 "wcsbth.l"
 case 114:
 YY_RULE_SETUP
-#line 1133 "wcsbth.l"
+#line 1223 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.velangl);
+	  vptr    = &(wcstem.velosys);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "VELANGLa";
+	    keyname = "VELOSYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "VSYSna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1145 "wcsbth.l"
+#line 1236 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "VELREF%c", &a);
 	
-	  if (a == ' ' || (relax & WCSHDR_VELREFa)) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the VELREF keyword is deprecated, use SPECSYSa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || (relax & WCSHDR_VELREFa)) {
 	    valtype = INTEGER;
-	    vptr = &(wcstem.velref);
+	    vptr    = &(wcstem.velref);
 	
 	    unput(a);
-	    extkey = "VELREF";
+	
+	    keyname = "VELREF";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "VELREF keyword may not have an alternate version code";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VELREF keyword may not have an alternate version code";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1167 "wcsbth.l"
+#line 1261 "wcsbth.l"
 {
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.zsource);
+	    vptr    = &(wcstem.zsource);
 	    special = wcsbth_vsource;
 	
 	    yyless(7);
-	    extkey = "VSOURCEa";
+	
+	    keyname = "VSOURCEa";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "the VSOURCEa keyword is deprecated, use ZSOURCEa";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VSOURCEa keyword is deprecated";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 117:
-#line 1189 "wcsbth.l"
+#line 1282 "wcsbth.l"
 case 118:
-#line 1190 "wcsbth.l"
+#line 1283 "wcsbth.l"
 case 119:
 YY_RULE_SETUP
-#line 1190 "wcsbth.l"
+#line 1283 "wcsbth.l"
 {
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.zsource);
+	    vptr    = &(wcstem.zsource);
 	    special = wcsbth_vsource;
 	
 	    yyless(4);
+	    keyname = "VSOUna";
 	    BEGIN(CCCCna);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "VSOUna keyword is deprecated, use ZSOUna";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = BINTAB;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VSOUna keyword is deprecated";
-	      BEGIN(ERROR);
-	    } else {
-	      /* Pretend we don't recognize it. */
-	      BEGIN(DISCARD);
-	    }
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
 case 120:
-#line 1212 "wcsbth.l"
+#line 1304 "wcsbth.l"
 case 121:
-#line 1213 "wcsbth.l"
+#line 1305 "wcsbth.l"
 case 122:
 YY_RULE_SETUP
-#line 1213 "wcsbth.l"
+#line 1305 "wcsbth.l"
 {
 	  valtype = STRING;
-	  vptr = wcstem.wcsname;
+	  vptr    = wcstem.wcsname;
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "WCSNAMEa";
+	    keyname = "WCSNAMEa";
 	    BEGIN(CCCCCCCa);
+	
 	  } else {
+	    if (*wcsbthtext == 'W') {
+	      keyname = "WCSNna";
+	    } else {
+	      keyname = "TWCSna";
+	    }
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 123:
-#line 1226 "wcsbth.l"
+#line 1324 "wcsbth.l"
 case 124:
 YY_RULE_SETUP
-#line 1226 "wcsbth.l"
+#line 1324 "wcsbth.l"
 {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.zsource);
+	  vptr    = &(wcstem.zsource);
 	
 	  if (wcsbthleng == 7) {
-	    extkey = "ZSOURCEa";
+	    keyname = "ZSOURCEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "ZSOUna";
 	    BEGIN(CCCCna);
 	  }
 	}
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1238 "wcsbth.l"
+#line 1337 "wcsbth.l"
 {
-	  yyless(0);
 	  if (wcsbth_nkeyrec) {
 	    wcsbth_nkeyrec = 0;
-	    errmsg = "Keyrecords following the END keyrecord were ignored";
+	    errmsg = "keyrecords following the END keyrecord were ignored";
 	    BEGIN(ERROR);
 	  } else {
 	    BEGIN(DISCARD);
@@ -18449,28 +22552,26 @@ YY_RULE_SETUP
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1249 "wcsbth.l"
+#line 1347 "wcsbth.l"
 {
-	  yyless(0);
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
 case 127:
-#line 1255 "wcsbth.l"
+#line 1352 "wcsbth.l"
 case 128:
 YY_RULE_SETUP
-#line 1255 "wcsbth.l"
+#line 1352 "wcsbth.l"
 {
-	  /* Image-header keyword. */
-	  keytype = IMGAXIS;
 	  if (relax & WCSHDR_ALLIMG) {
 	    sscanf(wcsbthtext, "%d%c", &i, &a);
+	    keytype = IMGAXIS;
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18480,15 +22581,28 @@ YY_RULE_SETUP
 	}
 	YY_BREAK
 case 129:
+#line 1371 "wcsbth.l"
+case 130:
 YY_RULE_SETUP
-#line 1274 "wcsbth.l"
+#line 1371 "wcsbth.l"
 {
-	  /* Invalid axis number in image-header keyword. */
-	  keytype = IMGAXIS;
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will also be flagged by <VALUE> as invalid. */
-	    sscanf(wcsbthtext, "%3d", &i);
-	    BEGIN(VALUE);
+	    if (relax & WCSHDR_reject) {
+	      /* Violates the basic FITS standard. */
+	      errmsg = "indices in parameterized keywords must not have "
+	               "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -18496,90 +22610,129 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 130:
-#line 1289 "wcsbth.l"
 case 131:
-#line 1290 "wcsbth.l"
+#line 1397 "wcsbth.l"
 case 132:
-#line 1291 "wcsbth.l"
+#line 1398 "wcsbth.l"
 case 133:
-#line 1292 "wcsbth.l"
+YY_RULE_SETUP
+#line 1398 "wcsbth.l"
+{
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  if (relax & WCSHDR_ALLIMG) {
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
 case 134:
-#line 1293 "wcsbth.l"
-case 135:
 YY_RULE_SETUP
-#line 1293 "wcsbth.l"
+#line 1417 "wcsbth.l"
 {
-	  if (vptr) {
-	    WCSBTH_PUTBACK;
-	    BEGIN((YY_START == iCCCCn) ? iCCCna : TCCCna);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "keyword looks very much like %s but isn't",
+	      keyname);
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = (YY_START == iCCCCn) ? BIMGARR : PIXLIST;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      sprintf(errmsg, "%s keyword is non-standard", extkey);
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
+case 135:
+#line 1432 "wcsbth.l"
 case 136:
-#line 1310 "wcsbth.l"
+#line 1433 "wcsbth.l"
 case 137:
-#line 1311 "wcsbth.l"
+#line 1434 "wcsbth.l"
 case 138:
-#line 1312 "wcsbth.l"
+#line 1435 "wcsbth.l"
 case 139:
+#line 1436 "wcsbth.l"
+case 140:
 YY_RULE_SETUP
-#line 1312 "wcsbth.l"
+#line 1436 "wcsbth.l"
 {
-	  if (vptr && (relax & WCSHDR_LONGKEY)) {
+	  if (vptr) {
 	    WCSBTH_PUTBACK;
 	    BEGIN((YY_START == iCCCCn) ? iCCCna : TCCCna);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg, "%s keyword is non-standard", keyname);
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = (YY_START == iCCCna) ? BIMGARR : PIXLIST;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      if (!vptr) {
-	        sprintf(errmsg, "%s keyword is non-standard", extkey);
-	      } else {
-	        sprintf(errmsg,
-	          "%s keyword may not have an alternate version code", extkey);
-	      }
-	      BEGIN(ERROR);
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 141:
+#line 1452 "wcsbth.l"
+case 142:
+#line 1453 "wcsbth.l"
+case 143:
+#line 1454 "wcsbth.l"
+case 144:
+YY_RULE_SETUP
+#line 1454 "wcsbth.l"
+{
+	  if (vptr && (relax & WCSHDR_LONGKEY)) {
+	    WCSBTH_PUTBACK;
+	    BEGIN((YY_START == iCCCCn) ? iCCCna : TCCCna);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    if (!vptr) {
+	      sprintf(errmsg, "%s keyword is non-standard", keyname);
 	    } else {
-	      /* Pretend we don't recognize it. */
-	      BEGIN(DISCARD);
+	      sprintf(errmsg,
+	        "%s keyword may not have an alternate version code", keyname);
 	    }
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
-case 140:
-#line 1337 "wcsbth.l"
-case 141:
+case 145:
+#line 1476 "wcsbth.l"
+case 146:
 YY_RULE_SETUP
-#line 1337 "wcsbth.l"
+#line 1476 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 142:
-#line 1342 "wcsbth.l"
-case 143:
-#line 1343 "wcsbth.l"
-case 144:
-#line 1344 "wcsbth.l"
-case 145:
-#line 1345 "wcsbth.l"
-case 146:
-#line 1346 "wcsbth.l"
 case 147:
+#line 1481 "wcsbth.l"
+case 148:
+#line 1482 "wcsbth.l"
+case 149:
+#line 1483 "wcsbth.l"
+case 150:
+#line 1484 "wcsbth.l"
+case 151:
+#line 1485 "wcsbth.l"
+case 152:
 YY_RULE_SETUP
-#line 1346 "wcsbth.l"
+#line 1485 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d%c", &n, &a);
 	  if (YY_START == TCCCna) i = wcsbth_colax(*wcs, &alts, n, a);
@@ -18587,35 +22740,147 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 148:
-#line 1354 "wcsbth.l"
-case 149:
+case 153:
+#line 1493 "wcsbth.l"
+case 154:
 YY_RULE_SETUP
-#line 1354 "wcsbth.l"
+#line 1493 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 150:
-#line 1359 "wcsbth.l"
-case 151:
-#line 1360 "wcsbth.l"
-case 152:
-#line 1361 "wcsbth.l"
-case 153:
+case 155:
+#line 1498 "wcsbth.l"
+case 156:
+#line 1499 "wcsbth.l"
+case 157:
+#line 1500 "wcsbth.l"
+case 158:
+YY_RULE_SETUP
+#line 1500 "wcsbth.l"
+{
+	  if (relax & WCSHDR_ALLIMG) {
+	    sscanf(wcsbthtext, "%d_%d%c", &i, &j, &a);
+	    keytype = IMGAXIS;
+	    BEGIN(VALUE);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 159:
+#line 1519 "wcsbth.l"
+case 160:
+#line 1520 "wcsbth.l"
+case 161:
+#line 1521 "wcsbth.l"
+case 162:
+#line 1522 "wcsbth.l"
+case 163:
+#line 1523 "wcsbth.l"
+case 164:
+#line 1524 "wcsbth.l"
+case 165:
+#line 1525 "wcsbth.l"
+case 166:
+#line 1526 "wcsbth.l"
+case 167:
+#line 1527 "wcsbth.l"
+case 168:
+#line 1528 "wcsbth.l"
+case 169:
+#line 1529 "wcsbth.l"
+case 170:
+#line 1530 "wcsbth.l"
+case 171:
+#line 1531 "wcsbth.l"
+case 172:
+#line 1532 "wcsbth.l"
+case 173:
+#line 1533 "wcsbth.l"
+case 174:
+#line 1534 "wcsbth.l"
+case 175:
+#line 1535 "wcsbth.l"
+case 176:
+#line 1536 "wcsbth.l"
+case 177:
+#line 1537 "wcsbth.l"
+case 178:
+#line 1538 "wcsbth.l"
+case 179:
+YY_RULE_SETUP
+#line 1538 "wcsbth.l"
+{
+	  if (relax & WCSHDR_ALLIMG) {
+	    if (((altlin == 1) && (relax & WCSHDR_PC0i_0ja)) ||
+	        ((altlin == 2) && (relax & WCSHDR_CD0i_0ja))) {
+	      sscanf(wcsbthtext, "%d_%d%c", &i, &j, &a);
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 180:
+#line 1569 "wcsbth.l"
+case 181:
+#line 1570 "wcsbth.l"
+case 182:
+#line 1571 "wcsbth.l"
+case 183:
+#line 1572 "wcsbth.l"
+case 184:
+#line 1573 "wcsbth.l"
+case 185:
+#line 1574 "wcsbth.l"
+case 186:
+#line 1575 "wcsbth.l"
+case 187:
+#line 1576 "wcsbth.l"
+case 188:
+#line 1577 "wcsbth.l"
+case 189:
 YY_RULE_SETUP
-#line 1361 "wcsbth.l"
+#line 1577 "wcsbth.l"
 {
-	  /* Image-header keyword. */
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
 	  if (relax & WCSHDR_ALLIMG) {
-	    sscanf(wcsbthtext, "%d_%d%c", &i, &j, &a);
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "invalid image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18624,26 +22889,39 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 154:
-#line 1381 "wcsbth.l"
-case 155:
-#line 1382 "wcsbth.l"
-case 156:
-#line 1383 "wcsbth.l"
-case 157:
-#line 1384 "wcsbth.l"
-case 158:
-#line 1385 "wcsbth.l"
-case 159:
+case 190:
+#line 1597 "wcsbth.l"
+case 191:
+#line 1598 "wcsbth.l"
+case 192:
+#line 1599 "wcsbth.l"
+case 193:
+#line 1600 "wcsbth.l"
+case 194:
+#line 1601 "wcsbth.l"
+case 195:
+#line 1602 "wcsbth.l"
+case 196:
+#line 1603 "wcsbth.l"
+case 197:
+#line 1604 "wcsbth.l"
+case 198:
+#line 1605 "wcsbth.l"
+case 199:
 YY_RULE_SETUP
-#line 1385 "wcsbth.l"
+#line 1605 "wcsbth.l"
 {
-	  /* Invalid axis number in image-header keyword. */
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will be flagged by <VALUE> as invalid. */
-	    sscanf(wcsbthtext, "%d_%d", &i, &j);
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	    errmsg = errtxt;
+	    sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	      keyname);
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -18651,22 +22929,35 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 160:
+case 200:
 YY_RULE_SETUP
-#line 1399 "wcsbth.l"
+#line 1624 "wcsbth.l"
 {
 	  /* This covers the defunct forms CD00i00j and PC00i00j. */
-	  if (((relax & WCSHDR_PC00i00j) && (altlin == 1)) ||
-	      ((relax & WCSHDR_CD00i00j) && (altlin == 2))) {
-	    sscanf(wcsbthtext, "%3d%3d", &i, &j);
-	    a = ' ';
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	  if (relax & WCSHDR_ALLIMG) {
+	    if (((altlin == 1) && (relax & WCSHDR_PC00i00j)) ||
+	        ((altlin == 2) && (relax & WCSHDR_CD00i00j))) {
+	      sscanf(wcsbthtext, "%3d%3d", &i, &j);
+	      a = ' ';
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = errtxt;
+	      sprintf(errmsg,
+	        "this form of the %s keyword is deprecated, use %s",
+	        keyname, keyname);
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "Defunct form of %si_ja keyword",
-	                     (altlin==1) ? "PC" : "CD");
+	    sprintf(errmsg,
+	      "deprecated image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18675,39 +22966,39 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 161:
+case 201:
 YY_RULE_SETUP
-#line 1420 "wcsbth.l"
+#line 1658 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 162:
-#line 1425 "wcsbth.l"
-case 163:
-#line 1426 "wcsbth.l"
-case 164:
+case 202:
+#line 1663 "wcsbth.l"
+case 203:
+#line 1664 "wcsbth.l"
+case 204:
 YY_RULE_SETUP
-#line 1426 "wcsbth.l"
+#line 1664 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d%c", &n, &a);
 	  keytype = BIMGARR;
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 165:
-#line 1433 "wcsbth.l"
-case 166:
-#line 1434 "wcsbth.l"
-case 167:
-#line 1435 "wcsbth.l"
-case 168:
-#line 1436 "wcsbth.l"
-case 169:
-#line 1437 "wcsbth.l"
-case 170:
+case 205:
+#line 1671 "wcsbth.l"
+case 206:
+#line 1672 "wcsbth.l"
+case 207:
+#line 1673 "wcsbth.l"
+case 208:
+#line 1674 "wcsbth.l"
+case 209:
+#line 1675 "wcsbth.l"
+case 210:
 YY_RULE_SETUP
-#line 1437 "wcsbth.l"
+#line 1675 "wcsbth.l"
 {
 	  if (relax & WCSHDR_LONGKEY) {
 	    WCSBTH_PUTBACK;
@@ -18715,7 +23006,7 @@ YY_RULE_SETUP
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "%s keyword is non-standard", extkey);
+	    sprintf(errmsg, "%s keyword is non-standard", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18724,26 +23015,26 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 171:
+case 211:
 YY_RULE_SETUP
-#line 1453 "wcsbth.l"
+#line 1691 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 172:
-#line 1458 "wcsbth.l"
-case 173:
-#line 1459 "wcsbth.l"
-case 174:
-#line 1460 "wcsbth.l"
-case 175:
-#line 1461 "wcsbth.l"
-case 176:
-#line 1462 "wcsbth.l"
-case 177:
+case 212:
+#line 1696 "wcsbth.l"
+case 213:
+#line 1697 "wcsbth.l"
+case 214:
+#line 1698 "wcsbth.l"
+case 215:
+#line 1699 "wcsbth.l"
+case 216:
+#line 1700 "wcsbth.l"
+case 217:
 YY_RULE_SETUP
-#line 1462 "wcsbth.l"
+#line 1700 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d_%d%c", &n, &k, &a);
 	  i = wcsbth_colax(*wcs, &alts, n, a);
@@ -18752,15 +23043,15 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 178:
-#line 1471 "wcsbth.l"
-case 179:
-#line 1472 "wcsbth.l"
-case 180:
-#line 1473 "wcsbth.l"
-case 181:
+case 218:
+#line 1709 "wcsbth.l"
+case 219:
+#line 1710 "wcsbth.l"
+case 220:
+#line 1711 "wcsbth.l"
+case 221:
 YY_RULE_SETUP
-#line 1473 "wcsbth.l"
+#line 1711 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d_%d", &n, &k);
 	  a = ' ';
@@ -18770,35 +23061,46 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 182:
+case 222:
 YY_RULE_SETUP
-#line 1482 "wcsbth.l"
+#line 1720 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 183:
-#line 1487 "wcsbth.l"
-case 184:
-YY_RULE_SETUP
-#line 1487 "wcsbth.l"
-{
-	  yyless(0);
-	  BEGIN(CCCCCia);
-	}
-	YY_BREAK
-case 185:
-#line 1493 "wcsbth.l"
-case 186:
+case 223:
+#line 1725 "wcsbth.l"
+case 224:
+#line 1726 "wcsbth.l"
+case 225:
 YY_RULE_SETUP
-#line 1493 "wcsbth.l"
+#line 1726 "wcsbth.l"
 {
-	  if (relax & WCSHDR_CROTAia) {
-	    yyless(0);
-	    BEGIN(CCCCCia);
+	  if (relax & WCSHDR_ALLIMG) {
+	    a = ' ';
+	    sscanf(wcsbthtext, "%d%c", &i, &a);
+	
+	    if (relax & WCSHDR_strict) {
+	      errmsg = "the CROTAn keyword is deprecated, use PCi_ja";
+	      BEGIN(ERROR);
+	
+	    } else if (a == ' ' || relax & WCSHDR_CROTAia) {
+	      yyless(0);
+	      BEGIN(CCCCCia);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "CROTAn keyword may not have an alternate version code";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "CROTAn keyword may not have an alternate version code";
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "deprecated image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18807,40 +23109,46 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 187:
+case 226:
 YY_RULE_SETUP
-#line 1508 "wcsbth.l"
+#line 1760 "wcsbth.l"
 {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_ALLIMG) {
+	    yyless(0);
+	    BEGIN(CCCCCia);
+	  } else {
+	    /* Let it go. */
+	    BEGIN(DISCARD);
+	  }
 	}
 	YY_BREAK
-case 188:
-#line 1513 "wcsbth.l"
-case 189:
-#line 1514 "wcsbth.l"
-case 190:
-#line 1515 "wcsbth.l"
-case 191:
-#line 1516 "wcsbth.l"
-case 192:
-#line 1517 "wcsbth.l"
-case 193:
+case 227:
+#line 1771 "wcsbth.l"
+case 228:
+#line 1772 "wcsbth.l"
+case 229:
+#line 1773 "wcsbth.l"
+case 230:
+#line 1774 "wcsbth.l"
+case 231:
+#line 1775 "wcsbth.l"
+case 232:
 YY_RULE_SETUP
-#line 1517 "wcsbth.l"
+#line 1775 "wcsbth.l"
 {
 	  WCSBTH_PUTBACK;
 	  BEGIN((YY_START == iCROTn) ? iCCCna : TCCCna);
 	}
 	YY_BREAK
-case 194:
-#line 1523 "wcsbth.l"
-case 195:
-#line 1524 "wcsbth.l"
-case 196:
-#line 1525 "wcsbth.l"
-case 197:
+case 233:
+#line 1781 "wcsbth.l"
+case 234:
+#line 1782 "wcsbth.l"
+case 235:
+#line 1783 "wcsbth.l"
+case 236:
 YY_RULE_SETUP
-#line 1525 "wcsbth.l"
+#line 1783 "wcsbth.l"
 {
 	  if (relax & WCSHDR_CROTAia) {
 	    WCSBTH_PUTBACK;
@@ -18849,7 +23157,7 @@ YY_RULE_SETUP
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "%s keyword may not have an alternate version code", extkey);
+	      "%s keyword may not have an alternate version code", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18858,20 +23166,20 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 198:
-#line 1543 "wcsbth.l"
-case 199:
+case 237:
+#line 1801 "wcsbth.l"
+case 238:
 YY_RULE_SETUP
-#line 1543 "wcsbth.l"
+#line 1801 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 200:
-#line 1548 "wcsbth.l"
-case 201:
+case 239:
+#line 1806 "wcsbth.l"
+case 240:
 YY_RULE_SETUP
-#line 1548 "wcsbth.l"
+#line 1806 "wcsbth.l"
 {
 	  /* Image-header keyword. */
 	  if (relax & (WCSHDR_AUXIMG | WCSHDR_ALLIMG)) {
@@ -18887,7 +23195,7 @@ YY_RULE_SETUP
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18896,33 +23204,43 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 202:
+case 241:
 YY_RULE_SETUP
-#line 1572 "wcsbth.l"
+#line 1830 "wcsbth.l"
 {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "invalid alternate code, keyword resembles %s "
+	      "but isn't", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 	YY_BREAK
-case 203:
-#line 1577 "wcsbth.l"
-case 204:
-#line 1578 "wcsbth.l"
-case 205:
-#line 1579 "wcsbth.l"
-case 206:
-#line 1580 "wcsbth.l"
-case 207:
+case 242:
+#line 1845 "wcsbth.l"
+case 243:
+#line 1846 "wcsbth.l"
+case 244:
+#line 1847 "wcsbth.l"
+case 245:
+#line 1848 "wcsbth.l"
+case 246:
 YY_RULE_SETUP
-#line 1580 "wcsbth.l"
+#line 1848 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d%c", &n, &a);
 	  keytype = BINTAB;
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 208:
+case 247:
 YY_RULE_SETUP
-#line 1586 "wcsbth.l"
+#line 1854 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d", &n);
 	  a = ' ';
@@ -18930,30 +23248,30 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 209:
-#line 1594 "wcsbth.l"
-case 210:
+case 248:
+#line 1862 "wcsbth.l"
+case 249:
 YY_RULE_SETUP
-#line 1594 "wcsbth.l"
+#line 1862 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
-	}
-	YY_BREAK
-case 211:
-#line 1599 "wcsbth.l"
-case 212:
-#line 1600 "wcsbth.l"
-case 213:
-#line 1601 "wcsbth.l"
-case 214:
-#line 1602 "wcsbth.l"
-case 215:
-#line 1603 "wcsbth.l"
-case 216:
-#line 1604 "wcsbth.l"
-case 217:
+	}
+	YY_BREAK
+case 250:
+#line 1867 "wcsbth.l"
+case 251:
+#line 1868 "wcsbth.l"
+case 252:
+#line 1869 "wcsbth.l"
+case 253:
+#line 1870 "wcsbth.l"
+case 254:
+#line 1871 "wcsbth.l"
+case 255:
+#line 1872 "wcsbth.l"
+case 256:
 YY_RULE_SETUP
-#line 1604 "wcsbth.l"
+#line 1872 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d", &n);
 	  a = 0;
@@ -18961,24 +23279,24 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 218:
-#line 1612 "wcsbth.l"
-case 219:
+case 257:
+#line 1880 "wcsbth.l"
+case 258:
 YY_RULE_SETUP
-#line 1612 "wcsbth.l"
+#line 1880 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 220:
-#line 1617 "wcsbth.l"
-case 221:
-#line 1618 "wcsbth.l"
-case 222:
-#line 1619 "wcsbth.l"
-case 223:
+case 259:
+#line 1885 "wcsbth.l"
+case 260:
+#line 1886 "wcsbth.l"
+case 261:
+#line 1887 "wcsbth.l"
+case 262:
 YY_RULE_SETUP
-#line 1619 "wcsbth.l"
+#line 1887 "wcsbth.l"
 {
 	  /* Image-header keyword. */
 	  if (relax & WCSHDR_ALLIMG) {
@@ -18989,7 +23307,7 @@ YY_RULE_SETUP
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -18998,26 +23316,72 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 224:
-#line 1639 "wcsbth.l"
-case 225:
-#line 1640 "wcsbth.l"
-case 226:
-#line 1641 "wcsbth.l"
-case 227:
-#line 1642 "wcsbth.l"
-case 228:
-#line 1643 "wcsbth.l"
-case 229:
+case 263:
+#line 1907 "wcsbth.l"
+case 264:
+#line 1908 "wcsbth.l"
+case 265:
+#line 1909 "wcsbth.l"
+case 266:
+#line 1910 "wcsbth.l"
+case 267:
+#line 1911 "wcsbth.l"
+case 268:
+#line 1912 "wcsbth.l"
+case 269:
+#line 1913 "wcsbth.l"
+case 270:
+#line 1914 "wcsbth.l"
+case 271:
+#line 1915 "wcsbth.l"
+case 272:
+#line 1916 "wcsbth.l"
+case 273:
+#line 1917 "wcsbth.l"
+case 274:
+#line 1918 "wcsbth.l"
+case 275:
+#line 1919 "wcsbth.l"
+case 276:
+#line 1920 "wcsbth.l"
+case 277:
+#line 1921 "wcsbth.l"
+case 278:
+#line 1922 "wcsbth.l"
+case 279:
+#line 1923 "wcsbth.l"
+case 280:
+#line 1924 "wcsbth.l"
+case 281:
+#line 1925 "wcsbth.l"
+case 282:
+#line 1926 "wcsbth.l"
+case 283:
 YY_RULE_SETUP
-#line 1643 "wcsbth.l"
+#line 1926 "wcsbth.l"
 {
-	  /* Invalid parameter in image-header keyword. */
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will be flagged by <VALUE> as invalid. */
-	    sscanf(wcsbthtext, "%d_%d", &i, &m);
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	    if (((valtype == FLOAT)  && (relax & WCSHDR_PV0i_0ma)) ||
+	        ((valtype == STRING) && (relax & WCSHDR_PS0i_0ma))) {
+	      sscanf(wcsbthtext, "%d_%d%c", &i, &m, &a);
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "indices in parameterized keywords must not have "
+	               "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -19025,38 +23389,106 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 230:
+case 284:
+#line 1957 "wcsbth.l"
+case 285:
+#line 1958 "wcsbth.l"
+case 286:
+#line 1959 "wcsbth.l"
+case 287:
+#line 1960 "wcsbth.l"
+case 288:
+#line 1961 "wcsbth.l"
+case 289:
+#line 1962 "wcsbth.l"
+case 290:
+#line 1963 "wcsbth.l"
+case 291:
+#line 1964 "wcsbth.l"
+case 292:
+#line 1965 "wcsbth.l"
+case 293:
+YY_RULE_SETUP
+#line 1965 "wcsbth.l"
+{
+	  if (relax & WCSHDR_ALLIMG) {
+	    /* Anything that has fallen through to this point must contain */
+	    /* an invalid parameter. */
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 294:
+#line 1985 "wcsbth.l"
+case 295:
+#line 1986 "wcsbth.l"
+case 296:
+#line 1987 "wcsbth.l"
+case 297:
+#line 1988 "wcsbth.l"
+case 298:
+#line 1989 "wcsbth.l"
+case 299:
+#line 1990 "wcsbth.l"
+case 300:
+#line 1991 "wcsbth.l"
+case 301:
+#line 1992 "wcsbth.l"
+case 302:
+#line 1993 "wcsbth.l"
+case 303:
+YY_RULE_SETUP
+#line 1993 "wcsbth.l"
+{
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 304:
 YY_RULE_SETUP
-#line 1657 "wcsbth.l"
+#line 2000 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 231:
-#line 1662 "wcsbth.l"
-case 232:
-#line 1663 "wcsbth.l"
-case 233:
-#line 1664 "wcsbth.l"
-case 234:
-#line 1665 "wcsbth.l"
-case 235:
-#line 1666 "wcsbth.l"
-case 236:
-#line 1667 "wcsbth.l"
-case 237:
-#line 1668 "wcsbth.l"
-case 238:
-#line 1669 "wcsbth.l"
-case 239:
-#line 1670 "wcsbth.l"
-case 240:
-#line 1671 "wcsbth.l"
-case 241:
-#line 1672 "wcsbth.l"
-case 242:
+case 305:
+#line 2005 "wcsbth.l"
+case 306:
+#line 2006 "wcsbth.l"
+case 307:
+#line 2007 "wcsbth.l"
+case 308:
+#line 2008 "wcsbth.l"
+case 309:
+#line 2009 "wcsbth.l"
+case 310:
+#line 2010 "wcsbth.l"
+case 311:
+#line 2011 "wcsbth.l"
+case 312:
+#line 2012 "wcsbth.l"
+case 313:
+#line 2013 "wcsbth.l"
+case 314:
+#line 2014 "wcsbth.l"
+case 315:
+#line 2015 "wcsbth.l"
+case 316:
 YY_RULE_SETUP
-#line 1672 "wcsbth.l"
+#line 2015 "wcsbth.l"
 {
 	  if (relax & WCSHDR_LONGKEY) {
 	    WCSBTH_PUTBACK;
@@ -19064,7 +23496,7 @@ YY_RULE_SETUP
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "%s keyword is non-standard", extkey);
+	    sprintf(errmsg, "the %s keyword is non-standard", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -19073,40 +23505,40 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 243:
-#line 1689 "wcsbth.l"
-case 244:
+case 317:
+#line 2032 "wcsbth.l"
+case 318:
 YY_RULE_SETUP
-#line 1689 "wcsbth.l"
+#line 2032 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 245:
-#line 1694 "wcsbth.l"
-case 246:
-#line 1695 "wcsbth.l"
-case 247:
-#line 1696 "wcsbth.l"
-case 248:
-#line 1697 "wcsbth.l"
-case 249:
-#line 1698 "wcsbth.l"
-case 250:
-#line 1699 "wcsbth.l"
-case 251:
-#line 1700 "wcsbth.l"
-case 252:
-#line 1701 "wcsbth.l"
-case 253:
-#line 1702 "wcsbth.l"
-case 254:
-#line 1703 "wcsbth.l"
-case 255:
-#line 1704 "wcsbth.l"
-case 256:
+case 319:
+#line 2037 "wcsbth.l"
+case 320:
+#line 2038 "wcsbth.l"
+case 321:
+#line 2039 "wcsbth.l"
+case 322:
+#line 2040 "wcsbth.l"
+case 323:
+#line 2041 "wcsbth.l"
+case 324:
+#line 2042 "wcsbth.l"
+case 325:
+#line 2043 "wcsbth.l"
+case 326:
+#line 2044 "wcsbth.l"
+case 327:
+#line 2045 "wcsbth.l"
+case 328:
+#line 2046 "wcsbth.l"
+case 329:
+#line 2047 "wcsbth.l"
+case 330:
 YY_RULE_SETUP
-#line 1704 "wcsbth.l"
+#line 2047 "wcsbth.l"
 {
 	  sscanf(wcsbthtext, "%d_%d%c", &n, &m, &a);
 	  if (YY_START == TCn_ma) i = wcsbth_colax(*wcs, &alts, n, a);
@@ -19114,23 +23546,23 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 257:
-#line 1712 "wcsbth.l"
-case 258:
-#line 1713 "wcsbth.l"
-case 259:
-#line 1714 "wcsbth.l"
-case 260:
-#line 1715 "wcsbth.l"
-case 261:
-#line 1716 "wcsbth.l"
-case 262:
-#line 1717 "wcsbth.l"
-case 263:
-#line 1718 "wcsbth.l"
-case 264:
+case 331:
+#line 2055 "wcsbth.l"
+case 332:
+#line 2056 "wcsbth.l"
+case 333:
+#line 2057 "wcsbth.l"
+case 334:
+#line 2058 "wcsbth.l"
+case 335:
+#line 2059 "wcsbth.l"
+case 336:
+#line 2060 "wcsbth.l"
+case 337:
+#line 2061 "wcsbth.l"
+case 338:
 YY_RULE_SETUP
-#line 1718 "wcsbth.l"
+#line 2061 "wcsbth.l"
 {
 	  /* Invalid combinations will be flagged by <VALUE>. */
 	  sscanf(wcsbthtext, "%d_%d", &n, &m);
@@ -19140,18 +23572,18 @@ YY_RULE_SETUP
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 265:
-#line 1728 "wcsbth.l"
-case 266:
+case 339:
+#line 2071 "wcsbth.l"
+case 340:
 YY_RULE_SETUP
-#line 1728 "wcsbth.l"
+#line 2071 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 267:
+case 341:
 YY_RULE_SETUP
-#line 1732 "wcsbth.l"
+#line 2075 "wcsbth.l"
 {
 	  if (relax & WCSHDR_PROJPn) {
 	    sscanf(wcsbthtext, "%d", &m);
@@ -19161,7 +23593,7 @@ YY_RULE_SETUP
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "PROJPn keyword is defunct";
+	    errmsg = "the PROJPn keyword is deprecated, use PVi_ma";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -19170,16 +23602,31 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 268:
+case 342:
+#line 2094 "wcsbth.l"
+case 343:
+YY_RULE_SETUP
+#line 2094 "wcsbth.l"
+{
+	  if (relax & (WCSHDR_PROJPn | WCSHDR_reject)) {
+	    errmsg = "invalid PROJPn keyword";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 344:
 YY_RULE_SETUP
-#line 1750 "wcsbth.l"
+#line 2104 "wcsbth.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 269:
+case 345:
 YY_RULE_SETUP
-#line 1754 "wcsbth.l"
+#line 2108 "wcsbth.l"
 {
 	  /* Do checks on i, j, m, n, k. */
 	  if (!(keytype & keysel)) {
@@ -19202,11 +23649,11 @@ YY_RULE_SETUP
 	    if (relax & WCSHDR_reject) {
 	      errmsg = errtxt;
 	      if (i > 99 || j > 99) {
-	        sprintf(errmsg, "Axis number exceeds 99");
+	        sprintf(errmsg, "axis number exceeds 99");
 	      } else if (m > 99) {
-	        sprintf(errmsg, "Parameter number exceeds 99");
+	        sprintf(errmsg, "parameter number exceeds 99");
 	      } else if (n > 999 || k > 999) {
-	        sprintf(errmsg, "Column number exceeds 999");
+	        sprintf(errmsg, "column number exceeds 999");
 	      }
 	      BEGIN(ERROR);
 	
@@ -19219,14 +23666,12 @@ YY_RULE_SETUP
 	    /* Skip keyvalues that won't be inherited. */
 	    BEGIN(FLUSH);
 	
-	  } else if (ipass == 3 && (keytype & IMGHEAD)) {
-	    /* IMGHEAD keytypes are always dealt with on the second pass. */
-	    BEGIN(FLUSH);
-	
-	  } else if (vptr) {
-	    alts.icol = 0;
-	    alts.ialt = 0;
-	    voff = (char *)vptr - (char *)(&wcstem);
+	  } else {
+	    if (ipass == 3 && (keytype & IMGHEAD)) {
+	      /* IMGHEAD keytypes are always dealt with on the second pass. */
+	      /* However, they must be re-parsed in order to report errors. */
+	      vptr = 0x0;
+	    }
 	
 	    if (valtype == INTEGER) {
 	      BEGIN(INTEGER_VAL);
@@ -19236,256 +23681,328 @@ YY_RULE_SETUP
 	      BEGIN(STRING_VAL);
 	    } else {
 	      errmsg = errtxt;
-	      sprintf(errmsg, "Internal parser ERROR, bad data type: %d",
+	      sprintf(errmsg, "internal parser ERROR, bad data type: %d",
 	        valtype);
 	      BEGIN(ERROR);
 	    }
-	
-	  } else {
-	    errmsg = "Internal parser ERROR, null pointer";
-	    BEGIN(ERROR);
 	  }
 	}
 	YY_BREAK
-case 270:
+case 346:
 YY_RULE_SETUP
-#line 1821 "wcsbth.l"
+#line 2169 "wcsbth.l"
 {
-	  errmsg = "Invalid KEYWORD = VALUE syntax";
+	  errmsg = "invalid KEYWORD = VALUE syntax";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 271:
+case 347:
 YY_RULE_SETUP
-#line 1826 "wcsbth.l"
+#line 2174 "wcsbth.l"
 {
 	  if (ipass == 1) {
-	    /* Do first-pass bookkeeping. */
-	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
-	    BEGIN(FLUSH);
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    /* Update each coordinate representation. */
-	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
-	
-	      /* Read the keyvalue. */
-	      if (special) {
-	        special(wptr);
-	      } else {
-	        sscanf(wcsbthtext, "%d", (int *)wptr);
-	      }
-	    }
+	    /* Read the keyvalue. */
+	    sscanf(wcsbthtext, "%d", &inttmp);
 	
 	    BEGIN(COMMENT);
 	  }
 	}
 	YY_BREAK
-case 272:
+case 348:
 YY_RULE_SETUP
-#line 1849 "wcsbth.l"
+#line 2186 "wcsbth.l"
 {
-	  errmsg = "An integer value was expected";
+	  errmsg = "an integer value was expected";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 273:
+case 349:
 YY_RULE_SETUP
-#line 1854 "wcsbth.l"
+#line 2191 "wcsbth.l"
 {
 	  if (ipass == 1) {
-	    /* Do first-pass bookkeeping. */
-	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
-	    BEGIN(FLUSH);
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    /* Update each coordinate representation. */
-	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
+	    /* Read the keyvalue. */
+	    wcsutil_str2double(wcsbthtext, "%lf", &dbltmp);
 	
-	      /* Apply keyword parameterization. */
-	      if (ptype == 'v') {
-	        ipx = wcsp->npv++;
-	        wcsp->pv[ipx].i = i;
-	        wcsp->pv[ipx].m = m;
-	        wptr = &(wcsp->pv[ipx].value);
+	    BEGIN(COMMENT);
+	  }
+	}
+	YY_BREAK
+case 350:
+YY_RULE_SETUP
+#line 2203 "wcsbth.l"
+{
+	  errmsg = "a floating-point value was expected";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 351:
+/* rule 351 can match eol */
+YY_RULE_SETUP
+#line 2208 "wcsbth.l"
+{
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
-	      } else if (j) {
-	        /* Is the de-reference necessary? */
-	        wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis) + (j - 1);
+	  } else {
+	    /* Read the keyvalue. */
+	      strcpy(strtmp, wcsbthtext+1);
 	
-	      } else if (i) {
-	        wptr = *((double **)wptr) + (i - 1);
+	    /* Squeeze out repeated quotes. */
+	    ix = 0;
+	    for (jx = 0; jx < 72; jx++) {
+	      if (ix < jx) {
+	        strtmp[ix] = strtmp[jx];
 	      }
 	
-	      /* Read the keyvalue. */
-	      if (special) {
-	        special(wptr);
-	      } else {
-	        wcsutil_str2double(wcsbthtext, "%lf", (double *)wptr);
+	      if (strtmp[jx] == '\0') {
+	        if (ix) strtmp[ix-1] = '\0';
+	        break;
+	      } else if (strtmp[jx] == '\'' && strtmp[jx+1] == '\'') {
+	        jx++;
 	      }
 	
-	      /* Flag the presence of PC, or CD and/or CROTA. */
-	      if (altlin) {
-	        wcsp->altlin |= altlin;
-	        altlin = 0;
-	      }
+	      ix++;
 	    }
 	
 	    BEGIN(COMMENT);
 	  }
 	}
 	YY_BREAK
-case 274:
+case 352:
 YY_RULE_SETUP
-#line 1898 "wcsbth.l"
+#line 2237 "wcsbth.l"
 {
-	  errmsg = "A floating-point value was expected";
+	  errmsg = "a string value was expected";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 275:
-/* rule 275 can match eol */
+case 353:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1903 "wcsbth.l"
+#line 2242 "wcsbth.l"
 {
 	  if (ipass == 1) {
 	    /* Do first-pass bookkeeping. */
 	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
 	    BEGIN(FLUSH);
 	
-	  } else {
+	  } else if (*wcs) {
+	    /* Store the value now that the keyrecord has been validated. */
+	    alts.icol = 0;
+	    alts.ialt = 0;
+	
 	    /* Update each coordinate representation. */
+	    gotone = 0;
 	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
+	      gotone = 1;
 	
-	      /* Apply keyword parameterization. */
-	      if (ptype == 's') {
-	        ipx = wcsp->nps++;
-	        wcsp->ps[ipx].i = i;
-	        wcsp->ps[ipx].m = m;
-	        wptr = wcsp->ps[ipx].value;
+	      if (vptr) {
+	        voff = (char *)vptr - (char *)(&wcstem);
+	        wptr = (void *)((char *)wcsp + voff);
 	
-	      } else if (j) {
-	        wptr = *((char (**)[72])wptr) +
-	                (i - 1)*(wcsp->naxis) + (j - 1);
+	        if (valtype == INTEGER) {
+	          *((int *)wptr) = inttmp;
 	
-	      } else if (i) {
-	        wptr = *((char (**)[72])wptr) + (i - 1);
-	      }
+	        } else if (valtype == FLOAT) {
+	          /* Apply keyword parameterization. */
+	          if (ptype == 'v') {
+	            ipx = (wcsp->npv)++;
+	            wcsp->pv[ipx].i = i;
+	            wcsp->pv[ipx].m = m;
+	            wptr = &(wcsp->pv[ipx].value);
+	
+	          } else if (j) {
+	            wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis)
+	                                      + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((double **)wptr) + (i - 1);
+	          }
+	
+	          if (special) {
+	            special(wptr, dbltmp);
+	          } else {
+	            *((double *)wptr) = dbltmp;
+	          }
+	
+	          /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
+	          if (altlin) {
+	            wcsp->altlin |= altlin;
+	            altlin = 0;
+	          }
+	
+	        } else if (valtype == STRING) {
+	          /* Apply keyword parameterization. */
+	          if (ptype == 's') {
+	            ipx = wcsp->nps++;
+	            wcsp->ps[ipx].i = i;
+	            wcsp->ps[ipx].m = m;
+	            wptr = wcsp->ps[ipx].value;
+	
+	          } else if (j) {
+	            wptr = *((char (**)[72])wptr) +
+	                    (i - 1)*(wcsp->naxis) + (j - 1);
 	
-	      /* Read the keyvalue. */
-	      cptr = (char *)wptr;
-	      strcpy(cptr, wcsbthtext+1);
+	          } else if (i) {
+	            wptr = *((char (**)[72])wptr) + (i - 1);
+	          }
 	
-	      /* Squeeze out repeated quotes. */
-	      ix = 0;
-	      for (jx = 0; jx < 72; jx++) {
-	        if (ix < jx) {
-	          cptr[ix] = cptr[jx];
+	          cptr = (char *)wptr;
+	          strcpy(cptr, strtmp);
 	        }
+	      }
+	    }
 	
-	        if (cptr[jx] == '\0') {
-	          if (ix) cptr[ix-1] = '\0';
-	          break;
-	        } else if (cptr[jx] == '\'' && cptr[jx+1] == '\'') {
-	          jx++;
+	    if (ipass == npass) {
+	      if (gotone) {
+	        nvalid++;
+	        if (ctrl == 4) {
+	          wcsfprintf(stderr,
+	            "%.80s\n  Accepted (%d) as a valid WCS keyrecord.\n",
+	            keyrec, nvalid);
 	        }
 	
-	        ix++;
+	        BEGIN(FLUSH);
+	
+	      } else {
+	        errmsg = "syntactically valid WCS keyrecord has no effect";
+	        BEGIN(ERROR);
 	      }
+	
+	    } else {
+	      BEGIN(FLUSH);
 	    }
 	
-	    BEGIN(COMMENT);
+	  } else {
+	    BEGIN(FLUSH);
 	  }
 	}
 	YY_BREAK
-case 276:
+case 354:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1955 "wcsbth.l"
+#line 2340 "wcsbth.l"
 {
-	  errmsg = "A string value was expected";
+	  errmsg = "invalid keyvalue";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 277:
-#line 1961 "wcsbth.l"
-case 278:
+case 355:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1961 "wcsbth.l"
+#line 2345 "wcsbth.l"
 {
-	  BEGIN(FLUSH);
+	  errmsg = "invalid keyvalue";
+	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 279:
+case 356:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1965 "wcsbth.l"
+#line 2350 "wcsbth.l"
 {
-	  errmsg = "Malformed keycomment";
+	  errmsg = "invalid keyvalue or malformed keycomment";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 280:
+case 357:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
+YY_RULE_SETUP
+#line 2355 "wcsbth.l"
+{
+	  errmsg = "malformed keycomment";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 358:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1970 "wcsbth.l"
+#line 2360 "wcsbth.l"
 {
 	  if (ipass == npass) {
 	    if (ctrl < 0) {
 	      /* Preserve discards. */
-	      if (hptr < wcsbth_hdr-80) {
-	        strncpy(hptr, wcsbth_hdr-80, 80);
-	      }
-	      hptr += 80;
+	      keep = keyrec;
 	
-	    } else if (ctrl > 2) {
-	      wcsfprintf(stderr, "%.80s\n  Discarded.\n", wcsbth_hdr-80);
+	    } else if (2 < ctrl) {
+	      nother++;
+	      wcsfprintf(stderr, "%.80s\n  Not a recognized WCS keyword.\n",
+	        keyrec);
 	    }
 	  }
-	
 	  BEGIN(FLUSH);
 	}
 	YY_BREAK
-case 281:
+case 359:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcsbthtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcsbthtext again */
 YY_RULE_SETUP
-#line 1987 "wcsbth.l"
+#line 2375 "wcsbth.l"
 {
-	  (*nreject)++;
 	  if (ipass == npass) {
-	    if (ctrl == -1) {
-	      if (hptr < wcsbth_hdr-80) {
-	        /* Preserve rejects. */
-	        strncpy(hptr, wcsbth_hdr-80, 80);
-	      }
-	      hptr += 80;
+	    (*nreject)++;
+	
+	    if (ctrl%10 == -1) {
+	      keep = keyrec;
 	    }
 	
-	    if (abs(ctrl) > 1) {
-	      wcsfprintf(stderr, "%.80s\n%4d: %s.\n", wcsbth_hdr-80, *nreject,
-	        errmsg);
+	    if (1 < abs(ctrl%10)) {
+	      wcsfprintf(stderr, "%.80s\n  Rejected (%d), %s.\n",
+	        keyrec, *nreject, errmsg);
 	    }
 	  }
-	
 	  BEGIN(FLUSH);
 	}
 	YY_BREAK
-case 282:
-/* rule 282 can match eol */
+case 360:
+/* rule 360 can match eol */
 YY_RULE_SETUP
-#line 2007 "wcsbth.l"
+#line 2391 "wcsbth.l"
 {
+	  if (ipass == npass && keep) {
+	    if (hptr < keep) {
+	      strncpy(hptr, keep, 80);
+	    }
+	    hptr += 80;
+	  }
+	
 	  /* Throw away the rest of the line and reset for the next one. */
 	  i = j = 0;
 	  n = k = 0;
 	  m = 0;
 	  a = ' ';
 	
+	  keyrec += 80;
+	
 	  keytype =  0;
 	  valtype = -1;
 	  vptr    = 0x0;
+	  keep    = 0x0;
 	
-	  altlin = 0;
-	  ptype  = ' ';
+	  altlin  = 0;
+	  ptype   = ' ';
 	  special = 0x0;
+	
 	  BEGIN(INITIAL);
 	}
 	YY_BREAK
@@ -19522,30 +24039,34 @@ case YY_STATE_EOF(COMMENT):
 case YY_STATE_EOF(DISCARD):
 case YY_STATE_EOF(ERROR):
 case YY_STATE_EOF(FLUSH):
-#line 2024 "wcsbth.l"
+#line 2419 "wcsbth.l"
 {
 	  /* End-of-input. */
 	  if (ipass == 1) {
-	    if ((status = wcsbth_init1(&alts, nwcs, wcs)) || *nwcs == 0) {
+	    if ((status = wcsbth_init1(&alts, nwcs, wcs)) ||
+	        (*nwcs == 0 && ctrl == 0)) {
 	      wcsbthlex_destroy();
 	      return status;
 	    }
 	
-	    if (alts.imgherit) npass = 3;
-	
-	    if (abs(ctrl) > 2) {
+	    if (2 < abs(ctrl%10)) {
 	      if (*nwcs == 1) {
-	        wcsfprintf(stderr, "Found one coordinate representation.\n");
+	        if (strcmp(wcs[0]->wcsname, "DEFAULTS") != 0) {
+	          wcsfprintf(stderr, "Found one coordinate representation.\n");
+	        }
 	      } else {
 	        wcsfprintf(stderr, "Found %d coordinate representations.\n",
 	          *nwcs);
 	      }
 	    }
+	
+	    if (alts.imgherit) npass = 3;
 	  }
 	
 	  if (ipass++ < npass) {
 	    wcsbth_hdr = header;
 	    wcsbth_nkeyrec = nkeyrec;
+	    keyrec = header;
 	    *nreject = 0;
 	
 	    i = j = 0;
@@ -19569,20 +24090,28 @@ case YY_STATE_EOF(FLUSH):
 	    if (ctrl < 0) {
 	      *hptr = '\0';
 	    } else if (ctrl == 1) {
-	      wcsfprintf(stderr, "%d WCS keyrecords were rejected.\n",
-	        *nreject);
+	      wcsfprintf(stderr, "%d WCS keyrecord%s rejected.\n",
+	        *nreject, (*nreject==1)?" was":"s were");
+	    } else if (ctrl == 4) {
+	      wcsfprintf(stderr, "\n");
+	      wcsfprintf(stderr, "%5d keyrecord%s rejected for syntax or "
+	        "other errors,\n", *nreject, (*nreject==1)?" was":"s were");
+	      wcsfprintf(stderr, "%5d %s recognized as syntactically valid, "
+	        "and\n", nvalid, (nvalid==1)?"was":"were");
+	      wcsfprintf(stderr, "%5d other%s were not recognized as WCS "
+	        "keyrecords.\n", nother, (nother==1)?"":"s");
 	    }
 	
 	    return wcsbth_final(&alts, nwcs, wcs);
 	  }
 	}
 	YY_BREAK
-case 283:
+case 361:
 YY_RULE_SETUP
-#line 2078 "wcsbth.l"
+#line 2485 "wcsbth.l"
 ECHO;
 	YY_BREAK
-#line 19586 "wcsbth.c"
+#line 24115 "wcsbth.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -20572,7 +25101,7 @@ void wcsbthfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 2078 "wcsbth.l"
+#line 2485 "wcsbth.l"
 
 
 
@@ -20810,7 +25339,7 @@ int wcsbth_init1(
         /* ...but not if the IMGHEAD keywords will be inherited. */
         alts->arridx[0][ialt] = 0;
         alts->imgherit = 1;
-      } else {
+      } else if (alts->arridx[0][ialt] > 0) {
         (*nwcs)++;
       }
     }
@@ -20837,7 +25366,7 @@ int wcsbth_init1(
     *nwcs = 0;
     for (icol = 0; icol <= ncol; icol++) {
       for (ialt = 0; ialt < 27; ialt++) {
-        if (alts->arridx[icol][ialt]) {
+        if (alts->arridx[icol][ialt] > 0) {
           /* Image-header representations that are not for inheritance
              (icol == 0) or binary table image array representations. */
           wcsp->flag = -1;
@@ -20994,18 +25523,15 @@ int wcsbth_colax(
 
 
 /*----------------------------------------------------------------------------
-* Interpret EPOCH keywords.
+* Interpret EPOCHa keywords.
 *---------------------------------------------------------------------------*/
 
-int wcsbth_epoch(void *wptr)
+int wcsbth_epoch(double *equinox, double epoch)
 
 {
-  double *equinox;
-
   /* If EQUINOXa is currently undefined then set it from EPOCHa. */
-  equinox = (double *)wptr;
   if (undefined(*equinox)) {
-    wcsutil_str2double(wcsbthtext, "%lf", equinox);
+    *equinox = epoch;
   }
 
   return 0;
@@ -21013,19 +25539,16 @@ int wcsbth_epoch(void *wptr)
 
 
 /*----------------------------------------------------------------------------
-* Interpret VSOURCE keywords.
+* Interpret VSOURCEa keywords.
 *---------------------------------------------------------------------------*/
 
-int wcsbth_vsource(void *wptr)
+int wcsbth_vsource(double *zsource, double vsource)
 
 {
-  double beta, c = 299792458.0, vsource, *zsource;
+  double beta, c = 299792458.0;
 
   /* If ZSOURCEa is currently undefined then set it from VSOURCEa. */
-  zsource = (double *)wptr;
   if (undefined(*zsource)) {
-    wcsutil_str2double(wcsbthtext, "%lf", &vsource);
-
     /* Convert relativistic Doppler velocity to redshift. */
     beta = vsource/c;
     *zsource = (1.0 + beta)/sqrt(1.0 - beta*beta) - 1.0;
diff --git a/C/flexed/wcspih.c b/C/flexed/wcspih.c
index ac6b3d8..d770c95 100644
--- a/C/flexed/wcspih.c
+++ b/C/flexed/wcspih.c
@@ -434,7 +434,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        34,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
-       49,   49,   49,   49,   49,   49,   49,   49,   49,   50,
+       49,   49,   49,   49,   49,   49,   49,   49,   50,   50,
        50,   50,   50,   50,   50,   50,   50,   50,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
@@ -451,7 +451,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        34,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
-       49,   49,   49,   49,   49,   49,   49,   49,   49,   50,
+       49,   49,   49,   49,   49,   49,   49,   49,   50,   50,
        50,   50,   50,   50,   50,   50,   50,   50,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
@@ -503,8 +503,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
        34,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-       53,   53,   53,   53,   53,   53,   53,   53,   53,   54,
-       54,   54,   54,   54,   54,   54,   54,   54,   53,   53,
+       53,   53,   53,   53,   53,   53,   53,   53,   54,   55,
+       55,   55,   55,   55,   55,   55,   55,   55,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
@@ -520,8 +520,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
        34,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-       53,   53,   53,   53,   53,   53,   53,   53,   53,   54,
-       54,   54,   54,   54,   54,   54,   54,   54,   53,   53,
+       53,   53,   53,   53,   53,   53,   53,   53,   54,   55,
+       55,   55,   55,   55,   55,   55,   55,   55,   53,   53,
 
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
@@ -533,122 +533,88 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       34,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
+       33,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       34,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
 
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   56,   57,
-       57,   57,   57,   57,   57,   57,   57,   57,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   57,   58,
+       58,   58,   58,   58,   58,   58,   58,   58,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56
 
     },
 
     {
-       33,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       34,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   56,   57,
-       57,   57,   57,   57,   57,   57,   57,   57,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
+       33,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       34,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   57,   58,
+       58,   58,   58,   58,   58,   58,   58,   58,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
 
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,   55
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56
     },
 
     {
-       33,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       34,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
-       59,   59,   59,   59,   59,   59,   59,   59,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
+       33,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       34,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   60,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
 
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59
     },
 
     {
-       33,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       34,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
+       33,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       34,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
 
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   59,
-       59,   59,   59,   59,   59,   59,   59,   59,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58
-    },
-
-    {
-       33,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-
-       34,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   61,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-       61,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60
-    },
-
-    {
-       33,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       34,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   61,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
-       61,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60
+       59,   59,   59,   59,   59,   59,   59,   59,   60,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59
     },
 
     {
        33,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       34,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
 
+       34,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62,   62,   63,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62,   62,   62,   62,   62,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62
     },
@@ -656,71 +622,70 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        33,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        34,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62,   62,   63,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62,   62,   62,   62,   62,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-
        62,   62,   62,   62,   62,   62,   62,   62
     },
 
     {
-       33,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       34,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   64,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       33,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       34,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64
     },
 
     {
-       33,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       34,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       33,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       34,   64,   64,   64,   64,   64,   64,   64,   64,   64,
 
-       63,   64,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64
     },
 
     {
        33,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        34,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   66,   65,   66,   65,   65,   67,   67,
-       67,   67,   67,   67,   67,   67,   67,   67,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
+       65,   66,   65,   65,   65,   65,   65,   65,   65,   65,
+       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
+
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65
-
     },
 
     {
@@ -728,100 +693,101 @@ static yyconst flex_int16_t yy_nxt[][128] =
        34,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-       65,   65,   65,   66,   65,   66,   65,   65,   67,   67,
-       67,   67,   67,   67,   67,   67,   67,   67,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
+
+       65,   66,   65,   65,   65,   65,   65,   65,   65,   65,
+       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
-
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
        65,   65,   65,   65,   65,   65,   65,   65
     },
 
     {
-       33,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       34,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   69,   68,   69,   70,   68,   71,   71,
-       71,   71,   71,   71,   71,   71,   71,   71,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       33,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       34,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   68,   67,   68,   67,   67,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67
 
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68
     },
 
     {
-       33,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       34,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       33,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       34,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   68,   67,   68,   67,   67,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
 
-       68,   68,   68,   69,   68,   69,   70,   68,   71,   71,
-       71,   71,   71,   71,   71,   71,   71,   71,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   68,   68,   68,   68
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67
     },
 
     {
-       33,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       33,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       34,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   71,   70,   71,   72,   70,   73,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
 
-       34,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   73,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70
     },
 
     {
-       33,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       34,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   73,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       33,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       34,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
 
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,   72,   72
+       70,   70,   70,   71,   70,   71,   72,   70,   73,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70
     },
 
     {
        33,   74,   74,   74,   74,   74,   74,   74,   74,   74,
+
        34,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   75,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   76,   74,   74,
-
+       74,   74,   74,   74,   74,   74,   74,   74,   74,   75,
+       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
+
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74
     },
@@ -829,122 +795,156 @@ static yyconst flex_int16_t yy_nxt[][128] =
     {
        33,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        34,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   75,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   76,   74,   74,
+       74,   74,   74,   74,   74,   74,   74,   74,   74,   75,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
+
+       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-
        74,   74,   74,   74,   74,   74,   74,   74
     },
 
     {
-       33,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       34,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       33,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       77,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   78,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   79,   76,   76,
+
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76
+    },
+
+    {
+       33,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       77,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   78,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   79,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
+
+       76,   76,   76,   76,   76,   76,   76,   76
+    },
+
+    {
+       33,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       81,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
 
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80
     },
 
     {
-       33,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       34,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       33,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       81,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
 
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   77,   77,   77
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
+       80,   80,   80,   80,   80,   80,   80,   80
     },
 
     {
-       33,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       34,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       33,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       83,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
 
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82
 
     },
 
     {
-       33,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       34,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       33,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       83,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
 
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
-       78,   78,   78,   78,   78,   78,   78,   78
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   82,   82,   82,   82,   82
     },
 
     {
-       33,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       80,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       33,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       85,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84
     },
 
     {
-       33,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       80,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       33,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       85,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
 
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,   79,   79,   79
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
+       84,   84,   84,   84,   84,   84,   84,   84
     },
 
     {
@@ -1007,9 +1007,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   81,  -36,
-      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   82,  -36,
-      -36,  -36,   83,   84,   85,   86,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   86,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   87,  -36,
+      -36,  -36,   88,   89,   90,   91,  -36,  -36,  -36,  -36,
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
       -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
@@ -1024,7 +1024,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
       -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
       -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
-      -37,  -37,  -37,  -37,  -37,   87,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,   92,  -37,  -37,  -37,  -37,
       -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
       -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
 
@@ -1043,8 +1043,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
 
       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
-      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,   88,  -38,
-       89,   90,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,   93,  -38,
+       94,   95,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
       -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
@@ -1059,8 +1059,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,   91,  -39,  -39,  -39,  -39,
-      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   92,
+      -39,  -39,  -39,  -39,  -39,   96,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   97,
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
       -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
@@ -1077,7 +1077,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
-      -40,  -40,  -40,  -40,   93,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,   98,  -40,  -40,  -40,  -40,  -40,
       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
       -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
 
@@ -1093,7 +1093,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
-      -41,  -41,  -41,  -41,  -41,   94,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,   99,  -41,  -41,  -41,  -41,
 
       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
       -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
@@ -1111,7 +1111,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
-      -42,  -42,  -42,  -42,  -42,  -42,   95,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  100,  -42,  -42,  -42,
       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
       -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
@@ -1128,9 +1128,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,  -43,  -43,  -43,  -43,  -43,   96,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  101,  -43,  -43,
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
-      -43,  -43,   97,   98,  -43,  -43,   99,  -43,  -43,  -43,
+      -43,  -43,  102,  103,  -43,  -43,  104,  -43,  -43,  -43,
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
       -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
 
@@ -1145,7 +1145,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
-      -44,  -44,  -44,  -44,  -44,  100,  -44,  -44,  -44,  101,
+      -44,  -44,  -44,  -44,  -44,  105,  -44,  -44,  -44,  106,
       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
 
       -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
@@ -1165,7 +1165,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
-      102,  -45,  -45,  103,  -45,  -45,  -45,  -45,  -45,  -45,
+      107,  -45,  -45,  108,  -45,  -45,  -45,  -45,  -45,  -45,
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
       -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
@@ -1180,9 +1180,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
-      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  104,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  109,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
-      -46,  -46,  -46,  105,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  110,  -46,  -46,  -46,  -46,  -46,  -46,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
       -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
@@ -1197,7 +1197,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
-      -47,  -47,  -47,  -47,  -47,  -47,  -47,  106,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  111,  -47,  -47,
       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
       -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
 
@@ -1217,7 +1217,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
-      -48,  -48,  -48,  107,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  112,  -48,  -48,  -48,  -48,  -48,  -48,
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
       -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
@@ -1246,13 +1246,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,  -50,  108,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
-      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  109,  109,
-      109,  109,  109,  109,  109,  109,  109,  109,  -50,  -50,
-      -50,  -50,  -50,  -50,  -50,  108,  108,  108,  108,  108,
-      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
-      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
-      108,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  113,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  114,  114,
+      114,  114,  114,  114,  114,  114,  114,  114,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
 
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
       -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
@@ -1280,10 +1280,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  110,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  115,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
 
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
-      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  -52,  -52,
       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
       -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
@@ -1315,14 +1315,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  111,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  112,  112,
-      112,  112,  112,  112,  112,  112,  112,  112,  -54,  -54,
-      -54,  -54,  -54,  -54,  -54,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  117,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  118,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
       -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
@@ -1332,14 +1332,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
-      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  120,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  121,  121,
+
+      121,  121,  121,  121,  121,  121,  121,  121,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+      120,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
       -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55
@@ -1351,8 +1351,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
-      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  113,  113,
-      113,  113,  113,  113,  113,  113,  113,  113,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
       -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
@@ -1368,13 +1368,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
-      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  122,  -57,  -57,  123,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
 
-      -57,  -57,  -57,  -57,  -57,  115,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  125,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
       -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
@@ -1385,13 +1385,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  122,  -58,  -58,  126,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  -58,  -58,
 
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
-      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  127,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
       -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58
@@ -1403,12 +1403,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
 
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
-      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  116,  116,
-      116,  116,  116,  116,  116,  116,  116,  116,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
-      -59,  -59,  -59,  -59,  -59,  117,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
       -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59
@@ -1420,12 +1420,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  128,  -60,  -60,  129,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
-      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
-      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
-      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  131,  -60,  -60,  -60,  -60,
 
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
       -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
@@ -1437,13 +1437,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  128,  -61,  -61,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
 
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
-      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  133,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
       -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61
@@ -1488,7 +1488,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
-      -64,  -64,  118,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
       -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
@@ -1523,9 +1523,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
 
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  134,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
-      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
       -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
@@ -1541,8 +1541,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
-      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
       -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
@@ -1558,8 +1558,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
-      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  -68,  -68,
 
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
       -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
@@ -1576,8 +1576,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
 
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
-      -69,  -69,  -69,  -69,  -69,  -69,  120,  -69,  121,  121,
-      121,  121,  121,  121,  121,  121,  121,  121,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  -69,  -69,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
       -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
@@ -1593,8 +1593,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
-      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
       -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
@@ -1610,14 +1610,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
-      -71,  -71,  -71,  -71,  -71,  -71,  123,  -71,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  -71,  -71,
-      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  125,
+      -71,  -71,  -71,  -71,  -71,  -71,  136,  -71,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
 
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
-      -71,  125,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
       -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71
     },
@@ -1628,8 +1628,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
 
-      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
-      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
       -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
@@ -1640,21 +1640,21 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+       33,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
 
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  127,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  139,  -73,  140,  140,
+      140,  140,  140,  140,  140,  140,  140,  140,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  141,  141,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      141,  141,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
 
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73
     },
 
     {
@@ -1675,107 +1675,107 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  128,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  129,  -75,  -75,
+       33,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  143,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
 
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
-      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142
     },
 
     {
-       33,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      -76,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+       33,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
 
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  146,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  147,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
 
-      130,  130,  130,  130,  130,  130,  130,  130
+      144,  144,  144,  144,  144,  144,  144,  144
     },
 
     {
-       33,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      -77,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+       33,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
 
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77
     },
 
     {
-       33,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      -78,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+       33,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      149,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  150,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  151,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
 
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
+      148,  148,  148,  148,  148,  148,  148,  148
     },
 
     {
-       33,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      134,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+       33,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133
+      152,  152,  154,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  155,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
 
     },
 
     {
-       33,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+       33,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      157,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
 
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
-      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156
     },
 
     {
@@ -1785,7 +1785,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
-      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  135,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
 
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
       -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
@@ -1796,20 +1796,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+       33,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      159,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
 
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  136,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
-      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158
     },
 
     {
@@ -1820,9 +1820,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  137,  -83,
-      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  138,
-      139,  -83,  -83,  -83,  -83,  -83,  140,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
       -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
 
@@ -1831,20 +1831,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+       33,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      161,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  141,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
-      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160
     },
 
     {
@@ -1857,7 +1857,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
-      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  142,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
       -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
@@ -1872,8 +1872,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  162,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
-      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  143,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
       -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
@@ -1889,9 +1889,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  163,  -87,  -87,  -87,  -87,
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
-      -87,  -87,  -87,  -87,  144,  -87,  -87,  -87,  -87,  -87,
 
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
       -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
@@ -1907,9 +1907,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
 
-      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  145,  -88,
-      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
-      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  164,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  165,
+      166,  -88,  -88,  -88,  -88,  -88,  167,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
       -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
@@ -1925,8 +1925,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
-      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  146,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  168,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
       -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
@@ -1943,7 +1943,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
-      -90,  -90,  -90,  -90,  -90,  147,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  169,
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
 
       -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
@@ -1960,8 +1960,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
 
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  170,  -91,
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
-      -91,  -91,  -91,  -91,  148,  -91,  -91,  -91,  -91,  -91,
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
       -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
@@ -1977,8 +1977,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
-      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  149,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  171,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
       -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
@@ -1993,7 +1993,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
-      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  150,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  172,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
       -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
@@ -2011,9 +2011,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  173,
 
-      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  151,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
       -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
@@ -2030,7 +2030,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
-      -95,  -95,  -95,  152,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  174,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
       -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
@@ -2047,7 +2047,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
-      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  175,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
       -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
@@ -2063,7 +2063,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
-      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  153,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  176,  -97,
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
 
       -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
@@ -2080,7 +2080,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
 
-      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  177,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
       -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
@@ -2099,7 +2099,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
-      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  178,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
       -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
@@ -2114,9 +2114,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-     -100, -100, -100, -100, -100, -100, -100, -100,  154, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100,  179, -100, -100, -100, -100, -100, -100,
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
 
      -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
@@ -2134,7 +2134,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
 
      -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-     -101, -101, -101,  155, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
      -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
      -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
      -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
@@ -2149,8 +2149,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
-     -102, -102, -102, -102, -102, -102, -102, -102, -102,  156,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102,  180,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
      -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
@@ -2168,7 +2168,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
      -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
      -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
-     -103, -103, -103, -103, -103, -103, -103, -103, -103,  157,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
      -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
      -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
 
@@ -2184,7 +2184,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-     -104, -104, -104, -104, -104, -104,  158, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
 
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
      -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
@@ -2201,8 +2201,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
 
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105,  181, -105,
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-     -105, -105, -105, -105, -105, -105, -105, -105, -105,  159,
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
      -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
@@ -2220,7 +2220,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-     -106, -106, -106,  160, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106,  182, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
      -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
@@ -2235,8 +2235,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107,  183,
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
-     -107, -107, -107, -107, -107, -107, -107, -107, -107,  161,
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
 
      -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
@@ -2249,13 +2249,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-     -108, -108,  162, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108,  184,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
      -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
@@ -2267,13 +2267,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
      -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
 
-     -109, -109,  163, -109, -109, -109, -109, -109, -109, -109,
-     -109, -109, -109, -109, -109, -109, -109, -109,  164,  164,
-      164,  164,  164,  164,  164,  164,  164,  164, -109, -109,
-     -109, -109, -109, -109, -109,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109,  185, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
      -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
      -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
      -109, -109, -109, -109, -109, -109, -109, -109
@@ -2284,11 +2284,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-     -110, -110,  165, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110,  186,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
      -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
 
@@ -2301,13 +2301,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-     -111, -111,  166, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111,  187, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
      -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
@@ -2318,14 +2318,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-     -112, -112,  167, -112, -112, -112, -112, -112, -112, -112,
-
-     -112, -112, -112, -112, -112, -112, -112, -112,  168,  168,
-      168,  168,  168,  168,  168,  168,  168,  168, -112, -112,
-     -112, -112, -112, -112, -112,  167,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
-      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
-      167, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112,  188,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
      -112, -112, -112, -112, -112, -112, -112, -112
@@ -2336,9 +2336,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113,  189, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-     -113, -113, -113, -113, -113, -113, -113, -113,  169,  169,
-      169,  169,  169,  169,  169,  169,  169,  169, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
      -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
@@ -2353,14 +2353,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114, -114, -114, -114,  170,  170,
-      170,  170,  170,  170,  170,  170,  170,  170, -114, -114,
-     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-
-     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-     -114, -114, -114, -114, -114,  171, -114, -114, -114, -114,
+     -114, -114,  190, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191, -114, -114,
+     -114, -114, -114, -114, -114,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
      -114, -114, -114, -114, -114, -114, -114, -114
@@ -2370,10 +2370,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115,  192, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-     -115, -115, -115, -115, -115, -115, -115, -115, -115,  172,
 
-      172,  172,  172,  172,  172,  172,  172,  172, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
      -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
@@ -2388,13 +2388,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
 
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116,  193, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116, -116, -116, -116, -116, -116,  173,  173,
-      173,  173,  173,  173,  173,  173,  173,  173, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-     -116, -116, -116, -116, -116,  174, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
      -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
 
@@ -2405,9 +2405,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117,  195, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-     -117, -117, -117, -117, -117, -117, -117, -117,  175,  176,
-      176,  176,  176,  176,  176,  176,  176,  176, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
      -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
@@ -2422,14 +2422,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118,  118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118,  196, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118,  197,  198,
+      198,  198,  198,  198,  198,  198,  198,  198, -118, -118,
+
+     -118, -118, -118, -118, -118,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
+      196, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
      -118, -118, -118, -118, -118, -118, -118, -118
@@ -2440,13 +2440,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
 
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119,  119,  119,
-      119,  119,  119,  119,  119,  119,  119,  119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119,  199, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119,  197,  197,
+      197,  197,  197,  197,  197,  197,  197,  197, -119, -119,
+     -119, -119, -119, -119, -119,  199,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
      -119, -119, -119, -119, -119, -119, -119, -119
@@ -2457,9 +2457,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120,  200, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-     -120, -120, -120, -120, -120, -120, -120, -120,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
      -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
@@ -2474,16 +2474,16 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121,  123, -121,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121,  125,
-
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121,  201, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121,  197,  197,
+      197,  197,  197,  197,  197,  197,  197,  197, -121, -121,
+     -121, -121, -121, -121, -121,  201,  201,  201,  201,  201,
+
+      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
+      201, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121,  125, -121, -121, -121, -121, -121, -121, -121, -121,
-     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
      -121, -121, -121, -121, -121, -121, -121, -121
     },
 
@@ -2493,13 +2493,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
 
-     -122, -122, -122, -122, -122, -122, -122, -122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122,  122, -122, -122,
-     -122, -122, -122, -122, -122, -122, -122, -122, -122,  125,
+     -122, -122, -122, -122, -122, -122, -122, -122,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-     -122,  125, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
      -122, -122, -122, -122, -122, -122, -122, -122
     },
@@ -2510,13 +2510,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123, -123, -123, -123, -123, -123, -123, -123,  177,  177,
-      177,  177,  177,  177,  177,  177,  177,  177, -123, -123,
-     -123, -123, -123, -123, -123, -123, -123, -123, -123,  125,
+     -123, -123, -123, -123, -123,  203, -123, -123,  204,  205,
+      205,  205,  205,  205,  205,  205,  205,  205, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123,  206, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-     -123,  125, -123, -123, -123, -123, -123, -123, -123, -123,
 
      -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
      -123, -123, -123, -123, -123, -123, -123, -123
@@ -2527,14 +2527,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124, -124, -124, -124, -124, -124,  123, -124,  124,  124,
-      124,  124,  124,  124,  124,  124,  124,  124, -124, -124,
-     -124, -124, -124, -124, -124, -124, -124, -124, -124,  125,
+     -124, -124, -124, -124, -124,  203, -124, -124,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
 
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124,  208, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-     -124,  125, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
      -124, -124, -124, -124, -124, -124, -124, -124
     },
@@ -2544,9 +2544,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-     -125, -125, -125,  178, -125,  178, -125, -125,  179,  179,
+     -125, -125, -125, -125, -125, -125, -125, -125,  209,  209,
 
-      179,  179,  179,  179,  179,  179,  179,  179, -125, -125,
+      209,  209,  209,  209,  209,  209,  209,  209, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
      -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
@@ -2557,30 +2557,30 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+       33, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  127,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126,  203, -126, -126,  210,  210,
+      210,  210,  210,  210,  210,  210,  210,  210, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126,  211, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
 
-      126,  126,  126,  126,  126,  126,  126,  126
+     -126, -126, -126, -126, -126, -126, -126, -126
     },
 
     {
        33, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-     -127, -127, -127, -127, -127, -127, -127, -127, -127,  126,
-     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127,  212,  213,
+      213,  213,  213,  213,  213,  213,  213,  213, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
      -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
@@ -2595,9 +2595,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128,  128, -128, -128, -128, -128, -128, -128, -128,
-     -128, -128, -128, -128, -128, -128, -128,  129, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128,  214,  214,
+      214,  214,  214,  214,  214,  214,  214,  214, -128, -128,
 
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
      -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
@@ -2609,97 +2609,97 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-     -129,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+       33, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
 
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129,  215, -129, -129,  216,  217,
+      217,  217,  217,  217,  217,  217,  217,  217, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129,  218, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129
 
     },
 
     {
-       33,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-     -130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+       33, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130,  215, -130, -130,  219,  219,
+      219,  219,  219,  219,  219,  219,  219,  219, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130,  220, -130, -130, -130, -130,
 
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
-      130,  130,  130,  130,  130,  130,  130,  130
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130
     },
 
     {
-       33,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-     -131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+       33, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131,  221,  221,
+      221,  221,  221,  221,  221,  221,  221,  221, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
 
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131
     },
 
     {
-       33,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-     -132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+       33, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
 
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132
+     -132, -132, -132, -132, -132,  215, -132, -132,  222,  222,
+      222,  222,  222,  222,  222,  222,  222,  222, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132,  223, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132
     },
 
     {
-       33,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+       33, -133, -133, -133, -133, -133, -133, -133, -133, -133,
 
-      134,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133,  224,  225,
+      225,  225,  225,  225,  225,  225,  225,  225, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
 
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133
     },
 
     {
        33, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134,  134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
      -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
@@ -2717,11 +2717,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135,  135,  135,
 
+      135,  135,  135,  135,  135,  135,  135,  135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-     -135, -135, -135, -135, -135, -135,  180, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
      -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
@@ -2735,11 +2735,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-     -136, -136, -136, -136, -136, -136, -136,  181, -136, -136,
-     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
      -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
@@ -2752,14 +2752,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137,  182,
+     -137, -137, -137, -137, -137, -137,  139, -137,  140,  140,
+      140,  140,  140,  140,  140,  140,  140,  140, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137,  141,  141,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
 
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+      141,  141, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
      -137, -137, -137, -137, -137, -137, -137, -137
     },
@@ -2769,14 +2769,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138,  138,  138,
+      138,  138,  138,  138,  138,  138,  138,  138, -138, -138,
 
+     -138, -138, -138, -138, -138, -138, -138, -138,  141,  141,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138,  183, -138, -138, -138, -138, -138,
-     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+      141,  141, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
      -138, -138, -138, -138, -138, -138, -138, -138
     },
@@ -2787,13 +2787,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
 
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139,  226,  226,
+      226,  226,  226,  226,  226,  226,  226,  226, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139,  141,  141,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139,  184, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+      141,  141, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
      -139, -139, -139, -139, -139, -139, -139, -139
 
@@ -2804,14 +2804,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-     -140, -140, -140, -140, -140,  185, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140,  139, -140,  140,  140,
+      140,  140,  140,  140,  140,  140,  140,  140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140,  141,  141,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
 
-     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+      141,  141, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
      -140, -140, -140, -140, -140, -140, -140, -140
     },
@@ -2821,9 +2821,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141,  227, -141,  227, -141, -141,  228,  228,
+      228,  228,  228,  228,  228,  228,  228,  228, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-     -141, -141, -141, -141, -141, -141, -141, -141, -141,  186,
 
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
      -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
@@ -2834,20 +2834,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+       33,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  143,
 
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-      187, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-     -142, -142, -142, -142, -142, -142, -142, -142
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142
     },
 
     {
@@ -2855,11 +2855,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143,  142,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-     -143, -143, -143,  188, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
      -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
@@ -2869,27 +2869,27 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144,  189,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+       33,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  146,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  147,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
 
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-     -144, -144, -144, -144, -144, -144, -144, -144
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144
     },
 
     {
        33, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-     -145, -145,  190, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
 
      -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
@@ -2903,55 +2903,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+       33,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      145,  229,  229,  229,  229,  229,  229,  229,  229,  229,
 
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146,  191, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  146,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  147,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
 
-     -146, -146, -146, -146, -146, -146, -146, -146
+      229,  229,  229,  229,  229,  229,  229,  229
     },
 
     {
-       33, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147,  192, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+       33,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      231,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  232,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  233,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
 
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-     -147, -147, -147, -147, -147, -147, -147, -147
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230
     },
 
     {
-       33, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+       33,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      235,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  236,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  237,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
 
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-      193, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-     -148, -148, -148, -148, -148, -148, -148, -148
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234
     },
 
     {
@@ -2964,7 +2964,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-      194, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
      -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
@@ -2973,54 +2973,54 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150,  195, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+       33,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      239,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  240,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  241,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
 
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-     -150, -150, -150, -150, -150, -150, -150, -150
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238
     },
 
     {
-       33, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+       33,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  154,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  155,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-     -151, -151, -151,  196, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-     -151, -151, -151, -151, -151, -151, -151, -151
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
-       33, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+       33,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  154,  152,  152,  152,  152,  152,  152,  152,
 
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152,  197, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-     -152, -152, -152, -152, -152, -152, -152, -152
+      152,  152,  152,  152,  152,  152,  152,  155,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
@@ -3032,7 +3032,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-     -153, -153, -153, -153,  198, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
      -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
@@ -3042,55 +3042,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154,  199,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+       33,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  154,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  155,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
 
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
-     -154, -154, -154, -154, -154, -154, -154, -154
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
-       33, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+       33,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      153,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  154,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  155,  152,  152,
 
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155,  200, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-     -155, -155, -155, -155, -155, -155, -155, -155
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
+      152,  152,  152,  152,  152,  152,  152,  152
     },
 
     {
-       33, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+       33,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      157,  156,  156,  156,  156,  156,  156,  156,  156,  156,
 
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156,  201, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
 
-     -156, -156, -156, -156, -156, -156, -156, -156
+      156,  156,  156,  156,  156,  156,  156,  156
     },
 
     {
@@ -3102,7 +3102,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
-     -157, -157, -157,  202, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
 
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
      -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
@@ -3111,20 +3111,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+       33,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      159,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
 
-     -158, -158, -158, -158, -158,  203, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158,  204,
-     -158, -158,  205, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
-     -158, -158, -158, -158, -158, -158, -158, -158
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158
     },
 
     {
@@ -3137,7 +3137,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
-     -159, -159, -159, -159, -159,  206, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
      -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
@@ -3146,20 +3146,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160,  207, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160,  208, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+       33,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      161,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
 
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-     -160, -160, -160, -160, -160, -160, -160, -160
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160
     },
 
     {
@@ -3172,7 +3172,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
 
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-     -161, -161, -161, -161, -161,  209, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
      -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
@@ -3188,7 +3188,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
-     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162,  242, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
      -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
@@ -3205,7 +3205,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163,  243, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
      -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
@@ -3221,7 +3221,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164,  244,
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
 
      -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
@@ -3241,7 +3241,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165,  245, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
      -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
@@ -3257,7 +3257,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
-     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166,  246, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
      -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
@@ -3273,7 +3273,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167,  247, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
      -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
 
@@ -3291,7 +3291,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
 
-     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168,  248,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
      -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
@@ -3306,12 +3306,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
 
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
-     -169, -169, -169, -169, -169, -169, -169, -169,  210,  210,
-      210,  210,  210,  210,  210,  210,  210,  210, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+      249, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
      -169, -169, -169, -169, -169, -169, -169, -169
@@ -3323,12 +3323,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170, -170, -170, -170,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
-     -170, -170, -170, -170, -170,  212, -170, -170, -170, -170,
+     -170, -170, -170,  250, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
 
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
      -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
@@ -3340,9 +3340,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
-     -171, -171, -171, -171, -171, -171, -171, -171, -171,  213,
-      213,  213,  213,  213,  213,  213,  213,  213, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171,  251,
 
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
      -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
@@ -3356,14 +3356,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-     -172, -172,  214, -172, -172, -172, -172, -172, -172, -172,
-
-     -172, -172, -172, -172, -172, -172, -172, -172,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215, -172, -172,
-     -172, -172, -172, -172, -172,  214,  214,  214,  214,  214,
-      214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
-      214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
-      214, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172,  252, -172, -172, -172, -172, -172, -172, -172,
+
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
      -172, -172, -172, -172, -172, -172, -172, -172
@@ -3375,12 +3375,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173, -173, -173, -173, -173, -173,  216,  216,
-      216,  216,  216,  216,  216,  216,  216,  216, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173,  253, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
-     -173, -173, -173, -173, -173,  217, -173, -173, -173, -173,
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
 
      -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
@@ -3392,10 +3392,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
-     -174, -174, -174, -174, -174, -174, -174, -174,  218,  219,
-      219,  219,  219,  219,  219,  219,  219,  219, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174,  254, -174, -174, -174, -174, -174, -174,
 
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
      -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
@@ -3408,14 +3408,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175,  220, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
 
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
-     -175, -175, -175, -175, -175,  220,  220,  220,  220,  220,
-      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
-      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
-      220, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+      255, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
      -175, -175, -175, -175, -175, -175, -175, -175
@@ -3426,13 +3426,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
 
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176,  220, -176, -176, -176, -176, -176, -176, -176,
-     -176, -176, -176, -176, -176, -176, -176, -176,  221,  221,
-      221,  221,  221,  221,  221,  221,  221,  221, -176, -176,
-     -176, -176, -176, -176, -176,  220,  220,  220,  220,  220,
-      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
-      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
-      220, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+      256, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
      -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
 
@@ -3444,14 +3444,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177,  177,  177,
-      177,  177,  177,  177,  177,  177,  177,  177, -177, -177,
-     -177, -177, -177, -177, -177, -177, -177, -177, -177,  125,
+     -177, -177, -177, -177, -177,  257, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
 
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
-     -177,  125, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
      -177, -177, -177, -177, -177, -177, -177, -177
     },
@@ -3461,11 +3461,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
-     -178, -178, -178, -178, -178, -178, -178, -178,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179, -178, -178,
-
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178,  258, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
      -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
@@ -3479,11 +3479,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
 
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
-     -179, -179, -179, -179, -179, -179, -179, -179,  179,  179,
-      179,  179,  179,  179,  179,  179,  179,  179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179,  259, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
      -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
@@ -3499,8 +3499,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180,  260, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
-     -180, -180, -180, -180,  222, -180, -180, -180, -180, -180,
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
 
      -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
@@ -3515,7 +3515,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
-     -181, -181, -181, -181, -181, -181, -181, -181, -181,  223,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181,  261,
 
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
      -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
@@ -3535,7 +3535,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
-     -182, -182,  224, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182,  262, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
      -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
@@ -3550,7 +3550,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
-     -183, -183, -183, -183, -183,  225, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183,  263, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
      -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
@@ -3570,7 +3570,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
 
-     -184, -184, -184, -184, -184, -184, -184, -184,  226, -184,
+     -184, -184, -184,  264, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
      -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
@@ -3585,9 +3585,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
 
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185,  227, -185, -185, -185,
-     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185,  265, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185,  266,
+     -185, -185,  267, -185, -185, -185, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
      -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
@@ -3604,7 +3604,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
-     -186, -186,  228, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186,  268, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
      -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
@@ -3619,8 +3619,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
-     -187, -187, -187, -187, -187, -187, -187, -187, -187,  229,
-     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187,  269, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187,  270, -187,
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
 
      -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
@@ -3639,7 +3639,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
-     -188, -188, -188, -188,  230, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188,  271, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
      -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
@@ -3652,7 +3652,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
 
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-     -189, -189, -189, -189, -189,  231, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
      -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
@@ -3668,7 +3668,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
-     -190, -190,  232, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
      -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
@@ -3690,7 +3690,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
 
-     -191, -191,  233, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
      -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
@@ -3707,7 +3707,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
-     -192, -192, -192, -192, -192, -192, -192, -192,  234, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
      -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
@@ -3724,7 +3724,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
-     -193, -193, -193, -193, -193, -193, -193, -193, -193,  235,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
      -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
@@ -3741,7 +3741,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
-     -194, -194, -194, -194, -194, -194, -194, -194, -194,  236,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
 
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
      -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
@@ -3758,8 +3758,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
 
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-     -195, -195, -195, -195, -195,  237, -195, -195, -195, -195,
-     -195, -195, -195, -195, -195, -195, -195, -195, -195,  238,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
      -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
@@ -3777,7 +3777,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
-     -196, -196, -196,  239, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
      -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
@@ -3792,7 +3792,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-     -197, -197, -197, -197, -197, -197, -197, -197, -197,  240,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
      -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
 
@@ -3812,7 +3812,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
-      241, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
      -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
@@ -3827,9 +3827,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199, -199, -199, -199, -199,  242, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
-     -199, -199, -199,  243, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
      -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
@@ -3845,8 +3845,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-      244, -200, -200, -200, -200, -200, -200, -200, -200, -200,
-     -200, -200, -200, -200, -200, -200, -200,  245, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
 
      -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
@@ -3864,7 +3864,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
 
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-     -201, -201, -201,  246, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
      -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
@@ -3875,14 +3875,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202,  247,
-     -202, -202, -202,  248, -202, -202, -202, -202, -202, -202,
-     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202,  272, -202, -202, -202, -202, -202, -202, -202,
+
+     -202, -202, -202, -202, -202, -202, -202, -202,  273,  273,
+      273,  273,  273,  273,  273,  273,  273,  273, -202, -202,
+     -202, -202, -202, -202, -202,  272,  272,  272,  272,  272,
+      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
+      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
+      272, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
      -202, -202, -202, -202, -202, -202, -202, -202
@@ -3894,11 +3894,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203,  274,  274,
+      274,  274,  274,  274,  274,  274,  274,  274, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
-     -203, -203, -203, -203, -203, -203, -203, -203,  249, -203,
-     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
      -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
 
@@ -3911,13 +3911,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
-     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204,  275, -204, -204,  276,  277,
+      277,  277,  277,  277,  277,  277,  277,  277, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
 
-     -204, -204, -204,  250, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204,  278, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
      -204, -204, -204, -204, -204, -204, -204, -204
@@ -3928,13 +3928,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205,  275, -205, -205,  279,  279,
 
-     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
-     -205, -205, -205, -205, -205, -205, -205, -205, -205,  251,
+      279,  279,  279,  279,  279,  279,  279,  279, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205,  280, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
      -205, -205, -205, -205, -205, -205, -205, -205
@@ -3946,12 +3946,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206,  281,  281,
+      281,  281,  281,  281,  281,  281,  281,  281, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206,  252, -206, -206, -206, -206, -206, -206, -206,
-     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
      -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
 
@@ -3963,13 +3963,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207,  275, -207, -207,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
-     -207, -207, -207, -207, -207, -207, -207, -207,  253, -207,
 
-     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207,  282, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
      -207, -207, -207, -207, -207, -207, -207, -207
@@ -3980,10 +3980,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
-     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208,  283,  284,
+      284,  284,  284,  284,  284,  284,  284,  284, -208, -208,
 
-     -208, -208, -208, -208, -208,  254, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
      -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
@@ -3997,13 +3997,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
 
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209,  255, -209, -209, -209, -209, -209, -209, -209,
-     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209,  285, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209,  286,  286,
+      286,  286,  286,  286,  286,  286,  286,  286, -209, -209,
+     -209, -209, -209, -209, -209,  285,  285,  285,  285,  285,
+      285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
+      285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
+      285, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
      -209, -209, -209, -209, -209, -209, -209, -209
@@ -4015,12 +4015,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
-     -210, -210, -210, -210, -210, -210, -210, -210,  256,  256,
-      256,  256,  256,  256,  256,  256,  256,  256, -210, -210,
-     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210,  275, -210, -210,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210,  278, -210, -210, -210, -210,
 
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
      -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
@@ -4032,13 +4032,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
-     -211, -211, -211, -211, -211, -211, -211, -211,  256,  256,
-      256,  256,  256,  256,  256,  256,  256,  256, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211,  287,  288,
+      288,  288,  288,  288,  288,  288,  288,  288, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
 
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
-     -211, -211, -211, -211, -211,  257, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
      -211, -211, -211, -211, -211, -211, -211, -211
@@ -4048,14 +4048,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-
-     -212, -212, -212, -212, -212, -212, -212, -212, -212,  258,
-      258,  258,  258,  258,  258,  258,  258,  258, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
-     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212,  285, -212, -212, -212, -212, -212, -212, -212,
+
+     -212, -212, -212, -212, -212, -212, -212, -212,  289,  290,
+      290,  290,  290,  290,  290,  290,  290,  290, -212, -212,
+     -212, -212, -212, -212, -212,  285,  285,  285,  285,  285,
+      285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
+      285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
+      285, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
      -212, -212, -212, -212, -212, -212, -212, -212
@@ -4066,13 +4066,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213,  259, -213, -213, -213, -213, -213, -213, -213,
-     -213, -213, -213, -213, -213, -213, -213, -213,  260,  260,
-      260,  260,  260,  260,  260,  260,  260,  260, -213, -213,
-     -213, -213, -213, -213, -213,  259,  259,  259,  259,  259,
-      259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
-      259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
-      259, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213,  291, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213,  292,  292,
+      292,  292,  292,  292,  292,  292,  292,  292, -213, -213,
+     -213, -213, -213, -213, -213,  291,  291,  291,  291,  291,
+      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
+      291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
+      291, -213, -213, -213, -213, -213, -213, -213, -213, -213,
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
 
      -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
@@ -4083,14 +4083,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214,  261, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
-     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214,  293, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294, -214, -214,
+     -214, -214, -214, -214, -214,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
      -214, -214, -214, -214, -214, -214, -214, -214
@@ -4100,14 +4100,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
-     -215, -215,  262, -215, -215, -215, -215, -215, -215, -215,
-     -215, -215, -215, -215, -215, -215, -215, -215,  263,  263,
-
-      263,  263,  263,  263,  263,  263,  263,  263, -215, -215,
-     -215, -215, -215, -215, -215,  262,  262,  262,  262,  262,
-      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
-      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
-      262, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215,  295,  295,
+
+      295,  295,  295,  295,  295,  295,  295,  295, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
      -215, -215, -215, -215, -215, -215, -215, -215
@@ -4119,12 +4119,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216,  296, -216, -216,  297,  298,
+      298,  298,  298,  298,  298,  298,  298,  298, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
-     -216, -216, -216, -216, -216,  264, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216,  299, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
      -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
 
@@ -4136,13 +4136,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
-     -217, -217, -217, -217, -217, -217, -217, -217,  265,  266,
-      266,  266,  266,  266,  266,  266,  266,  266, -217, -217,
+     -217, -217, -217, -217, -217,  296, -217, -217,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
 
-     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217,  301, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
      -217, -217, -217, -217, -217, -217, -217, -217
@@ -4152,14 +4152,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218,  267, -218, -218, -218, -218, -218, -218, -218,
-     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302, -218, -218,
 
-     -218, -218, -218, -218, -218,  267,  267,  267,  267,  267,
-      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
-      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
-      267, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
      -218, -218, -218, -218, -218, -218, -218, -218
@@ -4170,13 +4170,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
 
-     -219, -219,  267, -219, -219, -219, -219, -219, -219, -219,
-     -219, -219, -219, -219, -219, -219, -219, -219,  268,  268,
-      268,  268,  268,  268,  268,  268,  268,  268, -219, -219,
-     -219, -219, -219, -219, -219,  267,  267,  267,  267,  267,
-      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
-      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
-      267, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219,  296, -219, -219,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219,  303, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
      -219, -219, -219, -219, -219, -219, -219, -219
@@ -4187,9 +4187,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
-     -220, -220,  269, -220, -220, -220, -220, -220, -220, -220,
-     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220,  304,  305,
+      305,  305,  305,  305,  305,  305,  305,  305, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
      -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
@@ -4204,14 +4204,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
-     -221, -221,  270, -221, -221, -221, -221, -221, -221, -221,
-     -221, -221, -221, -221, -221, -221, -221, -221,  271,  271,
-      271,  271,  271,  271,  271,  271,  271,  271, -221, -221,
-     -221, -221, -221, -221, -221,  270,  270,  270,  270,  270,
-
-      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
-      270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
-      270, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221,  306, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307, -221, -221,
+     -221, -221, -221, -221, -221,  306,  306,  306,  306,  306,
+
+      306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
+      306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
+      306, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
      -221, -221, -221, -221, -221, -221, -221, -221
@@ -4223,12 +4223,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
 
+     -222, -222, -222, -222, -222,  296, -222, -222,  297,  297,
+      297,  297,  297,  297,  297,  297,  297,  297, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
-     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222,  299, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
      -222, -222, -222, -222, -222, -222, -222, -222
@@ -4240,8 +4240,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
-     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223,  308,  309,
+      309,  309,  309,  309,  309,  309,  309,  309, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
      -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
@@ -4256,14 +4256,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
-     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224,  310, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224,  311,  312,
+      312,  312,  312,  312,  312,  312,  312,  312, -224, -224,
+     -224, -224, -224, -224, -224,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
      -224, -224, -224, -224, -224, -224, -224, -224
@@ -4273,14 +4273,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
-     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225,  310, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225,  313,  313,
+
+      313,  313,  313,  313,  313,  313,  313,  313, -225, -225,
+     -225, -225, -225, -225, -225,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  310,  310,  310,  310,
+      310, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
      -225, -225, -225, -225, -225, -225, -225, -225
@@ -4292,13 +4292,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226,  226,  226,
+      226,  226,  226,  226,  226,  226,  226,  226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226,  141,  141,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
-     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+      141,  141, -226, -226, -226, -226, -226, -226, -226, -226,
      -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
 
      -226, -226, -226, -226, -226, -226, -226, -226
@@ -4309,8 +4309,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
-     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
-     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227,  228,  228,
+      228,  228,  228,  228,  228,  228,  228,  228, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
      -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
@@ -4326,8 +4326,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
-     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228,  228,  228,
+      228,  228,  228,  228,  228,  228,  228,  228, -228, -228,
 
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
      -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
@@ -4339,38 +4339,38 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+       33,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      314,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
 
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
-     -229, -229, -229, -229, -229, -229, -229, -229
+      229,  229,  315,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  316,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229
 
     },
 
     {
-       33, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+       33,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      231,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  232,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  233,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
 
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
-     -230, -230, -230, -230, -230, -230, -230, -230
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230
     },
 
     {
@@ -4380,9 +4380,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
-     -231, -231, -231, -231, -231,  272, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
 
-     -231, -231, -231, -231, -231, -231, -231, -231, -231,  273,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
      -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
@@ -4391,55 +4391,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232,  274, -232, -232, -232, -232, -232, -232, -232,
+       33,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      231,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  232,  230,  230,  230,  230,  230,  230,  230,
 
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
-     -232, -232, -232, -232, -232, -232, -232, -232
+      230,  230,  230,  230,  230,  230,  230,  233,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230
     },
 
     {
-       33, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+       33,  230,  230,  230,  230,  230,  230,  230,  230,  230,
 
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233,  275, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233,  275,  275,  275,  275,  275,
-      275,  275,  275,  275,  275,  275,  275,  275,  275,  275,
-      275,  275,  275,  275,  275,  275,  275,  275,  275,  275,
-      275, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+      231,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  232,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  233,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
 
-     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
-     -233, -233, -233, -233, -233, -233, -233, -233
+      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
+      230,  230,  230,  230,  230,  230,  230,  230
     },
 
     {
-       33, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234,  276,
+       33,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      235,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  236,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  237,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
 
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
-     -234, -234, -234, -234, -234, -234, -234, -234
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234
     },
 
     {
@@ -4451,7 +4451,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
-     -235, -235, -235, -235, -235, -235,  277, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
      -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
@@ -4460,55 +4460,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+       33,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      235,  234,  234,  234,  234,  234,  234,  234,  234,  234,
 
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236,  278, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
-     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  236,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  237,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
 
-     -236, -236, -236, -236, -236, -236, -236, -236
+      234,  234,  234,  234,  234,  234,  234,  234
     },
 
     {
-       33, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237,  279, -237, -237, -237,
+       33,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      318,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  319,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  320,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
-     -237, -237, -237, -237, -237, -237, -237, -237
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317
     },
 
     {
-       33, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+       33,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      235,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  236,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  237,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
 
-     -238, -238, -238, -238, -238, -238,  280, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
-     -238, -238, -238, -238, -238, -238, -238, -238
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234
     },
 
     {
@@ -4516,7 +4516,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
 
-     -239, -239,  281, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
      -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
@@ -4530,37 +4530,37 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240,  282,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+       33,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      239,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  240,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  241,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
 
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
-     -240, -240, -240, -240, -240, -240, -240, -240
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238
     },
 
     {
-       33, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+       33,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      322,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  323,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  324,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
 
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
-     -241, -241, -241, -241, -241, -241, -241, -241
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321
     },
 
     {
@@ -4573,7 +4573,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
-     -242, -242, -242,  283, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242,  325, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
      -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
@@ -4588,9 +4588,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243,  326,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
-     -243, -243, -243, -243, -243, -243, -243, -243, -243,  284,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
      -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
 
@@ -4608,7 +4608,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
 
-     -244, -244,  285, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244,  327, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
      -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
@@ -4623,7 +4623,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
 
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
-     -245, -245, -245, -245, -245,  286, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245,  328, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
      -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
@@ -4642,7 +4642,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
-     -246, -246, -246, -246, -246, -246, -246, -246, -246,  287,
+     -246, -246, -246, -246, -246, -246, -246, -246,  329, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
      -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
@@ -4657,8 +4657,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
-     -247, -247, -247, -247, -247, -247,  288, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247,  330, -247, -247, -247,
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
 
      -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
@@ -4677,7 +4677,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
-     -248, -248,  289, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248,  331, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
      -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
@@ -4692,8 +4692,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249,  332,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
-     -249,  290, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
      -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
@@ -4711,7 +4711,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
-     -250, -250, -250, -250, -250, -250, -250, -250, -250,  291,
+     -250, -250, -250, -250,  333, -250, -250, -250, -250, -250,
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
 
      -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
@@ -4724,11 +4724,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
-     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251,  334, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
 
-      292, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
      -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
@@ -4740,11 +4740,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252,  335, -252, -252, -252, -252, -252, -252, -252,
 
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
-     -252, -252, -252, -252, -252, -252, -252,  293, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
      -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
@@ -4761,8 +4761,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
-     -253, -253, -253, -253, -253, -253, -253, -253, -253,  294,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253,  336, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
      -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
@@ -4779,7 +4779,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
-     -254, -254, -254, -254, -254, -254, -254,  295, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254,  337, -254,
 
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
      -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
@@ -4796,8 +4796,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
 
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
-     -255, -255, -255, -255, -255, -255, -255,  296, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255,  338,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
      -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
@@ -4811,11 +4811,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
-     -256, -256, -256, -256, -256, -256, -256, -256,  297,  297,
-      297,  297,  297,  297,  297,  297,  297,  297, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256,  339,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
      -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
@@ -4828,10 +4828,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
-     -257, -257, -257, -257, -257, -257, -257, -257, -257,  298,
-      298,  298,  298,  298,  298,  298,  298,  298, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257,  340, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257,  341,
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
 
      -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
@@ -4844,14 +4844,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
-     -258, -258,  299, -258, -258, -258, -258, -258, -258, -258,
-     -258, -258, -258, -258, -258, -258, -258, -258,  300,  300,
-      300,  300,  300,  300,  300,  300,  300,  300, -258, -258,
-
-     -258, -258, -258, -258, -258,  299,  299,  299,  299,  299,
-      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
-      299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
-      299, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258,  342, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
      -258, -258, -258, -258, -258, -258, -258, -258
@@ -4862,10 +4862,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
 
-     -259, -259,  301, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259,  343,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
      -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
@@ -4879,13 +4879,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
-     -260, -260,  302, -260, -260, -260, -260, -260, -260, -260,
-     -260, -260, -260, -260, -260, -260, -260, -260,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303, -260, -260,
-     -260, -260, -260, -260, -260,  302,  302,  302,  302,  302,
-      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
-      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
-      302, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+      344, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
 
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
      -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
@@ -4896,13 +4896,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261,  304, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261,  345, -261, -261,
 
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
-     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261,  346, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
      -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
@@ -4913,13 +4913,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
-     -262, -262,  305, -262, -262, -262, -262, -262, -262, -262,
-
-     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+      347, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262,  348, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
      -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
@@ -4931,13 +4931,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263,  306, -263, -263, -263, -263, -263, -263, -263,
-     -263, -263, -263, -263, -263, -263, -263, -263,  307,  307,
-      307,  307,  307,  307,  307,  307,  307,  307, -263, -263,
-     -263, -263, -263, -263, -263,  306,  306,  306,  306,  306,
-      306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
-      306,  306,  306,  306,  306,  306,  306,  306,  306,  306,
-      306, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263,  349, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
 
      -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
@@ -4949,12 +4949,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-     -264, -264, -264, -264, -264, -264, -264, -264,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  308, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
-
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264,  350,
+
+     -264, -264, -264,  351, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
      -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
@@ -4965,14 +4965,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265,  309, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
 
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-     -265, -265, -265, -265, -265,  309,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265,  352, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
      -265, -265, -265, -265, -265, -265, -265, -265
@@ -4983,13 +4983,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
 
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
-     -266, -266,  309, -266, -266, -266, -266, -266, -266, -266,
-     -266, -266, -266, -266, -266, -266, -266, -266,  310,  310,
-      310,  310,  310,  310,  310,  310,  310,  310, -266, -266,
-     -266, -266, -266, -266, -266,  309,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266,  353, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
      -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
 
@@ -5000,10 +5000,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
-     -267, -267,  311, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267,  354,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
      -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
 
@@ -5017,14 +5017,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268,  312, -268, -268, -268, -268, -268, -268, -268,
-     -268, -268, -268, -268, -268, -268, -268, -268,  313,  313,
-      313,  313,  313,  313,  313,  313,  313,  313, -268, -268,
-
-     -268, -268, -268, -268, -268,  312,  312,  312,  312,  312,
-      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
-      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
-      312, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268,  355, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
      -268, -268, -268, -268, -268, -268, -268, -268
@@ -5035,12 +5035,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
 
-     -269, -269,  314, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269,  356, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
      -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
@@ -5052,10 +5052,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
-     -270, -270,  315, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270,  357, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
      -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
@@ -5069,14 +5069,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271,  316, -271, -271, -271, -271, -271, -271, -271,
-     -271, -271, -271, -271, -271, -271, -271, -271,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317, -271, -271,
-     -271, -271, -271, -271, -271,  316,  316,  316,  316,  316,
-
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271,  358, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
      -271, -271, -271, -271, -271, -271, -271, -271
@@ -5086,13 +5086,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272,  359, -272, -272, -272, -272, -272, -272, -272,
 
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
-     -272, -272, -272, -272, -272, -272,  318, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
      -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
@@ -5104,13 +5104,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273,  319, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
-     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273,  360, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361, -273, -273,
+     -273, -273, -273, -273, -273,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,  360,
+      360, -273, -273, -273, -273, -273, -273, -273, -273, -273,
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
 
      -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
@@ -5121,14 +5121,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274,  320, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
-     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274,  362, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274,  363,  363,
+      363,  363,  363,  363,  363,  363,  363,  363, -274, -274,
+     -274, -274, -274, -274, -274,  362,  362,  362,  362,  362,
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+
+      362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
+      362, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
      -274, -274, -274, -274, -274, -274, -274, -274
@@ -5138,10 +5138,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
-     -275, -275,  321, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275,  364,  364,
 
-     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+      364,  364,  364,  364,  364,  364,  364,  364, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
      -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
@@ -5157,12 +5157,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276,  365, -276, -276,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276,  322, -276,
-     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276,  367, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
      -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
 
@@ -5174,13 +5174,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277,  365, -277, -277,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277,  323,
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
 
-     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277,  368, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
      -277, -277, -277, -277, -277, -277, -277, -277
@@ -5191,10 +5191,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
-     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
-     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278,  369,  369,
+      369,  369,  369,  369,  369,  369,  369,  369, -278, -278,
 
-     -278, -278, -278, -278, -278, -278, -278, -278, -278,  324,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
      -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
@@ -5209,12 +5209,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
 
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279,  365, -279, -279,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279,  325, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
-     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279,  370, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
      -279, -279, -279, -279, -279, -279, -279, -279
@@ -5226,12 +5226,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280,  371,  372,
+      372,  372,  372,  372,  372,  372,  372,  372, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
-     -280, -280, -280,  326, -280, -280, -280, -280, -280, -280,
-     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
 
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
      -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
@@ -5242,14 +5242,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281,  327, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
-     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281,  373, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281,  374,  374,
+      374,  374,  374,  374,  374,  374,  374,  374, -281, -281,
+     -281, -281, -281, -281, -281,  373,  373,  373,  373,  373,
+
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      373, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
      -281, -281, -281, -281, -281, -281, -281, -281
@@ -5261,8 +5261,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
 
-     -282, -282, -282, -282, -282,  328, -282, -282, -282, -282,
-     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282,  375,  376,
+      376,  376,  376,  376,  376,  376,  376,  376, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
      -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
@@ -5277,13 +5277,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283,  329,
-     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283,  373, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283,  377,  378,
+      378,  378,  378,  378,  378,  378,  378,  378, -283, -283,
+     -283, -283, -283, -283, -283,  373,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      373, -283, -283, -283, -283, -283, -283, -283, -283, -283,
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
 
      -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
@@ -5294,14 +5294,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
-
-     -284, -284, -284,  330, -284, -284, -284, -284, -284, -284,
-     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284,  379, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284,  380,  380,
+      380,  380,  380,  380,  380,  380,  380,  380, -284, -284,
+     -284, -284, -284, -284, -284,  379,  379,  379,  379,  379,
+      379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
+
+      379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
+      379, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
      -284, -284, -284, -284, -284, -284, -284, -284
@@ -5311,13 +5311,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285,  381, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
 
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285, -285, -285, -285, -285, -285, -285, -285, -285,  331,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
-     -285,  332, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
      -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
@@ -5329,13 +5329,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
 
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286,  333, -286, -286, -286,
-     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286,  382, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383, -286, -286,
+     -286, -286, -286, -286, -286,  382,  382,  382,  382,  382,
+      382,  382,  382,  382,  382,  382,  382,  382,  382,  382,
+      382,  382,  382,  382,  382,  382,  382,  382,  382,  382,
+      382, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
      -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
 
@@ -5346,14 +5346,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
-     -287, -287, -287,  334, -287, -287, -287, -287, -287, -287,
-
-     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287,  373, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287,  384,  385,
+      385,  385,  385,  385,  385,  385,  385,  385, -287, -287,
+     -287, -287, -287, -287, -287,  373,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+      373,  373,  373,  373,  373,  373,  373,  373,  373,  373,
+
+      373, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
      -287, -287, -287, -287, -287, -287, -287, -287
@@ -5363,14 +5363,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288,  335, -288, -288, -288, -288, -288, -288,
-     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288,  386, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288,  387,  387,
+      387,  387,  387,  387,  387,  387,  387,  387, -288, -288,
+
+     -288, -288, -288, -288, -288,  386,  386,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
+      386, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
      -288, -288, -288, -288, -288, -288, -288, -288
@@ -5381,13 +5381,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
 
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289,  336, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
-     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289,  382, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289,  388,  389,
+      389,  389,  389,  389,  389,  389,  389,  389, -289, -289,
+     -289, -289, -289, -289, -289,  382,  382,  382,  382,  382,
+      382,  382,  382,  382,  382,  382,  382,  382,  382,  382,
+      382,  382,  382,  382,  382,  382,  382,  382,  382,  382,
+      382, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
      -289, -289, -289, -289, -289, -289, -289, -289
@@ -5398,13 +5398,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290,  337, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
-     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290,  390, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290,  391,  391,
+      391,  391,  391,  391,  391,  391,  391,  391, -290, -290,
+     -290, -290, -290, -290, -290,  390,  390,  390,  390,  390,
+      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
+      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
+      390, -290, -290, -290, -290, -290, -290, -290, -290, -290,
 
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
      -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
@@ -5415,13 +5415,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
-     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291,  392, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
 
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
-     -291, -291, -291,  338, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
      -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
@@ -5432,14 +5432,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
-     -292, -292,  339, -292, -292, -292, -292, -292, -292, -292,
-
-     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
-     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
-     -292, -292, -292, -292, -292,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      339,  339,  339,  339,  339,  339,  339,  339,  339,  339,
-      339, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292,  393, -292, -292, -292, -292, -292, -292, -292,
+
+     -292, -292, -292, -292, -292, -292, -292, -292,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383, -292, -292,
+     -292, -292, -292, -292, -292,  393,  393,  393,  393,  393,
+      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
+      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
+      393, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
      -292, -292, -292, -292, -292, -292, -292, -292
@@ -5450,10 +5450,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293,  394, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
-     -293, -293, -293, -293, -293, -293, -293, -293, -293,  340,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
      -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
@@ -5467,14 +5467,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
-
-     -294, -294, -294,  341, -294, -294, -294, -294, -294, -294,
-     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294,  395, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294,  396,  396,
+      396,  396,  396,  396,  396,  396,  396,  396, -294, -294,
+     -294, -294, -294, -294, -294,  395,  395,  395,  395,  395,
+      395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
+
+      395,  395,  395,  395,  395,  395,  395,  395,  395,  395,
+      395, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
      -294, -294, -294, -294, -294, -294, -294, -294
@@ -5484,14 +5484,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295,  342,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
-     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295,  397, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295,  398,  398,
+
+      398,  398,  398,  398,  398,  398,  398,  398, -295, -295,
+     -295, -295, -295, -295, -295,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
      -295, -295, -295, -295, -295, -295, -295, -295
@@ -5503,10 +5503,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296,  399,  399,
+      399,  399,  399,  399,  399,  399,  399,  399, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
-     -296, -296, -296, -296, -296, -296, -296, -296, -296,  343,
-     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
      -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
@@ -5520,13 +5520,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
-     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297,  400, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
 
-     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297,  401, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
      -297, -297, -297, -297, -297, -297, -297, -297
@@ -5537,13 +5537,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298,  400, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
 
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
-     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298,  402, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
      -298, -298, -298, -298, -298, -298, -298, -298
@@ -5555,8 +5555,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
 
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
-     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
-     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299,  403,  403,
+      403,  403,  403,  403,  403,  403,  403,  403, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
      -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
@@ -5572,12 +5572,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300,  400, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
-     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
-     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300,  404, -300, -300, -300, -300,
 
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
      -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
@@ -5589,8 +5589,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
-     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
-     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301,  405,  406,
+      406,  406,  406,  406,  406,  406,  406,  406, -301, -301,
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
 
      -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
@@ -5605,14 +5605,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
-     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302,  407, -302, -302, -302, -302, -302, -302, -302,
+
+     -302, -302, -302, -302, -302, -302, -302, -302,  408,  408,
+      408,  408,  408,  408,  408,  408,  408,  408, -302, -302,
+     -302, -302, -302, -302, -302,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
      -302, -302, -302, -302, -302, -302, -302, -302
@@ -5624,8 +5624,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
-     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
-     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303,  409,  410,
+      410,  410,  410,  410,  410,  410,  410,  410, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
      -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
@@ -5640,14 +5640,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
-     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304,  411, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304,  412,  413,
+      413,  413,  413,  413,  413,  413,  413,  413, -304, -304,
+     -304, -304, -304, -304, -304,  411,  411,  411,  411,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
      -304, -304, -304, -304, -304, -304, -304, -304
@@ -5657,14 +5657,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
-     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305,  411, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305,  414,  414,
+
+      414,  414,  414,  414,  414,  414,  414,  414, -305, -305,
+     -305, -305, -305, -305, -305,  411,  411,  411,  411,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
+      411, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
      -305, -305, -305, -305, -305, -305, -305, -305
@@ -5675,7 +5675,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
 
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
-     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306,  415, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
      -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
@@ -5692,14 +5692,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
-
-     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307,  416, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307, -307, -307, -307, -307, -307, -307,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417, -307, -307,
+     -307, -307, -307, -307, -307,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+
+      416, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
      -307, -307, -307, -307, -307, -307, -307, -307
@@ -5709,14 +5709,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
-     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308,  418, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308,  419,  420,
+      420,  420,  420,  420,  420,  420,  420,  420, -308, -308,
+
+     -308, -308, -308, -308, -308,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
      -308, -308, -308, -308, -308, -308, -308, -308
@@ -5727,13 +5727,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
 
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
-     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309,  418, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309,  421,  421,
+      421,  421,  421,  421,  421,  421,  421,  421, -309, -309,
+     -309, -309, -309, -309, -309,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
+      418, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
      -309, -309, -309, -309, -309, -309, -309, -309
@@ -5744,7 +5744,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
-     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310,  422, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
      -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
@@ -5761,14 +5761,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
-     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311,  423, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311,  424,  425,
+      425,  425,  425,  425,  425,  425,  425,  425, -311, -311,
+     -311, -311, -311, -311, -311,  423,  423,  423,  423,  423,
+
+      423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+      423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+      423, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
      -311, -311, -311, -311, -311, -311, -311, -311
@@ -5778,14 +5778,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
-     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312,  423, -312, -312, -312, -312, -312, -312, -312,
+
+     -312, -312, -312, -312, -312, -312, -312, -312,  426,  426,
+      426,  426,  426,  426,  426,  426,  426,  426, -312, -312,
+     -312, -312, -312, -312, -312,  423,  423,  423,  423,  423,
+      423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+      423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+      423, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
      -312, -312, -312, -312, -312, -312, -312, -312
@@ -5796,13 +5796,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
-     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313,  427, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417, -313, -313,
+     -313, -313, -313, -313, -313,  427,  427,  427,  427,  427,
+      427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
+      427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
+      427, -313, -313, -313, -313, -313, -313, -313, -313, -313,
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
 
      -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
@@ -5827,55 +5827,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+       33,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      314,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  315,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  316,  229,  229,
 
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
-     -315, -315, -315, -315, -315, -315, -315, -315
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
+      229,  229,  229,  229,  229,  229,  229,  229
     },
 
     {
-       33, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+       33,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      429,  428,  428,  428,  428,  428,  428,  428,  428,  428,
 
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
-     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  430,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  431,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
 
-     -316, -316, -316, -316, -316, -316, -316, -316
+      428,  428,  428,  428,  428,  428,  428,  428
     },
 
     {
-       33, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+       33,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      318,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  319,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  320,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
-     -317, -317, -317, -317, -317, -317, -317, -317
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317
     },
 
     {
@@ -5887,7 +5887,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
 
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
-     -318,  344, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
      -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
@@ -5896,55 +5896,55 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+       33,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      318,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319,  345, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
-     -319, -319, -319, -319, -319, -319, -319, -319
+      317,  317,  319,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  320,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317
 
     },
 
     {
-       33, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320,  346, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+       33,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      318,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  319,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  320,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
 
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
-     -320, -320, -320, -320, -320, -320, -320, -320
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
+      317,  317,  317,  317,  317,  317,  317,  317
     },
 
     {
-       33, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321,  347, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+       33,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      322,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  323,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  324,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
 
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
-     -321, -321, -321, -321, -321, -321, -321, -321
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321
     },
 
     {
@@ -5965,45 +5965,45 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+       33,  321,  321,  321,  321,  321,  321,  321,  321,  321,
 
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+      322,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  323,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  324,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
 
-     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
-     -323, -323, -323, -323, -323, -323, -323, -323
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321
     },
 
     {
-       33, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+       33,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      322,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  323,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  324,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
 
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
-     -324, -324, -324, -324, -324, -324, -324, -324
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  321,  321
     },
 
     {
        33, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
-     -325, -325,  348, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
 
      -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
@@ -6021,7 +6021,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
 
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
-     -326, -326,  349, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
      -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
@@ -6038,7 +6038,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
-     -327, -327,  350, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
      -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
@@ -6061,8 +6061,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
-     -328, -328, -328, -328, -328, -328, -328, -328,  351,  352,
-      353, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
      -328, -328, -328, -328, -328, -328, -328, -328
@@ -6078,7 +6078,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
-     -329, -329, -329,  354, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
      -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
@@ -6113,7 +6113,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
 
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
-     -331,  355, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
      -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
@@ -6162,8 +6162,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
-     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334,  432, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334,  433,
 
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
      -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
@@ -6176,7 +6176,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
-     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335,  434, -335, -335, -335, -335, -335, -335, -335,
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
 
      -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
@@ -6194,13 +6194,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
 
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336,  435, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
-     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336,  435,  435,  435,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
+      435, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
      -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
 
@@ -6215,7 +6215,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
-     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337,  436,
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
 
      -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
@@ -6233,7 +6233,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
 
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
-     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338,  437, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
      -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
@@ -6246,11 +6246,11 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
 
-     -339, -339,  356, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339,  438, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
      -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
@@ -6263,13 +6263,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
-     -340, -340,  357, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
-     -340, -340, -340, -340, -340,  357,  357,  357,  357,  357,
-      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
-      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
-      357, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340,  439, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
 
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
      -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
@@ -6280,14 +6280,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
-     -341, -341,  358, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
-     -341, -341, -341, -341, -341,  358,  358,  358,  358,  358,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341,  440, -341, -341, -341,
 
-      358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
-      358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
-      358, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
      -341, -341, -341, -341, -341, -341, -341, -341
@@ -6297,7 +6297,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
-     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342,  441, -342, -342, -342, -342, -342, -342, -342,
 
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
      -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
@@ -6319,7 +6319,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
-     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343,  442,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
      -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
@@ -6355,7 +6355,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
-     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345,  443, -345, -345, -345, -345, -345, -345,
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
      -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
@@ -6367,12 +6367,12 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
 
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
-     -346, -346,  359, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346, -346, -346, -346, -346, -346,  444,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
      -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
@@ -6389,7 +6389,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
-     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347,  445, -347, -347, -347, -347, -347, -347, -347,
 
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
      -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
@@ -6405,7 +6405,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
 
-     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348,  446, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
      -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
@@ -6424,7 +6424,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
-     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349,  447,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
      -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
@@ -6439,7 +6439,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
-     -350,  360, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350,  448, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
      -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
@@ -6459,7 +6459,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
 
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
-     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351,  449, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
      -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
@@ -6475,7 +6475,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
-     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352,  450, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
      -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
@@ -6493,7 +6493,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
-     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353,  451,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
      -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
 
@@ -6509,7 +6509,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
-     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+      452, -354, -354, -354, -354, -354, -354, -354, -354, -354,
 
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
      -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
@@ -6526,7 +6526,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
 
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
-     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355,  453, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
      -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
@@ -6543,7 +6543,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
-     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356,  454,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
      -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
@@ -6561,7 +6561,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
-     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357,  455, -357, -357,
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
 
      -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
@@ -6578,7 +6578,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
 
-     -358,  361, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358,  456, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
      -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
@@ -6592,7 +6592,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
 
-     -359, -359,  362, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359,  457, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
      -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
@@ -6609,7 +6609,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
-     -360, -360,  363, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360,  458, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
      -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
@@ -6626,14 +6626,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361,  364, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
-     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361,  459, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361,  460,  460,
+      460,  460,  460,  460,  460,  460,  460,  460, -361, -361,
+     -361, -361, -361, -361, -361,  459,  459,  459,  459,  459,
+
+      459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
+      459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
+      459, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
      -361, -361, -361, -361, -361, -361, -361, -361
@@ -6643,7 +6643,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
-     -362, -362,  365, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362,  461, -362, -362, -362, -362, -362, -362, -362,
 
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
      -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
@@ -6661,13 +6661,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363,  366, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363, -363,  367, -363,  367, -363, -363,  368,  368,
-      368,  368,  368,  368,  368,  368,  368,  368, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
-     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363,  462, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463, -363, -363,
+     -363, -363, -363, -363, -363,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462, -363, -363, -363, -363, -363, -363, -363, -363, -363,
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
 
      -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
@@ -6678,14 +6678,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364,  369, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364, -364,  370, -364,  370, -364, -364,  371,  371,
-      371,  371,  371,  371,  371,  371,  371,  371, -364, -364,
-     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-
-     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
-     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364,  464, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364,  465,  465,
+      465,  465,  465,  465,  465,  465,  465,  465, -364, -364,
+     -364, -364, -364, -364, -364,  464,  464,  464,  464,  464,
+      464,  464,  464,  464,  464,  464,  464,  464,  464,  464,
+
+      464,  464,  464,  464,  464,  464,  464,  464,  464,  464,
+      464, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
      -364, -364, -364, -364, -364, -364, -364, -364
@@ -6695,10 +6695,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
-     -365, -365,  372, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365,  466,  466,
 
-     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+      466,  466,  466,  466,  466,  466,  466,  466, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
      -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
@@ -6713,9 +6713,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
 
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
-     -366, -366,  366, -366, -366, -366, -366, -366, -366, -366,
-     -366, -366, -366,  367, -366,  367, -366, -366,  368,  368,
-      368,  368,  368,  368,  368,  368,  368,  368, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366,  467,  467,
+      467,  467,  467,  467,  467,  467,  467,  467, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
      -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
@@ -6731,8 +6731,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
-     -367, -367, -367, -367, -367, -367, -367, -367,  368,  368,
-      368,  368,  368,  368,  368,  368,  368,  368, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367,  468,  468,
+      468,  468,  468,  468,  468,  468,  468,  468, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
      -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
@@ -6748,8 +6748,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
-     -368, -368, -368, -368, -368, -368, -368, -368,  368,  368,
-      368,  368,  368,  368,  368,  368,  368,  368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368,  468,  469,
+      469,  469,  469,  469,  469,  469,  469,  469, -368, -368,
 
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
      -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
@@ -6765,13 +6765,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
 
-     -369, -369,  369, -369, -369, -369, -369, -369, -369, -369,
-     -369, -369, -369,  370, -369,  370, -369, -369,  371,  371,
-      371,  371,  371,  371,  371,  371,  371,  371, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
-     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369,  470, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369,  471,  471,
+      471,  471,  471,  471,  471,  471,  471,  471, -369, -369,
+     -369, -369, -369, -369, -369,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
      -369, -369, -369, -369, -369, -369, -369, -369
@@ -6783,8 +6783,8 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
-     -370, -370, -370, -370, -370, -370, -370, -370,  371,  371,
-      371,  371,  371,  371,  371,  371,  371,  371, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370,  468,  472,
+      472,  472,  472,  472,  472,  472,  472,  472, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
      -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
@@ -6799,14 +6799,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371,  371,  371,
-      371,  371,  371,  371,  371,  371,  371,  371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-
-     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
-     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371,  470, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371, -371, -371, -371, -371, -371, -371,  471,  473,
+      473,  473,  473,  473,  473,  473,  473,  473, -371, -371,
+     -371, -371, -371, -371, -371,  470,  470,  470,  470,  470,
+
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
      -371, -371, -371, -371, -371, -371, -371, -371
@@ -6816,14 +6816,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372,  373, -372, -372, -372, -372, -372, -372, -372,
-
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
-     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372,  474, -372, -372, -372, -372, -372, -372, -372,
+
+     -372, -372, -372, -372, -372, -372, -372, -372,  475,  475,
+      475,  475,  475,  475,  475,  475,  475,  475, -372, -372,
+     -372, -372, -372, -372, -372,  474,  474,  474,  474,  474,
+      474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
+      474,  474,  474,  474,  474,  474,  474,  474,  474,  474,
+      474, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
      -372, -372, -372, -372, -372, -372, -372, -372
@@ -6834,7 +6834,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
-     -373, -373,  374, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373,  476, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
      -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
@@ -6851,14 +6851,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374,  375, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
-     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374,  477, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374,  478,  478,
+      478,  478,  478,  478,  478,  478,  478,  478, -374, -374,
+     -374, -374, -374, -374, -374,  477,  477,  477,  477,  477,
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+      477, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
      -374, -374, -374, -374, -374, -374, -374, -374
@@ -6868,14 +6868,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375,  376, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
-     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375,  470, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375, -375, -375, -375, -375, -375, -375,  471,  479,
+
+      479,  479,  479,  479,  479,  479,  479,  479, -375, -375,
+     -375, -375, -375, -375, -375,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
      -375, -375, -375, -375, -375, -375, -375, -375
@@ -6886,13 +6886,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
 
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376,  377, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
-     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376,  480, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376,  481,  481,
+      481,  481,  481,  481,  481,  481,  481,  481, -376, -376,
+     -376, -376, -376, -376, -376,  480,  480,  480,  480,  480,
+      480,  480,  480,  480,  480,  480,  480,  480,  480,  480,
+      480,  480,  480,  480,  480,  480,  480,  480,  480,  480,
+      480, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
      -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
 
@@ -6903,14 +6903,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377,  378, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
-
-     -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377,  477, -377, -377, -377, -377, -377, -377, -377,
+     -377, -377, -377, -377, -377, -377, -377, -377,  478,  482,
+      482,  482,  482,  482,  482,  482,  482,  482, -377, -377,
+     -377, -377, -377, -377, -377,  477,  477,  477,  477,  477,
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+
+      477, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377, -377, -377,
      -377, -377, -377, -377, -377, -377, -377, -377
@@ -6920,14 +6920,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378,  379, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
-     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378,  483, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378, -378,  484,  484,
+      484,  484,  484,  484,  484,  484,  484,  484, -378, -378,
+
+     -378, -378, -378, -378, -378,  483,  483,  483,  483,  483,
+      483,  483,  483,  483,  483,  483,  483,  483,  483,  483,
+      483,  483,  483,  483,  483,  483,  483,  483,  483,  483,
+      483, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
      -378, -378, -378, -378, -378, -378, -378, -378
@@ -6938,7 +6938,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
 
-     -379, -379,  380, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379,  485, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
      -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
@@ -6955,13 +6955,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380,  381, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
-     -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
+     -380, -380,  486, -380, -380, -380, -380, -380, -380, -380,
+     -380, -380, -380, -380, -380, -380, -380, -380,  478,  478,
+      478,  478,  478,  478,  478,  478,  478,  478, -380, -380,
+     -380, -380, -380, -380, -380,  486,  486,  486,  486,  486,
+      486,  486,  486,  486,  486,  486,  486,  486,  486,  486,
+      486,  486,  486,  486,  486,  486,  486,  486,  486,  486,
+      486, -380, -380, -380, -380, -380, -380, -380, -380, -380,
 
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
      -380, -380, -380, -380, -380, -380, -380, -380, -380, -380,
@@ -6972,7 +6972,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
-     -381, -381,  382, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381,  487, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
      -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
@@ -6989,7 +6989,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
-     -382, -382,  383, -382, -382, -382, -382, -382, -382, -382,
+     -382, -382,  488, -382, -382, -382, -382, -382, -382, -382,
 
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
      -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
@@ -7007,13 +7007,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383,  384, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
-     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383,  489, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383,  490,  490,
+      490,  490,  490,  490,  490,  490,  490,  490, -383, -383,
+     -383, -383, -383, -383, -383,  489,  489,  489,  489,  489,
+      489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
+      489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
+      489, -383, -383, -383, -383, -383, -383, -383, -383, -383,
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
 
      -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
@@ -7024,14 +7024,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384,  385, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
-     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384,  477, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384, -384, -384, -384, -384, -384, -384,  478,  491,
+      491,  491,  491,  491,  491,  491,  491,  491, -384, -384,
+     -384, -384, -384, -384, -384,  477,  477,  477,  477,  477,
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+
+      477,  477,  477,  477,  477,  477,  477,  477,  477,  477,
+      477, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
      -384, -384, -384, -384, -384, -384, -384, -384
@@ -7041,14 +7041,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385,  386, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
-     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385,  492, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385,  493,  493,
+
+      493,  493,  493,  493,  493,  493,  493,  493, -385, -385,
+     -385, -385, -385, -385, -385,  492,  492,  492,  492,  492,
+      492,  492,  492,  492,  492,  492,  492,  492,  492,  492,
+      492,  492,  492,  492,  492,  492,  492,  492,  492,  492,
+      492, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
      -385, -385, -385, -385, -385, -385, -385, -385
@@ -7059,7 +7059,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
 
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
-     -386, -386,  387, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386,  494, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
      -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
@@ -7076,14 +7076,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387,  388, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
-
-     -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
+     -387, -387,  495, -387, -387, -387, -387, -387, -387, -387,
+     -387, -387, -387, -387, -387, -387, -387, -387,  478,  478,
+      478,  478,  478,  478,  478,  478,  478,  478, -387, -387,
+     -387, -387, -387, -387, -387,  495,  495,  495,  495,  495,
+      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
+      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
+
+      495, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387, -387, -387,
      -387, -387, -387, -387, -387, -387, -387, -387
@@ -7093,14 +7093,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388,  389, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
-     -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
+     -388, -388,  489, -388, -388, -388, -388, -388, -388, -388,
+     -388, -388, -388, -388, -388, -388, -388, -388,  490,  496,
+      496,  496,  496,  496,  496,  496,  496,  496, -388, -388,
+
+     -388, -388, -388, -388, -388,  489,  489,  489,  489,  489,
+      489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
+      489,  489,  489,  489,  489,  489,  489,  489,  489,  489,
+      489, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388, -388, -388,
      -388, -388, -388, -388, -388, -388, -388, -388
@@ -7111,13 +7111,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
 
-     -389, -389,  390, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
-     -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
+     -389, -389,  497, -389, -389, -389, -389, -389, -389, -389,
+     -389, -389, -389, -389, -389, -389, -389, -389,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498, -389, -389,
+     -389, -389, -389, -389, -389,  497,  497,  497,  497,  497,
+      497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
+      497,  497,  497,  497,  497,  497,  497,  497,  497,  497,
+      497, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389, -389, -389,
      -389, -389, -389, -389, -389, -389, -389, -389
@@ -7128,7 +7128,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
-     -390, -390,  391, -390, -390, -390, -390, -390, -390, -390,
+     -390, -390,  499, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
      -390, -390, -390, -390, -390, -390, -390, -390, -390, -390,
@@ -7145,14 +7145,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391,  392, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
-     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391,  500, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391,  490,  490,
+      490,  490,  490,  490,  490,  490,  490,  490, -391, -391,
+     -391, -391, -391, -391, -391,  500,  500,  500,  500,  500,
+
+      500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
+      500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
+      500, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
      -391, -391, -391, -391, -391, -391, -391, -391
@@ -7162,7 +7162,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
-     -392, -392,  393, -392, -392, -392, -392, -392, -392, -392,
+     -392, -392,  501, -392, -392, -392, -392, -392, -392, -392,
 
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
      -392, -392, -392, -392, -392, -392, -392, -392, -392, -392,
@@ -7180,7 +7180,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
-     -393, -393,  394, -393, -393, -393, -393, -393, -393, -393,
+     -393, -393,  502, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
      -393, -393, -393, -393, -393, -393, -393, -393, -393, -393,
@@ -7197,7 +7197,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
-     -394, -394,  395, -394, -394, -394, -394, -394, -394, -394,
+     -394, -394,  503, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
      -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
@@ -7214,7 +7214,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -395, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
-     -395, -395,  396, -395, -395, -395, -395, -395, -395, -395,
+     -395, -395,  504, -395, -395, -395, -395, -395, -395, -395,
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
 
      -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
@@ -7232,13 +7232,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
 
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396,  397, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
-     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396,  505, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396,  506,  506,
+      506,  506,  506,  506,  506,  506,  506,  506, -396, -396,
+     -396, -396, -396, -396, -396,  505,  505,  505,  505,  505,
+      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
+      505,  505,  505,  505,  505,  505,  505,  505,  505,  505,
+      505, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
      -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
 
@@ -7249,7 +7249,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
-     -397, -397,  398, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397,  507, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
      -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
@@ -7266,14 +7266,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398,  399, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
-     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398,  508, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398, -398, -398, -398,  509,  509,
+      509,  509,  509,  509,  509,  509,  509,  509, -398, -398,
+
+     -398, -398, -398, -398, -398,  508,  508,  508,  508,  508,
+      508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
+      508,  508,  508,  508,  508,  508,  508,  508,  508,  508,
+      508, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
      -398, -398, -398, -398, -398, -398, -398, -398
@@ -7284,13 +7284,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
 
-     -399, -399,  400, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
-     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399,  510, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399, -399, -399, -399,  511,  511,
+      511,  511,  511,  511,  511,  511,  511,  511, -399, -399,
+     -399, -399, -399, -399, -399,  510,  510,  510,  510,  510,
+      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
+      510,  510,  510,  510,  510,  510,  510,  510,  510,  510,
+      510, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
      -399, -399, -399, -399, -399, -399, -399, -399
@@ -7301,9 +7301,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
-     -400, -400,  401, -400, -400, -400, -400, -400, -400, -400,
-     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400,  512,  512,
+      512,  512,  512,  512,  512,  512,  512,  512, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
      -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
@@ -7318,9 +7318,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
-     -401, -401,  402, -401, -401, -401, -401, -401, -401, -401,
-     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401, -401, -401, -401,  513,  513,
+      513,  513,  513,  513,  513,  513,  513,  513, -401, -401,
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
 
      -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
@@ -7335,10 +7335,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
-     -402, -402,  403, -402, -402, -402, -402, -402, -402, -402,
-
-     -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
+
+     -402, -402, -402, -402, -402, -402, -402, -402,  514,  514,
+      514,  514,  514,  514,  514,  514,  514,  514, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
      -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
@@ -7353,13 +7353,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403,  404, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
-     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403,  515, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403, -403, -403, -403,  516,  516,
+      516,  516,  516,  516,  516,  516,  516,  516, -403, -403,
+     -403, -403, -403, -403, -403,  515,  515,  515,  515,  515,
+      515,  515,  515,  515,  515,  515,  515,  515,  515,  515,
+      515,  515,  515,  515,  515,  515,  515,  515,  515,  515,
+      515, -403, -403, -403, -403, -403, -403, -403, -403, -403,
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
 
      -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
@@ -7370,9 +7370,9 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
-     -404, -404,  405, -404, -404, -404, -404, -404, -404, -404,
-     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404,  517,  517,
+      517,  517,  517,  517,  517,  517,  517,  517, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
      -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
 
@@ -7387,14 +7387,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405,  406, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
-     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405,  518, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405, -405,  519,  519,
+
+      519,  519,  519,  519,  519,  519,  519,  519, -405, -405,
+     -405, -405, -405, -405, -405,  518,  518,  518,  518,  518,
+      518,  518,  518,  518,  518,  518,  518,  518,  518,  518,
+      518,  518,  518,  518,  518,  518,  518,  518,  518,  518,
+      518, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
      -405, -405, -405, -405, -405, -405, -405, -405
@@ -7405,13 +7405,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
 
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406,  407, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
-     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406,  518, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406, -406, -406,  520,  520,
+      520,  520,  520,  520,  520,  520,  520,  520, -406, -406,
+     -406, -406, -406, -406, -406,  518,  518,  518,  518,  518,
+      518,  518,  518,  518,  518,  518,  518,  518,  518,  518,
+      518,  518,  518,  518,  518,  518,  518,  518,  518,  518,
+      518, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
      -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
 
@@ -7422,7 +7422,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
-     -407, -407,  408, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407,  521, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
      -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
@@ -7439,14 +7439,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408,  409, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
-     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408,  522, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408, -408, -408, -408,  523,  523,
+      523,  523,  523,  523,  523,  523,  523,  523, -408, -408,
+
+     -408, -408, -408, -408, -408,  522,  522,  522,  522,  522,
+      522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
+      522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
+      522, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
      -408, -408, -408, -408, -408, -408, -408, -408
@@ -7457,13 +7457,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
 
-     -409, -409,  410, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
-     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409,  524, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409,  525,  525,
+      525,  525,  525,  525,  525,  525,  525,  525, -409, -409,
+     -409, -409, -409, -409, -409,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
      -409, -409, -409, -409, -409, -409, -409, -409
@@ -7474,13 +7474,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410,  411, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
-     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410,  524, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410, -410, -410, -410,  526,  526,
+      526,  526,  526,  526,  526,  526,  526,  526, -410, -410,
+     -410, -410, -410, -410, -410,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  524,  524,  524,  524,  524,  524,  524,  524,
+      524, -410, -410, -410, -410, -410, -410, -410, -410, -410,
 
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
      -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
@@ -7491,7 +7491,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
-     -411, -411,  412, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411,  527, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
      -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
@@ -7508,14 +7508,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412,  413, -412, -412, -412, -412, -412, -412, -412,
-
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
-     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412,  528, -412, -412, -412, -412, -412, -412, -412,
+
+     -412, -412, -412, -412, -412, -412, -412, -412,  529,  529,
+      529,  529,  529,  529,  529,  529,  529,  529, -412, -412,
+     -412, -412, -412, -412, -412,  528,  528,  528,  528,  528,
+      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
+      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
+      528, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
      -412, -412, -412, -412, -412, -412, -412, -412
@@ -7526,13 +7526,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413,  414, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
-     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413,  528, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413, -413, -413,  530,  530,
+      530,  530,  530,  530,  530,  530,  530,  530, -413, -413,
+     -413, -413, -413, -413, -413,  528,  528,  528,  528,  528,
+      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
+      528,  528,  528,  528,  528,  528,  528,  528,  528,  528,
+      528, -413, -413, -413, -413, -413, -413, -413, -413, -413,
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
 
      -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
@@ -7543,14 +7543,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414,  415, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
-     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414,  531, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414, -414, -414, -414, -414, -414, -414,  523,  523,
+      523,  523,  523,  523,  523,  523,  523,  523, -414, -414,
+     -414, -414, -414, -414, -414,  531,  531,  531,  531,  531,
+      531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
+
+      531,  531,  531,  531,  531,  531,  531,  531,  531,  531,
+      531, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
      -414, -414, -414, -414, -414, -414, -414, -414
@@ -7560,7 +7560,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
-     -415, -415,  416, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415,  532, -415, -415, -415, -415, -415, -415, -415,
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
 
      -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
@@ -7578,7 +7578,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
 
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
-     -416, -416,  417, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416,  533, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
      -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
@@ -7595,14 +7595,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417,  418, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
-
-     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417,  534, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417, -417, -417, -417, -417, -417, -417,  535,  535,
+      535,  535,  535,  535,  535,  535,  535,  535, -417, -417,
+     -417, -417, -417, -417, -417,  534,  534,  534,  534,  534,
+      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
+      534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
+
+      534, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
      -417, -417, -417, -417, -417, -417, -417, -417
@@ -7612,7 +7612,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
-     -418, -418,  419, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418,  536, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
      -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
 
@@ -7630,13 +7630,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
 
-     -419, -419,  420, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419,  537, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419,  538,  538,
+      538,  538,  538,  538,  538,  538,  538,  538, -419, -419,
+     -419, -419, -419, -419, -419,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
      -419, -419, -419, -419, -419, -419, -419, -419
@@ -7647,13 +7647,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420,  421, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
-     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420,  537, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420,  539,  539,
+      539,  539,  539,  539,  539,  539,  539,  539, -420, -420,
+     -420, -420, -420, -420, -420,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
+      537, -420, -420, -420, -420, -420, -420, -420, -420, -420,
 
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
      -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
@@ -7664,14 +7664,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421,  422, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
-     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421,  540, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421, -421,  523,  523,
+      523,  523,  523,  523,  523,  523,  523,  523, -421, -421,
+     -421, -421, -421, -421, -421,  540,  540,  540,  540,  540,
+
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
+      540, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
      -421, -421, -421, -421, -421, -421, -421, -421
@@ -7681,7 +7681,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
-     -422, -422,  423, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422,  541, -422, -422, -422, -422, -422, -422, -422,
 
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
      -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
@@ -7699,7 +7699,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
-     -423, -423,  424, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423,  542, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
      -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
@@ -7716,14 +7716,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424,  425, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
-     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424,  543, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424,  544,  544,
+      544,  544,  544,  544,  544,  544,  544,  544, -424, -424,
+     -424, -424, -424, -424, -424,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
      -424, -424, -424, -424, -424, -424, -424, -424
@@ -7733,14 +7733,14 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425,  426, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
-     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425,  543, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425,  545,  545,
+
+      545,  545,  545,  545,  545,  545,  545,  545, -425, -425,
+     -425, -425, -425, -425, -425,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
      -425, -425, -425, -425, -425, -425, -425, -425
@@ -7751,13 +7751,13 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
 
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426,  427, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
-     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426,  546, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426,  535,  535,
+      535,  535,  535,  535,  535,  535,  535,  535, -426, -426,
+     -426, -426, -426, -426, -426,  546,  546,  546,  546,  546,
+      546,  546,  546,  546,  546,  546,  546,  546,  546,  546,
+      546,  546,  546,  546,  546,  546,  546,  546,  546,  546,
+      546, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
      -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
 
@@ -7768,7 +7768,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
-     -427, -427,  428, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427,  547, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
      -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
@@ -7782,20 +7782,20 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428,  429, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+       33,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      429,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  430,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  431,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
 
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
-     -428, -428, -428, -428, -428, -428, -428, -428
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428
     },
 
     {
@@ -7803,7 +7803,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
 
-     -429, -429,  430, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
      -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
@@ -7817,50 +7817,50 @@ static yyconst flex_int16_t yy_nxt[][128] =
     },
 
     {
-       33, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430,  431, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+       33,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      429,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  430,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  431,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
 
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
-     -430, -430, -430, -430, -430, -430, -430, -430
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428
     },
 
     {
-       33, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431,  432, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+       33,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      429,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  430,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  431,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
 
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
-     -431, -431, -431, -431, -431, -431, -431, -431
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428
     },
 
     {
        33, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
-     -432, -432,  433, -432, -432, -432, -432, -432, -432, -432,
-
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432,  548, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
      -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
@@ -7872,10 +7872,10 @@ static yyconst flex_int16_t yy_nxt[][128] =
 
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
-     -433, -433,  434, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433,  549, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
      -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
@@ -7889,7 +7889,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
-     -434, -434,  435, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434,  550, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
      -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
@@ -7906,7 +7906,7 @@ static yyconst flex_int16_t yy_nxt[][128] =
        33, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
-     -435, -435,  436, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435,  551, -435, -435, -435, -435, -435, -435, -435,
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
 
      -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
@@ -7919,91 +7919,4122 @@ static yyconst flex_int16_t yy_nxt[][128] =
      -435, -435, -435, -435, -435, -435, -435, -435
     },
 
-    {
-       33, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+    {
+       33, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436,  552, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+
+     -436, -436, -436, -436, -436, -436, -436, -436
+    },
+
+    {
+       33, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437,  553,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437
+    },
+
+    {
+       33, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+
+     -438, -438, -438, -438, -438, -438, -438, -438, -438,  554,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438
+    },
+
+    {
+       33, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439,  555, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439
+
+    },
+
+    {
+       33, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440,  556, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440
+    },
+
+    {
+       33, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441,  557, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441
+    },
+
+    {
+       33, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+
+     -442, -442, -442, -442, -442,  558, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442
+    },
+
+    {
+       33, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443,  559,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443
+    },
+
+    {
+       33, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+
+     -444, -444, -444,  560, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444
+    },
+
+    {
+       33, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445,  561,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445,  562, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445
+    },
+
+    {
+       33, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446,  563, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+
+     -446, -446, -446, -446, -446, -446, -446, -446
+    },
+
+    {
+       33, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447,  564, -447, -447, -447, -447, -447, -447,
+
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447
+    },
+
+    {
+       33, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448,  565, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448
+    },
+
+    {
+       33, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449,  566, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449
+
+    },
+
+    {
+       33, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450,  567, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450
+    },
+
+    {
+       33, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451,  568, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451
+    },
+
+    {
+       33, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452,  569, -452, -452, -452, -452, -452, -452, -452,
+
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  569,  569,  569,  569,  569,  569,
+      569, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452
+    },
+
+    {
+       33, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453,  570,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453
+    },
+
+    {
+       33, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+
+     -454, -454, -454,  571, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454
+    },
+
+    {
+       33, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455,  572,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455
+    },
+
+    {
+       33, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456,  573,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+
+     -456, -456, -456, -456, -456, -456, -456, -456
+    },
+
+    {
+       33, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457
+    },
+
+    {
+       33, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458
+    },
+
+    {
+       33, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459
+
+    },
+
+    {
+       33, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460
+    },
+
+    {
+       33, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461
+    },
+
+    {
+       33, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462
+    },
+
+    {
+       33, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463
+    },
+
+    {
+       33, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464
+    },
+
+    {
+       33, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465
+    },
+
+    {
+       33, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+
+     -466, -466, -466, -466, -466, -466, -466, -466
+    },
+
+    {
+       33, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467
+    },
+
+    {
+       33, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468
+    },
+
+    {
+       33, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469
+
+    },
+
+    {
+       33, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470
+    },
+
+    {
+       33, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471
+    },
+
+    {
+       33, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472
+    },
+
+    {
+       33, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473
+    },
+
+    {
+       33, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474
+    },
+
+    {
+       33, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475
+    },
+
+    {
+       33, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+
+     -476, -476, -476, -476, -476, -476, -476, -476
+    },
+
+    {
+       33, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477
+    },
+
+    {
+       33, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478
+    },
+
+    {
+       33, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479
+
+    },
+
+    {
+       33, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480
+    },
+
+    {
+       33, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481
+    },
+
+    {
+       33, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482
+    },
+
+    {
+       33, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483
+    },
+
+    {
+       33, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484
+    },
+
+    {
+       33, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485
+    },
+
+    {
+       33, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+
+     -486, -486, -486, -486, -486, -486, -486, -486
+    },
+
+    {
+       33, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487
+    },
+
+    {
+       33, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488
+    },
+
+    {
+       33, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489
+
+    },
+
+    {
+       33, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490
+    },
+
+    {
+       33, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491
+    },
+
+    {
+       33, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492
+    },
+
+    {
+       33, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493
+    },
+
+    {
+       33, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494
+    },
+
+    {
+       33, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495
+    },
+
+    {
+       33, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+
+     -496, -496, -496, -496, -496, -496, -496, -496
+    },
+
+    {
+       33, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497
+    },
+
+    {
+       33, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498
+    },
+
+    {
+       33, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499
+
+    },
+
+    {
+       33, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500
+    },
+
+    {
+       33, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501
+    },
+
+    {
+       33, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502
+    },
+
+    {
+       33, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503
+    },
+
+    {
+       33, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504
+    },
+
+    {
+       33, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505
+    },
+
+    {
+       33, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+
+     -506, -506, -506, -506, -506, -506, -506, -506
+    },
+
+    {
+       33, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507
+    },
+
+    {
+       33, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508
+    },
+
+    {
+       33, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509
+
+    },
+
+    {
+       33, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510
+    },
+
+    {
+       33, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511
+    },
+
+    {
+       33, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512
+    },
+
+    {
+       33, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513
+    },
+
+    {
+       33, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514
+    },
+
+    {
+       33, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515
+    },
+
+    {
+       33, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+
+     -516, -516, -516, -516, -516, -516, -516, -516
+    },
+
+    {
+       33, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517
+    },
+
+    {
+       33, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518
+    },
+
+    {
+       33, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519
+
+    },
+
+    {
+       33, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520
+    },
+
+    {
+       33, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521
+    },
+
+    {
+       33, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522
+    },
+
+    {
+       33, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523
+    },
+
+    {
+       33, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524
+    },
+
+    {
+       33, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525
+    },
+
+    {
+       33, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+
+     -526, -526, -526, -526, -526, -526, -526, -526
+    },
+
+    {
+       33, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527
+    },
+
+    {
+       33, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528
+    },
+
+    {
+       33, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529
+
+    },
+
+    {
+       33, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530
+    },
+
+    {
+       33, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531
+    },
+
+    {
+       33, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532
+    },
+
+    {
+       33, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533
+    },
+
+    {
+       33, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534
+    },
+
+    {
+       33, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535
+    },
+
+    {
+       33, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+
+     -536, -536, -536, -536, -536, -536, -536, -536
+    },
+
+    {
+       33, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537
+    },
+
+    {
+       33, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538
+    },
+
+    {
+       33, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539
+
+    },
+
+    {
+       33, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540
+    },
+
+    {
+       33, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541
+    },
+
+    {
+       33, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542
+    },
+
+    {
+       33, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543
+    },
+
+    {
+       33, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544
+    },
+
+    {
+       33, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545
+    },
+
+    {
+       33, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+
+     -546, -546, -546, -546, -546, -546, -546, -546
+    },
+
+    {
+       33, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547
+    },
+
+    {
+       33, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548,  574, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548
+    },
+
+    {
+       33, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549,  575, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549
+
+    },
+
+    {
+       33, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550,  576, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550
+    },
+
+    {
+       33, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551,  577, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551
+    },
+
+    {
+       33, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552
+    },
+
+    {
+       33, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+
+     -553, -553, -553, -553, -553, -553, -553, -553, -553, -553,
+     -553, -553, -553, -553, -553, -553, -553, -553
+    },
+
+    {
+       33, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554
+    },
+
+    {
+       33, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555,  578, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555
+    },
+
+    {
+       33, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556,  579, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+
+     -556, -556, -556, -556, -556, -556, -556, -556
+    },
+
+    {
+       33, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557,  580, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557
+    },
+
+    {
+       33, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558,  581,  582,
+      583, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558, -558, -558,
+     -558, -558, -558, -558, -558, -558, -558, -558
+    },
+
+    {
+       33, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559,  584, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559
+
+    },
+
+    {
+       33, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560, -560, -560,
+     -560, -560, -560, -560, -560, -560, -560, -560
+    },
+
+    {
+       33, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561,  585, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561
+    },
+
+    {
+       33, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562, -562, -562,
+     -562, -562, -562, -562, -562, -562, -562, -562
+    },
+
+    {
+       33, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563
+    },
+
+    {
+       33, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564, -564, -564,
+     -564, -564, -564, -564, -564, -564, -564, -564
+    },
+
+    {
+       33, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565, -565, -565,
+     -565, -565, -565, -565, -565, -565, -565, -565
+    },
+
+    {
+       33, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+
+     -566, -566, -566, -566, -566, -566, -566, -566
+    },
+
+    {
+       33, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567, -567, -567,
+     -567, -567, -567, -567, -567, -567, -567, -567
+    },
+
+    {
+       33, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568
+    },
+
+    {
+       33, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+
+     -569, -569,  586, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569
+
+    },
+
+    {
+       33, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570,  587, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570,  587,  587,  587,  587,  587,
+      587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
+      587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
+      587, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570
+    },
+
+    {
+       33, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571,  588, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571,  588,  588,  588,  588,  588,
+
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588,  588,  588,  588,  588,  588,  588,  588,  588,  588,
+      588, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571
+    },
+
+    {
+       33, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572
+    },
+
+    {
+       33, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573
+    },
+
+    {
+       33, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574
+    },
+
+    {
+       33, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575, -575, -575,
+     -575, -575, -575, -575, -575, -575, -575, -575
+    },
+
+    {
+       33, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576,  589, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+
+     -576, -576, -576, -576, -576, -576, -576, -576
+    },
+
+    {
+       33, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577
+    },
+
+    {
+       33, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578, -578, -578,
+     -578, -578, -578, -578, -578, -578, -578, -578
+    },
+
+    {
+       33, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579, -579, -579,
+     -579, -579, -579, -579, -579, -579, -579, -579
+
+    },
+
+    {
+       33, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580,  590, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580, -580, -580,
+     -580, -580, -580, -580, -580, -580, -580, -580
+    },
+
+    {
+       33, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581
+    },
+
+    {
+       33, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582
+    },
+
+    {
+       33, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583
+    },
+
+    {
+       33, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584
+    },
+
+    {
+       33, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585
+    },
+
+    {
+       33, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+
+     -586, -586, -586, -586, -586, -586, -586, -586
+    },
+
+    {
+       33, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587
+    },
+
+    {
+       33, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+
+     -588,  591, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588
+    },
+
+    {
+       33, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+
+     -589, -589,  592, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589
+
+    },
+
+    {
+       33, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590,  593, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590
+    },
+
+    {
+       33, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591,  594, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591
+    },
+
+    {
+       33, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592,  595, -592, -592, -592, -592, -592, -592, -592,
+
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592
+    },
+
+    {
+       33, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593,  596, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593,  597, -593,  597, -593, -593,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593
+    },
+
+    {
+       33, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594,  599, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594,  600, -594,  600, -594, -594,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594
+    },
+
+    {
+       33, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595,  602, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595
+    },
+
+    {
+       33, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596,  596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596,  597, -596,  597, -596, -596,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+
+     -596, -596, -596, -596, -596, -596, -596, -596
+    },
+
+    {
+       33, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597
+    },
+
+    {
+       33, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598,  603, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598,  604,  598,  598,
+      598,  598,  598,  598,  598,  598,  598,  598, -598, -598,
+
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598
+    },
+
+    {
+       33, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+
+     -599, -599,  599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599,  600, -599,  600, -599, -599,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599
+
+    },
+
+    {
+       33, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600
+    },
+
+    {
+       33, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601,  601,  601,
+      601,  601,  601,  601,  601,  601,  601,  601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601
+    },
+
+    {
+       33, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602,  605, -602, -602, -602, -602, -602, -602, -602,
+
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602
+    },
+
+    {
+       33, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603,  603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603,  604, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603
+    },
+
+    {
+       33,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+     -604,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606
+    },
+
+    {
+       33, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605,  607, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605
+    },
+
+    {
+       33,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+     -606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+      606,  606,  606,  606,  606,  606,  606,  606,  606,  606,
+
+      606,  606,  606,  606,  606,  606,  606,  606
+    },
+
+    {
+       33, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607,  608, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607
+    },
+
+    {
+       33, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608,  609, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608
+    },
+
+    {
+       33, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+
+     -609, -609,  610, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609
+
+    },
+
+    {
+       33, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610,  611, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610
+    },
+
+    {
+       33, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611,  612, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611
+    },
+
+    {
+       33, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612,  613, -612, -612, -612, -612, -612, -612, -612,
+
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612
+    },
+
+    {
+       33, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613,  614, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613
+    },
+
+    {
+       33, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614,  615, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614
+    },
+
+    {
+       33, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615,  616, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615
+    },
+
+    {
+       33, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616,  617, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+
+     -616, -616, -616, -616, -616, -616, -616, -616
+    },
+
+    {
+       33, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617,  618, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617
+    },
+
+    {
+       33, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618,  619, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618
+    },
+
+    {
+       33, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+
+     -619, -619,  620, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619
+
+    },
+
+    {
+       33, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620,  621, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620
+    },
+
+    {
+       33, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621,  622, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621
+    },
+
+    {
+       33, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622,  623, -622, -622, -622, -622, -622, -622, -622,
+
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622
+    },
+
+    {
+       33, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623,  624, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623
+    },
+
+    {
+       33, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624,  625, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624
+    },
+
+    {
+       33, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625,  626, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625
+    },
+
+    {
+       33, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626,  627, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+
+     -626, -626, -626, -626, -626, -626, -626, -626
+    },
+
+    {
+       33, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627,  628, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627
+    },
+
+    {
+       33, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628,  629, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628
+    },
+
+    {
+       33, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+
+     -629, -629,  630, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629
+
+    },
+
+    {
+       33, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630,  631, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630
+    },
+
+    {
+       33, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631,  632, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631
+    },
+
+    {
+       33, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632,  633, -632, -632, -632, -632, -632, -632, -632,
+
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632
+    },
+
+    {
+       33, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633,  634, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633
+    },
+
+    {
+       33, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634,  635, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634
+    },
+
+    {
+       33, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635,  636, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635
+    },
+
+    {
+       33, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636,  637, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+
+     -636, -636, -636, -636, -636, -636, -636, -636
+    },
+
+    {
+       33, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637,  638, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637
+    },
+
+    {
+       33, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638,  639, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638
+    },
+
+    {
+       33, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+
+     -639, -639,  640, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639
+
+    },
+
+    {
+       33, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640,  641, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640
+    },
+
+    {
+       33, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641,  642, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641
+    },
+
+    {
+       33, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642,  643, -642, -642, -642, -642, -642, -642, -642,
+
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642
+    },
+
+    {
+       33, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643,  644, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643
+    },
+
+    {
+       33, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644,  645, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644
+    },
+
+    {
+       33, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645,  646, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645
+    },
+
+    {
+       33, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646,  647, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+
+     -646, -646, -646, -646, -646, -646, -646, -646
+    },
+
+    {
+       33, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647,  648, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647
+    },
+
+    {
+       33, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648,  649, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648
+    },
+
+    {
+       33, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+
+     -649, -649,  650, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649
+
+    },
+
+    {
+       33, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650,  651, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650
+    },
+
+    {
+       33, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651,  652, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651
+    },
+
+    {
+       33, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652,  653, -652, -652, -652, -652, -652, -652, -652,
+
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652
+    },
+
+    {
+       33, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653,  654, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653
+    },
+
+    {
+       33, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654,  655, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654
+    },
+
+    {
+       33, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655,  656, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655
+    },
+
+    {
+       33, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656,  657, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+
+     -656, -656, -656, -656, -656, -656, -656, -656
+    },
+
+    {
+       33, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657,  658, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657
+    },
+
+    {
+       33, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658,  659, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658
+    },
+
+    {
+       33, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+
+     -659, -659,  660, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659
+
+    },
+
+    {
+       33, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660,  661, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660
+    },
+
+    {
+       33, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661,  662, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661
+    },
+
+    {
+       33, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662,  663, -662, -662, -662, -662, -662, -662, -662,
+
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662
+    },
+
+    {
+       33, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663,  664, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663
+    },
+
+    {
+       33, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664,  665, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
 
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436,  437, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
-     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664
+    },
+
+    {
+       33, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665,  666, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
 
-     -436, -436, -436, -436, -436, -436, -436, -436
-    },
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665
+    },
+
+    {
+       33, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666,  667, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+
+     -666, -666, -666, -666, -666, -666, -666, -666
+    },
+
+    {
+       33, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667,  668, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667
+    },
+
+    {
+       33, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668,  669, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668
+    },
 
     {
-       33, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437,  438, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+       33, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+
+     -669, -669,  670, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669
 
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
-     -437, -437, -437, -437, -437, -437, -437, -437
     },
 
     {
-       33, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438,  439, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+       33, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670,  671, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
 
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
-     -438, -438, -438, -438, -438, -438, -438, -438
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670
     },
 
     {
-       33, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-
-     -439, -439,  440, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
-     -439, -439, -439, -439, -439, -439, -439, -439
+       33, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671,  672, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
 
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671
     },
 
     {
-       33, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+       33, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672,  673, -672, -672, -672, -672, -672, -672, -672,
 
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
-     -440, -440, -440, -440, -440, -440, -440, -440
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672
+    },
+
+    {
+       33, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673
     },
 
     } ;
@@ -8023,8 +12054,8 @@ static void yy_fatal_error (yyconst char msg[]  );
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 94
-#define YY_END_OF_BUFFER 95
+#define YY_NUM_RULES 172
+#define YY_END_OF_BUFFER 173
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -8032,86 +12063,125 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[441] =
+static yyconst flex_int16_t yy_accept[674] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   89,   89,   91,   91,   92,   92,
-        0,    0,   95,   94,   43,   43,   43,   43,   43,   43,
-       43,   43,   43,   43,   43,   43,   43,   43,   63,   63,
-       79,   79,   47,   47,   59,   59,   59,   77,   77,   66,
-       64,   65,   81,   81,   83,   83,   82,   85,   85,   85,
-       84,   87,   87,   90,   89,   88,   91,   92,   94,   93,
-        5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    4,    0,   18,   16,    0,
-
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   80,   82,    0,
-       84,   84,   84,   84,    0,    0,   86,   89,   88,   88,
-       91,   92,    0,   93,    0,    0,    0,    0,    0,    0,
+        0,    0,  173,  172,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,  102,  102,
+      155,  155,   51,   51,   51,   98,   98,   98,  151,  151,
+      151,  105,  103,  104,  157,  157,  159,  159,  158,  161,
+      161,  161,  160,  163,  163,  172,  164,  172,  172,  172,
+      169,  172,  170,  172,  171,    5,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        4,    0,   18,   16,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   60,   61,   62,   78,   44,   45,   46,    0,    0,
-        0,    0,    0,    0,    0,    0,   84,    0,   84,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  156,  158,    0,  160,  160,  160,  160,
+        0,    0,  162,    0,  166,    0,    0,    0,  164,    0,
+        0,    0,  164,    0,    0,    0,  169,    0,  170,    0,
+      171,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   99,  100,
+      101,  152,  153,  154,   48,   49,   50,   47,   46,   44,
 
+       45,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  160,    0,  160,    0,    0,
+      165,    0,    0,    0,  167,    0,    0,    0,  164,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    6,   19,   20,    7,    3,   10,   21,    9,    8,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  168,    0,    0,    0,  165,    0,    0,
+        0,  164,    0,    0,    6,   19,   20,    7,    3,   10,
+       21,    9,    8,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   17,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   58,   57,   53,   56,
 
-       50,   51,   55,   48,   49,   52,   54,   76,   72,   75,
-       69,   70,   74,   67,   68,   71,   73,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  165,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   87,   89,   92,   96,
+       88,   91,   95,   90,   94,   93,   97,   83,   61,   80,
+       84,   72,   62,   58,   67,   78,   81,   85,   73,   70,
+       75,   63,   59,   68,   56,   65,   77,   79,   82,   86,
+       74,   71,   76,   54,   55,   64,   60,   69,   57,   66,
+
+       52,   53,  141,  143,  146,  150,  142,  145,  149,  144,
+      148,  147,  137,  115,  134,  138,  126,  112,  116,  121,
+      132,  135,  139,  124,  127,  129,  110,  113,  117,  122,
+      119,  131,  133,  136,  140,  108,  125,  128,  130,  109,
+      106,  111,  114,  118,  123,  120,  107,    0,    0,    0,
         0,   25,   12,   11,    0,    0,    0,    0,    0,   31,
         0,   13,   15,   33,   34,   35,   36,   37,    0,    0,
         0,   40,   41,   22,   23,    0,   24,   26,   27,    0,
        28,   29,   30,   32,   14,   38,   39,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    1,    0,    0,
-        2,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        2,    0,    1,    1,    0,    1,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   42
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   42
     } ;
 
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
 
-static yyconst yy_state_type yy_NUL_trans[441] =
+static yyconst yy_state_type yy_NUL_trans[674] =
     {   0,
-       34,   35,   49,   49,   51,   51,   53,   53,   55,   55,
-       58,   58,   60,   60,   62,   62,   63,   63,   65,   65,
-       68,   68,   72,   72,   74,   74,   77,   77,   78,   78,
-       79,   79,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       34,   35,   49,   49,   51,   51,   53,   53,   56,   56,
+       59,   59,   62,   62,   64,   64,   65,   65,   67,   67,
+       70,   70,   74,   74,   76,   76,   80,   80,   82,   82,
+       84,   84,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  126,    0,    0,  130,  131,  132,  133,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  142,  144,    0,  148,  152,  156,
+        0,  158,    0,  160,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  126,    0,    0,  130,  130,
-      131,  132,  133,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  142,    0,  144,    0,  229,  230,  234,    0,  238,
+      152,  152,    0,  152,  152,  156,    0,  158,    0,  160,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  229,  230,
+        0,  230,  230,  234,    0,  234,  317,  234,    0,  238,
+      321,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  229,  428,  317,    0,  317,  317,
+      321,    0,  321,  321,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -8119,6 +12189,15 @@ static yyconst yy_state_type yy_NUL_trans[441] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  428,    0,  428,
+      428,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
@@ -8133,10 +12212,14 @@ static yyconst yy_state_type yy_NUL_trans[441] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
+        0,    0,    0,  606,    0,  606,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0
     } ;
 
 extern int wcspih_flex_debug;
@@ -8153,7 +12236,7 @@ char *wcspihtext;
 #line 1 "wcspih.l"
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -8175,7 +12258,7 @@ char *wcspihtext;
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcspih.c,v 4.25.1.2 2015/01/06 01:06:52 mcalabre Exp mcalabre $
+  $Id: wcspih.c,v 5.0 2015/04/05 09:18:14 mcalabre Exp $
 *=============================================================================
 *
 * wcspih.l is a Flex description file containing the definition of a lexical
@@ -8221,6 +12304,7 @@ char *wcspihtext;
 /* Indices for parameterized keywords. */
 /* Alternate coordinate system identifier. */
 /* Keyvalue data types. */
+/* Inline comment syntax. */
 /* Exclusive start states. */
 
 
@@ -8228,7 +12312,7 @@ char *wcspihtext;
 
 
 
-#line 99 "wcspih.l"
+#line 106 "wcspih.l"
 #include <math.h>
 #include <setjmp.h>
 #include <stdio.h>
@@ -8265,17 +12349,19 @@ char *wcspihtext;
 char *wcspih_hdr;
 int  wcspih_nkeyrec;
 
-int wcspih_final(int alts[], double epoch[], double vsource[], int *nwcs,
-        struct wcsprm **wcs);
+int wcspih_final(int alts[], int *nwcs, struct wcsprm **wcs);
 int wcspih_inits(int naxis, int alts[], int npv[], int nps[], int *nwcs,
         struct wcsprm **wcs);
 void wcspih_naxes(int naxis, int i, int j, char a, int alts[], int *npptr);
 
+int wcspih_epoch(double *wptr, double epoch);
+int wcspih_vsource(double *wptr, double vsource);
+
 /* Used in preempting the call to exit() by yy_fatal_error(). */
 jmp_buf wcspih_abort_jmp_env;
 #define exit(status) longjmp(wcspih_abort_jmp_env, status)
 
-#line 8279 "wcspih.c"
+#line 12365 "wcspih.c"
 
 #define INITIAL 0
 #define CROTAi 1
@@ -8464,18 +12550,21 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 147 "wcspih.l"
+#line 156 "wcspih.l"
 
 	/* Keyword indices, as used in the WCS papers, e.g. PCi_ja, PVi_ma. */
 	char a;
 	int  i, j, m;
 	
-	char *cptr, *errmsg, errtxt[80], *hptr, *keep;
-	int  altlin, alts[27], ialt, idx, ipx, ix, jx, naxis, *npptr,
-	     nps[27], npv[27], pass, status, valtype, voff;
-	double epoch[27], vsource[27];
+	char *cptr, *errmsg, errtxt[80], *hptr, *keep, *keyname, *keyrec,
+	     strtmp[80];
+	int  altlin, alts[27], gotone, ialt, inttmp, ipass, ipx, ix, jx,
+	     naxis, nother, *npptr, nps[27], npass, npv[27], nvalid, status,
+	     valtype, voff;
+	double dbltmp;
 	void *vptr, *wptr;
-	struct wcsprm *wcsp;
+	struct wcsprm *wcsp, wcstem;
+	int (*special)(double *, double);
 	int wcspihlex_destroy(void);
 	
 	naxis = 0;
@@ -8483,8 +12572,6 @@ YY_DECL
 	  alts[ialt] = 0;
 	  npv[ialt] = 0;
 	  nps[ialt] = 0;
-	  epoch[ialt]   = UNDEFINED;
-	  vsource[ialt] = UNDEFINED;
 	}
 	
 	/* Parameters used to implement YY_INPUT. */
@@ -8492,28 +12579,39 @@ YY_DECL
 	wcspih_nkeyrec = nkeyrec;
 	
 	/* Our handle on the input stream. */
+	keyrec = header;
 	hptr = header;
 	keep = 0x0;
+	
+	/* For keeping tallies of keywords found. */
 	*nreject = 0;
+	nvalid = 0;
+	nother = 0;
+	
+	/* If strict, then also reject. */
+	if (relax & WCSHDR_strict) relax |= WCSHDR_reject;
 	
 	/* Keyword parameters. */
-	i = j = m = 0;
+	i = j = 0;
+	m = 0;
 	a = ' ';
 	
 	/* For decoding the keyvalue. */
 	valtype = -1;
-	idx     = -1;
 	vptr    = 0x0;
 	
 	/* For keywords that require special handling. */
-	altlin = 0;
-	npptr  = 0x0;
+	altlin  = 0;
+	npptr   = 0x0;
+	special = 0x0;
 	
 	/* The data structures produced. */
 	*nwcs = 0;
 	*wcs  = 0x0;
 	
-	pass = 1;
+	/* Control variables. */
+	ipass = 1;
+	npass = 2;
 	
 	/* Return here via longjmp() invoked by yy_fatal_error(). */
 	if (setjmp(wcspih_abort_jmp_env)) {
@@ -8523,7 +12621,7 @@ YY_DECL
 	BEGIN(INITIAL);
 
 
-#line 8527 "wcspih.c"
+#line 12625 "wcspih.c"
 
 	if ( !(yy_init) )
 		{
@@ -8597,247 +12695,311 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 205 "wcspih.l"
+#line 226 "wcspih.l"
 {
-	  if (pass == 1) {
+	  keyname = "NAXISn";
+	
+	  if (ipass == 1) {
 	    sscanf(wcspihtext, "NAXIS   = %d", &naxis);
-	  }
+	    if (naxis < 0) naxis = 0;
+	    BEGIN(FLUSH);
 	
-	  if (naxis < 0) {
-	    errmsg = errtxt;
-	    sprintf(errmsg, "Negative value of NAXIS ignored: %d", naxis);
-	    naxis = 0;
-	    BEGIN(ERROR);
 	  } else {
-	    BEGIN(DISCARD);
+	    sscanf(wcspihtext, "NAXIS   = %d", &i);
+	
+	    if (i < 0) {
+	      errmsg = "negative value of NAXIS ignored";
+	      BEGIN(ERROR);
+	    } else {
+	      BEGIN(DISCARD);
+	    }
 	  }
 	}
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 220 "wcspih.l"
+#line 246 "wcspih.l"
 {
-	  if (pass == 1) {
-	    sscanf(wcspihtext, "WCSAXES%c= %d", &a, &i);
-	    wcspih_naxes(naxis, i, 0, a, alts, 0);
+	  sscanf(wcspihtext, "WCSAXES%c= %d", &a, &i);
+	
+	  if (i < 0) {
+	    errmsg = "negative value of WCSAXESa ignored";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    valtype = INTEGER;
+	    vptr    = 0x0;
+	
+	    keyname = "WCSAXESa";
+	    BEGIN(COMMENT);
 	  }
-	  BEGIN(FLUSH);
 	}
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 228 "wcspih.l"
+#line 262 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crpix);
+	  vptr    = &(wcstem.crpix);
+	
+	  keyname = "CRPIXja";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 234 "wcspih.l"
+#line 270 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pc);
+	  vptr    = &(wcstem.pc);
 	  altlin = 1;
+	
+	  keyname = "PCi_ja";
 	  BEGIN(CCi_ja);
 	}
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 241 "wcspih.l"
+#line 279 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->cd);
+	  vptr    = &(wcstem.cd);
 	  altlin = 2;
+	
+	  keyname = "CDi_ja";
 	  BEGIN(CCi_ja);
 	}
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 248 "wcspih.l"
+#line 288 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->cdelt);
+	  vptr    = &(wcstem.cdelt);
+	
+	  keyname = "CDELTia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 254 "wcspih.l"
+#line 296 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crota);
+	  vptr    = &(wcstem.crota);
 	  altlin = 4;
+	
+	  keyname = "CROTAn";
 	  BEGIN(CROTAi);
 	}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 261 "wcspih.l"
+#line 305 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->cunit);
+	  vptr    = &(wcstem.cunit);
+	
+	  keyname = "CUNITia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 267 "wcspih.l"
+#line 313 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->ctype);
+	  vptr    = &(wcstem.ctype);
+	
+	  keyname = "CTYPEia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 273 "wcspih.l"
+#line 321 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crval);
+	  vptr    = &(wcstem.crval);
+	
+	  keyname = "CRVALia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 279 "wcspih.l"
+#line 329 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->lonpole);
+	  vptr    = &(wcstem.lonpole);
+	
+	  keyname = "LONPOLEa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 285 "wcspih.l"
+#line 337 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->latpole);
+	  vptr    = &(wcstem.latpole);
+	
+	  keyname = "LATPOLEa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 291 "wcspih.l"
+#line 345 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restfrq);
+	  vptr    = &(wcstem.restfrq);
+	
+	  keyname = "RESTFRQa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 297 "wcspih.l"
+#line 353 "wcspih.l"
 {
-	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restfrq);
-	  unput(' ');
-	  BEGIN(CCCCCCCa);
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the RESTFREQ keyword is deprecated, use RESTFRQa";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    valtype = FLOAT;
+	    vptr    = &(wcstem.restfrq);
+	
+	    unput(' ');
+	
+	    keyname = "RESTFREQ";
+	    BEGIN(CCCCCCCa);
+	  }
 	}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 304 "wcspih.l"
+#line 369 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restwav);
+	  vptr    = &(wcstem.restwav);
+	
+	  keyname = "RESTWAVa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 310 "wcspih.l"
+#line 377 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pv);
+	  vptr    = &(wcstem.pv);
 	  npptr = npv;
+	
+	  keyname = "PVi_ma";
 	  BEGIN(CCi_ma);
 	}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 317 "wcspih.l"
+#line 386 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pv);
+	  vptr    = &(wcstem.pv);
 	  npptr = npv;
+	
+	  keyname = "PROJPn";
 	  BEGIN(PROJPn);
 	}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 324 "wcspih.l"
+#line 395 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->ps);
+	  vptr    = &(wcstem.ps);
 	  npptr = nps;
+	
+	  keyname = "PSi_ma";
 	  BEGIN(CCi_ma);
 	}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 331 "wcspih.l"
+#line 404 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->cname);
+	  vptr    = &(wcstem.cname);
+	
+	  keyname = "CNAMEia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 337 "wcspih.l"
+#line 412 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crder);
+	  vptr    = &(wcstem.crder);
+	
+	  keyname = "CRDERia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 343 "wcspih.l"
+#line 420 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->csyer);
+	  vptr    = &(wcstem.csyer);
+	
+	  keyname = "CSYERia";
 	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 349 "wcspih.l"
+#line 428 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->dateavg;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.dateavg;
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "DATE-AVG";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 356 "wcspih.l"
+#line 437 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->dateobs;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.dateobs;
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "DATE-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 363 "wcspih.l"
+#line 446 "wcspih.l"
 {
 	  sscanf(wcspihtext, "EPOCH%c", &a);
 	
-	  if (a == ' ' || relax & WCSHDR_EPOCHa) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the EPOCH keyword is deprecated, use EQUINOXa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_EPOCHa) {
 	    valtype = FLOAT;
-	    if (pass == 2) {
-	      vptr = epoch;
-	      if (a >= 'A') {
-	        vptr = (void *)((double *)vptr + alts[a-'A'+1]);
-	      }
-	    }
+	    vptr    = &(wcstem.equinox);
+	    special = wcspih_epoch;
 	
-	    unput(' ');
+	    unput(a);
+	
+	    keyname = "EPOCH";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
@@ -8851,84 +13013,106 @@ YY_RULE_SETUP
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 387 "wcspih.l"
+#line 472 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->equinox);
+	  vptr    = &(wcstem.equinox);
+	
+	  keyname = "EQUINOXa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 393 "wcspih.l"
+#line 480 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->mjdavg);
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = &(wcstem.mjdavg);
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "MJD-AVG";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 400 "wcspih.l"
+#line 490 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->mjdobs);
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = &(wcstem.mjdobs);
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "MJD-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 407 "wcspih.l"
+#line 500 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-X";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 414 "wcspih.l"
+#line 510 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo + 1;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo + 1;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-Y";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 421 "wcspih.l"
+#line 520 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo + 2;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo + 2;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-Z";
 	  BEGIN(CCCCCCCC);
 	}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 428 "wcspih.l"
+#line 530 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->radesys;
+	  vptr    = wcstem.radesys;
+	
+	  keyname = "RADESYSa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 434 "wcspih.l"
+#line 538 "wcspih.l"
 {
 	  if (relax & WCSHDR_RADECSYS) {
 	    valtype = STRING;
-	    if (pass == 2) vptr = (*wcs)->radesys;
+	    vptr    = wcstem.radesys;
+	
 	    unput(' ');
+	
+	    keyname = "RADECSYS";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "RADECSYS is non-standard, use RADESYSa";
+	    errmsg = "the RADECSYS keyword is deprecated, use RADESYSa";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -8938,60 +13122,76 @@ YY_RULE_SETUP
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 450 "wcspih.l"
+#line 557 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->specsys;
+	  vptr    = wcstem.specsys;
+	
+	  keyname = "SPECSYSa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 456 "wcspih.l"
+#line 565 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->ssysobs;
+	  vptr    = wcstem.ssysobs;
+	
+	  keyname = "SSYSOBSa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 462 "wcspih.l"
+#line 573 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->ssyssrc;
+	  vptr    = wcstem.ssyssrc;
+	
+	  keyname = "SSYSSRCa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 468 "wcspih.l"
+#line 581 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->velangl);
+	  vptr    = &(wcstem.velangl);
+	
+	  keyname = "VELANGLa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 474 "wcspih.l"
+#line 589 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->velosys);
+	  vptr    = &(wcstem.velosys);
+	
+	  keyname = "VELOSYSa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 480 "wcspih.l"
+#line 597 "wcspih.l"
 {
 	  sscanf(wcspihtext, "VELREF%c", &a);
 	
-	  if (a == ' ' || relax & WCSHDR_VELREFa) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the VELREF keyword is deprecated, use SPECSYSa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_VELREFa) {
 	    valtype = INTEGER;
-	    if (pass == 2) vptr = &((*wcs)->velref);
+	    vptr    = &(wcstem.velref);
 	
 	    unput(a);
+	
+	    keyname = "VELREF";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
@@ -9005,24 +13205,20 @@ YY_RULE_SETUP
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 499 "wcspih.l"
+#line 622 "wcspih.l"
 {
-	  sscanf(wcspihtext, "VSOURCE%c", &a);
-	
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    if (pass == 2) {
-	      vptr = vsource;
-	      if (a >= 'A') {
-	        vptr = (void *)((double *)vptr + alts[a-'A'+1]);
-	      }
-	    }
+	    vptr    = &(wcstem.zsource);
+	    special = wcspih_vsource;
 	
-	    unput(' ');
+	    yyless(7);
+	
+	    keyname = "VSOURCEa";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "Deprecated VSOURCEa keyword rejected";
+	    errmsg = "the VSOURCEa keyword is deprecated, use ZSOURCEa";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -9032,30 +13228,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 523 "wcspih.l"
+#line 642 "wcspih.l"
 {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->wcsname;
+	  vptr    = wcstem.wcsname;
+	
+	  keyname = "WCSNAMEa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 529 "wcspih.l"
+#line 650 "wcspih.l"
 {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->zsource);
+	  vptr    = &(wcstem.zsource);
+	
+	  keyname = "ZSOURCEa";
 	  BEGIN(CCCCCCCa);
 	}
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 535 "wcspih.l"
+#line 658 "wcspih.l"
 {
-	  yyless(0);
 	  if (wcspih_nkeyrec) {
 	    wcspih_nkeyrec = 0;
-	    errmsg = "Keyrecords following the END keyrecord were ignored";
+	    errmsg = "keyrecords following the END keyrecord were ignored";
 	    BEGIN(ERROR);
 	  } else {
 	    BEGIN(DISCARD);
@@ -9064,226 +13263,450 @@ YY_RULE_SETUP
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 546 "wcspih.l"
+#line 668 "wcspih.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
 case 44:
-#line 551 "wcspih.l"
+#line 673 "wcspih.l"
 case 45:
 YY_RULE_SETUP
-#line 551 "wcspih.l"
+#line 673 "wcspih.l"
 {
 	  sscanf(wcspihtext, "%d%c", &i, &a);
-	  idx = i - 1;
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
 case 46:
+#line 679 "wcspih.l"
+case 47:
 YY_RULE_SETUP
-#line 557 "wcspih.l"
+#line 679 "wcspih.l"
+{
+	  if (relax & WCSHDR_reject) {
+	    /* Violates the basic FITS standard. */
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 48:
+#line 693 "wcspih.l"
+case 49:
+#line 694 "wcspih.l"
+case 50:
+YY_RULE_SETUP
+#line 694 "wcspih.l"
+{
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 701 "wcspih.l"
+{
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "keyword looks very much like %s but isn't",
+	      keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Let it go. */
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 52:
+#line 716 "wcspih.l"
+case 53:
+#line 717 "wcspih.l"
+case 54:
+#line 718 "wcspih.l"
+case 55:
+YY_RULE_SETUP
+#line 718 "wcspih.l"
 {
-	  /* Invalid axis number will be caught by <VALUE>. */
-	  sscanf(wcspihtext, "%3d", &i);
+	  sscanf(wcspihtext, "%d_%d%c", &i, &j, &a);
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 47:
+case 56:
+#line 725 "wcspih.l"
+case 57:
+#line 726 "wcspih.l"
+case 58:
+#line 727 "wcspih.l"
+case 59:
+#line 728 "wcspih.l"
+case 60:
+#line 729 "wcspih.l"
+case 61:
+#line 730 "wcspih.l"
+case 62:
+#line 731 "wcspih.l"
+case 63:
+#line 732 "wcspih.l"
+case 64:
+#line 733 "wcspih.l"
+case 65:
+#line 734 "wcspih.l"
+case 66:
+#line 735 "wcspih.l"
+case 67:
+#line 736 "wcspih.l"
+case 68:
+#line 737 "wcspih.l"
+case 69:
+#line 738 "wcspih.l"
+case 70:
+#line 739 "wcspih.l"
+case 71:
+#line 740 "wcspih.l"
+case 72:
+#line 741 "wcspih.l"
+case 73:
+#line 742 "wcspih.l"
+case 74:
+#line 743 "wcspih.l"
+case 75:
+#line 744 "wcspih.l"
+case 76:
 YY_RULE_SETUP
-#line 563 "wcspih.l"
+#line 744 "wcspih.l"
 {
-	  BEGIN(DISCARD);
+	  if (((altlin == 1) && (relax & WCSHDR_PC0i_0ja)) ||
+	      ((altlin == 2) && (relax & WCSHDR_CD0i_0ja))) {
+	    sscanf(wcspihtext, "%d_%d%c", &i, &j, &a);
+	    BEGIN(VALUE);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 	YY_BREAK
-case 48:
-#line 568 "wcspih.l"
-case 49:
-#line 569 "wcspih.l"
-case 50:
-#line 570 "wcspih.l"
-case 51:
+case 77:
+#line 762 "wcspih.l"
+case 78:
+#line 763 "wcspih.l"
+case 79:
+#line 764 "wcspih.l"
+case 80:
+#line 765 "wcspih.l"
+case 81:
+#line 766 "wcspih.l"
+case 82:
+#line 767 "wcspih.l"
+case 83:
+#line 768 "wcspih.l"
+case 84:
+#line 769 "wcspih.l"
+case 85:
+#line 770 "wcspih.l"
+case 86:
 YY_RULE_SETUP
-#line 570 "wcspih.l"
+#line 770 "wcspih.l"
 {
-	  sscanf(wcspihtext, "%d_%d%c", &i, &j, &a);
-	  if (pass == 2) {
-	    wcsp = *wcs;
-	    if (a != ' ') {
-	      wcsp += alts[a-'A'+1];
-	    }
-	
-	    idx = (i-1)*(wcsp->naxis) + j - 1;
-	  }
-	  BEGIN(VALUE);
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 52:
-#line 584 "wcspih.l"
-case 53:
-#line 585 "wcspih.l"
-case 54:
-#line 586 "wcspih.l"
-case 55:
-#line 587 "wcspih.l"
-case 56:
-#line 588 "wcspih.l"
-case 57:
+case 87:
+#line 778 "wcspih.l"
+case 88:
+#line 779 "wcspih.l"
+case 89:
+#line 780 "wcspih.l"
+case 90:
+#line 781 "wcspih.l"
+case 91:
+#line 782 "wcspih.l"
+case 92:
+#line 783 "wcspih.l"
+case 93:
+#line 784 "wcspih.l"
+case 94:
+#line 785 "wcspih.l"
+case 95:
+#line 786 "wcspih.l"
+case 96:
 YY_RULE_SETUP
-#line 588 "wcspih.l"
+#line 786 "wcspih.l"
 {
-	  /* Invalid axis numbers will be caught by <VALUE>. */
-	  sscanf(wcspihtext, "%d_%d", &i, &j);
-	  BEGIN(VALUE);
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 58:
+case 97:
 YY_RULE_SETUP
-#line 594 "wcspih.l"
+#line 793 "wcspih.l"
 {
 	  /* This covers the defunct forms CD00i00j and PC00i00j. */
-	  if (((relax & WCSHDR_PC00i00j) && (altlin == 1)) ||
-	      ((relax & WCSHDR_CD00i00j) && (altlin == 2))) {
+	  if (((altlin == 1) && (relax & WCSHDR_PC00i00j)) ||
+	      ((altlin == 2) && (relax & WCSHDR_CD00i00j))) {
 	    sscanf(wcspihtext, "%3d%3d", &i, &j);
 	    a = ' ';
-	    if (pass == 2) {
-	      idx = (i-1)*((*wcs)->naxis) + j - 1;
-	    }
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "Defunct form of %si_ja keyword",
-	                     (altlin==1) ? "PC" : "CD");
+	    sprintf(errmsg,
+	      "this form of the %s keyword is deprecated, use %s",
+	      keyname, keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
+	    /* Pretend we don't recognize it. */
 	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
-case 59:
+case 98:
 YY_RULE_SETUP
-#line 616 "wcspih.l"
+#line 814 "wcspih.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 60:
-#line 621 "wcspih.l"
-case 61:
+case 99:
+#line 819 "wcspih.l"
+case 100:
+#line 820 "wcspih.l"
+case 101:
 YY_RULE_SETUP
-#line 621 "wcspih.l"
+#line 820 "wcspih.l"
 {
+	  a = ' ';
 	  sscanf(wcspihtext, "%d%c", &i, &a);
-	  if (a == ' ' || relax & WCSHDR_CROTAia) {
-	    idx = i - 1;
-	    BEGIN(VALUE);
+	
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the CROTAn keyword is deprecated, use PCi_ja";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_CROTAia) {
+	    yyless(0);
+	    BEGIN(CCCCCia);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = "CROTAn keyword may not have an alternate version code";
 	    BEGIN(ERROR);
 	
 	  } else {
+	    /* Pretend we don't recognize it. */
 	    BEGIN(DISCARD);
 	  }
 	}
 	YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 636 "wcspih.l"
-{
-	  sscanf(wcspihtext, "%d", &i);
-	  a = ' ';
-	  idx = i - 1;
-	  BEGIN(VALUE);
-	}
-	YY_BREAK
-case 63:
+case 102:
 YY_RULE_SETUP
-#line 643 "wcspih.l"
+#line 842 "wcspih.l"
 {
-	  BEGIN(DISCARD);
+	  yyless(0);
+	  BEGIN(CCCCCia);
 	}
 	YY_BREAK
-case 64:
-#line 648 "wcspih.l"
-case 65:
+case 103:
+#line 848 "wcspih.l"
+case 104:
 YY_RULE_SETUP
-#line 648 "wcspih.l"
+#line 848 "wcspih.l"
 {
-	  idx = -1;
-	
 	  if (YY_START == CCCCCCCa) {
 	    sscanf(wcspihtext, "%c", &a);
 	  } else {
 	    unput(wcspihtext[0]);
 	    a = 0;
 	  }
+	
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 66:
+case 105:
 YY_RULE_SETUP
-#line 660 "wcspih.l"
+#line 859 "wcspih.l"
 {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "invalid alternate code, keyword resembles %s "
+	      "but isn't", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 	YY_BREAK
-case 67:
-#line 665 "wcspih.l"
-case 68:
-#line 666 "wcspih.l"
-case 69:
-#line 667 "wcspih.l"
-case 70:
+case 106:
+#line 874 "wcspih.l"
+case 107:
+#line 875 "wcspih.l"
+case 108:
+#line 876 "wcspih.l"
+case 109:
 YY_RULE_SETUP
-#line 667 "wcspih.l"
+#line 876 "wcspih.l"
 {
 	  sscanf(wcspihtext, "%d_%d%c", &i, &m, &a);
-	  idx = -1;
 	  BEGIN(VALUE);
 	}
 	YY_BREAK
-case 71:
-#line 674 "wcspih.l"
-case 72:
-#line 675 "wcspih.l"
-case 73:
-#line 676 "wcspih.l"
-case 74:
-#line 677 "wcspih.l"
-case 75:
-#line 678 "wcspih.l"
-case 76:
+case 110:
+#line 882 "wcspih.l"
+case 111:
+#line 883 "wcspih.l"
+case 112:
+#line 884 "wcspih.l"
+case 113:
+#line 885 "wcspih.l"
+case 114:
+#line 886 "wcspih.l"
+case 115:
+#line 887 "wcspih.l"
+case 116:
+#line 888 "wcspih.l"
+case 117:
+#line 889 "wcspih.l"
+case 118:
+#line 890 "wcspih.l"
+case 119:
+#line 891 "wcspih.l"
+case 120:
+#line 892 "wcspih.l"
+case 121:
+#line 893 "wcspih.l"
+case 122:
+#line 894 "wcspih.l"
+case 123:
+#line 895 "wcspih.l"
+case 124:
+#line 896 "wcspih.l"
+case 125:
+#line 897 "wcspih.l"
+case 126:
+#line 898 "wcspih.l"
+case 127:
+#line 899 "wcspih.l"
+case 128:
+#line 900 "wcspih.l"
+case 129:
+#line 901 "wcspih.l"
+case 130:
 YY_RULE_SETUP
-#line 678 "wcspih.l"
+#line 901 "wcspih.l"
 {
-	  /* Invalid parameters will be caught by <VALUE>. */
-	  sscanf(wcspihtext, "%d_%d", &i, &m);
-	  BEGIN(VALUE);
+	  if (((valtype == FLOAT)  && (relax & WCSHDR_PV0i_0ma)) ||
+	      ((valtype == STRING) && (relax & WCSHDR_PS0i_0ma))) {
+	    sscanf(wcspihtext, "%d_%d%c", &i, &m, &a);
+	    BEGIN(VALUE);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 	YY_BREAK
-case 77:
+case 131:
+#line 919 "wcspih.l"
+case 132:
+#line 920 "wcspih.l"
+case 133:
+#line 921 "wcspih.l"
+case 134:
+#line 922 "wcspih.l"
+case 135:
+#line 923 "wcspih.l"
+case 136:
+#line 924 "wcspih.l"
+case 137:
+#line 925 "wcspih.l"
+case 138:
+#line 926 "wcspih.l"
+case 139:
+#line 927 "wcspih.l"
+case 140:
+YY_RULE_SETUP
+#line 927 "wcspih.l"
+{
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 141:
+#line 935 "wcspih.l"
+case 142:
+#line 936 "wcspih.l"
+case 143:
+#line 937 "wcspih.l"
+case 144:
+#line 938 "wcspih.l"
+case 145:
+#line 939 "wcspih.l"
+case 146:
+#line 940 "wcspih.l"
+case 147:
+#line 941 "wcspih.l"
+case 148:
+#line 942 "wcspih.l"
+case 149:
+#line 943 "wcspih.l"
+case 150:
+YY_RULE_SETUP
+#line 943 "wcspih.l"
+{
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 151:
 YY_RULE_SETUP
-#line 684 "wcspih.l"
+#line 950 "wcspih.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 78:
+case 152:
 YY_RULE_SETUP
-#line 688 "wcspih.l"
+#line 954 "wcspih.l"
 {
 	  if (relax & WCSHDR_PROJPn) {
 	    sscanf(wcspihtext, "%d", &m);
 	    i = 0;
 	    a = ' ';
-	    idx = -1;
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "Defunct PROJPn keyword rejected";
+	    errmsg = "the PROJPn keyword is deprecated, use PVi_ma";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -9291,25 +13714,39 @@ YY_RULE_SETUP
 	  }
 	}
 	YY_BREAK
-case 79:
+case 153:
+#line 971 "wcspih.l"
+case 154:
+YY_RULE_SETUP
+#line 971 "wcspih.l"
+{
+	  if (relax & (WCSHDR_PROJPn | WCSHDR_reject)) {
+	    errmsg = "invalid PROJPn keyword";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    BEGIN(DISCARD);
+	  }
+	}
+	YY_BREAK
+case 155:
 YY_RULE_SETUP
-#line 705 "wcspih.l"
+#line 981 "wcspih.l"
 {
 	  BEGIN(DISCARD);
 	}
 	YY_BREAK
-case 80:
+case 156:
 YY_RULE_SETUP
-#line 709 "wcspih.l"
+#line 985 "wcspih.l"
 {
 	  /* Do checks on i, j & m. */
-	  if (i > 99 || j > 99 || m > 99) {
+	  if (99 < i || 99 < j || 99 < m) {
 	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      if (i > 99 || j > 99) {
-	        sprintf(errmsg, "Axis number exceeds 99");
+	      if (99 < i || 99 < j) {
+	        errmsg = "axis number exceeds 99";
 	      } else if (m > 99) {
-	        sprintf(errmsg, "Parameter number exceeds 99");
+	        errmsg = "parameter number exceeds 99";
 	      }
 	      BEGIN(ERROR);
 	
@@ -9327,284 +13764,327 @@ YY_RULE_SETUP
 	      BEGIN(STRING_VAL);
 	    } else {
 	      errmsg = errtxt;
-	      sprintf(errmsg, "Internal parser ERROR, bad data type: %d",
+	      sprintf(errmsg, "internal parser ERROR, bad data type: %d",
 	        valtype);
 	      BEGIN(ERROR);
 	    }
 	  }
 	}
 	YY_BREAK
-case 81:
+case 157:
 YY_RULE_SETUP
-#line 742 "wcspih.l"
+#line 1017 "wcspih.l"
 {
-	  errmsg = "Invalid KEYWORD = VALUE syntax";
+	  errmsg = "invalid KEYWORD = VALUE syntax";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 82:
+case 158:
 YY_RULE_SETUP
-#line 747 "wcspih.l"
+#line 1022 "wcspih.l"
 {
-	  if (pass == 1) {
-	    wcspih_naxes(naxis, i, j, a, alts, npptr);
-	    BEGIN(FLUSH);
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords that apply */
-	        /* to every alternate; these have a == 0. */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
-	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
-	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((int **)wptr) + idx;
-	        }
+	    /* Read the keyvalue. */
+	    sscanf(wcspihtext, "%d", &inttmp);
 	
-	        /* Read the keyvalue. */
-	        sscanf(wcspihtext, "%d", (int *)wptr);
-	
-	        if (a) break;
-	      }
-	
-	      BEGIN(COMMENT);
-	
-	    } else {
-	      errmsg = "Internal parser ERROR, null int pointer";
-	      BEGIN(ERROR);
-	    }
+	    BEGIN(COMMENT);
 	  }
 	}
 	YY_BREAK
-case 83:
+case 159:
 YY_RULE_SETUP
-#line 788 "wcspih.l"
+#line 1034 "wcspih.l"
 {
-	  errmsg = "An integer value was expected";
+	  errmsg = "an integer value was expected";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 84:
+case 160:
 YY_RULE_SETUP
-#line 793 "wcspih.l"
+#line 1039 "wcspih.l"
 {
-	  if (pass == 1) {
-	    wcspih_naxes(naxis, i, j, a, alts, npptr);
-	    BEGIN(FLUSH);
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords like MJD-OBS that */
-	        /* apply to every alternate; these have a == 0.  */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
-	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
-	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((double **)wptr) + idx;
+	    /* Read the keyvalue. */
+	    wcsutil_str2double(wcspihtext, "%lf", &dbltmp);
 	
-	        } else if (npptr == npv) {
-	          ipx = (*wcs+ialt)->npv++;
-	          (*wcs+ialt)->pv[ipx].i = i;
-	          (*wcs+ialt)->pv[ipx].m = m;
-	          wptr = &((*wcs+ialt)->pv[ipx].value);
-	        }
-	
-	        /* Read the keyvalue. */
-	        wcsutil_str2double(wcspihtext, "%lf", (double *)wptr);
+	    BEGIN(COMMENT);
+	  }
+	}
+	YY_BREAK
+case 161:
+YY_RULE_SETUP
+#line 1051 "wcspih.l"
+{
+	  errmsg = "a floating-point value was expected";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 162:
+/* rule 162 can match eol */
+YY_RULE_SETUP
+#line 1056 "wcspih.l"
+{
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
-	        /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
-	        if (altlin) {
-	          (*wcs+ialt)->altlin |= altlin;
-	          altlin = 0;
-	        }
+	  } else {
+	    /* Read the keyvalue. */
+	    strcpy(strtmp, wcspihtext+1);
 	
-	        if (a) break;
+	    /* Squeeze out repeated quotes. */
+	    ix = 0;
+	    for (jx = 0; jx < 72; jx++) {
+	      if (ix < jx) {
+	        strtmp[ix] = strtmp[jx];
 	      }
 	
-	      BEGIN(COMMENT);
+	      if (strtmp[jx] == '\0') {
+	        if (ix) strtmp[ix-1] = '\0';
+	        break;
+	      } else if (strtmp[jx] == '\'' && strtmp[jx+1] == '\'') {
+	        jx++;
+	      }
 	
-	    } else {
-	      errmsg = "Internal parser ERROR, null float pointer";
-	      BEGIN(ERROR);
+	      ix++;
 	    }
+	
+	    BEGIN(COMMENT);
 	  }
 	}
 	YY_BREAK
-case 85:
+case 163:
 YY_RULE_SETUP
-#line 846 "wcspih.l"
+#line 1085 "wcspih.l"
 {
-	  errmsg = "A floating-point value was expected";
+	  errmsg = "a string value was expected";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 86:
-/* rule 86 can match eol */
+case 164:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 851 "wcspih.l"
+#line 1090 "wcspih.l"
 {
-	  if (pass == 1) {
+	  if (ipass == 1) {
+	    /* Do first-pass bookkeeping. */
 	    wcspih_naxes(naxis, i, j, a, alts, npptr);
 	    BEGIN(FLUSH);
 	
-	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords like DATE-OBS that */
-	        /* apply to every alternate; these have a == 0.   */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
+	  } else if (*wcs) {
+	    /* Store the value now that the keyrecord has been validated. */
+	    gotone = 0;
+	    for (ialt = 0; ialt < *nwcs; ialt++) {
+	      /* The loop here is for keywords that apply */
+	      /* to every alternate; these have a == 0. */
+	      if (a >= 'A') {
+	        ialt = alts[a-'A'+1];
+	        if (ialt < 0) break;
+	      }
+	      gotone = 1;
 	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
+	      if (vptr) {
+	        wcsp = *wcs + ialt;
+	        voff = (char *)vptr - (char *)(&wcstem);
+	        wptr = (void *)((char *)wcsp + voff);
 	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((char (**)[72])wptr) + idx;
+	        if (valtype == INTEGER) {
+	          *((int *)wptr) = inttmp;
 	
-	        } else if (npptr == nps) {
-	          ipx = (*wcs+ialt)->nps++;
-	          (*wcs+ialt)->ps[ipx].i = i;
-	          (*wcs+ialt)->ps[ipx].m = m;
-	          wptr = (*wcs+ialt)->ps[ipx].value;
-	        }
+	        } else if (valtype == FLOAT) {
+	          /* Apply keyword parameterization. */
+	          if (npptr == npv) {
+	            ipx = (wcsp->npv)++;
+	            wcsp->pv[ipx].i = i;
+	            wcsp->pv[ipx].m = m;
+	            wptr = &(wcsp->pv[ipx].value);
+	
+	          } else if (j) {
+	            wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis)
+	                                      + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((double **)wptr) + (i - 1);
+	          }
 	
-	        /* Read the keyvalue. */
-	        cptr = (char *)wptr;
-	        strcpy(cptr, wcspihtext+1);
+	          if (special) {
+	            special(wptr, dbltmp);
+	          } else {
+	            *((double *)wptr) = dbltmp;
+	          }
 	
-	        /* Squeeze out repeated quotes. */
-	        ix = 0;
-	        for (jx = 0; jx < 72; jx++) {
-	          if (ix < jx) {
-	            cptr[ix] = cptr[jx];
+	          /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
+	          if (altlin) {
+	            wcsp->altlin |= altlin;
+	            altlin = 0;
 	          }
 	
-	          if (cptr[jx] == '\0') {
-	            if (ix) cptr[ix-1] = '\0';
-	            break;
-	          } else if (cptr[jx] == '\'' && cptr[jx+1] == '\'') {
-	            jx++;
+	        } else if (valtype == STRING) {
+	          /* Apply keyword parameterization. */
+	          if (npptr == nps) {
+	            ipx = (wcsp->nps)++;
+	            wcsp->ps[ipx].i = i;
+	            wcsp->ps[ipx].m = m;
+	            wptr = wcsp->ps[ipx].value;
+	
+	          } else if (j) {
+	            wptr = *((char (**)[72])wptr) +
+	                    (i - 1)*(wcsp->naxis) + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((char (**)[72])wptr) + (i - 1);
 	          }
 	
-	          ix++;
+	          cptr = (char *)wptr;
+	          strcpy(cptr, strtmp);
 	        }
+	      }
+	
+	      if (a) break;
+	    }
 	
-	        if (a) break;
+	    if (gotone) {
+	      nvalid++;
+	      if (ctrl == 4) {
+	        wcsfprintf(stderr,
+	          "%.80s\n  Accepted (%d) as a valid WCS keyrecord.\n",
+	          keyrec, nvalid);
 	      }
 	
-	      BEGIN(COMMENT);
+	      BEGIN(FLUSH);
 	
 	    } else {
-	      errmsg = "Internal parser ERROR, null string pointer";
+	      errmsg = "syntactically valid WCS keyrecord has no effect";
 	      BEGIN(ERROR);
 	    }
+	
+	  } else {
+	    BEGIN(FLUSH);
 	  }
 	}
 	YY_BREAK
-case 87:
+case 165:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 916 "wcspih.l"
+#line 1188 "wcspih.l"
 {
-	  errmsg = "A string value was expected";
+	  errmsg = "invalid keyvalue";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 88:
-#line 922 "wcspih.l"
-case 89:
+case 166:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 922 "wcspih.l"
+#line 1193 "wcspih.l"
 {
-	  BEGIN(FLUSH);
+	  errmsg = "invalid keyvalue";
+	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 90:
+case 167:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 926 "wcspih.l"
+#line 1198 "wcspih.l"
 {
-	  errmsg = "Malformed keycomment";
+	  errmsg = "invalid keyvalue or malformed keycomment";
 	  BEGIN(ERROR);
 	}
 	YY_BREAK
-case 91:
+case 168:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 931 "wcspih.l"
+#line 1203 "wcspih.l"
 {
-	  if (pass == 2) {
+	  errmsg = "malformed keycomment";
+	  BEGIN(ERROR);
+	}
+	YY_BREAK
+case 169:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
+YY_RULE_SETUP
+#line 1208 "wcspih.l"
+{
+	  if (ipass == npass) {
 	    if (ctrl < 0) {
 	      /* Preserve discards. */
-	      keep = wcspih_hdr - 80;
+	      keep = keyrec;
 	
-	    } else if (ctrl > 2) {
-	      wcsfprintf(stderr, "%.80s\n  Discarded.\n", wcspih_hdr-80);
+	    } else if (2 < ctrl) {
+	      nother++;
+	      wcsfprintf(stderr, "%.80s\n  Not a recognized WCS keyword.\n",
+	        keyrec);
 	    }
 	  }
 	  BEGIN(FLUSH);
 	}
 	YY_BREAK
-case 92:
+case 170:
+*yy_cp = (yy_hold_char); /* undo effects of setting up wcspihtext */
+(yy_c_buf_p) = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up wcspihtext again */
 YY_RULE_SETUP
-#line 944 "wcspih.l"
+#line 1223 "wcspih.l"
 {
-	  (*nreject)++;
-	  if (pass == 2) {
+	  if (ipass == npass) {
+	    (*nreject)++;
+	
 	    if (ctrl%10 == -1) {
 	      /* Preserve rejects. */
-	      keep = wcspih_hdr - 80;
+	      keep = keyrec;
 	    }
 	
-	    if (abs(ctrl%10) > 1) {
-	      wcsfprintf(stderr, "%.80s\n%4d: %s.\n", wcspih_hdr-80, *nreject,
-	        errmsg);
+	    if (1 < abs(ctrl%10)) {
+	      wcsfprintf(stderr, "%.80s\n  Rejected (%d), %s.\n",
+	        keyrec, *nreject, errmsg);
 	    }
 	  }
 	  BEGIN(FLUSH);
 	}
 	YY_BREAK
-case 93:
-/* rule 93 can match eol */
+case 171:
+/* rule 171 can match eol */
 YY_RULE_SETUP
-#line 960 "wcspih.l"
+#line 1240 "wcspih.l"
 {
-	  if (pass == 2 && keep) {
+	  if (ipass == npass && keep) {
 	    if (hptr < keep) {
 	      strncpy(hptr, keep, 80);
 	    }
 	    hptr += 80;
 	  }
 	
-	  i = j = m = 0;
+	  /* Throw away the rest of the line and reset for the next one. */
+	  i = j = 0;
+	  m = 0;
 	  a = ' ';
+	
+	  keyrec += 80;
+	
 	  valtype = -1;
-	  keep = 0x0;
-	  altlin = 0;
-	  npptr = 0x0;
+	  vptr    = 0x0;
+	  keep    = 0x0;
+	
+	  altlin  = 0;
+	  npptr   = 0x0;
+	  special = 0x0;
+	
 	  BEGIN(INITIAL);
 	}
 	YY_BREAK
@@ -9624,17 +14104,17 @@ case YY_STATE_EOF(COMMENT):
 case YY_STATE_EOF(DISCARD):
 case YY_STATE_EOF(ERROR):
 case YY_STATE_EOF(FLUSH):
-#line 977 "wcspih.l"
+#line 1266 "wcspih.l"
 {
 	  /* End-of-input. */
-	  if (pass == 1) {
+	  if (ipass == 1) {
 	    if ((status = wcspih_inits(naxis, alts, npv, nps, nwcs, wcs)) ||
-	         *nwcs == 0) {
+	        (*nwcs == 0 && ctrl == 0)) {
 	      wcspihlex_destroy();
 	      return status;
 	    }
 	
-	    if (abs(ctrl%10) > 2) {
+	    if (2 < abs(ctrl%10)) {
 	      if (*nwcs == 1) {
 	        if (strcmp(wcs[0]->wcsname, "DEFAULTS") != 0) {
 	          wcsfprintf(stderr, "Found one coordinate representation.\n");
@@ -9644,15 +14124,24 @@ case YY_STATE_EOF(FLUSH):
 	          *nwcs);
 	      }
 	    }
+	  }
 	
+	  if (ipass++ < npass) {
 	    wcspih_hdr = header;
 	    wcspih_nkeyrec = nkeyrec;
+	    keyrec = header;
 	    *nreject = 0;
 	
-	    pass = 2;
-	    i = j = m = 0;
+	    i = j = 0;
+	    m = 0;
 	    a = ' ';
+	
 	    valtype = -1;
+	    vptr    = 0x0;
+	
+	    altlin  = 0;
+	    npptr   = 0x0;
+	    special = 0x0;
 	
 	    wcspihrestart(wcspihin);
 	
@@ -9662,20 +14151,28 @@ case YY_STATE_EOF(FLUSH):
 	    if (ctrl < 0) {
 	      *hptr = '\0';
 	    } else if (ctrl == 1) {
-	      wcsfprintf(stderr, "%d WCS keyrecords were rejected.\n",
-	        *nreject);
+	      wcsfprintf(stderr, "%d WCS keyrecord%s rejected.\n",
+	        *nreject, (*nreject==1)?" was":"s were");
+	    } else if (ctrl == 4) {
+	      wcsfprintf(stderr, "\n");
+	      wcsfprintf(stderr, "%5d keyrecord%s rejected for syntax or "
+	        "other errors,\n", *nreject, (*nreject==1)?" was":"s were");
+	      wcsfprintf(stderr, "%5d %s recognized as syntactically valid, "
+	        "and\n", nvalid, (nvalid==1)?"was":"were");
+	      wcsfprintf(stderr, "%5d other%s were not recognized as WCS "
+	        "keyrecords.\n", nother, (nother==1)?"":"s");
 	    }
 	
-	    return wcspih_final(alts, epoch, vsource, nwcs, wcs);
+	    return wcspih_final(alts, nwcs, wcs);
 	  }
 	}
 	YY_BREAK
-case 94:
+case 172:
 YY_RULE_SETUP
-#line 1022 "wcspih.l"
+#line 1328 "wcspih.l"
 ECHO;
 	YY_BREAK
-#line 9679 "wcspih.c"
+#line 14176 "wcspih.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -10665,7 +15162,7 @@ void wcspihfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 1022 "wcspih.l"
+#line 1328 "wcspih.l"
 
 
 
@@ -10779,6 +15276,10 @@ int wcspih_inits(
         alts[ialt] = (*nwcs)++;
 
         wcsp++;
+
+      } else {
+        /* Signal that there is no wcsprm for this alt. */
+        alts[ialt] = -1;
       }
     }
 
@@ -10792,34 +15293,54 @@ int wcspih_inits(
 
 
 /*----------------------------------------------------------------------------
+* Interpret EPOCHa keywords.
+*---------------------------------------------------------------------------*/
+
+int wcspih_epoch(double *equinox, double epoch)
+
+{
+  /* If EQUINOXa is currently undefined then set it from EPOCHa. */
+  if (undefined(*equinox)) {
+    *equinox = epoch;
+  }
+
+  return 0;
+}
+
+
+/*----------------------------------------------------------------------------
+* Interpret VSOURCEa keywords.
+*---------------------------------------------------------------------------*/
+
+int wcspih_vsource(double *zsource, double vsource)
+
+{
+  double beta, c = 299792458.0;
+
+  /* If ZSOURCEa is currently undefined then set it from VSOURCEa. */
+  if (undefined(*zsource)) {
+    /* Convert relativistic Doppler velocity to redshift. */
+    beta = vsource/c;
+    *zsource = (1.0 + beta)/sqrt(1.0 - beta*beta) - 1.0;
+  }
+
+  return 0;
+}
+
+
+/*----------------------------------------------------------------------------
 * Interpret special keywords encountered for each coordinate representation.
 *---------------------------------------------------------------------------*/
 
 int wcspih_final(
   int alts[],
-  double epoch[],
-  double vsource[],
   int *nwcs,
   struct wcsprm **wcs)
 
 {
   int ialt, status;
-  double beta, c = 299792458.0;
 
   for (ialt = 0; ialt < *nwcs; ialt++) {
-    /* Check for EPOCH overriding EQUINOXa. */
-    if (undefined((*wcs+ialt)->equinox) && !undefined(epoch[ialt])) {
-      /* Set EQUINOXa. */
-      (*wcs+ialt)->equinox = epoch[ialt];
-    }
-
-    /* Check for VSOURCEa overriding ZSOURCEa. */
-    if (undefined((*wcs+ialt)->zsource) && !undefined(vsource[ialt])) {
-      /* Convert relativistic Doppler velocity to redshift. */
-      beta = vsource[ialt]/c;
-      (*wcs+ialt)->zsource = (1.0+beta)/sqrt(1.0 - beta*beta) - 1.0;
-    }
-
     /* Interpret -TAB header keywords. */
     if ((status = wcstab(*wcs+ialt))) {
        wcsvfree(nwcs, wcs);
diff --git a/C/flexed/wcsulex.c b/C/flexed/wcsulex.c
index ee324e5..77065e9 100644
--- a/C/flexed/wcsulex.c
+++ b/C/flexed/wcsulex.c
@@ -6860,7 +6860,7 @@ char *wcsulextext;
 #line 1 "wcsulex.l"
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -6882,7 +6882,7 @@ char *wcsulextext;
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsulex.c,v 4.25.1.2 2015/01/06 01:06:52 mcalabre Exp mcalabre $
+  $Id: wcsulex.c,v 5.0 2015/04/05 09:18:14 mcalabre Exp $
 *=============================================================================
 *
 * wcsulex.l is a Flex description file containing the definition of a
diff --git a/C/flexed/wcsutrn.c b/C/flexed/wcsutrn.c
index ee41af0..5d2dfb5 100644
--- a/C/flexed/wcsutrn.c
+++ b/C/flexed/wcsutrn.c
@@ -3982,7 +3982,7 @@ char *wcsutrntext;
 #line 1 "wcsutrn.l"
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -4004,7 +4004,7 @@ char *wcsutrntext;
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsutrn.c,v 4.25.1.2 2015/01/06 01:06:52 mcalabre Exp mcalabre $
+  $Id: wcsutrn.c,v 5.0 2015/04/05 09:18:14 mcalabre Exp $
 *=============================================================================
 *
 * wcsutrn.l is a Flex description file containing the definition of a lexical
diff --git a/C/getwcstab.c b/C/getwcstab.c
index 1006fde..5eb9f28 100644
--- a/C/getwcstab.c
+++ b/C/getwcstab.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: getwcstab.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: getwcstab.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdlib.h>
diff --git a/C/getwcstab.h b/C/getwcstab.h
index 33dcc01..ee5c9f7 100644
--- a/C/getwcstab.h
+++ b/C/getwcstab.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: getwcstab.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: getwcstab.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * Summary of the getwcstab routines
diff --git a/C/lin.c b/C/lin.c
index b8836e8..46dd015 100644
--- a/C/lin.c
+++ b/C/lin.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,16 +22,18 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: lin.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: lin.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <math.h>
 
 #include "wcserr.h"
 #include "wcsprintf.h"
 #include "lin.h"
+#include "dis.h"
 
 const int LINSET = 137;
 
@@ -40,17 +42,27 @@ const char *lin_errmsg[] = {
   "Success",
   "Null linprm pointer passed",
   "Memory allocation failed",
-  "PCi_ja matrix is singular"};
+  "PCi_ja matrix is singular",
+  "Failed to initialize distortion functions",
+  "Distort error",
+  "De-distort error"};
+
+/* Map error returns for lower-level routines. */
+const int lin_diserr[] = {
+  LINERR_SUCCESS,		/*  0: DISERR_SUCCESS         */
+  LINERR_NULL_POINTER,		/*  1: DISERR_NULL_POINTER    */
+  LINERR_MEMORY,		/*  2: DISERR_MEMORY          */
+  LINERR_DISTORT_INIT,		/*  3: DISERR_BAD_PARAM       */
+  LINERR_DISTORT,		/*  4: DISERR_DISTORT         */
+  LINERR_DEDISTORT		/*  5: DISERR_DEDISTORT       */
+};
 
 /* Convenience macro for invoking wcserr_set(). */
 #define LIN_ERRMSG(status) WCSERR_SET(status), lin_errmsg[status]
 
 /*--------------------------------------------------------------------------*/
 
-int linini(alloc, naxis, lin)
-
-int alloc, naxis;
-struct linprm *lin;
+int linini(int alloc, int naxis, struct linprm *lin)
 
 {
   static const char *function = "linini";
@@ -71,13 +83,20 @@ struct linprm *lin;
 
   /* Initialize memory management. */
   if (lin->flag == -1 || lin->m_flag != LINSET) {
-    lin->m_flag  = 0;
-    lin->m_naxis = 0x0;
-    lin->m_crpix = 0x0;
-    lin->m_pc    = 0x0;
-    lin->m_cdelt = 0x0;
-  }
+    if (lin->flag == -1) {
+      lin->dispre = 0x0;
+      lin->disseq = 0x0;
+      lin->tmpcrd = 0x0;
+    }
 
+    lin->m_flag   = 0;
+    lin->m_naxis  = 0;
+    lin->m_crpix  = 0x0;
+    lin->m_pc     = 0x0;
+    lin->m_cdelt  = 0x0;
+    lin->m_dispre = 0x0;
+    lin->m_disseq = 0x0;
+  }
 
   if (naxis < 0) {
     return wcserr_set(WCSERR_SET(LINERR_MEMORY),
@@ -85,11 +104,19 @@ struct linprm *lin;
   }
 
 
+  /* Create work arrays. */
+  if (lin->tmpcrd) free(lin->tmpcrd);
+  if ((lin->tmpcrd = calloc(naxis, sizeof(double))) == 0x0) {
+    linfree(lin);
+    return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
+  }
+
+
   /* Allocate memory for arrays if required. */
   if (alloc ||
-     lin->crpix == 0x0 ||
-     lin->pc    == 0x0 ||
-     lin->cdelt == 0x0) {
+      lin->crpix  == 0x0 ||
+      lin->pc     == 0x0 ||
+      lin->cdelt  == 0x0) {
 
     /* Was sufficient allocated previously? */
     if (lin->m_flag == LINSET && lin->m_naxis < naxis) {
@@ -103,7 +130,7 @@ struct linprm *lin;
         lin->crpix = lin->m_crpix;
 
       } else {
-        if (!(lin->crpix = calloc(naxis, sizeof(double)))) {
+        if ((lin->crpix = calloc(naxis, sizeof(double))) == 0x0) {
           return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
         }
 
@@ -119,7 +146,7 @@ struct linprm *lin;
         lin->pc = lin->m_pc;
 
       } else {
-        if (!(lin->pc = calloc(naxis*naxis, sizeof(double)))) {
+        if ((lin->pc = calloc(naxis*naxis, sizeof(double))) == 0x0) {
           linfree(lin);
           return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
         }
@@ -136,7 +163,7 @@ struct linprm *lin;
         lin->cdelt = lin->m_cdelt;
 
       } else {
-        if (!(lin->cdelt = calloc(naxis, sizeof(double)))) {
+        if ((lin->cdelt = calloc(naxis, sizeof(double))) == 0x0) {
           linfree(lin);
           return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
         }
@@ -148,15 +175,29 @@ struct linprm *lin;
     }
   }
 
+
+  /* Reinitialize disprm structs if we are managing them. */
+  if (lin->m_dispre) {
+    disini(1, naxis, lin->dispre);
+  }
+
+  if (lin->m_disseq) {
+    disini(1, naxis, lin->disseq);
+  }
+
+
   /* Free memory allocated by linset(). */
   if (lin->flag == LINSET) {
     if (lin->piximg) free(lin->piximg);
     if (lin->imgpix) free(lin->imgpix);
   }
 
-  lin->piximg = 0x0;
-  lin->imgpix = 0x0;
-  lin->i_naxis = 0x0;
+  lin->piximg  = 0x0;
+  lin->imgpix  = 0x0;
+  lin->i_naxis = 0;
+  lin->unity   = 0;
+  lin->affine  = 0;
+  lin->simple  = 0;
 
   lin->flag  = 0;
   lin->naxis = naxis;
@@ -167,7 +208,6 @@ struct linprm *lin;
     lin->crpix[j] = 0.0;
   }
 
-
   /* PCi_ja defaults to the unit matrix. */
   pc = lin->pc;
   for (i = 0; i < naxis; i++) {
@@ -181,7 +221,6 @@ struct linprm *lin;
     }
   }
 
-
   /* CDELTia defaults to 1.0. */
   for (i = 0; i < naxis; i++) {
     lin->cdelt[i] = 1.0;
@@ -193,11 +232,48 @@ struct linprm *lin;
 
 /*--------------------------------------------------------------------------*/
 
-int lincpy(alloc, linsrc, lindst)
+int lindis(int sequence, struct linprm *lin, struct disprm *dis)
+
+{
+  static const char *function = "lindis";
+
+  int status;
+  struct wcserr **err;
+
+  if (lin == 0x0) return LINERR_NULL_POINTER;
+  err = &(lin->err);
+
+  if (sequence == 1) {
+    if (lin->m_dispre) free(lin->m_dispre);
 
-int alloc;
-const struct linprm *linsrc;
-struct linprm *lindst;
+    lin->dispre   = dis;
+    lin->m_flag   = LINSET;
+    lin->m_dispre = dis;
+
+  } else if (sequence == 2) {
+    if (lin->m_disseq) free(lin->m_disseq);
+
+    lin->disseq   = dis;
+    lin->m_flag   = LINSET;
+    lin->m_disseq = dis;
+
+  } else {
+    return wcserr_set(WCSERR_SET(LINERR_DISTORT_INIT),
+      "Invalid sequence (%d)", sequence);
+  }
+
+  if (dis) {
+    if ((status = disini(1, lin->naxis, dis))) {
+      return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+    }
+  }
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int lincpy(int alloc, const struct linprm *linsrc, struct linprm *lindst)
 
 {
   static const char *function = "lincpy";
@@ -241,14 +317,50 @@ struct linprm *lindst;
     *(dstp++) = *(srcp++);
   }
 
-  return 0;
+  if (linsrc->dispre) {
+    if (!lindst->dispre) {
+      if ((lindst->dispre = calloc(1, sizeof(struct disprm))) == 0x0) {
+        return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
+      }
+
+      lindst->m_dispre = lindst->dispre;
+    }
+
+    if ((status = discpy(alloc, linsrc->dispre, lindst->dispre))) {
+      status = wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+      goto cleanup;
+    }
+  }
+
+  if (linsrc->disseq) {
+    if (!lindst->disseq) {
+      if ((lindst->disseq = calloc(1, sizeof(struct disprm))) == 0x0) {
+        return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
+      }
+
+      lindst->m_disseq = lindst->disseq;
+    }
+
+    if ((status = discpy(alloc, linsrc->disseq, lindst->disseq))) {
+      status = wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+      goto cleanup;
+    }
+  }
+
+cleanup:
+  if (status && (lindst->m_dispre || lindst->m_disseq)) {
+    if (lindst->dispre) free(lindst->dispre);
+    if (lindst->disseq) free(lindst->disseq);
+    lindst->dispre = 0x0;
+    lindst->disseq = 0x0;
+  }
+
+  return status;
 }
 
 /*--------------------------------------------------------------------------*/
 
-int linfree(lin)
-
-struct linprm *lin;
+int linfree(struct linprm *lin)
 
 {
   if (lin == 0x0) return LINERR_NULL_POINTER;
@@ -256,21 +368,39 @@ struct linprm *lin;
   if (lin->flag != -1) {
     /* Free memory allocated by linini(). */
     if (lin->m_flag == LINSET) {
-      if (lin->crpix == lin->m_crpix) lin->crpix = 0x0;
-      if (lin->pc    == lin->m_pc)    lin->pc    = 0x0;
-      if (lin->cdelt == lin->m_cdelt) lin->cdelt = 0x0;
+      if (lin->crpix  == lin->m_crpix)  lin->crpix  = 0x0;
+      if (lin->pc     == lin->m_pc)     lin->pc     = 0x0;
+      if (lin->cdelt  == lin->m_cdelt)  lin->cdelt  = 0x0;
+      if (lin->dispre == lin->m_dispre) lin->dispre = 0x0;
+      if (lin->disseq == lin->m_disseq) lin->disseq = 0x0;
+
+      if (lin->tmpcrd)   free(lin->tmpcrd);
 
-      if (lin->m_crpix) free(lin->m_crpix);
-      if (lin->m_pc)    free(lin->m_pc);
-      if (lin->m_cdelt) free(lin->m_cdelt);
+      if (lin->m_crpix)  free(lin->m_crpix);
+      if (lin->m_pc)     free(lin->m_pc);
+      if (lin->m_cdelt)  free(lin->m_cdelt);
+
+      if (lin->m_dispre) {
+        disfree(lin->m_dispre);
+        free(lin->m_dispre);
+      }
+
+      if (lin->m_disseq) {
+        disfree(lin->m_disseq);
+        free(lin->m_disseq);
+      }
     }
   }
 
-  lin->m_flag  = 0;
-  lin->m_naxis = 0;
-  lin->m_crpix = 0x0;
-  lin->m_pc    = 0x0;
-  lin->m_cdelt = 0x0;
+  lin->tmpcrd   = 0x0;
+
+  lin->m_flag   = 0;
+  lin->m_naxis  = 0;
+  lin->m_crpix  = 0x0;
+  lin->m_pc     = 0x0;
+  lin->m_cdelt  = 0x0;
+  lin->m_dispre = 0x0;
+  lin->m_disseq = 0x0;
 
 
   /* Free memory allocated by linset(). */
@@ -279,8 +409,8 @@ struct linprm *lin;
     if (lin->imgpix) free(lin->imgpix);
   }
 
-  lin->piximg = 0x0;
-  lin->imgpix = 0x0;
+  lin->piximg  = 0x0;
+  lin->imgpix  = 0x0;
   lin->i_naxis = 0;
 
   if (lin->err) {
@@ -295,9 +425,7 @@ struct linprm *lin;
 
 /*--------------------------------------------------------------------------*/
 
-int linprt(lin)
-
-const struct linprm *lin;
+int linprt(const struct linprm *lin)
 
 {
   int i, j, k;
@@ -308,13 +436,15 @@ const struct linprm *lin;
     wcsprintf("The linprm struct is UNINITIALIZED.\n");
     return 0;
   }
-
   wcsprintf("       flag: %d\n", lin->flag);
+
+  /* Parameters supplied. */
   wcsprintf("      naxis: %d\n", lin->naxis);
+
   WCSPRINTF_PTR("      crpix: ", lin->crpix, "\n");
   wcsprintf("            ");
-  for (i = 0; i < lin->naxis; i++) {
-    wcsprintf("  %- 11.5g", lin->crpix[i]);
+  for (j = 0; j < lin->naxis; j++) {
+    wcsprintf("  %#- 11.5g", lin->crpix[j]);
   }
   wcsprintf("\n");
 
@@ -323,7 +453,7 @@ const struct linprm *lin;
   for (i = 0; i < lin->naxis; i++) {
     wcsprintf("    pc[%d][]:", i);
     for (j = 0; j < lin->naxis; j++) {
-      wcsprintf("  %- 11.5g", lin->pc[k++]);
+      wcsprintf("  %#- 11.5g", lin->pc[k++]);
     }
     wcsprintf("\n");
   }
@@ -331,17 +461,18 @@ const struct linprm *lin;
   WCSPRINTF_PTR("      cdelt: ", lin->cdelt, "\n");
   wcsprintf("            ");
   for (i = 0; i < lin->naxis; i++) {
-    wcsprintf("  %- 11.5g", lin->cdelt[i]);
+    wcsprintf("  %#- 11.5g", lin->cdelt[i]);
   }
   wcsprintf("\n");
 
-  wcsprintf("      unity: %d\n", lin->unity);
-
-  WCSPRINTF_PTR("        err: ", lin->err, "\n");
-  if (lin->err) {
-    wcserr_prt(lin->err, "             ");
-  }
+  WCSPRINTF_PTR("     dispre: ", lin->dispre, "");
+  if (lin->dispre != 0x0) wcsprintf("  (see below)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("     disseq: ", lin->disseq, "");
+  if (lin->disseq != 0x0) wcsprintf("  (see below)");
+  wcsprintf("\n");
 
+  /* Derived values. */
   if (lin->piximg == 0x0) {
     wcsprintf("     piximg: (nil)\n");
   } else {
@@ -349,7 +480,7 @@ const struct linprm *lin;
     for (i = 0; i < lin->naxis; i++) {
       wcsprintf("piximg[%d][]:", i);
       for (j = 0; j < lin->naxis; j++) {
-        wcsprintf("  %- 11.5g", lin->piximg[k++]);
+        wcsprintf("  %#- 11.5g", lin->piximg[k++]);
       }
       wcsprintf("\n");
     }
@@ -362,12 +493,27 @@ const struct linprm *lin;
     for (i = 0; i < lin->naxis; i++) {
       wcsprintf("imgpix[%d][]:", i);
       for (j = 0; j < lin->naxis; j++) {
-        wcsprintf("  %- 11.5g", lin->imgpix[k++]);
+        wcsprintf("  %#- 11.5g", lin->imgpix[k++]);
       }
       wcsprintf("\n");
     }
   }
 
+  wcsprintf("    i_naxis: %d\n", lin->i_naxis);
+  wcsprintf("      unity: %d\n", lin->unity);
+  wcsprintf("     affine: %d\n", lin->affine);
+  wcsprintf("     simple: %d\n", lin->simple);
+
+  /* Error handling. */
+  WCSPRINTF_PTR("        err: ", lin->err, "\n");
+  if (lin->err) {
+    wcserr_prt(lin->err, "             ");
+  }
+
+  /* Work arrays. */
+  WCSPRINTF_PTR("     tmpcrd: ", lin->tmpcrd, "\n");
+
+  /* Memory management. */
   wcsprintf("     m_flag: %d\n", lin->m_flag);
   wcsprintf("    m_naxis: %d\n", lin->m_naxis);
   WCSPRINTF_PTR("    m_crpix: ", lin->m_crpix, "");
@@ -379,15 +525,47 @@ const struct linprm *lin;
   WCSPRINTF_PTR("    m_cdelt: ", lin->m_cdelt, "");
   if (lin->m_cdelt == lin->cdelt) wcsprintf("  (= cdelt)");
   wcsprintf("\n");
+  WCSPRINTF_PTR("   m_dispre: ", lin->m_dispre, "");
+  if (lin->dispre && lin->m_dispre == lin->dispre) wcsprintf("  (= dispre)");
+  wcsprintf("\n");
+  WCSPRINTF_PTR("   m_disseq: ", lin->m_disseq, "");
+  if (lin->disseq && lin->m_disseq == lin->disseq) wcsprintf("  (= disseq)");
+  wcsprintf("\n");
+
+  /* Distortion parameters (from above). */
+  if (lin->dispre) {
+    wcsprintf("\n");
+    wcsprintf("dispre.*\n");
+    disprt(lin->dispre);
+  }
+
+  if (lin->disseq) {
+    wcsprintf("\n");
+    wcsprintf("disseq.*\n");
+    disprt(lin->disseq);
+  }
 
   return 0;
 }
 
 /*--------------------------------------------------------------------------*/
 
-int linset(lin)
+int linperr(const struct linprm *lin, const char *prefix)
 
-struct linprm *lin;
+{
+  if (lin == 0x0) return LINERR_NULL_POINTER;
+
+  if (lin->err && wcserr_prt(lin->err, prefix) == 0) {
+    if (lin->dispre) wcserr_prt(lin->dispre->err, prefix);
+    if (lin->disseq) wcserr_prt(lin->disseq->err, prefix);
+  }
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int linset(struct linprm *lin)
 
 {
   static const char *function = "linset";
@@ -428,8 +606,8 @@ struct linprm *lin;
       if (lin->imgpix) free(lin->imgpix);
     }
 
-    lin->piximg = 0x0;
-    lin->imgpix = 0x0;
+    lin->piximg  = 0x0;
+    lin->imgpix  = 0x0;
     lin->i_naxis = 0;
 
   } else {
@@ -441,11 +619,11 @@ struct linprm *lin;
       }
 
       /* Allocate memory for internal arrays. */
-      if (!(lin->piximg = calloc(n*n, sizeof(double)))) {
+      if ((lin->piximg = calloc(n*n, sizeof(double))) == 0x0) {
         return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
       }
 
-      if (!(lin->imgpix = calloc(n*n, sizeof(double)))) {
+      if ((lin->imgpix = calloc(n*n, sizeof(double))) == 0x0) {
         free(lin->piximg);
         return wcserr_set(LIN_ERRMSG(LINERR_MEMORY));
       }
@@ -458,7 +636,12 @@ struct linprm *lin;
     piximg = lin->piximg;
     for (i = 0; i < n; i++) {
       for (j = 0; j < n; j++) {
-        *(piximg++) = lin->cdelt[i] * (*(pc++));
+        if (lin->disseq == 0x0) {
+          /* No sequent distortions, incorporate cdelt into piximg. */
+          *(piximg++) = lin->cdelt[i] * (*(pc++));
+        } else {
+          *(piximg++) = *(pc++);
+        }
       }
     }
 
@@ -466,8 +649,29 @@ struct linprm *lin;
     if ((status = matinv(n, lin->piximg, lin->imgpix))) {
       return wcserr_set(LIN_ERRMSG(status));
     }
+
+
+    /* Set up the distortion functions. */
+    lin->affine = 1;
+    if (lin->dispre) {
+      if ((status = disset(lin->dispre))) {
+        return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+      }
+
+      lin->affine = 0;
+    }
+
+    if (lin->disseq) {
+      if ((status = disset(lin->disseq))) {
+        return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+      }
+
+      lin->affine = 0;
+    }
   }
 
+  lin->simple = lin->unity && lin->affine;
+
 
   lin->flag = LINSET;
 
@@ -476,22 +680,27 @@ struct linprm *lin;
 
 /*--------------------------------------------------------------------------*/
 
-int linp2x(lin, ncoord, nelem, pixcrd, imgcrd)
-
-struct linprm *lin;
-int ncoord, nelem;
-const double pixcrd[];
-double imgcrd[];
+int linp2x(
+  struct linprm *lin,
+  int ncoord,
+  int nelem,
+  const double pixcrd[],
+  double imgcrd[])
 
 {
-  int i, j, k, n, status;
+  static const char *function = "linp2x";
+
+  int i, j, k, n, ndbl, nelemn, status;
   double temp;
   register const double *pix;
-  register double *img, *piximg;
+  register double *img, *piximg, *tmp;
+  struct wcserr **err;
 
 
   /* Initialize. */
   if (lin == 0x0) return LINERR_NULL_POINTER;
+  err = &(lin->err);
+
   if (lin->flag != LINSET) {
     if ((status = linset(lin))) return status;
   }
@@ -503,33 +712,85 @@ double imgcrd[];
   pix = pixcrd;
   img = imgcrd;
 
-  if (lin->unity) {
+  if (lin->simple) {
+    /* Handle the simplest and most common case with maximum efficiency. */
+    nelemn = nelem - n;
     for (k = 0; k < ncoord; k++) {
       for (i = 0; i < n; i++) {
         *(img++) = lin->cdelt[i] * (*(pix++) - lin->crpix[i]);
       }
 
-      pix += (nelem - n);
-      img += (nelem - n);
+      pix += nelemn;
+      img += nelemn;
     }
 
-  } else {
+  } else if (lin->affine) {
+    /* No distortions. */
+    ndbl   = n * sizeof(double);
+    nelemn = nelem - n;
     for (k = 0; k < ncoord; k++) {
-      for (i = 0; i < n; i++) {
-        img[i] = 0.0;
-      }
+      memset(img, 0, ndbl);
 
       for (j = 0; j < n; j++) {
+        /* cdelt will have been incorporated into piximg. */
+        piximg = lin->piximg + j;
+
         /* Column-wise multiplication allows this to be cached. */
         temp = *(pix++) - lin->crpix[j];
-
-        piximg = lin->piximg + j;
         for (i = 0; i < n; i++, piximg += n) {
           img[i] += *piximg * temp;
         }
       }
 
-      pix += (nelem - n);
+      pix += nelemn;
+      img += nelem;
+    }
+
+  } else {
+    /* Distortions are present. */
+    ndbl = n * sizeof(double);
+    tmp  = lin->tmpcrd;
+
+    for (k = 0; k < ncoord; k++) {
+      if (lin->dispre) {
+        if ((status = disp2x(lin->dispre, pix, tmp))) {
+          return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+        }
+      } else {
+        memcpy(tmp, pix, ndbl);
+      }
+
+      if (lin->unity) {
+        for (i = 0; i < n; i++) {
+          img[i] = lin->cdelt[i] * (tmp[i] - lin->crpix[i]);
+        }
+
+      } else {
+        for (j = 0; j < n; j++) {
+          tmp[j] -= lin->crpix[j];
+        }
+
+        piximg = lin->piximg;
+        for (i = 0; i < n; i++) {
+          img[i] = 0.0;
+          for (j = 0; j < n; j++) {
+            img[i] += *(piximg++) * tmp[j];
+          }
+        }
+      }
+
+      if (lin->disseq) {
+        if ((status = disp2x(lin->disseq, img, tmp))) {
+          return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+        }
+
+        /* With sequent distortions, cdelt is not incorporated into piximg. */
+        for (i = 0; i < n; i++) {
+          img[i] = lin->cdelt[i] * tmp[i];
+        }
+      }
+
+      pix += nelem;
       img += nelem;
     }
   }
@@ -539,21 +800,26 @@ double imgcrd[];
 
 /*--------------------------------------------------------------------------*/
 
-int linx2p(lin, ncoord, nelem, imgcrd, pixcrd)
-
-struct linprm *lin;
-int ncoord, nelem;
-const double imgcrd[];
-double pixcrd[];
+int linx2p(
+  struct linprm *lin,
+  int ncoord,
+  int nelem,
+  const double imgcrd[],
+  double pixcrd[])
 
 {
-  int i, j, k, n, status;
+  static const char *function = "linx2p";
+
+  int i, j, k, n, ndbl, nelemn, status;
   register const double *img;
-  register double *imgpix, *pix;
+  register double *imgpix, *pix, *tmp;
+  struct wcserr **err;
 
 
   /* Initialize. */
   if (lin == 0x0) return LINERR_NULL_POINTER;
+  err = &(lin->err);
+
   if (lin->flag != LINSET) {
     if ((status = linset(lin))) return status;
   }
@@ -565,18 +831,23 @@ double pixcrd[];
   img = imgcrd;
   pix = pixcrd;
 
-  if (lin->unity) {
+  if (lin->simple) {
+    /* Handle the simplest and most common case with maximum efficiency. */
+    nelemn = nelem - n;
     for (k = 0; k < ncoord; k++) {
       for (j = 0; j < n; j++) {
         *(pix++) = (*(img++) / lin->cdelt[j]) + lin->crpix[j];
       }
 
-      pix += (nelem - n);
-      img += (nelem - n);
+      img += nelemn;
+      pix += nelemn;
     }
 
-  } else {
+  } else if (lin->affine) {
+    /* No distortions. */
+    nelemn = nelem - n;
     for (k = 0; k < ncoord; k++) {
+      /* cdelt will have been incorporated into imgpix. */
       imgpix = lin->imgpix;
 
       for (j = 0; j < n; j++) {
@@ -589,8 +860,51 @@ double pixcrd[];
         *(pix++) += lin->crpix[j];
       }
 
-      pix += (nelem - n);
       img += nelem;
+      pix += nelemn;
+    }
+
+  } else {
+    /* Distortions are present. */
+    ndbl = n * sizeof(double);
+    tmp  = lin->tmpcrd;
+
+    for (k = 0; k < ncoord; k++) {
+      if (lin->disseq) {
+        /* With sequent distortions, cdelt is not incorporated into imgpix. */
+        for (i = 0; i < n; i++) {
+          tmp[i] = img[i] / lin->cdelt[i];
+        }
+
+        if ((status = disx2p(lin->disseq, tmp, pix))) {
+          return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+        }
+
+        memcpy(tmp, pix, ndbl);
+
+      } else {
+        memcpy(tmp, img, ndbl);
+      }
+
+      imgpix = lin->imgpix;
+
+      for (j = 0; j < n; j++) {
+        pix[j] = lin->crpix[j];
+        for (i = 0; i < n; i++) {
+          pix[j] += *(imgpix++) * tmp[i];
+        }
+      }
+
+      if (lin->dispre) {
+        memcpy(tmp, pix, ndbl);
+
+        if ((status = disx2p(lin->dispre, tmp, pix))) {
+          return wcserr_set(LIN_ERRMSG(lin_diserr[status]));
+        }
+      }
+
+      img += nelem;
+      pix += nelem;
     }
   }
 
@@ -608,21 +922,21 @@ int matinv(int n, const double mat[], double inv[])
 
 
   /* Allocate memory for internal arrays. */
-  if (!(mxl = calloc(n, sizeof(int)))) {
+  if ((mxl = calloc(n, sizeof(int))) == 0x0) {
     return LINERR_MEMORY;
   }
-  if (!(lxm = calloc(n, sizeof(int)))) {
+  if ((lxm = calloc(n, sizeof(int))) == 0x0) {
     free(mxl);
     return LINERR_MEMORY;
   }
 
-  if (!(rowmax = calloc(n, sizeof(double)))) {
+  if ((rowmax = calloc(n, sizeof(double))) == 0x0) {
     free(mxl);
     free(lxm);
     return LINERR_MEMORY;
   }
 
-  if (!(lu = calloc(n*n, sizeof(double)))) {
+  if ((lu = calloc(n*n, sizeof(double))) == 0x0) {
     free(mxl);
     free(lxm);
     free(rowmax);
diff --git a/C/lin.h b/C/lin.h
index ead6032..e33aebe 100644
--- a/C/lin.h
+++ b/C/lin.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: lin.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: lin.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -43,8 +43,11 @@
 * that must be set by the user, and others that are maintained by these
 * routines, somewhat like a C++ class but with no encapsulation.
 *
-* Three routines, linini(), lincpy(), and linfree() are provided to manage the
-* linprm struct, and another, linprt(), prints its contents.
+* Four routines, linini(), lindis(), lincpy(), and linfree() are provided to
+* manage the linprm struct, and another, linprt(), prints its contents.
+*
+* linperr() prints the error message(s) (if any) stored in a linprm struct,
+* and the disprm structs that it may contain.
 *
 * A setup routine, linset(), computes intermediate values in the linprm struct
 * from parameters in it that were supplied by the user.  The struct always
@@ -62,7 +65,7 @@
 * linini() allocates memory for arrays in a linprm struct and sets all members
 * of the struct to default values.
 *
-* PLEASE NOTE: every linprm struct should be initialized by linini(), possibly
+* PLEASE NOTE: every linprm struct must be initialized by linini(), possibly
 * repeatedly.  On the first invokation, and only the first invokation,
 * linprm::flag must be set to -1 to initialize memory management, regardless
 * of whether linini() will actually be used to allocate memory.
@@ -98,6 +101,43 @@
 *                       linprm::err if enabled, see wcserr_enable().
 *
 *
+* lindis() - Assign a distortion to a linprm struct
+* -------------------------------------------------
+* lindis() may be used to assign the address of a disprm struct to
+* linprm::dispre or linprm::disseq.  The linprm struct must already have been
+* initialized by linini().
+*
+* The disprm struct must have been allocated from the heap (e.g. using
+* malloc(), calloc(), etc.).  lindis() will immediately initialize it via a
+* call to disini() using the value of linprm::naxis.  Subsequently, it will be
+* reinitialized by calls to linini(), and freed by linfree(), neither of which
+* would happen if the disprm struct was assigned directly.
+*
+* If the disprm struct had previously been assigned via lindis(), it will be
+* freed before reassignment.  It is also permissable for a null disprm pointer
+* to be assigned to disable the distortion correction.
+*
+* Given:
+*   sequence  int       Is it a prior or sequent distortion?
+*                         1: Prior,   the assignment is to linprm::dispre.
+*                         2: Sequent, the assignment is to linprm::disseq.
+*
+*                       Anything else is an error.
+*
+* Given and returned:
+*   lin       struct linprm*
+*                       Linear transformation parameters.
+*
+*   dis       struct disprm*
+*                       Distortion function parameters.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null linprm pointer passed.
+*                         4: Invalid sequence.
+*
+*
 * lincpy() - Copy routine for the linprm struct
 * ---------------------------------------------
 * lincpy() does a deep copy of one linprm struct to another, using linini() to
@@ -165,6 +205,26 @@
 *                         1: Null linprm pointer passed.
 *
 *
+* linperr() - Print error messages from a linprm struct
+* -----------------------------------------------------
+* linperr() prints the error message(s) (if any) stored in a linprm struct,
+* and the disprm structs that it may contain.  If there are no errors then
+* nothing is printed.  It uses wcserr_prt(), q.v.
+*
+* Given:
+*   lin       const struct linprm*
+*                       Coordinate transformation parameters.
+*
+*   prefix    const char *
+*                       If non-NULL, each output line will be prefixed with
+*                       this string.
+*
+* Function return value:
+*             int       Status return value:
+*                         0: Success.
+*                         1: Null linprm pointer passed.
+*
+*
 * linset() - Setup routine for the linprm struct
 * ----------------------------------------------
 * linset(), if necessary, allocates memory for the linprm::piximg and
@@ -264,7 +324,9 @@
 *
 *       - linprm::naxis (q.v., not normally set by the user),
 *       - linprm::pc,
-*       - linprm::cdelt.
+*       - linprm::cdelt,
+*       - linprm::dispre.
+*       - linprm::disseq.
 *
 *     This signals the initialization routine, linset(), to recompute the
 *     returned members of the linprm struct.  linset() will reset flag to
@@ -286,6 +348,9 @@
 *     (Given) Pointer to the first element of an array of double containing
 *     the coordinate reference pixel, CRPIXja.
 *
+*     It is not necessary to reset the linprm struct (via linset()) when
+*     linprm::crpix is changed.
+*
 *   double *pc
 *     (Given) Pointer to the first element of the PCi_ja (pixel coordinate)
 *     transformation matrix.  The expected order is
@@ -317,11 +382,56 @@
 *     (Given) Pointer to the first element of an array of double containing
 *     the coordinate increments, CDELTia.
 *
-*   int unity
-*     (Returned) True if the linear transformation matrix is unity.
-*
-*   int padding
-*     (An unused variable inserted for alignment purposes only.)
+*   struct disprm *dispre
+*     (Given) Pointer to a disprm struct holding parameters for prior
+*     distortion functions, or a null (0x0) pointer if there are none.
+*
+*     Function lindis() may be used to assign a disprm pointer to a linprm
+*     struct, allowing it to take control of any memory allocated for it, as
+*     in the following example:
+*
+=       void add_distortion(struct linprm *lin)
+=       {
+=         struct disprm *dispre;
+=
+=         dispre = malloc(sizeof(struct disprm);
+=         dispre->flag = -1;
+=         lindis(1, lin, dispre);
+=           :
+=          (Set up dispre.)
+=           :
+=
+=         return;
+=       }
+*
+*     Here, after the distortion function parameters etc. are copied into
+*     dispre, dispre is assigned using lindis() which takes control of the
+*     allocated memory.  It will be free'd later when linfree() is invoked on
+*     the linprm struct.
+*
+*     Consider also the following erroneous code:
+*
+=       void bad_code(struct linprm *lin)
+=       {
+=         struct disprm dispre;
+=
+=         dispre.flag = -1;
+=         lindis(1, lin, &dispre);   // WRONG.
+=           :
+=
+=         return;
+=       }
+*
+*     Here, dispre is declared as a struct, rather than a pointer.  When the
+*     function returns, dispre will go out of scope and its memory will most
+*     likely be reused, thereby trashing its contents.  Later, a segfault will
+*     occur when linfree() tries to free dispre's stale address.
+*
+*   struct disprm *disseq
+*     (Given) Pointer to a disprm struct holding parameters for sequent
+*     distortion functions, or a null (0x0) pointer if there are none.
+*
+*     Refer to the comments and examples given for disprm::dispre.
 *
 *   double *piximg
 *     (Returned) Pointer to the first element of the matrix containing the
@@ -331,25 +441,38 @@
 *     (Returned) Pointer to the first element of the inverse of the
 *     linprm::piximg matrix.
 *
+*   int i_naxis
+*     (Returned) The dimension of linprm::piximg and linprm::imgpix (normally
+*     equal to naxis).
+*
+*   int unity
+*     (Returned) True if the linear transformation matrix is unity.
+*
+*   int affine
+*     (Returned) True if there are no distortions.
+*
+*   int simple
+*     (Returned) True if unity and no distortions.
+*
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
-*   int i_naxis
+*   double *tmpcrd
 *     (For internal use only.)
 *   int m_flag
 *     (For internal use only.)
 *   int m_naxis
 *     (For internal use only.)
-*   int m_padding
-*     (For internal use only.)
 *   double *m_crpix
 *     (For internal use only.)
 *   double *m_pc
 *     (For internal use only.)
 *   double *m_cdelt
 *     (For internal use only.)
-*   void *padding2
+*   struct disprm *m_dispre
+*     (For internal use only.)
+*   struct disprm *m_disseq
 *     (For internal use only.)
 *
 *
@@ -362,8 +485,6 @@
 #ifndef WCSLIB_LIN
 #define WCSLIB_LIN
 
-#include "wcserr.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -375,7 +496,10 @@ enum lin_errmsg_enum {
   LINERR_SUCCESS      = 0,	/* Success. */
   LINERR_NULL_POINTER = 1,	/* Null linprm pointer passed. */
   LINERR_MEMORY       = 2,	/* Memory allocation failed. */
-  LINERR_SINGULAR_MTX = 3 	/* PCi_ja matrix is singular. */
+  LINERR_SINGULAR_MTX = 3,	/* PCi_ja matrix is singular. */
+  LINERR_DISTORT_INIT = 4,	/* Failed to initialise distortions. */
+  LINERR_DISTORT      = 5,	/* Distort error. */
+  LINERR_DEDISTORT    = 6	/* De-distort error. */
 };
 
 struct linprm {
@@ -389,24 +513,29 @@ struct linprm {
   double *crpix;		/* CRPIXja keywords for each pixel axis.    */
   double *pc;			/* PCi_ja  linear transformation matrix.    */
   double *cdelt;		/* CDELTia keywords for each coord axis.    */
+  struct disprm *dispre;	/* Prior   distortion parameters, if any.   */
+  struct disprm *disseq;	/* Sequent distortion parameters, if any.   */
 
   /* Information derived from the parameters supplied.                      */
   /*------------------------------------------------------------------------*/
   double *piximg;		/* Product of CDELTia and PCi_ja matrices.  */
   double *imgpix;		/* Inverse of the piximg matrix.            */
+  int    i_naxis;		/* Dimension of piximg and imgpix.          */
   int    unity;			/* True if the PCi_ja matrix is unity.      */
+  int    affine;		/* True if there are no distortions.        */
+  int    simple;		/* True if unity and no distortions.        */
 
-  /* Error handling                                                         */
+  /* Error handling, if enabled.                                            */
   /*------------------------------------------------------------------------*/
-  int    padding;		/* (Dummy inserted for alignment purposes.) */
   struct wcserr *err;
 
-  /* Private - the remainder are for memory management.                     */
+  /* Private - the remainder are for internal use.                          */
   /*------------------------------------------------------------------------*/
-  int    i_naxis;
-  int    m_flag, m_naxis, m_padding;
+  double *tmpcrd;
+
+  int    m_flag, m_naxis;
   double *m_crpix, *m_pc, *m_cdelt;
-  void   *padding2;
+  struct disprm *m_dispre, *m_disseq;
 };
 
 /* Size of the linprm struct in int units, used by the Fortran wrappers. */
@@ -415,12 +544,16 @@ struct linprm {
 
 int linini(int alloc, int naxis, struct linprm *lin);
 
+int lindis(int sequence, struct linprm *lin, struct disprm *dis);
+
 int lincpy(int alloc, const struct linprm *linsrc, struct linprm *lindst);
 
 int linfree(struct linprm *lin);
 
 int linprt(const struct linprm *lin);
 
+int linperr(const struct linprm *lin, const char *prefix);
+
 int linset(struct linprm *lin);
 
 int linp2x(struct linprm *lin, int ncoord, int nelem, const double pixcrd[],
diff --git a/C/log.c b/C/log.c
index 99f3f40..31bff95 100644
--- a/C/log.c
+++ b/C/log.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: log.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: log.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/C/log.h b/C/log.h
index 111483b..650590c 100644
--- a/C/log.h
+++ b/C/log.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: log.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: log.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement logarithmic coordinate systems as
+* WCSLIB 5.0 - C routines that implement logarithmic coordinate systems as
 * defined by the FITS World Coordinate System (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
diff --git a/C/prj.c b/C/prj.c
index bb266e5..ea72517 100644
--- a/C/prj.c
+++ b/C/prj.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: prj.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: prj.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -225,7 +225,7 @@ const struct prjprm *prj;
     if (prj->pvrange/100) {
       wcsprintf(" (0)");
     } else {
-      wcsprintf(" %- 11.5g", prj->pv[0]);
+      wcsprintf("  %#- 11.5g", prj->pv[0]);
       n--;
     }
 
@@ -237,7 +237,7 @@ const struct prjprm *prj;
       if (undefined(prj->pv[i])) {
         wcsprintf("  UNDEFINED   ");
       } else {
-        wcsprintf("  %- 11.5g", prj->pv[i]);
+        wcsprintf("  %#- 11.5g", prj->pv[i]);
       }
     }
     wcsprintf("\n");
@@ -276,11 +276,11 @@ const struct prjprm *prj;
 
   wcsprintf("        w[]:");
   for (i = 0; i < 5; i++) {
-    wcsprintf("  %- 11.5g", prj->w[i]);
+    wcsprintf("  %#- 11.5g", prj->w[i]);
   }
   wcsprintf("\n            ");
   for (i = 5; i < 10; i++) {
-    wcsprintf("  %- 11.5g", prj->w[i]);
+    wcsprintf("  %#- 11.5g", prj->w[i]);
   }
   wcsprintf("\n");
   wcsprintf("          m: %d\n", prj->m);
@@ -312,35 +312,38 @@ int stat[];
   statp  = stat;
   for (itheta = 0; itheta < ntheta; itheta++) {
     for (iphi = 0; iphi < nphi; iphi++, phip += spt, thetap += spt, statp++) {
-      if (*phip < -180.0) {
-        if (*phip < -180.0-tol) {
-          *statp = 1;
-          status = 1;
-        } else {
-          *phip = -180.0;
-        }
-      } else if (180.0 < *phip) {
-        if (180.0+tol < *phip) {
-          *statp = 1;
-          status = 1;
-        } else {
-          *phip = 180.0;
+      /* Skip values already marked as illegal. */
+      if (*statp == 0) {
+        if (*phip < -180.0) {
+          if (*phip < -180.0-tol) {
+            *statp = 1;
+            status = 1;
+          } else {
+            *phip = -180.0;
+          }
+        } else if (180.0 < *phip) {
+          if (180.0+tol < *phip) {
+            *statp = 1;
+            status = 1;
+          } else {
+            *phip = 180.0;
+          }
         }
-      }
 
-      if (*thetap < -90.0) {
-        if (*thetap < -90.0-tol) {
-          *statp = 1;
-          status = 1;
-        } else {
-          *thetap = -90.0;
-        }
-      } else if (90.0 < *thetap) {
-        if (90.0+tol < *thetap) {
-          *statp = 1;
-          status = 1;
-        } else {
-          *thetap = 90.0;
+        if (*thetap < -90.0) {
+          if (*thetap < -90.0-tol) {
+            *statp = 1;
+            status = 1;
+          } else {
+            *thetap = -90.0;
+          }
+        } else if (90.0 < *thetap) {
+          if (90.0+tol < *thetap) {
+            *statp = 1;
+            status = 1;
+          } else {
+            *thetap = 90.0;
+          }
         }
       }
     }
@@ -2405,7 +2408,7 @@ int stat[];
           }
           zd = zd2;
         } else {
-          /* Disect the interval. */
+          /* Dissect the interval. */
           for (j = 0; j < 100; j++) {
             lambda = (r2 - r)/(r2 - r1);
             if (lambda < 0.1) {
diff --git a/C/prj.h b/C/prj.h
index 39ed393..07b2796 100644
--- a/C/prj.h
+++ b/C/prj.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: prj.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: prj.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the spherical map projections
+* WCSLIB 5.0 - C routines that implement the spherical map projections
 * recognized by the FITS World Coordinate System (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -486,6 +486,9 @@
 *     to suit each projection.  bounds is set to 7 by prjini() by default
 *     which enables all checks.  Zero it to disable all checking.
 *
+*     It is not necessary to reset the prjprm struct (via prjset() or
+*     ???set()) when prjprm::bounds is changed.
+*
 * The remaining members of the prjprm struct are maintained by the setup
 * routines and must not be modified elsewhere:
 *
@@ -557,7 +560,7 @@
 *     (phi_0,theta_0).
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   void *padding
@@ -575,7 +578,7 @@
 *     projections).
 *
 *   int (*prjx2s)(PRJX2S_ARGS)
-*     (Returned) Pointer to the projection ...
+*     (Returned) Pointer to the spherical projection ...
 *   int (*prjs2x)(PRJ_ARGS)
 *     (Returned) ... and deprojection routines.
 *
@@ -589,8 +592,6 @@
 #ifndef WCSLIB_PROJ
 #define WCSLIB_PROJ
 
-#include "wcserr.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/C/spc.c b/C/spc.c
index 14bfc01..6d44cfe 100644
--- a/C/spc.c
+++ b/C/spc.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spc.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: spc.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -68,6 +68,17 @@ const char *spc_errmsg[] = {
   "One or more of x coordinates were invalid",
   "One or more of the spec coordinates were invalid"};
 
+/* Map error returns for lower-level routines.  SPXERR_BAD_INSPEC_COORD */
+/* maps to either SPCERR_BAD_X or SPCERR_BAD_SPEC depending on context. */
+const int spc_spxerr[] = {
+
+  SPCERR_SUCCESS,		/*  0: SPXERR_SUCCESS          */
+  SPCERR_NULL_POINTER,		/*  1: SPXERR_NULL_POINTER     */
+  SPCERR_BAD_SPEC_PARAMS,	/*  2: SPXERR_BAD_SPEC_PARAMS  */
+  SPCERR_BAD_SPEC_PARAMS	/*  3: SPXERR_BAD_SPEC_VAR     */
+				/*  4: SPXERR_BAD_INSPEC_COORD */
+};
+
 /* Convenience macro for invoking wcserr_set(). */
 #define SPC_ERRMSG(status) WCSERR_SET(status), spc_errmsg[status]
 
@@ -112,7 +123,7 @@ int spcini(struct spcprm *spc)
   spc->spxS2P = 0x0;
   spc->spxP2X = 0x0;
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -127,7 +138,7 @@ int spcfree(struct spcprm *spc)
     spc->err = 0x0;
   }
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -146,7 +157,7 @@ int spcprt(const struct spcprm *spc)
   if (undefined(spc->crval)) {
     wcsprintf("      crval: UNDEFINED\n");
   } else {
-    wcsprintf("      crval: %- 11.4g\n", spc->crval);
+    wcsprintf("      crval: %#- 11.5g\n", spc->crval);
   }
   wcsprintf("    restfrq: %f\n", spc->restfrq);
   wcsprintf("    restwav: %f\n", spc->restwav);
@@ -157,7 +168,7 @@ int spcprt(const struct spcprm *spc)
       if (undefined(spc->pv[i])) {
         wcsprintf("  UNDEFINED   ");
       } else {
-        wcsprintf("  %- 11.4g", spc->pv[i]);
+        wcsprintf("  %#- 11.5g", spc->pv[i]);
       }
     }
     wcsprintf("\n            ");
@@ -165,7 +176,7 @@ int spcprt(const struct spcprm *spc)
       if (undefined(spc->pv[i])) {
         wcsprintf("  UNDEFINED   ");
       } else {
-        wcsprintf("  %- 11.4g", spc->pv[i]);
+        wcsprintf("  %#- 11.5g", spc->pv[i]);
       }
     }
     wcsprintf("\n");
@@ -176,12 +187,12 @@ int spcprt(const struct spcprm *spc)
 
   wcsprintf("          w:");
   for (i = 0; i < 3; i++) {
-    wcsprintf("  %- 11.4g", spc->w[i]);
+    wcsprintf("  %#- 11.5g", spc->w[i]);
   }
   if (spc->isGrism) {
     wcsprintf("\n            ");
     for (i = 3; i < 6; i++) {
-      wcsprintf("  %- 11.4g", spc->w[i]);
+      wcsprintf("  %#- 11.5g", spc->w[i]);
     }
     wcsprintf("\n");
   } else {
@@ -204,7 +215,7 @@ int spcprt(const struct spcprm *spc)
   wcsprintf("     spxP2X: %s\n",
     wcsutil_fptr2str((int (*)(void))spc->spxP2X, hext));
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -493,7 +504,7 @@ int spcset(struct spcprm *spc)
     spc->w[5] = 1.0 / t;
   }
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -510,7 +521,7 @@ int spcx2s(
 {
   static const char *function = "spcx2s";
 
-  int statP2S, status = SPCERR_SUCCESS, statX2P;
+  int statP2S, status = 0, statX2P;
   double beta;
   register int ix;
   register int *statp;
@@ -555,7 +566,7 @@ int spcx2s(
         return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
           "Invalid spectral parameters: Frequency or wavelength is 0");
       } else {
-        return wcserr_set(SPC_ERRMSG(statX2P));
+        return wcserr_set(SPC_ERRMSG(spc_spxerr[statX2P]));
       }
     }
   }
@@ -571,7 +582,7 @@ int spcx2s(
         return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
           "Invalid spectral parameters: Frequency or wavelength is 0");
       } else {
-        return wcserr_set(SPC_ERRMSG(statP2S));
+        return wcserr_set(SPC_ERRMSG(spc_spxerr[statP2S]));
       }
     }
   }
@@ -596,7 +607,7 @@ int spcs2x(
 {
   static const char *function = "spcs2x";
 
-  int statP2X, status = SPCERR_SUCCESS, statS2P;
+  int statP2X, status = 0, statS2P;
   double beta, s;
   register int ispec;
   register int *statp;
@@ -622,7 +633,7 @@ int spcs2x(
         return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
           "Invalid spectral parameters: Frequency or wavelength is 0");
       } else {
-        return wcserr_set(SPC_ERRMSG(statS2P));
+        return wcserr_set(SPC_ERRMSG(spc_spxerr[statS2P]));
       }
     }
 
@@ -648,7 +659,7 @@ int spcs2x(
         return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
           "Invalid spectral parameters: Frequency or wavelength is 0");
       } else {
-        return wcserr_set(SPC_ERRMSG(statP2X));
+        return wcserr_set(SPC_ERRMSG(spc_spxerr[statP2X]));
       }
     }
   }
@@ -864,7 +875,7 @@ int spctype(
   if (restreq) *restreq = restreq_t;
 
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -914,7 +925,7 @@ int spcspxe(
     return status;
   }
 
-  if (strstr("LT", xtype)) {
+  if (strchr("LT", (int)(*xtype))) {
     /* Can't handle logarithmic or tabular coordinates. */
     return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
       "Can't handle logarithmic or tabular coordinates");
@@ -930,10 +941,11 @@ int spcspxe(
   strcpy(type, stype);
   spx.err = (err ? *err : 0x0);
   if ((status = specx(type, crvalS, restfrq, restwav, &spx))) {
-    status = SPCERR_BAD_SPEC_PARAMS;
+    status = spc_spxerr[status];
     if (err) {
-      *err = spx.err;
-      (*err)->status = status;
+      if ((*err = spx.err)) {
+        (*err)->status = status;
+      }
     } else {
       free(spx.err);
     }
@@ -1037,7 +1049,7 @@ int spcspxe(
 
   *dXdS = dXdP * dPdS;
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -1086,7 +1098,7 @@ int spcxpse(
     return status;
   }
 
-  if (strstr("LT", xtype)) {
+  if (strchr("LT", (int)(*xtype))) {
     /* Can't handle logarithmic or tabular coordinates. */
     return wcserr_set(WCSERR_SET(SPCERR_BAD_SPEC_PARAMS),
       "Can't handle logarithmic or tabular coordinates");
@@ -1111,10 +1123,11 @@ int spcxpse(
 
   spx.err = (err ? *err : 0x0);
   if (specx(type, crvalX, restfrq, restwav, &spx)) {
-    status = SPCERR_BAD_SPEC_PARAMS;
+    status = spc_spxerr[status];
     if (err) {
-      *err = spx.err;
-      (*err)->status = status;
+      if ((*err = spx.err)) {
+        (*err)->status = status;
+      }
     } else {
       free(spx.err);
     }
@@ -1213,7 +1226,7 @@ int spcxpse(
 
   *dSdX = dSdP * dPdX;
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -1309,7 +1322,7 @@ int spctrne(
 
   *cdeltS2 = dS2dX * dXdS1 * cdeltS1;
 
-  return SPCERR_SUCCESS;
+  return 0;
 }
 
 /*--------------------------------------------------------------------------*/
@@ -1351,14 +1364,14 @@ int spcaips(
       }
 
       *fcode = '\0';
-      status = SPCERR_SUCCESS;
+      status = 0;
     }
 
     /* VELREF takes precedence if present. */
     ivf = velref%256;
     if (0 < ivf && ivf <= 7) {
       strcpy(specsys, frames[ivf-1]);
-      status = SPCERR_SUCCESS;
+      status = 0;
     } else if (ivf) {
       status = SPCERR_BAD_SPEC_PARAMS;
     }
@@ -1380,7 +1393,7 @@ int spcaips(
       /* Uniform in frequency but expressed as an optical velocity (strictly
          we should also have found an AIPS-convention Doppler frame). */
       strcpy(ctype, "VOPT-F2W");
-      if (status < 0) status = SPCERR_SUCCESS;
+      if (status < 0) status = 0;
     }
   }
 
diff --git a/C/spc.h b/C/spc.h
index bf912a8..6e3bba6 100644
--- a/C/spc.h
+++ b/C/spc.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spc.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: spc.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the spectral coordinate systems
+* WCSLIB 5.0 - C routines that implement the spectral coordinate systems
 * recognized by the FITS World Coordinate System (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -719,7 +719,7 @@
 *     (An unused variable inserted for alignment purposes only.)
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this structure
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   void *padding2
@@ -751,7 +751,6 @@
 #define WCSLIB_SPC
 
 #include "spx.h"
-#include "wcserr.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -869,10 +868,10 @@ int spctyp(const char ctype[9], char stype[], char scode[], char sname[],
            char units[], char *ptype, char *xtype, int *restreq);
 int spcspx(const char ctypeS[9], double crvalS, double restfrq,
            double restwav, char *ptype, char *xtype, int *restreq,
-	   double *crvalX, double *dXdS);
+           double *crvalX, double *dXdS);
 int spcxps(const char ctypeS[9], double crvalX, double restfrq,
            double restwav, char *ptype, char *xtype, int *restreq,
-	   double *crvalS, double *dSdX);
+           double *crvalS, double *dSdX);
 int spctrn(const char ctypeS1[9], double crvalS1, double cdeltS1,
            double restfrq, double restwav, char ctypeS2[9], double *crvalS2,
            double *cdeltS2);
diff --git a/C/sph.c b/C/sph.c
index 527305a..d1c57c0 100644
--- a/C/sph.c
+++ b/C/sph.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: sph.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: sph.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -47,7 +47,7 @@ int sphx2s(
   double lat[])
 
 {
-  int mphi, mtheta, rowlen, rowoff;
+  int jphi, mphi, mtheta, rowlen, rowoff;
   double cosphi, costhe, costhe3, costhe4, dlng, dphi, sinphi, sinthe,
          sinthe3, sinthe4, x, y, z;
   register int iphi, itheta;
@@ -69,12 +69,13 @@ int sphx2s(
     if (eul[1] == 0.0) {
       dlng = fmod(eul[0] + 180.0 - eul[2], 360.0);
 
-      lngp = lng;
-      latp = lat;
-      phip   = phi;
+      jphi   = 0;
       thetap = theta;
-      for (itheta = 0; itheta < ntheta; itheta++) {
-        for (iphi = 0; iphi < mphi; iphi++) {
+      lngp   = lng;
+      latp   = lat;
+      for (itheta = 0; itheta < ntheta; itheta++, thetap += spt) {
+        phip = phi + jphi%nphi;
+        for (iphi = 0; iphi < mphi; iphi++, phip += spt, jphi++) {
           *lngp = *phip + dlng;
           *latp = *thetap;
 
@@ -93,20 +94,19 @@ int sphx2s(
 
           lngp   += sll;
           latp   += sll;
-          phip   += spt;
-          thetap += spt;
         }
       }
 
     } else {
       dlng = fmod(eul[0] + eul[2], 360.0);
 
-      lngp = lng;
-      latp = lat;
-      phip   = phi;
+      jphi   = 0;
       thetap = theta;
-      for (itheta = 0; itheta < ntheta; itheta++) {
-        for (iphi = 0; iphi < mphi; iphi++) {
+      lngp   = lng;
+      latp   = lat;
+      for (itheta = 0; itheta < ntheta; itheta++, thetap += spt) {
+        phip = phi + jphi%nphi;
+        for (iphi = 0; iphi < mphi; iphi++, phip += spt, jphi++) {
           *lngp = dlng - *phip;
           *latp = -(*thetap);
 
@@ -125,8 +125,6 @@ int sphx2s(
 
           lngp   += sll;
           latp   += sll;
-          phip   += spt;
-          thetap += spt;
         }
       }
     }
@@ -232,7 +230,7 @@ int sphs2x(
   double theta[])
 
 {
-  int mlat, mlng, rowlen, rowoff;
+  int jlng, mlat, mlng, rowlen, rowoff;
   double coslat, coslat3, coslat4, coslng, dlng, dphi, sinlat, sinlat3,
          sinlat4, sinlng, x, y, z;
   register int ilat, ilng;
@@ -254,12 +252,13 @@ int sphs2x(
     if (eul[1] == 0.0) {
       dphi = fmod(eul[2] - 180.0 - eul[0], 360.0);
 
-      lngp = lng;
-      latp = lat;
+      jlng   = 0;
+      latp   = lat;
       phip   = phi;
       thetap = theta;
-      for (ilat = 0; ilat < nlat; ilat++) {
-        for (ilng = 0; ilng < mlng; ilng++) {
+      for (ilat = 0; ilat < nlat; ilat++, latp += sll) {
+        lngp = lng + jlng%nlng;
+        for (ilng = 0; ilng < mlng; ilng++, lngp += sll, jlng++) {
           *phip = fmod(*lngp + dphi, 360.0);
           *thetap = *latp;
 
@@ -272,20 +271,19 @@ int sphs2x(
 
           phip   += spt;
           thetap += spt;
-          lngp   += sll;
-          latp   += sll;
         }
       }
 
     } else {
       dphi = fmod(eul[2] + eul[0], 360.0);
 
-      lngp = lng;
-      latp = lat;
+      jlng   = 0;
+      latp   = lat;
       phip   = phi;
       thetap = theta;
-      for (ilat = 0; ilat < nlat; ilat++) {
-        for (ilng = 0; ilng < mlng; ilng++) {
+      for (ilat = 0; ilat < nlat; ilat++, latp += sll) {
+        lngp = lng + jlng%nlng;
+        for (ilng = 0; ilng < mlng; ilng++, lngp += sll, jlng++) {
           *phip = fmod(dphi - *lngp, 360.0);
           *thetap = -(*latp);
 
@@ -298,8 +296,6 @@ int sphs2x(
 
           phip   += spt;
           thetap += spt;
-          lngp   += sll;
-          latp   += sll;
         }
       }
     }
diff --git a/C/sph.h b/C/sph.h
index 98837e2..36d303d 100644
--- a/C/sph.h
+++ b/C/sph.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: sph.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: sph.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the spherical coordinate
+* WCSLIB 5.0 - C routines that implement the spherical coordinate
 * transformations used by the FITS World Coordinate System (WCS) standard.
 * Refer to
 *
diff --git a/C/spx.c b/C/spx.c
index 9789686..ca8dea6 100644
--- a/C/spx.c
+++ b/C/spx.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spx.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: spx.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/C/spx.h b/C/spx.h
index fb87f2d..410f04d 100644
--- a/C/spx.h
+++ b/C/spx.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spx.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: spx.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the spectral coordinate systems
+* WCSLIB 5.0 - C routines that implement the spectral coordinate systems
 * recognized by the FITS World Coordinate System (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -400,7 +400,7 @@
 *     (Returned) ... vice versa [s/m] (constant, = 1/c, always available).
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   void *padding
@@ -419,8 +419,6 @@
 extern "C" {
 #endif
 
-#include "wcserr.h"
-
 extern const char *spx_errmsg[];
 
 enum spx_errmsg {
diff --git a/C/tab.c b/C/tab.c
index ebedd54..36986c5 100644
--- a/C/tab.c
+++ b/C/tab.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tab.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: tab.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -65,8 +65,8 @@ int tabini(int alloc, int M, const int K[], struct tabprm *tab)
 
   /* Initialize error message handling. */
   err = &(tab->err);
-  if (tab->err && tab->flag != -1) {
-    free(tab->err);
+  if (tab->flag != -1) {
+    if (tab->err) free(tab->err);
   }
   tab->err = 0x0;
 
@@ -98,6 +98,14 @@ int tabini(int alloc, int M, const int K[], struct tabprm *tab)
 
   /* Initialize memory management. */
   if (tab->flag == -1 || tab->m_flag != TABSET) {
+    if (tab->flag == -1) {
+      tab->sense   = 0x0;
+      tab->p0      = 0x0;
+      tab->delta   = 0x0;
+      tab->extrema = 0x0;
+      tab->set_M   = 0;
+    }
+
     tab->m_flag  = 0;
     tab->m_M     = 0;
     tab->m_N     = 0;
@@ -117,14 +125,6 @@ int tabini(int alloc, int M, const int K[], struct tabprm *tab)
     if (tab->m_coord == (double *)0x1) tab->m_coord = 0x0;
   }
 
-  if (tab->flag == -1) {
-    tab->sense   = 0x0;
-    tab->p0      = 0x0;
-    tab->delta   = 0x0;
-    tab->extrema = 0x0;
-    tab->set_M   = 0;
-  }
-
 
   /* Allocate memory for arrays if required. */
   if (alloc ||
@@ -418,7 +418,6 @@ int tabcmp(int cmp,
            int *equal)
 
 {
-  int status = 0;
   int m, M, N;
 
   if (tab1  == 0x0) return TABERR_NULL_POINTER;
@@ -570,7 +569,7 @@ int tabprt(const struct tabprm *tab)
   WCSPRINTF_PTR("      crval: ", tab->crval, "\n");
   wcsprintf("            ");
   for (m = 0; m < tab->M; m++) {
-    wcsprintf("  %- 11.5g", tab->crval[m]);
+    wcsprintf("  %#- 11.5g", tab->crval[m]);
   }
   wcsprintf("\n");
 
@@ -584,7 +583,7 @@ int tabprt(const struct tabprm *tab)
         if (k%5 == 0) {
           wcsprintf("\n            ");
         }
-        wcsprintf("  %- 11.5g", tab->index[m][k]);
+        wcsprintf("  %#- 11.5g", tab->index[m][k]);
       }
       wcsprintf("\n");
     }
@@ -606,7 +605,7 @@ int tabprt(const struct tabprm *tab)
 
     wcsprintf("             (*%s)", text);
     for (m = 0; m < tab->M; m++) {
-      wcsprintf("  %- 11.5g", *(dp++));
+      wcsprintf("  %#- 11.5g", *(dp++));
     }
     wcsprintf("\n");
   }
@@ -635,7 +634,7 @@ int tabprt(const struct tabprm *tab)
   if (tab->delta) {
     wcsprintf("            ");
     for (m = 0; m < tab->M; m++) {
-      wcsprintf("  %- 11.5g", tab->delta[m]);
+      wcsprintf("  %#- 11.5g", tab->delta[m]);
     }
     wcsprintf("\n");
   }
@@ -657,7 +656,7 @@ int tabprt(const struct tabprm *tab)
     wcsprintf("             (*,*%s)", text);
     for (m = 0; m < 2*tab->M; m++) {
       if (m == tab->M) wcsprintf("->  ");
-      wcsprintf("  %- 11.5g", *(dp++));
+      wcsprintf("  %#- 11.5g", *(dp++));
     }
     wcsprintf("\n");
   }
@@ -1307,6 +1306,7 @@ int tabs2x(
       /* Coordinate not found. */
       *statp = 1;
       status = wcserr_set(TAB_ERRMSG(TABERR_BAD_WORLD));
+
     } else {
       /* Determine the intermediate world coordinates. */
       Km = tab->K;
diff --git a/C/tab.h b/C/tab.h
index 315c4d9..abcb8a2 100644
--- a/C/tab.h
+++ b/C/tab.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tab.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: tab.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement tabular coordinate systems as
+* WCSLIB 5.0 - C routines that implement tabular coordinate systems as
 * defined by the FITS World Coordinate System (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -469,7 +469,7 @@
 *     inverse table lookup function, tabs2x(), to speed up table searches.
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   int m_flag
@@ -503,8 +503,6 @@
 #ifndef WCSLIB_TAB
 #define WCSLIB_TAB
 
-#include "wcserr.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/C/test/TPV3.keyrec b/C/test/TPV3.keyrec
new file mode 100644
index 0000000..4507d1e
--- /dev/null
+++ b/C/test/TPV3.keyrec
@@ -0,0 +1,77 @@
+#-----------------------------------------------------------------------------
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
+# Copyright (C) 1995-2015, Mark Calabretta
+#
+# This file is part of WCSLIB.
+#
+# WCSLIB is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+#
+# Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+#
+# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+# http://www.atnf.csiro.au/people/Mark.Calabretta
+# $Id: TPV3.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+#-----------------------------------------------------------------------------
+#
+# FITS header keyrecords used for testing the handling of the "TPV" projection
+# by wcsset() and the disprm routines.
+#
+# Use 'tofits' (supplied) to convert this file to proper FITS format via
+#
+#     tofits < TPV3.keyrec > TPV3.fits
+#
+# Lines in this file beginning with '#' are ignored by tofits.
+#
+#-----------------------------------------------------------------------------
+SIMPLE  =                    T / conforms to FITS standard
+BITPIX  =                  -32 / IEEE single precision floating point
+NAXIS   =                    0 / No image data
+
+WCSAXES =                    2 / Two coordinate axes
+CRPIX1  =        3457.58912502 / Pixel coordinate of reference point
+CRPIX2  =        3919.07710596 / Pixel coordinate of reference point
+CD1_1   =   -0.000587002241853 / Linear transformation matrix element
+CD1_2   =     0.00360787927542 / Linear transformation matrix element
+CD2_1   =    -0.00362163438798 / Linear transformation matrix element
+CD2_2   =   -0.000580351756267 / Linear transformation matrix element
+CUNIT1  = 'deg'                / Degree units are required
+CUNIT2  = 'deg'                / Degree units are required
+CTYPE1  = 'RA---TPV'           / TAN (gnomonic) projection + distortions
+CTYPE2  = 'DEC--TPV'           / TAN (gnomonic) projection + distortions
+CRVAL1  =        10.4952305915 / [deg] Right ascension at the reference point
+CRVAL2  =        56.0880413226 / [deg] Declination at the reference point
+
+PV1_1   =   0.9999999999999999 / TPV distortion coefficient
+PV1_2   = -2.7755575615628E-17 / TPV distortion coefficient
+PV1_4   = -0.00150750505215681 / TPV distortion coefficient
+PV1_5   = 0.000427298584808077 / TPV distortion coefficient
+PV1_6   = 8.76972893890681E-05 / TPV distortion coefficient
+PV1_7   = 2.29966520990431E-05 / TPV distortion coefficient
+PV1_8   = -3.9316829011117E-06 / TPV distortion coefficient
+PV1_9   = 1.40867509149248E-05 / TPV distortion coefficient
+PV1_10  = 3.33667733204711E-07 / TPV distortion coefficient
+PV2_1   =   0.9999999999999999 / TPV distortion coefficient
+PV2_4   = 0.000391307204440982 / TPV distortion coefficient
+PV2_5   = -0.00168111794704401 / TPV distortion coefficient
+PV2_6   = -1.8248158541118E-05 / TPV distortion coefficient
+PV2_7   = 1.62848844178357E-05 / TPV distortion coefficient
+PV2_8   = -3.5921620201472E-06 / TPV distortion coefficient
+PV2_9   = 2.05773235566454E-05 / TPV distortion coefficient
+PV2_10  = 1.87652561761008E-06 / TPV distortion coefficient
+
+LONPOLE =                180.0 / [deg] Native longitude of the NCP
+LATPOLE =                  0.0 / [deg] Native latitude  of the NCP
+EQUINOX =               2000.0 / [yr] Equinox of equatorial coordinates
+
+END
diff --git a/C/test/TPV5.keyrec b/C/test/TPV5.keyrec
new file mode 100644
index 0000000..1025dc8
--- /dev/null
+++ b/C/test/TPV5.keyrec
@@ -0,0 +1,99 @@
+#-----------------------------------------------------------------------------
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
+# Copyright (C) 1995-2015, Mark Calabretta
+#
+# This file is part of WCSLIB.
+#
+# WCSLIB is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+#
+# Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+#
+# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+# http://www.atnf.csiro.au/people/Mark.Calabretta
+# $Id: TPV5.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+#-----------------------------------------------------------------------------
+#
+# FITS header keyrecords used for testing the handling of the "TPV" projection
+# by wcsset() and the disprm routines.
+#
+# Use 'tofits' (supplied) to convert this file to proper FITS format via
+#
+#     tofits < TPV5.keyrec > TPV5.fits
+#
+# Lines in this file beginning with '#' are ignored by tofits.
+#
+#-----------------------------------------------------------------------------
+SIMPLE  =                    T / Conform to FITS standard
+BITPIX  =                  -32 / IEEE single precision floating point
+NAXIS   =                    0 / No image data
+
+WCSAXES =                    2 / Two coordinate axes
+CRPIX1  =        1761.47416875 / Pixel coordinate of reference point
+CRPIX2  =        2118.72183151 / Pixel coordinate of reference point
+CD1_1   =    -0.00283896009841 / Linear transformation matrix element
+CD1_2   =     -0.0095653881236 / Linear transformation matrix element
+CD2_1   =     0.00955414472775 / Linear transformation matrix element
+CD2_2   =    -0.00281415304361 / Linear transformation matrix element
+CUNIT1  = 'deg'                / Degree units are required
+CUNIT2  = 'deg'                / Degree units are required
+CTYPE1  = 'RA---TPV'           / TAN (gnomonic) projection + distortions
+CTYPE2  = 'DEC--TPV'           / TAN (gnomonic) projection + distortions
+CRVAL1  =        113.761770869 / [deg] Right ascension at the reference point
+CRVAL2  =         87.581766681 / [deg] Declination at the reference point
+
+PV1_1   =                  1.0 / TPV distortion coefficient
+PV1_2   = 5.55111512312578E-17 / TPV distortion coefficient
+PV1_4   = -2.7424804567206E-05 / TPV distortion coefficient
+PV1_5   = 0.000790044423408943 / TPV distortion coefficient
+PV1_6   = -6.7702947479290E-05 / TPV distortion coefficient
+PV1_7   = 3.70858612004436E-05 / TPV distortion coefficient
+PV1_8   = 3.09214887882905E-05 / TPV distortion coefficient
+PV1_9   = 2.79163997287238E-05 / TPV distortion coefficient
+PV1_10  = 7.13153931390477E-06 / TPV distortion coefficient
+PV1_12  = 4.06164135849070E-07 / TPV distortion coefficient
+PV1_13  = -3.3709743373233E-07 / TPV distortion coefficient
+PV1_14  = 1.07485184690584E-06 / TPV distortion coefficient
+PV1_15  = 4.22494107427413E-08 / TPV distortion coefficient
+PV1_16  = 1.50534608708045E-07 / TPV distortion coefficient
+PV1_17  = 2.02319801720636E-10 / TPV distortion coefficient
+PV1_18  = -1.1389440637505E-07 / TPV distortion coefficient
+PV1_19  = 6.96659712463485E-08 / TPV distortion coefficient
+PV1_20  = -9.8664513792757E-08 / TPV distortion coefficient
+PV1_21  = 1.41660199031828E-08 / TPV distortion coefficient
+PV1_22  = -1.1191659191519E-08 / TPV distortion coefficient
+PV2_1   =                  1.0 / TPV distortion coefficient
+PV2_4   = 0.000520429625694769 / TPV distortion coefficient
+PV2_5   = 1.70073086962533E-05 / TPV distortion coefficient
+PV2_6   = -0.00013083749436793 / TPV distortion coefficient
+PV2_7   = 4.93125956972113E-05 / TPV distortion coefficient
+PV2_8   = 1.08675659272460E-05 / TPV distortion coefficient
+PV2_9   = 4.01491290764222E-05 / TPV distortion coefficient
+PV2_10  = 7.60116090687535E-06 / TPV distortion coefficient
+PV2_12  = 6.46213456124236E-07 / TPV distortion coefficient
+PV2_13  = 3.12965114936086E-07 / TPV distortion coefficient
+PV2_14  = 4.12720356211971E-07 / TPV distortion coefficient
+PV2_15  = 4.45167381255974E-07 / TPV distortion coefficient
+PV2_16  = -9.9738109842997E-09 / TPV distortion coefficient
+PV2_17  = -3.5789354808750E-08 / TPV distortion coefficient
+PV2_18  = -2.3750471646988E-08 / TPV distortion coefficient
+PV2_19  = -3.5354006023002E-08 / TPV distortion coefficient
+PV2_20  = -6.2508850597208E-08 / TPV distortion coefficient
+PV2_21  = 7.94831478652252E-09 / TPV distortion coefficient
+PV2_22  = -1.7323858285092E-08 / TPV distortion coefficient
+
+LONPOLE =                180.0 / [deg] Native longitude of the NCP
+LATPOLE =                  0.0 / [deg] Native latitude  of the NCP
+EQUINOX =               2000.0 / [yr] Equinox of equatorial coordinates
+
+END
diff --git a/C/test/TPV7.keyrec b/C/test/TPV7.keyrec
new file mode 100644
index 0000000..4287f0c
--- /dev/null
+++ b/C/test/TPV7.keyrec
@@ -0,0 +1,106 @@
+#-----------------------------------------------------------------------------
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
+# Copyright (C) 1995-2015, Mark Calabretta
+#
+# This file is part of WCSLIB.
+#
+# WCSLIB is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+#
+# Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+#
+# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+# http://www.atnf.csiro.au/people/Mark.Calabretta
+# $Id: TPV7.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+#-----------------------------------------------------------------------------
+#
+# FITS header keyrecords used for testing the handling of the "TPV" projection
+# by wcsset() and the disprm routines.
+#
+# Use 'tofits' (supplied) to convert this file to proper FITS format via
+#
+#     tofits < TPV7.keyrec > TPV7.fits
+#
+# Lines in this file beginning with '#' are ignored by tofits.
+#
+#-----------------------------------------------------------------------------
+SIMPLE  =                    T / Conform to FITS standard
+BITPIX  =                  -32 / IEEE single precision floating point
+NAXIS   =                    2 / 2-D image
+NAXIS1  =                 8192 / Length of axis 1
+NAXIS2  =                 8192 / Length of axis 2
+
+WCSAXES =                    2 / Two coordinate axes
+CRPIX1  =               4096.0 / Pixel coordinate of reference point
+CRPIX2  =               4096.0 / Pixel coordinate of reference point
+PC1_1   =          0.866025404 / Linear transformation matrix element
+PC1_2   =          0.500000000 / Linear transformation matrix element
+PC2_1   =         -0.500000000 / Linear transformation matrix element
+PC2_2   =          0.866025404 / Linear transformation matrix element
+CDELT1  =                -0.01 / [deg] x-scale
+CDELT2  =                 0.01 / [deg] y-scale
+CUNIT1  = 'deg'                / Degree units are required
+CUNIT2  = 'deg'                / Degree units are required
+CTYPE1  = 'RA---TPV'           / TAN (gnomonic) projection + prior distortions
+CTYPE2  = 'DEC--TPV'           / TAN (gnomonic) projection + prior distortions
+CRVAL1  =                150.0 / [deg] Right ascension at the reference point
+CRVAL2  =                -30.0 / [deg] Declination at the reference point
+LONPOLE =                180.0 / [deg] Native longitude of the NCP
+EQUINOX =               2000.0 / [yr] Equinox of equatorial coordinates
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  TPV coefficients for DEIMOS CCD distortion:
+COMMENT  -----------------------------------------------------------------------
+PV1_0   =        3.0939038E-01 / TPV coefficient: 1
+PV1_1   =        9.8842111E-01 / TPV coefficient: x
+PV1_3   =       -2.1923537E-03 / TPV coefficient: r
+PV1_4   =        2.8380911E-06 / TPV coefficient: xx
+PV1_6   =        3.6847677E-06 / TPV coefficient: yy
+PV1_7   =        9.6423020E-10 / TPV coefficient: xxx
+PV1_9   =        6.0581305E-10 / TPV coefficient: xyy
+PV1_11  =       -4.0302249E-09 / TPV coefficient: rrr
+PV1_12  =        1.7927040E-12 / TPV coefficient: xxxx
+PV1_14  =        3.5994619E-12 / TPV coefficient: xxyy
+PV1_16  =        1.7547166E-12 / TPV coefficient: yyyy
+PV1_17  =       -2.0309873E-17 / TPV coefficient: xxxxx
+PV1_19  =       -2.2638628E-17 / TPV coefficient: xxxyy
+PV1_21  =        3.6912827E-18 / TPV coefficient: xyyyy
+PV1_23  =       -3.7770972E-16 / TPV coefficient: rrrrr
+PV1_24  =        4.0080945E-20 / TPV coefficient: xxxxxx
+PV1_26  =        1.1799892E-19 / TPV coefficient: xxxxyy
+PV1_28  =        1.1810387E-19 / TPV coefficient: xxyyyy
+PV1_30  =        4.0113938E-20 / TPV coefficient: yyyyyy
+PV1_31  =        3.0321154E-25 / TPV coefficient: xxxxxxx
+PV1_33  =        6.3742904E-25 / TPV coefficient: xxxxxyy
+PV1_35  =        2.0537657E-25 / TPV coefficient: xxxyyyy
+PV1_37  =       -1.9848702E-25 / TPV coefficient: xyyyyyy
+PV1_39  =       -1.6392798E-24 / TPV coefficient: rrrrrrr
+
+PV2_1   =        9.9348652E-01 / TPV coefficient: y
+PV2_5   =       -1.8103805E-06 / TPV coefficient: yx
+PV2_7   =        4.7932276E-11 / TPV coefficient: yyy
+PV2_9   =        6.1848457E-10 / TPV coefficient: yxx
+PV2_13  =        1.4059187E-13 / TPV coefficient: yyyx
+PV2_15  =        8.7740187E-14 / TPV coefficient: yxxx
+PV2_17  =        2.8940294E-17 / TPV coefficient: yyyyy
+PV2_19  =        1.5913817E-18 / TPV coefficient: yyyxx
+PV2_21  =       -1.0279657E-17 / TPV coefficient: yxxxx
+PV2_25  =       -2.8008330E-21 / TPV coefficient: yyyyyx
+PV2_27  =       -3.2402087E-21 / TPV coefficient: yyyxxx
+PV2_29  =       -7.9355520E-22 / TPV coefficient: yxxxxx
+PV2_31  =       -6.7738093E-25 / TPV coefficient: yyyyyyy
+PV2_33  =       -3.0173086E-25 / TPV coefficient: yyyyyxx
+PV2_35  =        2.8026002E-25 / TPV coefficient: yyyxxxx
+PV2_37  =        1.4550459E-25 / TPV coefficient: yxxxxxx
+
+END
diff --git a/C/test/bth.keyrec b/C/test/bth.keyrec
index 3a83d63..ff55221 100644
--- a/C/test/bth.keyrec
+++ b/C/test/bth.keyrec
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# WCSLIB 4.25 - an implementation of the FITS WCS standard.
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
 # Copyright (C) 1995-2015, Mark Calabretta
 #
 # This file is part of WCSLIB.
@@ -21,7 +21,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: bth.keyrec,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+# $Id: bth.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 #-----------------------------------------------------------------------------
 #
 # FITS header keyrecords used for testing by tbth1.
@@ -57,11 +57,9 @@ COMMENT  The main extension to the standard is the presence of image header
 COMMENT  keywords in what is meant to be a binary table extension header.  The
 COMMENT  usage notes for wcsbth() in wcshdr.h explains how it interprets these
 COMMENT  keywords.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
 
 COMMENT  =======================================================================
-COMMENT
 COMMENT  The primary image header keywords define a coordinate representation
 COMMENT  using AIPS-convention WCS keywords.  As it happens, no binary table
 COMMENT  image array inherits these keywords and consequently they define an
@@ -81,8 +79,8 @@ COMMENT  here solely for identification purposes.
 COMMENT
 COMMENT  This representation contains only standard image header keywords, but
 COMMENT  their use in a binary table header is non-standard.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 COMMENT  The following keyrecord is not part of the AIPS convention.
 WCSNAME =   'AIPS convention: TAN projection' / Name of this coordinate system
 
@@ -113,7 +111,6 @@ CTYPE4  = 'STOKES  '           / Stokes convention axis (I, Q, U, V)
 CRVAL4  =                  1.0 / Stokes I
 
 COMMENT  =======================================================================
-COMMENT
 COMMENT  This coordinate representation utilizing a PCi_ja matrix expresses the
 COMMENT  above AIPS convention header using standard WCS keywords.  This set of
 COMMENT  image header keywords with alternate representation 'I' is defined for
@@ -123,8 +120,8 @@ COMMENT  representation above.
 COMMENT
 COMMENT  This representation contains only standard image header keywords but
 COMMENT  their use in a binary table header is non-standard.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 WCSAXESI=                    4 / Number of coordinate axes
 
 CRPIX1I =                  513 / Pixel coordinate of reference point
@@ -166,6 +163,26 @@ EQUINOXI=                 2000 / [yr] Equinox of equatorial coordinates
 SPECSYSI= 'BARYCENT'           / Reference frame of spectral coordinates
 
 COMMENT  =======================================================================
+COMMENT  By themselves, these primary image header auxiliary WCS keywords
+COMMENT  should not be sufficient to cause a wcsprm struct to be created for
+COMMENT  representation X, nor should they affect any of the others.
+COMMENT  -----------------------------------------------------------------------
+
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system
+LONPOLEX=                180.0 / [deg] Native longitude of the NCP
+LATPOLEX=                999.0 / [deg] Native latitude of the NCP
+RESTFRQX=         1.42040575e9 / [Hz] HI rest frequency
+RESTWAVX=          0.211061141 / [m] HI rest wavelength
+EQUINOXX=               2000.0 / [yr] Equinox of equatorial coordinates
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system
+SPECSYSX= 'BARYCENT'           / Reference frame of spectral coordinates
+SSYSOBSX= 'TOPOCENT'           / Reference frame of observation
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift
+VELANGLX=                35.25 / Velocity orientation angle
+VELOSYSX=               1500.0 / [m/s] Bary-topo velocity towards the source
+ZSOURCEX=               0.0025 / Redshift of the source
+
+COMMENT  =======================================================================
 COMMENT  Binary table column 33 contains an image array, most of whose WCS
 COMMENT  keywords would be inherited from the preceding image header keywords
 COMMENT  with a = "I" provided that wcsbth() is invoked with an option that
@@ -384,15 +401,14 @@ DOBS8   = '1957-02-14T15:00:00' / ISO-8601 observation date matching MJDOB8
 DAVG8   = '1957-02-14T16:48:00' / ISO-8601 mid-observation date matching MJDA8
 
 COMMENT  =======================================================================
-COMMENT
 COMMENT  The following keywords have no alternates; they apply to each
 COMMENT  coordinate representation, even that of the AIPS convention for
 COMMENT  which, strictly, only the DATE-OBS keyword should be recognized.
 COMMENT
 COMMENT  The keycomments for OBSGEO-Y and OBSGEO-Z have been omitted
 COMMENT  deliberately for test purposes.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 OBSGEO-X=           -4554231.9 / [m] ITRF observatory coordinates
 OBSGEO-Y=            2816758.3 /
 OBSGEO-Z=           -3454035.9
@@ -400,5 +416,7 @@ MJD-OBS =            35883.625 / [d] MJD at start of observation (UTC)
 MJD-AVG =            35883.700 / [d] MJD mid-observation time (UTC)
 DATE-OBS= '1957-02-14T15:00:00'/ UTC date corresponding to MJD-OBS
 DATE-AVG= '1957-02-14T16:48:00'/ UTC date corresponding to MJD-AVG
+
 OBSGX99 =           -4000000.0 / [m] ITRF observatory X-coordinate
+
 END
diff --git a/C/test/fitshdr.keyrec b/C/test/fitshdr.keyrec
new file mode 100644
index 0000000..941eec1
--- /dev/null
+++ b/C/test/fitshdr.keyrec
@@ -0,0 +1,162 @@
+#-----------------------------------------------------------------------------
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
+# Copyright (C) 1995-2015, Mark Calabretta
+#
+# This file is part of WCSLIB.
+#
+# WCSLIB is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+#
+# Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+#
+# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+# http://www.atnf.csiro.au/people/Mark.Calabretta
+# $Id: fitshdr.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+#-----------------------------------------------------------------------------
+#
+# FITS header keyrecords used for testing by tfitshdr.
+#
+# Use 'tofits' (supplied) to convert this file to proper FITS format via
+#
+#     tofits < fitshdr.keyrec > fitshdr.fits
+#
+# Lines in this file beginning with '#' are ignored by tofits.
+#
+#-----------------------------------------------------------------------------
+SIMPLE  =                    F / Standards-conformant FITS format?  NO!
+BITPIX  =                  -32 / IEEE single precision floating point
+NAXIS   =                    0 / No image data
+
+CRPIX1A =                513.0 / Pixel coordinate of reference point
+CRPIX2A =                513.0 / Pixel coordinate of reference point
+CRPIX3A =               1025.0 / Pixel coordinate of reference point
+CRPIX4A =                  1.0 / Pixel coordinate of reference point
+PC1_1A  =          0.866025404 / Linear transformation matrix element
+PC1_2A  =          0.500000000 / Linear transformation matrix element
+PC2_1A  =         -0.500000000 / Linear transformation matrix element
+PC2_2A  =          0.866025404 / Linear transformation matrix element
+
+CDELT1A =                -0.10 / [deg] x-scale
+CUNIT1A = 'deg'                / Degree units are required
+CTYPE1A = 'RA---SZP'           / Right ascension in slant zenithal projection
+CRVAL1A =                150.0 / [deg] Right ascension at the reference point
+CNAME1A = 'Right ascension (J2000)' / Axis name for labelling purposes
+CDELT2A =                 0.10 / [deg] y-scale
+CUNIT2A = 'deg'                / Degree units are required
+CTYPE2A = 'DEC--SZP'           / Declination in a slant zenithal projection
+CRVAL2A =                -30.0 / [deg] Declination at the reference point
+CNAME2A = 'Declination (J2000)' / Axis name for labelling purposes
+PV1_1A  =                  0.0 / [deg] Native longitude of the reference point
+PV1_2A  =                 90.0 / [deg] Native latitude  of the reference point
+PV1_3A  =                195.0 / [deg] LONPOLEa by another name (precedence)
+PV1_4A  =                999.0 / [deg] LATPOLEa by another name (precedence)
+PV2_1A  =                  0.0 / SZP distance, in spherical radii
+PV2_2A  =                180.0 / [deg] SZP P-longitude
+PV2_3A  =                 45.0 / [deg] SZP P-latitude
+LONPOLEA=                195.0 / [deg] Native longitude of the NCP
+LATPOLEA=                999.0 / [deg] Native latitude of the NCP
+RADESYSA= 'FK5'                / Mean equatorial coordinates, IAU 1984 system
+EQUINOXA=               2000.0 / [yr] Equinox of equatorial coordinates
+
+CDELT3A =      -9.635265432e-6 / [m] Wavelength scale
+CUNIT3A = 'm'                  / Wavelength units
+CTYPE3A = 'WAVE-F2W'           / Frequency axis expressed as wavelength
+CRVAL3A =          0.214982042 / [m] Reference wavelength
+CNAME3A = 'Wavelength'         / Axis name for labelling purposes
+CRDER3A =              1.0e-11 / [m] Wavelength calibration, random error
+CSYER3A =              1.0e-12 / [m] Wavelength calibration, systematic error
+RESTFRQA=         1.42040575e9 / [Hz] HI rest frequency
+RESTWAVA=          0.211061141 / [m] HI rest wavelength
+SPECSYSA= 'BARYCENT'           / Reference frame of spectral coordinates
+SSYSOBSA= 'TOPOCENT'           / Reference frame of observation
+VELOSYSA=               1500.0 / [m/s] Bary-topo velocity towards the source
+SSYSSRCA= 'LSRK'               / Reference frame of source redshift
+ZSOURCEA=               0.0025 / Redshift of the source
+
+CDELT4A =                  1.0 / [s] Time scale
+CUNIT4A = 's'                  / Time units
+CTYPE4A = 'TIME''x'''          / String value and comment containing quotes (')
+CRVAL4A =                 -2e3 / [s] Time at the reference point
+CNAME4A = 'Time offset'        / Axis name for labelling purposes
+PS4_0A  = 'UTC'                / Time measurement system
+
+UNDEF   =                      / Undefined keyvalue
+TRUE    =                    T / Logical
+FALSE   =                    F / Logical
+INT32   =          00000012345 / Not a 64-bit integer
+INT32   =     -000000123456789 / Not a 64-bit integer
+INT32   =          -2147483648 / Not a 64-bit integer (INT_MIN)
+INT32   =           2147483647 / Not a 64-bit integer (INT_MAX)
+INT32   =    0000000000000000000000000000000000012345 / Not a very long integer
+INT32   =       -000000000000000000000000000123456789 / Not a very long integer
+INT64   =          -2147483649 / 64-bit integer (INT_MIN - 1)
+INT64   =          +2147483648 / 64-bit integer (INT_MAX + 1)
+INT64   =  +100000000000000000 / 64-bit integer
+INT64   =  -876543210987654321 / 64-bit integer
+INT64   = -9223372036854775808 / Not a very long integer (LONG_MIN)
+INT64   = +9223372036854775807 / Not a very long integer (LONG_MAX)
+INT64   = -000000000000000000000000000000876543210987654321 / 64-bit integer
+INTVL   = -9223372036854775809 / Very long integer (LONG_MIN - 1)
+INTVL   = +9223372036854775808 / Very long integer (LONG_MAX + 1)
+INTVL   = -100000000000000000000000000000876543210987654321 / Very-long integer
+INTVL   = +123456789012345678901234567890123456789012345678901234567890123456789
+INTVL   = 1234567890123456789012345678901234567890123456789012345678901234567890
+FLOAT   =        3.14159265358 / Floating point
+FLOAT   =     1.602176565e-19  / Floating point, lower-case exp allowed
+FLOAT   =      2.99792458E8    / Floating point
+FLOAT   =       6.62606957d-34 / Floating point, lower-case exp allowed
+FLOAT   =        6.02214129D23 / Floating point
+COMPLEX =            (137, -1) / An integer complex keyvalue
+COMPLEX =         (10e5, -0.1) / A floating point complex keyvalue
+GOODSTR =     '"G''DAY"  '     / A valid string keyvalue
+BLANKS  =   '              '   / An all-blank string equals a single blank
+LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
+CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
+CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment
+CONTINUE      ' lazy dog'
+PI      =  3.14159265358929323 / [!?] is not a valid units specification
+CONTINUE      'Not a valid string continuation'
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following are all deliberate syntax errors:
+COMMENT  -----------------------------------------------------------------------
+
+BADREC =                     1 / Illegal, "= " not in columns 9-10
+BADREC   =                   1 / Illegal, "= " not in columns 9-10
+BADREC  =1                     / Illegal, "= " not in columns 9-10
+BADREC                       1 / Illegal, "= " not in columns 9-10
+BadKey  =                  111 / Example of a syntax error, invalid keyword
+BADKEY! =                  222 / Example of a syntax error, invalid keyword
+BAD KEY =                  333 / Example of a syntax error, invalid keyword
+BADVAL  =                  BAD / Example of a syntax error, invalid keyvalue
+BADVAL  =                "BAD" / Example of a syntax error, invalid keyvalue
+BADVAL  =          'BAD' 'STR' / Example of a syntax error, invalid keyvalue
+BADVAL  =              49 + 94 / Example of a syntax error, invalid keyvalue
+BADVAL  =             1934-638 / Example of a syntax error, invalid keyvalue
+BADVAL  =                1.2.3 / Example of a syntax error, invalid keyvalue
+BADVAL  =            12h34m56s / Example of a syntax error, invalid keyvalue
+BADVAL  =                 0xFF / Example of a syntax error, invalid keyvalue
+BADVAL  =              58 - 21 / Example of a syntax error, invalid keyvalue
+BADVAL  =                J2000 / Example of a syntax error, invalid keyvalue
+BADVAL  =              B1950.0 / Example of a syntax error, invalid keyvalue
+BADVAL  =            180:00:00 / Example of a syntax error, invalid keyvalue
+BADVAL  =                $9.99 / Example of a syntax error, invalid keyvalue
+BADCOMM =                    1   Example of a syntax error, invalid keycomment
+BADCOMM =                    1   1/8 = 0.125
+
+END     =            'ILLEGAL' / Illegal END keyrecord
+END
+
+DANGLE1  Keyrecords following the END keyrecord should be flagged.
+DANGLE2  
+DANGLE3
diff --git a/C/test/pih.keyrec b/C/test/pih.keyrec
index 7a2c0ad..5ef31e8 100644
--- a/C/test/pih.keyrec
+++ b/C/test/pih.keyrec
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# WCSLIB 4.25 - an implementation of the FITS WCS standard.
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
 # Copyright (C) 1995-2015, Mark Calabretta
 #
 # This file is part of WCSLIB.
@@ -21,14 +21,16 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: pih.keyrec,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+# $Id: pih.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 #-----------------------------------------------------------------------------
 #
-# FITS header keyrecords used for testing by tpih1, tpih2 and tfitshdr.
+# FITS header keyrecords used for testing by tpih1 and tpih2.  See also
+# wcslint.keyrec which tests wcspih() for its ability to recognise syntax
+# errors in WCS keyrecords.
 #
 # Use 'tofits' (supplied) to convert this file to proper FITS format via
 #
-#     tofits < bth.keyrec > bth.fits
+#     tofits < pih.keyrec > pih.fits
 #
 # Lines in this file beginning with '#' are ignored by tofits.
 #
@@ -77,10 +79,8 @@ COMMENT  floating-point keyvalues (NOST 100-2.0, Sect. 5.2) most numeric values
 COMMENT  in this header are given in the conventional fixed-format, with only
 COMMENT  CROTA2I, EPOCHI, and VELREFI as exceptions for testing.  Most string
 COMMENT  values are free-format, only those in the "A" representation are fixed.
-COMMENT
-COMMENT  -----------------------------------------------------------------------
 
-COMMENT  -----------------------------------------------------------------------
+COMMENT  =======================================================================
 COMMENT  Primary representation
 COMMENT  ----------------------
 COMMENT
@@ -95,8 +95,8 @@ COMMENT  Several PROJPn keyrecords (non-standard) are also included here for
 COMMENT  test purposes; they were never part of the AIPS convention and only
 COMMENT  appeared in early drafts of the WCS papers.  Their values are not
 COMMENT  actually used in the TAN projection.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 COMMENT  The following two keyrecords are not part of the AIPS convention.
 WCSAXES =                    4 / Four coordinate axes
 WCSNAME =   'AIPS convention: TAN projection' / Name of this coordinate system
@@ -132,7 +132,7 @@ PROJP0  =                  0.0 / Projection parameter (not used)
 PROJP1  =                  0.0 / Projection parameter (not used)
 PROJP2  =                  0.0 / Projection parameter (not used)
 
-COMMENT  -----------------------------------------------------------------------
+COMMENT  =======================================================================
 COMMENT  Alternate representation 'A'
 COMMENT  ----------------------------
 COMMENT
@@ -142,8 +142,8 @@ COMMENT  projection (SZP) in order to test the reading of a number of PVi_ma
 COMMENT  keywords.  It also includes a linear time axis.
 COMMENT
 COMMENT  This representation contains only standard keywords and usage.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 WCSAXESA=                    4 / Four coordinate axes
 WCSNAMEA= 'Standard representation: SZP projection' / Name of this system
 
@@ -200,7 +200,7 @@ CRVAL4A =                 -2e3 / [s] Time at the reference point
 CNAME4A = 'Time offset'        / Axis name for labelling purposes
 PS4_0A  = 'UTC'                / Time measurement system
 
-COMMENT  -----------------------------------------------------------------------
+COMMENT  =======================================================================
 COMMENT  Alternate representation 'I'
 COMMENT  ----------------------------
 COMMENT
@@ -219,8 +219,8 @@ COMMENT  purposes, approximating it by a zenithal polynomial projection (ZPN)
 COMMENT  is even better!  The polynomial coefficients are accurate to the
 COMMENT  number of decimal places given (but don't ever do this in a real
 COMMENT  header).
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 WCSAXESI=                    3 / Three coordinate axes
 WCSNAMEI= 'IRAF representation: ZPN projection' / Name of this coordinate system
 
@@ -276,16 +276,35 @@ CROTA2I =     30.0             / [deg] Bulk image rotation
 EPOCHI  =   2000               / [yr] Equinox of equatorial coordinates
 VELREFI =    258               / Barycentric radio velocity
 
+COMMENT  =======================================================================
+COMMENT  By themselves, these primary image header auxiliary WCS keywords
+COMMENT  should not be sufficient to cause a wcsprm struct to be created for
+COMMENT  representation X, nor should they affect any of the others.
 COMMENT  -----------------------------------------------------------------------
-COMMENT
+
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system
+LONPOLEX=                180.0 / [deg] Native longitude of the celestial pole
+LATPOLEX=               -999.0 / [deg] Native latitude of the celestial pole
+RESTFRQX=          1667.3590e6 / [Hz] OH maser line rest frequency
+RESTWAVX=           0.17980079 / [m] OH maser line rest wavelength
+EQUINOXX=               1950.0 / [yr] Equinox of equatorial coordinates
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system
+SPECSYSX= 'HELIOCEN'           / Reference frame of spectral coordinates
+SSYSOBSX= 'GEOCENTR'           / Reference frame of observation
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift
+VELANGLX=                35.25 / Velocity orientation angle
+VELOSYSX=              30000.0 / [m/s] Bary-topo velocity towards the source
+ZSOURCEX=               0.0456 / Redshift of the source
+
+COMMENT  =======================================================================
 COMMENT  The following keywords have no alternates; they apply to each
 COMMENT  coordinate representation, even that of the AIPS convention for
 COMMENT  which, strictly, only the DATE-OBS keyword should be recognized.
 COMMENT
 COMMENT  The keycomments for OBSGEO-Y and OBSGEO-Z have been omitted
 COMMENT  deliberately for test purposes.
-COMMENT
 COMMENT  -----------------------------------------------------------------------
+
 OBSGEO-X=           -4554231.9 / [m] ITRF observatory coordinates
 OBSGEO-Y=            2816758.3 /
 OBSGEO-Z=           -3454035.9
@@ -294,88 +313,4 @@ MJD-AVG =            35883.700 / [d] MJD mid-observation time (UTC)
 DATE-OBS= '1957-02-14T15:00:00'/ UTC date corresponding to MJD-OBS
 DATE-AVG= '1957-02-14T16:48:00'/ UTC date corresponding to MJD-AVG
 
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-COMMENT  The following look a little like WCS keywords but should be discarded:
-COMMENT
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-CRPIXELS=                  0.0 / Furphy, not CRPIXja
-PCATALOG=                  0.0 / Furphy, not PCi_ja
-CDELTA  =                  0.0 / Furphy, not CDELTia
-CDI_JA  =                  0.0 / Furphy, not CDi_ja
-CUNITARY=                  0.0 / Furphy, not CUNITia
-CTYPEXY =                  0.0 / Furphy, not CTYPEia
-CRVALUE =                  0.0 / Furphy, not CRVALia
-CNAME   =                  0.0 / Furphy, not CNAMEia
-PV1_1AL =                  0.0 / Furphy, not PVi_ma
-PV02_1  =                  0.0 / Furphy, not PVi_ma (leading zero on i)
-PV2_01  =                  0.0 / Furphy, not PVi_ma (leading zero on m)
-PSEUDO  =                  0.0 / Furphy, not PSi_ma
-EPOCHAL =                  0.0 / Furphy, not EPOCH
-VELREF1 =                  0.0 / Furphy, not VELREF
-
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-COMMENT  The following illegal WCS keyrecords should be rejected by wcspih():
-COMMENT
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-CTYPE1  =                  0.0 / Illegal, CTYPEia must be string type
-PV2_1   =                '0.0' / Illegal, PVi_ma must be numeric
-PV2_1    =                 0.0 / Illegal, "= " not in columns 9-10
-EPOCH   = '2000.0'             / Illegal, EPOCH must be numeric
-
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-COMMENT  The following keyrecords are for testing fitshdr():
-COMMENT
-COMMENT  -----------------------------------------------------------------------
-COMMENT
-NOVLSPEC=1                     / Not a valid value specifier (no " " in col. 10)
-INT32   =          00000012345 / Not a 64-bit integer
-INT32   =     -000000123456789 / Not a 64-bit integer
-INT32   =          -2147483648 / Not a 64-bit integer (INT_MIN)
-INT32   =           2147483647 / Not a 64-bit integer (INT_MAX)
-INT32   =    0000000000000000000000000000000000012345 / Not a very long integer
-INT32   =       -000000000000000000000000000123456789 / Not a very long integer
-INT64   =          -2147483649 / 64-bit integer (INT_MIN - 1)
-INT64   =          +2147483648 / 64-bit integer (INT_MAX + 1)
-INT64   =  +100000000000000000 / 64-bit integer
-INT64   =  -876543210987654321 / 64-bit integer
-INT64   = -9223372036854775808 / Not a very long integer (LONG_MIN)
-INT64   = +9223372036854775807 / Not a very long integer (LONG_MAX)
-INT64   = -000000000000000000000000000000876543210987654321 / 64-bit integer
-INTVL   = -9223372036854775809 / Very long integer (LONG_MIN - 1)
-INTVL   = +9223372036854775808 / Very long integer (LONG_MAX + 1)
-INTVL   = -100000000000000000000000000000876543210987654321 / Very-long integer
-INTVL   = +123456789012345678901234567890123456789012345678901234567890123456789
-INTVL   = 1234567890123456789012345678901234567890123456789012345678901234567890
-COMPLEX =            (137, -1) / An integer complex keyvalue
-COMPLEX =         (10e5, -0.1) / A floating point complex keyvalue
-GOODSTR =     '"G''DAY"  '     / A valid string keyvalue
-BLANKS  =   '              '   / An all-blank string equals a single blank
-LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
-CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
-CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment
-CONTINUE      ' lazy dog'
-PI      =  3.14159265358929323 / [!?] is not a valid units specification
-CONTINUE      'Not a valid string continuation'
-
-COMMENT  The following are all deliberate syntax errors:
-BadKey  =                  111 / Example of a syntax error, invalid keyword
-BADKEY! =                  222 / Example of a syntax error, invalid keyword
-BAD KEY =                  333 / Example of a syntax error, invalid keyword
-BADSTR  =                  BAD / Example of a syntax error, invalid keyvalue
-BADSTR  =                "BAD" / Example of a syntax error, invalid keyvalue
-BADSTR  =          'BAD' 'STR' / Example syntax error, invalid string keyvalue
-BADFLT  =              49 + 94 / Example of a syntax error, invalid keyvalue
-BADFLT  =                 1D99 / Example of a syntax error, invalid keyvalue
-BADCOMM =                  999   Example of a syntax error, invalid keycomment
-END     =            'ILLEGAL' / Illegal END keyrecord
-
 END
-
-DANGLE1  Keyrecords following the END keyrecord should be ignored.
-DANGLE2  
-DANGLE3
diff --git a/C/test/tbth1.c b/C/test/tbth1.c
index fc974f8..172791e 100644
--- a/C/test/tbth1.c
+++ b/C/test/tbth1.c
@@ -1,5 +1,5 @@
 /*============================================================================
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -21,7 +21,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tbth1.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tbth1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tbth1 tests wcsbth(), the WCS FITS parser for binary table headers, and
@@ -131,7 +131,9 @@ int main()
   ctrl  = -2;
   keysel = 0;
   colsel[0] = 0;
-  fprintf(stderr, "\nIllegal-WCS header keyrecords rejected by wcsbth():\n");
+
+  fprintf(stderr, "\nIllegal or extraneous WCS header keyrecords rejected "
+                  "by wcsbth():\n");
   if ((status = wcsbth(header, nkeyrec, relax, ctrl, keysel, colsel,
                        &nreject, &nwcs, &wcs))) {
     fprintf(stderr, "wcsbth ERROR %d: %s.\n", status, wcs_errmsg[status]);
@@ -140,7 +142,7 @@ int main()
 
 
   /* List the remaining keyrecords. */
-  printf("\n\nHeader keyrecords ignored by wcsbth():\n");
+  printf("\n\nNon-WCS header keyrecords ignored by wcsbth():\n");
   hptr = header;
   while (*hptr) {
     printf("%.80s\n", hptr);
diff --git a/C/test/tbth1.out b/C/test/tbth1.out
index 29296e3..aa9398b 100644
--- a/C/test/tbth1.out
+++ b/C/test/tbth1.out
@@ -1,14 +1,39 @@
 Testing WCSLIB parser for FITS binary table headers (tbth1.c)
 -------------------------------------------------------------
 
-Found 185 non-comment header keyrecords.
+Found 198 non-comment header keyrecords.
 
 
-Illegal-WCS header keyrecords rejected by wcsbth():
-(none)
+Illegal or extraneous WCS header keyrecords rejected by wcsbth():
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system                 
+  Rejected (1), syntactically valid WCS keyrecord has no effect.
+LONPOLEX=                180.0 / [deg] Native longitude of the NCP              
+  Rejected (2), syntactically valid WCS keyrecord has no effect.
+LATPOLEX=                999.0 / [deg] Native latitude of the NCP               
+  Rejected (3), syntactically valid WCS keyrecord has no effect.
+RESTFRQX=         1.42040575e9 / [Hz] HI rest frequency                         
+  Rejected (4), syntactically valid WCS keyrecord has no effect.
+RESTWAVX=          0.211061141 / [m] HI rest wavelength                         
+  Rejected (5), syntactically valid WCS keyrecord has no effect.
+EQUINOXX=               2000.0 / [yr] Equinox of equatorial coordinates         
+  Rejected (6), syntactically valid WCS keyrecord has no effect.
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system   
+  Rejected (7), syntactically valid WCS keyrecord has no effect.
+SPECSYSX= 'BARYCENT'           / Reference frame of spectral coordinates        
+  Rejected (8), syntactically valid WCS keyrecord has no effect.
+SSYSOBSX= 'TOPOCENT'           / Reference frame of observation                 
+  Rejected (9), syntactically valid WCS keyrecord has no effect.
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift             
+  Rejected (10), syntactically valid WCS keyrecord has no effect.
+VELANGLX=                35.25 / Velocity orientation angle                     
+  Rejected (11), syntactically valid WCS keyrecord has no effect.
+VELOSYSX=               1500.0 / [m/s] Bary-topo velocity towards the source    
+  Rejected (12), syntactically valid WCS keyrecord has no effect.
+ZSOURCEX=               0.0025 / Redshift of the source                         
+  Rejected (13), syntactically valid WCS keyrecord has no effect.
 
 
-Header keyrecords ignored by wcsbth():
+Non-WCS header keyrecords ignored by wcsbth():
 XTENSION= 'BINTABLE'           / binary table extension                         
 BITPIX  =                    8 / 8-bit bytes                                    
 NAXIS   =                    2 / 2-dimensional binary table                     
@@ -43,16 +68,16 @@ Extracted 5 coordinate descriptions:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
       crval: 0x<address>
-               150         -30           1.3945e+09   1         
+               150.00      -30.000       1.3945e+09   1.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -74,12 +99,12 @@ Extracted 5 coordinate descriptions:
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            15           0            0         
+               0.0000       15.000       0.0000       0.0000    
      altlin: 4
      velref: 258
         alt: ' '
@@ -103,7 +128,7 @@ Extracted 5 coordinate descriptions:
     velosys: UNDEFINED
     ssyssrc: UNDEFINED
     zsource: UNDEFINED
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -148,38 +173,46 @@ Extracted 5 coordinate descriptions:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.096593    -0.025882    -0.0000      -0.0000    
+piximg[1][]:  -0.025882     0.096593     0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       62500.       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -9.6593      -2.5882      -0.0000      -0.0000    
+imgpix[1][]:  -2.5882       9.6593       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.6000e-05   0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.096593    -0.025882    -0           -0         
-piximg[1][]:  -0.025882     0.096593     0            0         
-piximg[2][]:   0            0            62500        0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -9.6593      -2.5882      -0           -0         
-imgpix[1][]:  -2.5882       9.6593       0            0         
-imgpix[2][]:   0            0            1.6e-05      0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           180         -30        
-       prj: (see below)
-     euler:   150          120          180         -0.5          0.86603   
+        ref:   150.00      -30.000       180.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       180.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -204,8 +237,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -219,7 +252,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
@@ -231,16 +264,16 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
       crval: 0x<address>
-               150         -30           1.3945e+09   1         
+               150.00      -30.000       1.3945e+09   1.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -262,12 +295,12 @@ imgpix[3][]:   0            0            0            1
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: 'I'
@@ -291,7 +324,7 @@ imgpix[3][]:   0            0            0            1
     velosys: UNDEFINED
     ssyssrc: UNDEFINED
     zsource: UNDEFINED
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -336,38 +369,46 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.096593    -0.025882    -0.0000      -0.0000    
+piximg[1][]:  -0.025882     0.096593     0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       62500.       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -9.6593      -2.5882      -0.0000      -0.0000    
+imgpix[1][]:  -2.5882       9.6593       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.6000e-05   0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.096593    -0.025882    -0           -0         
-piximg[1][]:  -0.025882     0.096593     0            0         
-piximg[2][]:   0            0            62500        0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -9.6593      -2.5882      -0           -0         
-imgpix[1][]:  -2.5882       9.6593       0            0         
-imgpix[2][]:   0            0            1.6e-05      0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           180         -30        
-       prj: (see below)
-     euler:   150          120          180         -0.5          0.86603   
+        ref:   150.00      -30.000       180.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       180.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -392,8 +433,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -407,7 +448,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
@@ -419,16 +460,16 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
       crval: 0x<address>
-               150         -30           1.3945e+09   1         
+               150.00      -30.000       1.3945e+09   1.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -450,12 +491,12 @@ imgpix[3][]:   0            0            0            1
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: 'I'
@@ -479,7 +520,7 @@ imgpix[3][]:   0            0            0            1
     velosys: UNDEFINED
     ssyssrc: UNDEFINED
     zsource: UNDEFINED
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -524,38 +565,46 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.096593    -0.025882    -0.0000      -0.0000    
+piximg[1][]:  -0.025882     0.096593     0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       62500.       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -9.6593      -2.5882      -0.0000      -0.0000    
+imgpix[1][]:  -2.5882       9.6593       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.6000e-05   0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.096593    -0.025882    -0           -0         
-piximg[1][]:  -0.025882     0.096593     0            0         
-piximg[2][]:   0            0            62500        0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -9.6593      -2.5882      -0           -0         
-imgpix[1][]:  -2.5882       9.6593       0            0         
-imgpix[2][]:   0            0            1.6e-05      0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           180         -30        
-       prj: (see below)
-     euler:   150          120          180         -0.5          0.86603   
+        ref:   150.00      -30.000       180.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       180.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -565,7 +614,7 @@ imgpix[3][]:   0            0            0            1
        code: "SIN"
          r0: 57.295780
          pv: (0)
-              0            0         
+              0.0000       0.0000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -581,8 +630,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     0            1           -1            0         
-               0            0            0            0            0         
+        w[]:   0.017453     0.0000       1.0000      -1.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -596,7 +645,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
@@ -608,16 +657,16 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
       crval: 0x<address>
-               150         -30           0.21498     -2000      
+               150.00      -30.000       0.21498     -2000.0    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -635,24 +684,24 @@ imgpix[3][]:   0            0            0            1
         npv: 7
      npvmax: 7
          pv: 0x<address>
-               1   1   0         
-               1   2   90        
-               1   3   195       
-               1   4  -30        
-               2   1   0         
-               2   2   180       
-               2   3   45        
+               1   1   0.0000    
+               1   2   90.000    
+               1   3   195.00    
+               1   4  -30.000    
+               2   1   0.0000    
+               2   2   180.00    
+               2   3   45.000    
         nps: 1
      npsmax: 1
          ps: 0x<address>
                4   0  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: 'B'
@@ -666,9 +715,9 @@ imgpix[3][]:   0            0            0            1
              "Wavelength"
              "Time offset"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      1e-11       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-11  UNDEFINED   
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      1e-12       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-12  UNDEFINED   
     radesys: "FK5"
     equinox: 2000.000000
     specsys: "BARYCENT"
@@ -676,7 +725,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -721,38 +770,46 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000    -0.0000      -0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000       0.0000    
+piximg[2][]:  -0.0000      -0.0000      -9.6353e-06  -0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -8.6603      -5.0000      -0.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -1.0379e+05  -0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05        -0           -0         
-piximg[1][]:  -0.05         0.086603     0            0         
-piximg[2][]:  -0           -0           -9.6353e-06  -0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -8.6603      -5           -0           -0         
-imgpix[1][]:  -5            8.6603       0            0         
-imgpix[2][]:  -0           -0           -1.0379e+05  -0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -762,7 +819,7 @@ imgpix[3][]:   0            0            0            1
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              0            180          45        
+              0.0000       180.00       45.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -778,8 +835,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453    -0           -0            1           -0         
-              -0            57.296      -1            0            0         
+        w[]:   0.017453    -0.0000      -0.0000       1.0000      -0.0000    
+              -0.0000       57.296      -1.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -789,11 +846,11 @@ imgpix[3][]:   0            0            0            1
        flag: 110
        type: "WAVE"
        code: "F2W"
-      crval:  0.215     
+      crval:  0.21498   
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0            1.395e+09   -6.487e+09   (remainder unused)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -805,15 +862,15 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
       crval: 0x<address>
-               150         -30           0.018577  
+               150.00      -30.000       0.018577  
       cunit: 0x<address>
              "deg"
              "deg"
@@ -829,7 +886,7 @@ imgpix[3][]:   0            0            0            1
         npv: 10
      npvmax: 10
          pv: 0x<address>
-               2   1   1         
+               2   1   1.0000    
                2   3   0.33333   
                2   5   0.13333   
                2   7   0.053968  
@@ -843,11 +900,11 @@ imgpix[3][]:   0            0            0            1
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:  -0.086603    -0.05         0         
-    cd[1][]:  -0.05         0.086603     0         
-    cd[2][]:   0            0           -4.5652e-05
+    cd[0][]:  -0.086603    -0.050000     0.0000    
+    cd[1][]:  -0.050000     0.086603     0.0000    
+    cd[2][]:   0.0000       0.0000      -4.5652e-05
       crota: 0x<address>
-               0            30           0         
+               0.0000       30.000       0.0000    
      altlin: 6
      velref: 0
         alt: 'P'
@@ -860,9 +917,9 @@ imgpix[3][]:   0            0            0            1
              "Declination (J2000)"
              "Redshift"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      5e-11     
+             UNDEFINED     UNDEFINED      5.0000e-11
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      5e-12     
+             UNDEFINED     UNDEFINED      5.0000e-12
     radesys: "FK5"
     equinox: 2000.000000
     specsys: "BARYCENT"
@@ -870,7 +927,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4e+06        2.8168e+06  -3.454e+06   
+     obsgeo:   -4.0000e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -915,35 +972,43 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000     0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000    
+piximg[2][]:   0.0000       0.0000      -4.5652e-05
+imgpix[0][]:  -8.6603      -5.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -21905.    
+    i_naxis: 3
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05         0         
-piximg[1][]:  -0.05         0.086603     0         
-piximg[2][]:   0            0           -4.5652e-05
-imgpix[0][]:  -8.6603      -5           -0         
-imgpix[1][]:  -5            8.6603       0         
-imgpix[2][]:  -0           -0           -21905     
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -952,13 +1017,13 @@ imgpix[2][]:  -0           -0           -21905
        flag: 107
        code: "ZPN"
          r0: 57.295780
-         pv:  0         
-              1            0            0.33333      0            0.13333   
-              0            0.053968     0            0.021869     0         
-              0.0088632    0            0.0035921    0            0.0014558 
-              0            0.00059003   0            0.00023913   0         
-              0            0            0            0            0         
-              0            0            0            0         
+         pv:   0.0000    
+              1.0000       0.0000       0.33333      0.0000       0.13333   
+              0.0000       0.053968     0.0000       0.021869     0.0000    
+              0.0088632    0.0000       0.0035921    0.0000       0.0014558 
+              0.0000       0.00059003   0.0000       0.00023913   0.0000    
+              0.0000       0.0000       0.0000       0.0000       0.0000    
+              0.0000       0.0000       0.0000       0.0000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -974,8 +1039,8 @@ imgpix[2][]:  -0           -0           -21905
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   3.1416       8.9006e+05   0            0            0         
-               0            0            0            0            0         
+        w[]:   3.1416       8.9006e+05   0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 19
      prjx2s: 0x<address>
@@ -985,11 +1050,11 @@ imgpix[2][]:  -0           -0           -21905
        flag: 112
        type: "ZOPT"
        code: "F2W"
-      crval:  0.01858   
+      crval:  0.018577  
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0.2111       1.394e+09   -1.369e+09   (remainder unused)
+          w:   0.21106      1.3945e+09  -1.3691e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
diff --git a/C/test/tcel1.c b/C/test/tcel1.c
index b821c39..c7cb977 100644
--- a/C/test/tcel1.c
+++ b/C/test/tcel1.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tcel1.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tcel1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tcel1 tests the spherical projection driver routines supplied with WCSLIB by
diff --git a/C/test/tcel2.c b/C/test/tcel2.c
index cf68103..62c56c8 100644
--- a/C/test/tcel2.c
+++ b/C/test/tcel2.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tcel2.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tcel2.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tcel2 thoroughly tests the WCSLIB celestial coordinate transformation
@@ -525,7 +525,7 @@ int main()
 
           } else {
             printf("Next, skip, break, continue, exit [%c]: ", ctrl);
-            fgets(answer, 16, stdin);
+            if (fgets(answer, 16, stdin) == 0) answer[0] = 0;
 
             if (strchr("bBcCeEiIjJnNpPqQsS", (int)answer[0]) != 0) {
               ctrl = answer[0];
diff --git a/C/test/tdis1.c b/C/test/tdis1.c
new file mode 100644
index 0000000..23a0032
--- /dev/null
+++ b/C/test/tdis1.c
@@ -0,0 +1,258 @@
+/*============================================================================
+
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
+  Copyright (C) 1995-2015, Mark Calabretta
+
+  This file is part of WCSLIB.
+
+  WCSLIB is free software: you can redistribute it and/or modify it under the
+  terms of the GNU Lesser General Public License as published by the Free
+  Software Foundation, either version 3 of the License, or (at your option)
+  any later version.
+
+  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+  more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+
+  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+
+  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+  http://www.atnf.csiro.au/people/Mark.Calabretta
+  $Id: tdis1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+*=============================================================================
+*
+* tdis1 tests the WCSLIB distortion functions for closure.  Input comes from
+* the* FITS file specified as an argument, or else from TPV7.fits.  The test
+* is done via linp2x() and linx2p().
+*
+*---------------------------------------------------------------------------*/
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <wcserr.h>
+#include <wcshdr.h>
+#include <wcsprintf.h>
+#include <lin.h>
+#include <dis.h>
+
+#define HEADER_SIZE 36000
+
+/* Absolute and fractional tolerance.  Distortions are typically used on  */
+/* large images, so the absolute tolerance in the corners may not be very */
+/* high, simply due to floating point precision.                          */
+const double ATOL = 1.0e-9;
+const double FTOL = 1.0e-10;
+
+
+int main(int argc, char *argv[])
+
+{
+  char *infile = "TPV7.fits";
+
+  char keyrec[81], header[288001];
+  int  gotend, iblock, ikeyrec, inc, j, k, n, naxis[4], naxis1, naxis2,
+       nClosure, nFail, nkeyrec, nreject, nTest, nwcs, p1, p2, status;
+  double dp1, dp2, *img, px, *px0, *px1, rel, resid, absmax, relmax;
+  FILE *fptr;
+  struct linprm *lin;
+  struct wcsprm *wcs;
+
+
+  wcserr_enable(1);
+  wcsprintf_set(stdout);
+
+  /* Set line buffering in case stdout is redirected to a file, otherwise
+   * stdout and stderr messages will be jumbled (stderr is unbuffered). */
+  setvbuf(stdout, NULL, _IOLBF, 0);
+
+  wcsprintf("Testing closure of WCSLIB distortion routines (tdis1.c)\n"
+            "-------------------------------------------------------\n");
+
+  /* List status return messages. */
+  wcsprintf("\nList of dis status return values:\n");
+  for (status = 1; status <= 5; status++) {
+    wcsprintf("%4d: %s.\n", status, dis_errmsg[status]);
+  }
+  wcsprintf("\n");
+
+  /* Optional file name specified? */
+  if (1 < argc) {
+    infile = argv[1];
+  }
+
+
+  /* Read in the FITS header, excluding COMMENT and HISTORY keyrecords. */
+  if ((fptr = fopen(infile, "r")) == 0) {
+    wcsprintf("ERROR opening %s\n", infile);
+    return 1;
+  }
+
+  memset(naxis, 0, 4*sizeof(int));
+
+  k = 0;
+  nkeyrec = 0;
+  gotend = 0;
+  for (iblock = 0; iblock < 100; iblock++) {
+    for (ikeyrec = 0; ikeyrec < 36; ikeyrec++) {
+      if (fgets(keyrec, 81, fptr) == 0) {
+        break;
+      }
+
+      if (strncmp(keyrec, "        ", 8) == 0) continue;
+      if (strncmp(keyrec, "COMMENT ", 8) == 0) continue;
+      if (strncmp(keyrec, "HISTORY ", 8) == 0) continue;
+
+      if (strncmp(keyrec, "NAXIS", 5) == 0) {
+        if (keyrec[5] == ' ') continue;
+        sscanf(keyrec+5, "%d = %d", &j, &n);
+        if (j <= 4) naxis[j-1] = n;
+        continue;
+      }
+
+      strncpy(header+k, keyrec, 80);
+      k += 80;
+      nkeyrec++;
+
+      if (strncmp(keyrec, "END       ", 10) == 0) {
+        /* An END keyrecord was read, but read the rest of the block. */
+        gotend = 1;
+      }
+    }
+
+    if (gotend) break;
+  }
+  fclose(fptr);
+
+
+  /* Parse the header. */
+  if ((wcspih(header, nkeyrec, WCSHDR_none, 2, &nreject, &nwcs, &wcs))) {
+    wcsperr(wcs, 0x0);
+    return 1;
+  }
+
+
+  /* Translate the TPV "projection" into a sequent distortion. */
+  if (wcsset(wcs)) {
+    wcsperr(wcs, 0x0);
+    return 1;
+  }
+
+  /* Henceforth, we will work with linprm. */
+  lin = &(wcs->lin);
+
+
+  /* The image size determines the test domain. */
+  if ((naxis1 = naxis[wcs->lng]) == 0) {
+    naxis1 = 2*wcs->crpix[wcs->lng] + 1;
+  }
+  if ((naxis2 = naxis[wcs->lat]) == 0) {
+    naxis2 = 2*wcs->crpix[wcs->lat] + 1;
+  }
+
+  /* Limit the number of tests. */
+  inc = 1;
+  while ((naxis1/inc)*(naxis2/inc) > 800000) {
+    inc *= 2;
+  }
+
+  n   = naxis1 / inc;
+  px0 = calloc(3*(2*n ), sizeof(double));
+  px1 = px0 + 2*n ;
+  img = px1 + 2*n ;
+
+  nTest = 0;
+  nFail = 0;
+  nClosure = 0;
+  absmax = 0.0;
+  relmax = 0.0;
+  for (p2 = 1; p2 <= naxis2; p2 += inc) {
+    k = 0;
+    for (p1 = 1; p1 <= naxis1; p1 += inc) {
+      px0[k++] = (double)p1;
+      px0[k++] = (double)p2;
+    }
+
+    if (linp2x(lin, n, 2, px0, img)) {
+      linperr(lin, 0x0);
+      nFail = 1;
+      break;
+    }
+
+    if (linx2p(lin, n, 2, img, px1)) {
+      linperr(lin, 0x0);
+      nFail = 1;
+      break;
+    }
+
+    /* Check closure. */
+    k = 0;
+    for (k = 0; k < 2*n ; k += 2) {
+      dp1 = fabs(px1[k]   - px0[k]);
+      dp2 = fabs(px1[k+1] - px0[k+1]);
+
+      resid = (dp1 > dp2) ? dp1 : dp2;
+      if (resid > absmax) absmax = resid;
+
+      if (resid > ATOL) {
+        nClosure++;
+        wcsprintf("   Absolute closure error:\n");
+        wcsprintf("    pix: %18.12f %18.12f\n", px0[k], px0[k+1]);
+        wcsprintf(" -> img: %18.12f %18.12f\n", img[k], img[k+1]);
+        wcsprintf(" -> pix: %18.12f %18.12f\n", px1[k], px1[k+1]);
+        wcsprintf("\n");
+        continue;
+      }
+
+      resid = 0.0;
+      if ((px = fabs(px0[k]))   > 1.0) resid = dp1/px;
+      if ((px = fabs(px0[k+1])) > 1.0) {
+        if ((rel = dp2/px) > resid) resid = rel;
+      }
+      if (resid > relmax) relmax = resid;
+
+      if (resid > FTOL) {
+        nClosure++;
+        wcsprintf("   Relative closure error:\n");
+        wcsprintf("    pix: %18.12f %18.12f\n", px0[k], px0[k+1]);
+        wcsprintf(" -> img: %18.12f %18.12f\n", img[k], img[k+1]);
+        wcsprintf(" -> pix: %18.12f %18.12f\n", px1[k], px1[k+1]);
+        wcsprintf("\n");
+      }
+    }
+
+    nTest += n;
+  }
+
+  if (nFail) {
+    wcsprintf("\nFAIL: The test failed to complete.\n");
+
+  } else {
+    wcsprintf("linp2x/linx2p with distortions:\n"
+      "  Completed %d closure tests.\n"
+      "  Maximum absolute closure residual = %.1e pixel.\n"
+      "  Maximum relative closure residual = %.1e.\n", nTest, absmax, relmax);
+    wcsprintf("\n");
+
+    if (nClosure) {
+      wcsprintf("FAIL: %d closure residuals exceed reporting tolerance.\n",
+        nClosure);
+
+    } else {
+      wcsprintf("PASS: All closure residuals are within reporting "
+        "tolerance.\n");
+    }
+  }
+
+
+  free(px0);
+  wcsvfree(&nwcs, &wcs);
+
+  return nFail || nClosure;
+}
diff --git a/C/test/tfitshdr.c b/C/test/tfitshdr.c
index f0be885..b75f403 100644
--- a/C/test/tfitshdr.c
+++ b/C/test/tfitshdr.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,19 +22,18 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tfitshdr.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tfitshdr.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tfitshdr tests fitshdr(), the FITS parser for image headers, by reading a
 * test header and printing the resulting fitskey structs.
 *
-* Input comes from file 'pih.fits' using either fits_hdr2str() from CFITSIO
-* if the DO_CFITSIO preprocessor is defined, or read directly using fgets()
-* otherwise.
+* Input comes from file 'fitshdr.fits' using either fits_hdr2str() from
+* CFITSIO if the DO_CFITSIO preprocessor is defined, or read directly using
+* fgets() otherwise.
 *
-* If the DO_WCSHDR preprocessor macro is defined, wcshdr() will be called
-* first to extract all WCS-related keyrecords from the input header before
-* passing it on to fitshdr().
+* wcshdr() is called first to extract all WCS-related keyrecords from the
+* input header before passing it on to fitshdr().
 *
 *---------------------------------------------------------------------------*/
 
@@ -48,16 +47,13 @@
 #include <fitsio.h>
 #endif
 
-#ifdef DO_WCSHDR
 #include <wcshdr.h>
-#endif
-
 #include <fitshdr.h>
 
 int main()
 
 {
-  char infile[] = "pih.fits";
+  char infile[] = "fitshdr.fits";
   char text[80];
   int  i, j, k, nkeyrec, nkeyids, nreject, status;
   struct fitskey *keys, *kptr;
@@ -71,10 +67,8 @@ int main()
   FILE *fptr;
 #endif
 
-#ifdef DO_WCSHDR
   struct wcsprm *wcs;
   int  ctrl, nwcs, relax;
-#endif
 
 
   /* Set line buffering in case stdout is redirected to a file, otherwise
@@ -118,7 +112,7 @@ int main()
       k += 80;
       nkeyrec++;
 
-      if (strncmp(keyrec, "END     ", 8) == 0) {
+      if (strncmp(keyrec, "END       ", 10) == 0) {
         /* An END keyrecord was read, but read the rest of the block. */
         end = 1;
       }
@@ -132,7 +126,6 @@ int main()
   printf("Found %d header keyrecords.\n", nkeyrec);
 
 
-#ifdef DO_WCSHDR
   /* Cull recognized, syntactically valid WCS keyrecords from the header. */
   relax = WCSHDR_all;
   ctrl = -1;
@@ -144,7 +137,6 @@ int main()
 
   /* Number remaining. */
   nkeyrec = strlen(header) / 80;
-#endif
 
 
   /* Specific keywords to be located or culled. */
diff --git a/C/test/tfitshdr.out b/C/test/tfitshdr.out
index 8cdcd98..90ac0dd 100644
--- a/C/test/tfitshdr.out
+++ b/C/test/tfitshdr.out
@@ -1,7 +1,7 @@
 Testing FITS image header parser (tfitshdr.c)
 ---------------------------------------------
 
-Found 360 header keyrecords.
+Found 144 header keyrecords.
 
 The following keyrecords will not be listed:
   "SIMPLE  "
@@ -12,403 +12,133 @@ The following keyrecords will not be listed:
   "        "
   "END     "
 
-360 header keyrecords parsed by fitshdr(), 14 rejected:
+74 header keyrecords parsed by fitshdr(), 21 rejected:
 
-  66    0  WCSAXES   2  4
-Four coordinate axes
-  67    0  WCSNAME   8  "AIPS convention: TAN projection"
-Name of this coordinate system
-  69    0  CRPIX1    5  +5.130000e+02
-Pixel coordinate of reference point
-  70    0  CRPIX2    5  +5.130000e+02
-Pixel coordinate of reference point
-  71    0  CRPIX3    5  +1.025000e+03
-Pixel coordinate of reference point
-  72    0  CRPIX4    5  +1.000000e+00
-Pixel coordinate of reference point
-  74    0  CDELT1    5  -1.000000e-01
-x-scale
-  75    0  CDELT2    5  +1.000000e-01
-y-scale
-  76    0  CROTA2    5  +1.500000e+01
-Bulk image rotation
-  77    0  CTYPE1    8  "RA---TAN"
-Right ascension in a gnomonic projection
-  78    0  CRVAL1    5  +1.500000e+02
-Right ascension at the reference point
-  79    0  CTYPE2    8  "DEC--TAN"
-Declination in a gnomonic projection
-  80    0  CRVAL2    5  -3.000000e+01
-Declination at the reference point
-  81    0  EPOCH     5  +2.000000e+03
-Equinox of equatorial coordinates
-  83    0  CDELT3    5  +6.250000e+04
-Frequency scale
-  84    0  CTYPE3    8  "FREQ"
-Frequency axis
-  85    0  CRVAL3    5  +1.394500e+09
-Reference frequency
-  86    0  VELREF    2  258
-Barycentric radio velocity
-  87    0  ALTRPIX   5  +0.000000e+00
-Alternate reference pixel (not handled)
-  88    0  ALTRVAL   5  +0.000000e+00
-Alternate reference value (not handled)
-  89    0  RESTFREQ  5  +1.420406e+09
-HI rest frequency
-  91    0  CDELT4    5  +1.000000e+00
-Stokes increment
-  92    0  CTYPE4    8  "STOKES"
-Stokes convention axis (I, Q, U, V)
-  93    0  CRVAL4    5  +1.000000e+00
-Stokes I
-  96    0  PROJP0    5  +0.000000e+00
-Projection parameter (not used)
-  97    0  PROJP1    5  +0.000000e+00
-Projection parameter (not used)
-  98    0  PROJP2    5  +0.000000e+00
-Projection parameter (not used)
- 112    0  WCSAXESA  2  4
-Four coordinate axes
- 113    0  WCSNAMEA  8  "Standard representation: SZP projection"
-Name of this system
- 115    0  CRPIX1A   5  +5.130000e+02
-Pixel coordinate of reference point
- 116    0  CRPIX2A   5  +5.130000e+02
-Pixel coordinate of reference point
- 117    0  CRPIX3A   5  +1.025000e+03
-Pixel coordinate of reference point
- 118    0  CRPIX4A   5  +1.000000e+00
-Pixel coordinate of reference point
- 119    0  PC1_1A    5  +8.660254e-01
-Linear transformation matrix element
- 120    0  PC1_2A    5  +5.000000e-01
-Linear transformation matrix element
- 121    0  PC2_1A    5  -5.000000e-01
-Linear transformation matrix element
- 122    0  PC2_2A    5  +8.660254e-01
-Linear transformation matrix element
- 124    0  CDELT1A   5  -1.000000e-01 deg
-[deg] x-scale
- 125    0  CUNIT1A   8  "deg"
-Degree units are required
- 126    0  CTYPE1A   8  "RA---SZP"
-Right ascension in slant zenithal projection
- 127    0  CRVAL1A   5  +1.500000e+02 deg
-[deg] Right ascension at the reference point
- 128    0  CNAME1A   8  "Right ascension (J2000)"
-Axis name for labelling purposes
- 129    0  CDELT2A   5  +1.000000e-01 deg
-[deg] y-scale
- 130    0  CUNIT2A   8  "deg"
-Degree units are required
- 131    0  CTYPE2A   8  "DEC--SZP"
-Declination in a slant zenithal projection
- 132    0  CRVAL2A   5  -3.000000e+01 deg
-[deg] Declination at the reference point
- 133    0  CNAME2A   8  "Declination (J2000)"
-Axis name for labelling purposes
- 134    0  PV1_1A    5  +0.000000e+00 deg
-[deg] Native longitude of the reference point
- 135    0  PV1_2A    5  +9.000000e+01 deg
-[deg] Native latitude  of the reference point
- 136    0  PV1_3A    5  +1.950000e+02 deg
-[deg] LONPOLEa by another name (precedence)
- 137    0  PV1_4A    5  +9.990000e+02 deg
-[deg] LATPOLEa by another name (precedence)
- 138    0  PV2_1A    5  +0.000000e+00
-SZP distance, in spherical radii
- 139    0  PV2_2A    5  +1.800000e+02 deg
-[deg] SZP P-longitude
- 140    0  PV2_3A    5  +4.500000e+01 deg
-[deg] SZP P-latitude
- 141    0  LONPOLEA  5  +1.950000e+02 deg
-[deg] Native longitude of the NCP
- 142    0  LATPOLEA  5  +9.990000e+02 deg
-[deg] Native latitude of the NCP
- 143    0  RADESYSA  8  "FK5"
-Mean equatorial coordinates, IAU 1984 system
- 144    0  EQUINOXA  5  +2.000000e+03 yr
-[yr] Equinox of equatorial coordinates
- 146    0  CDELT3A   5  -9.635265e-06 m
-[m] Wavelength scale
- 147    0  CUNIT3A   8  "m"
-Wavelength units
- 148    0  CTYPE3A   8  "WAVE-F2W"
-Frequency axis expressed as wavelength
- 149    0  CRVAL3A   5  +2.149820e-01 m
-[m] Reference wavelength
- 150    0  CNAME3A   8  "Wavelength"
-Axis name for labelling purposes
- 151    0  CRDER3A   5  +1.000000e-11 m
-[m] Wavelength calibration, random error
- 152    0  CSYER3A   5  +1.000000e-12 m
-[m] Wavelength calibration, systematic error
- 153    0  RESTFRQA  5  +1.420406e+09 Hz
-[Hz] HI rest frequency
- 154    0  RESTWAVA  5  +2.110611e-01 m
-[m] HI rest wavelength
- 155    0  SPECSYSA  8  "BARYCENT"
-Reference frame of spectral coordinates
- 156    0  SSYSOBSA  8  "TOPOCENT"
-Reference frame of observation
- 157    0  VELOSYSA  5  +1.500000e+03 m/s
-[m/s] Bary-topo velocity towards the source
- 158    0  SSYSSRCA  8  "LSRK"
-Reference frame of source redshift
- 159    0  ZSOURCEA  5  +2.500000e-03
-Redshift of the source
- 161    0  CDELT4A   5  +1.000000e+00 s
-[s] Time scale
- 162    0  CUNIT4A   8  "s"
-Time units
- 163    0  CTYPE4A   8  "TIME'x'"
-String value and comment containing quotes (')
- 164    0  CRVAL4A   5  -2.000000e+03 s
-[s] Time at the reference point
- 165    0  CNAME4A   8  "Time offset"
-Axis name for labelling purposes
- 166    0  PS4_0A    8  "UTC"
-Time measurement system
- 189    0  WCSAXESI  2  3
-Three coordinate axes
- 190    0  WCSNAMEI  8  "IRAF representation: ZPN projection"
-Name of this coordinate system
- 192    0  CRPIX1I   5  +5.130000e+02
-Pixel coordinate of reference point
- 193    0  CRPIX2I   5  +5.130000e+02
-Pixel coordinate of reference point
- 194    0  CRPIX3I   5  +1.025000e+03
-Pixel coordinate of reference point
- 195    0  CD1_1I    5  -8.660254e-02
-Linear transformation matrix element
- 196    0  CD1_2I    5  -5.000000e-02
-Linear transformation matrix element
- 197    0  CD2_1I    5  -5.000000e-02
-Linear transformation matrix element
- 198    0  CD2_2I    5  +8.660254e-02
-Linear transformation matrix element
- 199    0  CD3_3I    5  -4.565154e-05
-Redshift scale
- 201    0  CDELT1I   5  -1.000000e-01 deg
-[deg] x-scale (informational)
- 202    0  CUNIT1I   8  "deg"
-Degree units are required
- 203    0  CTYPE1I   8  "RA---ZPN"
-Right ascension in slant zenithal projection
- 204    0  CRVAL1I   5  +1.500000e+02 deg
-[deg] Right ascension at the reference point
- 205    0  CNAME1I   8  "Right ascension (J2000)"
-Axis name for labelling purposes
- 206    0  CDELT2I   5  +1.000000e-01 deg
-[deg] y-scale (informational)
- 207    0  CUNIT2I   8  "deg"
-Degree units are required
- 208    0  CTYPE2I   8  "DEC--ZPN"
-Declination in a slant zenithal projection
- 209    0  CRVAL2I   5  -3.000000e+01 deg
-[deg] Declination at the reference point
- 210    0  CNAME2I   8  "Declination (J2000)"
-Axis name for labelling purposes
- 211    0  PV2_1I    5  +1.000000e+00
-ZPN P1  coefficient for approximating TAN
- 212    0  PV2_3I    5  +3.333333e-01
-ZPN P3  coefficient for approximating TAN
- 213    0  PV2_5I    5  +1.333333e-01
-ZPN P5  coefficient for approximating TAN
- 214    0  PV2_7I    5  +5.396825e-02
-ZPN P7  coefficient for approximating TAN
- 215    0  PV2_9I    5  +2.186949e-02
-ZPN P9  coefficient for approximating TAN
- 216    0  PV2_11I   5  +8.863236e-03
-ZPN P11 coefficient for approximating TAN
- 217    0  PV2_13I   5  +3.592128e-03
-ZPN P13 coefficient for approximating TAN
- 218    0  PV2_15I   5  +1.455834e-03
-ZPN P15 coefficient for approximating TAN
- 219    0  PV2_17I   5  +5.900270e-04
-ZPN P17 coefficient for approximating TAN
- 220    0  PV2_19I   5  +2.391290e-04
-ZPN P19 coefficient for approximating TAN
- 221    0  LONPOLEI  5  +1.950000e+02 deg
-[deg] Native longitude of the NCP
- 222    0  LATPOLEI  5  +9.990000e+02 deg
-[deg] Native latitude of the NCP
- 223    0  RADESYSI  8  "FK5"
-Mean equatorial coordinates, IAU 1984 system
- 224    0  EQUINOXI  5  +2.000000e+03 yr
-[yr] Equinox of equatorial coordinates
- 226    0  CDELT3I   5  -4.565154e-05
-Redshift scale (informational)
- 227    0  CTYPE3I   8  "ZOPT-F2W"
-Frequency axis expressed as redshift
- 228    0  CRVAL3I   5  +1.857709e-02
-Reference redshift
- 229    0  CNAME3I   8  "Redshift"
-Axis name for labelling purposes
- 230    0  CRDER3I   5  +5.000000e-11
-Redshift calibration, random error
- 231    0  CSYER3I   5  +5.000000e-12
-Redshift calibration, systematic error
- 232    0  RESTFRQI  5  +1.420406e+09 Hz
-[Hz] HI rest frequency
- 233    0  RESTWAVI  5  +2.110611e-01 m
-[m] HI rest wavelength
- 234    0  SSYSOBSI  8  "TOPOCENT"
-Reference frame of observation
- 235    0  VELOSYSI  5  +1.500000e+03 m/s
-[m/s] Bary-topo velocity towards the source
- 236    0  SSYSSRCI  8  "LSRK"
-Reference frame of source redshift
- 237    0  VSOURCEI  5  +7.485443e+05 m/s
-[m/s] Apparent radial velocity of the source
- 240    0  CROTA2I   5  +3.000000e+01 deg
-[deg] Bulk image rotation
- 241    0  EPOCHI    2  2000 yr
-[yr] Equinox of equatorial coordinates
- 242    0  VELREFI   2  258
-Barycentric radio velocity
- 254    0  OBSGEO-X  5  -4.554232e+06 m
-[m] ITRF observatory coordinates
- 255    0  OBSGEO-Y  5  +2.816758e+06
-
- 256    0  OBSGEO-Z  5  -3.454036e+06
-
- 257    0  MJD-OBS   5  +3.588362e+04 d
-[d] MJD at start of observation (UTC)
- 258    0  MJD-AVG   5  +3.588370e+04 d
-[d] MJD mid-observation time (UTC)
- 259    0  DATE-OBS  8  "1957-02-14T15:00:00"
-UTC date corresponding to MJD-OBS
- 260    0  DATE-AVG  8  "1957-02-14T16:48:00"
-UTC date corresponding to MJD-AVG
- 268    0  CRPIXELS  5  +0.000000e+00
-Furphy, not CRPIXja
- 269    0  PCATALOG  5  +0.000000e+00
-Furphy, not PCi_ja
- 270    0  CDELTA    5  +0.000000e+00
-Furphy, not CDELTia
- 271    0  CDI_JA    5  +0.000000e+00
-Furphy, not CDi_ja
- 272    0  CUNITARY  5  +0.000000e+00
-Furphy, not CUNITia
- 273    0  CTYPEXY   5  +0.000000e+00
-Furphy, not CTYPEia
- 274    0  CRVALUE   5  +0.000000e+00
-Furphy, not CRVALia
- 275    0  CNAME     5  +0.000000e+00
-Furphy, not CNAMEia
- 276    0  PV1_1AL   5  +0.000000e+00
-Furphy, not PVi_ma
- 277    0  PV02_1    5  +0.000000e+00
-Furphy, not PVi_ma (leading zero on i)
- 278    0  PV2_01    5  +0.000000e+00
-Furphy, not PVi_ma (leading zero on m)
- 279    0  PSEUDO    5  +0.000000e+00
-Furphy, not PSi_ma
- 280    0  EPOCHAL   5  +0.000000e+00
-Furphy, not EPOCH
- 281    0  VELREF1   5  +0.000000e+00
-Furphy, not VELREF
- 289    0  CTYPE1    5  +0.000000e+00
-Illegal, CTYPEia must be string type
- 290    0  PV2_1     8  "0.0"
-Illegal, PVi_ma must be numeric
- 291    0  PV2_1     0
- =                 0.0 / Illegal, "= " not in columns 9-10
- 292    0  EPOCH     8  "2000.0"
-Illegal, EPOCH must be numeric
- 300    0  NOVLSPEC  0
-=1                     / Not a valid value specifier (no " " in col. 10)
- 301    0  INT32     2  12345
+   9    0  UNDEF     0
+Undefined keyvalue
+  10    0  TRUE      1  T
+Logical
+  11    0  FALSE     1  F
+Logical
+  12    0  INT32     2  12345
 Not a 64-bit integer
- 302    0  INT32     2  -123456789
+  13    0  INT32     2  -123456789
 Not a 64-bit integer
- 303    0  INT32     2  -2147483648
+  14    0  INT32     2  -2147483648
 Not a 64-bit integer (INT_MIN)
- 304    0  INT32     2  2147483647
+  15    0  INT32     2  2147483647
 Not a 64-bit integer (INT_MAX)
- 305    0  INT32     2  12345
+  16    0  INT32     2  12345
 Not a very long integer
- 306    0  INT32     2  -123456789
+  17    0  INT32     2  -123456789
 Not a very long integer
- 307    0  INT64     3  -2147483649
+  18    0  INT64     3  -2147483649
 64-bit integer (INT_MIN - 1)
- 308    0  INT64     3  +2147483648
+  19    0  INT64     3  +2147483648
 64-bit integer (INT_MAX + 1)
- 309    0  INT64     3  +100000000000000000
+  20    0  INT64     3  +100000000000000000
 64-bit integer
- 310    0  INT64     3  -876543210987654321
+  21    0  INT64     3  -876543210987654321
 64-bit integer
- 311    0  INT64     3  -9223372036854775808
+  22    0  INT64     3  -9223372036854775808
 Not a very long integer (LONG_MIN)
- 312    0  INT64     3  +9223372036854775807
+  23    0  INT64     3  +9223372036854775807
 Not a very long integer (LONG_MAX)
- 313    0  INT64     3  -876543210987654321
+  24    0  INT64     3  -876543210987654321
 64-bit integer
- 314    0  INTVL     4  -9223372036854775809
+  25    0  INTVL     4  -9223372036854775809
 Very long integer (LONG_MIN - 1)
- 315    0  INTVL     4  +9223372036854775808
+  26    0  INTVL     4  +9223372036854775808
 Very long integer (LONG_MAX + 1)
- 316    0  INTVL     4  -100000000000000000000000000000876543210987654321
+  27    0  INTVL     4  -100000000000000000000000000000876543210987654321
 Very-long integer
- 317    0  INTVL     4  +123456789012345678901234567890123456789012345678901234567890123456789
+  28    0  INTVL     4  +123456789012345678901234567890123456789012345678901234567890123456789
 
- 318    0  INTVL     4  +1234567890123456789012345678901234567890123456789012345678901234567890
+  29    0  INTVL     4  +1234567890123456789012345678901234567890123456789012345678901234567890
 
- 319    0  COMPLEX   6  137  -1
+  30    0  FLOAT     5  +3.141593e+00
+Floating point
+  31    0  FLOAT     5  +1.602177e-19
+Floating point, lower-case exp allowed
+  32    0  FLOAT     5  +2.997925e+08
+Floating point
+  33    0  FLOAT     5  +6.626070e+00
+Floating point, lower-case exp allowed
+  34    0  FLOAT     5  +6.022141e+00
+Floating point
+  35    0  COMPLEX   6  137  -1
 An integer complex keyvalue
- 320    0  COMPLEX   7  +1.000000e+06  -1.000000e-01
+  36    0  COMPLEX   7  +1.000000e+06  -1.000000e-01
 A floating point complex keyvalue
- 321    0  GOODSTR   8  ""G'DAY""
+  37    0  GOODSTR   8  ""G'DAY""
 A valid string keyvalue
- 322    0  BLANKS    8  " "
+  38    0  BLANKS    8  " "
 An all-blank string equals a single blank
- 323    0  LONGSTR   8  "The loooooongest possible non-continued string value, 68 characters."
+  39    0  LONGSTR   8  "The loooooongest possible non-continued string value, 68 characters."
 
- 324    0  CONTSTR  18  "The quick brown "
+  40    0  CONTSTR  18  "The quick brown "
 Continued string, with & (will be stripped off)
- 325    4  CONTINUE 28  "fox jumps over the"
+  41    4  CONTINUE 28  "fox jumps over the"
 CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment         
- 326    0  CONTINUE 38  " lazy dog"
+  42    0  CONTINUE 38  " lazy dog"
 
- 327    0  PI        5  +3.141593e+00
+  43    0  PI        5  +3.141593e+00
 [!?] is not a valid units specification
- 328    0  CONTINUE  0
+  44    0  CONTINUE  0
       'Not a valid string continuation'
- 331    1  BadKey    2  111
+  50    1  BADREC =  0
+                     1 / Illegal, "= " not in columns 9-10
+  51    0  BADREC    0
+ =                   1 / Illegal, "= " not in columns 9-10
+  52    0  BADREC    0
+=1                     / Illegal, "= " not in columns 9-10
+  53    0  BADREC    0
+                     1 / Illegal, "= " not in columns 9-10
+  54    1  BadKey    2  111
 Example of a syntax error, invalid keyword
- 332    1  BADKEY!   2  222
+  55    1  BADKEY!   2  222
 Example of a syntax error, invalid keyword
- 333    1  BAD KEY   2  333
+  56    1  BAD KEY   2  333
 Example of a syntax error, invalid keyword
- 334    2  BADSTR    0
-BADSTR  =                  BAD / Example of a syntax error, invalid keyvalue    
- 335    2  BADSTR    0
-BADSTR  =                "BAD" / Example of a syntax error, invalid keyvalue    
- 336    4  BADSTR   -8  ("BAD")
-BADSTR  =          'BAD' 'STR' / Example syntax error, invalid string keyvalue  
- 337    4  BADFLT   -2  (49)
-BADFLT  =              49 + 94 / Example of a syntax error, invalid keyvalue    
- 338    4  BADFLT    0
-BADFLT  =                 1D99 / Example of a syntax error, invalid keyvalue    
- 339    4  BADCOMM  -2  (999)
-BADCOMM =                  999   Example of a syntax error, invalid keycomment  
--340    8  END       8  "ILLEGAL"
+  57    2  BADVAL    0
+BADVAL  =                  BAD / Example of a syntax error, invalid keyvalue    
+  58    2  BADVAL    0
+BADVAL  =                "BAD" / Example of a syntax error, invalid keyvalue    
+  59    4  BADVAL   -8  ("BAD")
+BADVAL  =          'BAD' 'STR' / Example of a syntax error, invalid keyvalue    
+  60    4  BADVAL   -2  (49)
+BADVAL  =              49 + 94 / Example of a syntax error, invalid keyvalue    
+  61    4  BADVAL    0
+BADVAL  =             1934-638 / Example of a syntax error, invalid keyvalue    
+  62    4  BADVAL    0
+BADVAL  =                1.2.3 / Example of a syntax error, invalid keyvalue    
+  63    4  BADVAL    0
+BADVAL  =            12h34m56s / Example of a syntax error, invalid keyvalue    
+  64    4  BADVAL    0
+BADVAL  =                 0xFF / Example of a syntax error, invalid keyvalue    
+  65    4  BADVAL   -2  (58)
+BADVAL  =              58 - 21 / Example of a syntax error, invalid keyvalue    
+  66    2  BADVAL    0
+BADVAL  =                J2000 / Example of a syntax error, invalid keyvalue    
+  67    2  BADVAL    0
+BADVAL  =              B1950.0 / Example of a syntax error, invalid keyvalue    
+  68    4  BADVAL    0
+BADVAL  =            180:00:00 / Example of a syntax error, invalid keyvalue    
+  69    2  BADVAL    0
+BADVAL  =                $9.99 / Example of a syntax error, invalid keyvalue    
+  70    4  BADCOMM  -2  (1)
+BADCOMM =                    1   Example of a syntax error, invalid keycomment  
+  71    4  BADCOMM  -2  (1)
+BADCOMM =                    1   1/8 = 0.125                                    
+ -73    8  END       8  "ILLEGAL"
 Illegal END keyrecord
- 344   16  DANGLE1   0
- Keyrecords following the END keyrecord should be ignored.
- 345   16  DANGLE2   0
-
- 346   16  DANGLE3   0
-
 
 
 Indexes of selected keywords:
 SIMPLE      1    0   -1   1    F
 BITPIX      1    1   -1   2  -32
 NAXIS       1    2   -1   2    0
-COMMENT   124    4  329   0
+COMMENT     3   45   47   0
 HISTORY     0   -1   -1
-           38    3  359   0
-END         2  339  341   8
+            8    3   71   0
+END         2   72   73   8
diff --git a/C/test/tlin.c b/C/test/tlin.c
index 81ec6ac..e12ec52 100644
--- a/C/test/tlin.c
+++ b/C/test/tlin.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tlin.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tlin.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 *  tlin tests the linear transformation routines supplied with WCSLIB.
@@ -66,7 +66,7 @@ int main()
 
   /* List status return messages. */
   printf("\nList of lin status return values:\n");
-  for (status = 1; status <= 3; status++) {
+  for (status = 1; status <= 6; status++) {
     printf("%4d: %s.\n", status, lin_errmsg[status]);
   }
 
diff --git a/C/test/tlog.c b/C/test/tlog.c
index 7c3a03d..73fce82 100644
--- a/C/test/tlog.c
+++ b/C/test/tlog.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tlog.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tlog.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 *   tlog tests the logarithmic coordinate transformation routines for closure.
diff --git a/C/test/tofits.c b/C/test/tofits.c
index 6480a50..96f1381 100644
--- a/C/test/tofits.c
+++ b/C/test/tofits.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tofits.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tofits.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tofits turns a list of FITS header keyrecords, one per line, into a proper
diff --git a/C/test/tpih1.c b/C/test/tpih1.c
index 27d18d0..7794494 100644
--- a/C/test/tpih1.c
+++ b/C/test/tpih1.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tpih1.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tpih1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tpih1 tests wcspih(), the WCS FITS parser for image headers, and wcsfix(),
@@ -130,7 +130,8 @@ int main()
    * reported. */
   relax = WCSHDR_all;
   ctrl  = -2;
-  fprintf(stderr, "\nIllegal-WCS header keyrecords rejected by wcspih():\n");
+  fprintf(stderr, "\nIllegal or extraneous WCS header keyrecords rejected "
+                  "by wcspih():\n");
   if ((status = wcspih(header, nkeyrec, relax, ctrl, &nreject, &nwcs,
                        &wcs))) {
     fprintf(stderr, "wcspih ERROR %d: %s.\n", status, wcs_errmsg[status]);
@@ -139,7 +140,7 @@ int main()
 
 
   /* List the remaining keyrecords. */
-  printf("\n\nNon-WCS header keyrecords not used by wcspih():\n");
+  printf("\n\nNon-WCS header keyrecords ignored by wcspih():\n");
   hptr = header;
   while (*hptr) {
     printf("%.80s\n", hptr);
diff --git a/C/test/tpih1.out b/C/test/tpih1.out
index b484afa..1129abf 100644
--- a/C/test/tpih1.out
+++ b/C/test/tpih1.out
@@ -1,81 +1,45 @@
 Testing WCSLIB parser for FITS image headers (tpih1.c)
 ------------------------------------------------------
 
-Found 198 non-comment header keyrecords.
+Found 151 non-comment header keyrecords.
 
 
-Illegal-WCS header keyrecords rejected by wcspih():
-CTYPE1  =                  0.0 / Illegal, CTYPEia must be string type           
-   1: A string value was expected.
-PV2_1   =                '0.0' / Illegal, PVi_ma must be numeric                
-   2: A floating-point value was expected.
-PV2_1    =                 0.0 / Illegal, "= " not in columns 9-10              
-   3: Invalid KEYWORD = VALUE syntax.
-EPOCH   = '2000.0'             / Illegal, EPOCH must be numeric                 
-   4: A floating-point value was expected.
-END                                                                             
-   5: Keyrecords following the END keyrecord were ignored.
+Illegal or extraneous WCS header keyrecords rejected by wcspih():
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system                 
+  Rejected (1), syntactically valid WCS keyrecord has no effect.
+LONPOLEX=                180.0 / [deg] Native longitude of the celestial pole   
+  Rejected (2), syntactically valid WCS keyrecord has no effect.
+LATPOLEX=               -999.0 / [deg] Native latitude of the celestial pole    
+  Rejected (3), syntactically valid WCS keyrecord has no effect.
+RESTFRQX=          1667.3590e6 / [Hz] OH maser line rest frequency              
+  Rejected (4), syntactically valid WCS keyrecord has no effect.
+RESTWAVX=           0.17980079 / [m] OH maser line rest wavelength              
+  Rejected (5), syntactically valid WCS keyrecord has no effect.
+EQUINOXX=               1950.0 / [yr] Equinox of equatorial coordinates         
+  Rejected (6), syntactically valid WCS keyrecord has no effect.
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system   
+  Rejected (7), syntactically valid WCS keyrecord has no effect.
+SPECSYSX= 'HELIOCEN'           / Reference frame of spectral coordinates        
+  Rejected (8), syntactically valid WCS keyrecord has no effect.
+SSYSOBSX= 'GEOCENTR'           / Reference frame of observation                 
+  Rejected (9), syntactically valid WCS keyrecord has no effect.
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift             
+  Rejected (10), syntactically valid WCS keyrecord has no effect.
+VELANGLX=                35.25 / Velocity orientation angle                     
+  Rejected (11), syntactically valid WCS keyrecord has no effect.
+VELOSYSX=              30000.0 / [m/s] Bary-topo velocity towards the source    
+  Rejected (12), syntactically valid WCS keyrecord has no effect.
+ZSOURCEX=               0.0456 / Redshift of the source                         
+  Rejected (13), syntactically valid WCS keyrecord has no effect.
 
 
-Non-WCS header keyrecords not used by wcspih():
+Non-WCS header keyrecords ignored by wcspih():
 SIMPLE  =                    F / Standards-conformant FITS format?  NO!         
 BITPIX  =                  -32 / IEEE single precision floating point           
 NAXIS   =                    0 / No image data                                  
 ALTRPIX =                  0.0 / Alternate reference pixel (not handled)        
 ALTRVAL =                  0.0 / Alternate reference value (not handled)        
-CRPIXELS=                  0.0 / Furphy, not CRPIXja                            
-PCATALOG=                  0.0 / Furphy, not PCi_ja                             
-CDELTA  =                  0.0 / Furphy, not CDELTia                            
-CDI_JA  =                  0.0 / Furphy, not CDi_ja                             
-CUNITARY=                  0.0 / Furphy, not CUNITia                            
-CTYPEXY =                  0.0 / Furphy, not CTYPEia                            
-CRVALUE =                  0.0 / Furphy, not CRVALia                            
-CNAME   =                  0.0 / Furphy, not CNAMEia                            
-PV1_1AL =                  0.0 / Furphy, not PVi_ma                             
-PV02_1  =                  0.0 / Furphy, not PVi_ma (leading zero on i)         
-PV2_01  =                  0.0 / Furphy, not PVi_ma (leading zero on m)         
-PSEUDO  =                  0.0 / Furphy, not PSi_ma                             
-EPOCHAL =                  0.0 / Furphy, not EPOCH                              
-VELREF1 =                  0.0 / Furphy, not VELREF                             
-NOVLSPEC=1                     / Not a valid value specifier (no " " in col. 10)
-INT32   =          00000012345 / Not a 64-bit integer                           
-INT32   =     -000000123456789 / Not a 64-bit integer                           
-INT32   =          -2147483648 / Not a 64-bit integer (INT_MIN)                 
-INT32   =           2147483647 / Not a 64-bit integer (INT_MAX)                 
-INT32   =    0000000000000000000000000000000000012345 / Not a very long integer 
-INT32   =       -000000000000000000000000000123456789 / Not a very long integer 
-INT64   =          -2147483649 / 64-bit integer (INT_MIN - 1)                   
-INT64   =          +2147483648 / 64-bit integer (INT_MAX + 1)                   
-INT64   =  +100000000000000000 / 64-bit integer                                 
-INT64   =  -876543210987654321 / 64-bit integer                                 
-INT64   = -9223372036854775808 / Not a very long integer (LONG_MIN)             
-INT64   = +9223372036854775807 / Not a very long integer (LONG_MAX)             
-INT64   = -000000000000000000000000000000876543210987654321 / 64-bit integer    
-INTVL   = -9223372036854775809 / Very long integer (LONG_MIN - 1)               
-INTVL   = +9223372036854775808 / Very long integer (LONG_MAX + 1)               
-INTVL   = -100000000000000000000000000000876543210987654321 / Very-long integer 
-INTVL   = +123456789012345678901234567890123456789012345678901234567890123456789
-INTVL   = 1234567890123456789012345678901234567890123456789012345678901234567890
-COMPLEX =            (137, -1) / An integer complex keyvalue                    
-COMPLEX =         (10e5, -0.1) / A floating point complex keyvalue              
-GOODSTR =     '"G''DAY"  '     / A valid string keyvalue                        
-BLANKS  =   '              '   / An all-blank string equals a single blank      
-LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
-CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
-CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment         
-CONTINUE      ' lazy dog'                                                       
-PI      =  3.14159265358929323 / [!?] is not a valid units specification        
-CONTINUE      'Not a valid string continuation'                                 
-BadKey  =                  111 / Example of a syntax error, invalid keyword     
-BADKEY! =                  222 / Example of a syntax error, invalid keyword     
-BAD KEY =                  333 / Example of a syntax error, invalid keyword     
-BADSTR  =                  BAD / Example of a syntax error, invalid keyvalue    
-BADSTR  =                "BAD" / Example of a syntax error, invalid keyvalue    
-BADSTR  =          'BAD' 'STR' / Example syntax error, invalid string keyvalue  
-BADFLT  =              49 + 94 / Example of a syntax error, invalid keyvalue    
-BADFLT  =                 1D99 / Example of a syntax error, invalid keyvalue    
-BADCOMM =                  999   Example of a syntax error, invalid keycomment  
-END     =            'ILLEGAL' / Illegal END keyrecord                          
+END                                                                             
 
 
 Found 3 alternate coordinate descriptions with indices:
@@ -86,16 +50,16 @@ Found 3 alternate coordinate descriptions with indices:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
       crval: 0x<address>
-               150         -30           1.3945e+09   1         
+               150.00      -30.000       1.3945e+09   1.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -113,19 +77,19 @@ Found 3 alternate coordinate descriptions with indices:
         npv: 3
      npvmax: 3
          pv: 0x<address>
-               0   0   0         
-               0   1   0         
-               0   2   0         
+               0   0   0.0000    
+               0   1   0.0000    
+               0   2   0.0000    
         nps: 0
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            15           0            0         
+               0.0000       15.000       0.0000       0.0000    
      altlin: 4
      velref: 258
         alt: ' '
@@ -149,7 +113,7 @@ Found 3 alternate coordinate descriptions with indices:
     velosys: UNDEFINED
     ssyssrc: UNDEFINED
     zsource: UNDEFINED
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -194,38 +158,46 @@ Found 3 alternate coordinate descriptions with indices:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.096593    -0.025882    -0.0000      -0.0000    
+piximg[1][]:  -0.025882     0.096593     0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       62500.       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -9.6593      -2.5882      -0.0000      -0.0000    
+imgpix[1][]:  -2.5882       9.6593       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.6000e-05   0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.096593    -0.025882    -0           -0         
-piximg[1][]:  -0.025882     0.096593     0            0         
-piximg[2][]:   0            0            62500        0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -9.6593      -2.5882      -0           -0         
-imgpix[1][]:  -2.5882       9.6593       0            0         
-imgpix[2][]:   0            0            1.6e-05      0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           180         -30        
-       prj: (see below)
-     euler:   150          120          180         -0.5          0.86603   
+        ref:   150.00      -30.000       180.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       180.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -250,8 +222,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -265,7 +237,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
@@ -277,16 +249,16 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
       crval: 0x<address>
-               150         -30           0.21498     -2000      
+               150.00      -30.000       0.21498     -2000.0    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -304,24 +276,24 @@ imgpix[3][]:   0            0            0            1
         npv: 7
      npvmax: 7
          pv: 0x<address>
-               1   1   0         
-               1   2   90        
-               1   3   195       
-               1   4  -30        
-               2   1   0         
-               2   2   180       
-               2   3   45        
+               1   1   0.0000    
+               1   2   90.000    
+               1   3   195.00    
+               1   4  -30.000    
+               2   1   0.0000    
+               2   2   180.00    
+               2   3   45.000    
         nps: 1
      npsmax: 1
          ps: 0x<address>
                4   0  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: 'A'
@@ -335,9 +307,9 @@ imgpix[3][]:   0            0            0            1
              "Wavelength"
              "Time offset"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      1e-11       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-11  UNDEFINED   
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      1e-12       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-12  UNDEFINED   
     radesys: "FK5"
     equinox: 2000.000000
     specsys: "BARYCENT"
@@ -345,7 +317,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -390,38 +362,46 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000    -0.0000      -0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000       0.0000    
+piximg[2][]:  -0.0000      -0.0000      -9.6353e-06  -0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -8.6603      -5.0000      -0.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -1.0379e+05  -0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05        -0           -0         
-piximg[1][]:  -0.05         0.086603     0            0         
-piximg[2][]:  -0           -0           -9.6353e-06  -0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -8.6603      -5           -0           -0         
-imgpix[1][]:  -5            8.6603       0            0         
-imgpix[2][]:  -0           -0           -1.0379e+05  -0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -431,7 +411,7 @@ imgpix[3][]:   0            0            0            1
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              0            180          45        
+              0.0000       180.00       45.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -447,8 +427,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453    -0           -0            1           -0         
-              -0            57.296      -1            0            0         
+        w[]:   0.017453    -0.0000      -0.0000       1.0000      -0.0000    
+              -0.0000       57.296      -1.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -458,11 +438,11 @@ imgpix[3][]:   0            0            0            1
        flag: 110
        type: "WAVE"
        code: "F2W"
-      crval:  0.215     
+      crval:  0.21498   
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0            1.395e+09   -6.487e+09   (remainder unused)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -474,15 +454,15 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
       crval: 0x<address>
-               150         -30           0.018577  
+               150.00      -30.000       0.018577  
       cunit: 0x<address>
              "deg"
              "deg"
@@ -498,7 +478,7 @@ imgpix[3][]:   0            0            0            1
         npv: 10
      npvmax: 10
          pv: 0x<address>
-               2   1   1         
+               2   1   1.0000    
                2   3   0.33333   
                2   5   0.13333   
                2   7   0.053968  
@@ -512,11 +492,11 @@ imgpix[3][]:   0            0            0            1
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:  -0.086603    -0.05         0         
-    cd[1][]:  -0.05         0.086603     0         
-    cd[2][]:   0            0           -4.5652e-05
+    cd[0][]:  -0.086603    -0.050000     0.0000    
+    cd[1][]:  -0.050000     0.086603     0.0000    
+    cd[2][]:   0.0000       0.0000      -4.5652e-05
       crota: 0x<address>
-               0            30           0         
+               0.0000       30.000       0.0000    
      altlin: 6
      velref: 258
         alt: 'I'
@@ -529,9 +509,9 @@ imgpix[3][]:   0            0            0            1
              "Declination (J2000)"
              "Redshift"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      5e-11     
+             UNDEFINED     UNDEFINED      5.0000e-11
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      5e-12     
+             UNDEFINED     UNDEFINED      5.0000e-12
     radesys: "FK5"
     equinox: 2000.000000
     specsys: UNDEFINED
@@ -539,7 +519,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -584,35 +564,43 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000     0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000    
+piximg[2][]:   0.0000       0.0000      -4.5652e-05
+imgpix[0][]:  -8.6603      -5.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -21905.    
+    i_naxis: 3
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05         0         
-piximg[1][]:  -0.05         0.086603     0         
-piximg[2][]:   0            0           -4.5652e-05
-imgpix[0][]:  -8.6603      -5           -0         
-imgpix[1][]:  -5            8.6603       0         
-imgpix[2][]:  -0           -0           -21905     
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -621,13 +609,13 @@ imgpix[2][]:  -0           -0           -21905
        flag: 107
        code: "ZPN"
          r0: 57.295780
-         pv:  0         
-              1            0            0.33333      0            0.13333   
-              0            0.053968     0            0.021869     0         
-              0.0088632    0            0.0035921    0            0.0014558 
-              0            0.00059003   0            0.00023913   0         
-              0            0            0            0            0         
-              0            0            0            0         
+         pv:   0.0000    
+              1.0000       0.0000       0.33333      0.0000       0.13333   
+              0.0000       0.053968     0.0000       0.021869     0.0000    
+              0.0088632    0.0000       0.0035921    0.0000       0.0014558 
+              0.0000       0.00059003   0.0000       0.00023913   0.0000    
+              0.0000       0.0000       0.0000       0.0000       0.0000    
+              0.0000       0.0000       0.0000       0.0000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -643,8 +631,8 @@ imgpix[2][]:  -0           -0           -21905
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   3.1416       8.9006e+05   0            0            0         
-               0            0            0            0            0         
+        w[]:   3.1416       8.9006e+05   0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 19
      prjx2s: 0x<address>
@@ -654,11 +642,11 @@ imgpix[2][]:  -0           -0           -21905
        flag: 112
        type: "ZOPT"
        code: "F2W"
-      crval:  0.01858   
+      crval:  0.018577  
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0.2111       1.394e+09   -1.369e+09   (remainder unused)
+          w:   0.21106      1.3945e+09  -1.3691e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
diff --git a/C/test/tpih2.c b/C/test/tpih2.c
index 7328539..c4b529f 100644
--- a/C/test/tpih2.c
+++ b/C/test/tpih2.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tpih2.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tpih2.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tpih2 tests wcspih(), the WCS FITS parser for image headers, by reading a
diff --git a/C/test/tprj1.c b/C/test/tprj1.c
index 300e5bc..36320e1 100644
--- a/C/test/tprj1.c
+++ b/C/test/tprj1.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tprj1.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tprj1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tproj1 tests spherical projections for closure.
diff --git a/C/test/tprj2.c b/C/test/tprj2.c
index 07f78c7..c40e8c6 100644
--- a/C/test/tprj2.c
+++ b/C/test/tprj2.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tprj2.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tprj2.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tproj2 tests projection routines by plotting test graticules using PGPLOT.
diff --git a/C/test/tspc.c b/C/test/tspc.c
index f7ad385..7d6d5b9 100644
--- a/C/test/tspc.c
+++ b/C/test/tspc.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tspc.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tspc.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tspc tests the spectral transformation driver routines for closure.
diff --git a/C/test/tspcaips.c b/C/test/tspcaips.c
index 1260024..27a475d 100644
--- a/C/test/tspcaips.c
+++ b/C/test/tspcaips.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tspcaips.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tspcaips.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tspcaips does a quick test of spcaips().  Not part of the official test
diff --git a/C/test/tspcspxe.c b/C/test/tspcspxe.c
index 21a0d46..0436331 100644
--- a/C/test/tspcspxe.c
+++ b/C/test/tspcspxe.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,11 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tspcspxe.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tspcspxe.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
-* tspcspxe tests function spcspxe().  Not part of the official test suite.
+* tspcspxe tests function spcspxe() by deliberately generating an error.
+* Not part of the official test suite.
 *
 *---------------------------------------------------------------------------*/
 
@@ -43,15 +44,17 @@ int main()
 
   wcserr_enable(1);
 
-  spcspxe("WAVE-F2W", 0.0, 1.420e9, 0.0, &ptype, &xtype, &restreq, &crvalX,
-          &dXdS, &(err));
-
-  printf(" P-type: %c\n", ptype);
-  printf(" X-type: %c\n", xtype);
-  printf("restreq: %d\n", restreq);
-  printf(" crvalX: %f\n", crvalX);
-  printf("   dXdS: %f\n", dXdS);
-  wcserr_prt(err, '\0');
+  if (spcspxe("WAVE-F2W", 0.0, 1.420e9, 0.0, &ptype, &xtype, &restreq,
+        &crvalX, &dXdS, &(err))) {
+    wcserr_prt(err, '\0');
+
+  } else {
+    printf(" P-type: %c\n", ptype);
+    printf(" X-type: %c\n", xtype);
+    printf("restreq: %d\n", restreq);
+    printf(" crvalX: %f\n", crvalX);
+    printf("   dXdS: %f\n", dXdS);
+  }
 
   return 0;
 }
diff --git a/C/test/tspctrne.c b/C/test/tspctrne.c
index 0de141b..63464f9 100644
--- a/C/test/tspctrne.c
+++ b/C/test/tspctrne.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tspctrne.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tspctrne.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tspctrne does a quick test of spctrne().  Not part of the official test
diff --git a/C/test/tsph.c b/C/test/tsph.c
index a58aa28..06fc369 100644
--- a/C/test/tsph.c
+++ b/C/test/tsph.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tsph.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tsph.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tsph tests the spherical coordinate transformation routines for closure.
diff --git a/C/test/tsphdpa.c b/C/test/tsphdpa.c
index 6affc2a..296855a 100644
--- a/C/test/tsphdpa.c
+++ b/C/test/tsphdpa.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tsphdpa.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tsphdpa.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tsphdpa tests sphdpa().
diff --git a/C/test/tspx.c b/C/test/tspx.c
index 559b918..b013654 100644
--- a/C/test/tspx.c
+++ b/C/test/tspx.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tspx.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tspx.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tspx tests the spectral transformation routines for closure.
diff --git a/C/test/ttab1.c b/C/test/ttab1.c
index e5ea6e9..8ef84b5 100644
--- a/C/test/ttab1.c
+++ b/C/test/ttab1.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: ttab1.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: ttab1.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * ttab1 tests the -TAB routines for closure.
diff --git a/C/test/ttab2.c b/C/test/ttab2.c
index 05ea6cc..abe6522 100644
--- a/C/test/ttab2.c
+++ b/C/test/ttab2.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: ttab2.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: ttab2.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * ttab2 tests the -TAB routines using PGPLOT for graphical display.  It
diff --git a/C/test/ttab3.c b/C/test/ttab3.c
index 6128506..64163a6 100644
--- a/C/test/ttab3.c
+++ b/C/test/ttab3.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: ttab3.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: ttab3.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * ttab3 tests the -TAB routines using PGPLOT for graphical display.  It
diff --git a/C/test/tunits.c b/C/test/tunits.c
index c655539..2bcd546 100644
--- a/C/test/tunits.c
+++ b/C/test/tunits.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tunits.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: tunits.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * tunits tests wcsulex(), wcsutrn(), and wcsunits() the FITS units
diff --git a/C/test/twcs.c b/C/test/twcs.c
index f5a4d24..05bc411 100644
--- a/C/test/twcs.c
+++ b/C/test/twcs.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO,
      and: Michael Droetboom, Space Telescope Science Institute
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcs.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcs.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcs tests wcss2p() and wcsp2s() for closure on an oblique 2-D slice through
@@ -76,13 +76,16 @@ int main()
 #define NELEM 9
 
   char   ok[] = "", mismatch[] = " (WARNING, mismatch)", *s;
-  int    i, k, lat, lng, nFail1 = 0, nFail2 = 0, stat[361], status;
+  int    i, k, lat, lng, nFail1 = 0, nFail2 = 0, stat[361], status, ver[3];
   double freq, img[361][NELEM], lat1, lng1, phi[361], pixel1[361][NELEM],
          pixel2[361][NELEM], r, resid, residmax, theta[361], time,
          world1[361][NELEM], world2[361][NELEM];
   struct wcsprm *wcs;
 
 
+  printf("WCSLIB version number: %s", wcslib_version(ver));
+  printf(" (%d,%d,%d)\n\n", ver[0], ver[1], ver[2]);
+
   printf("Testing closure of WCSLIB world coordinate transformation "
          "routines (twcs.c)\n"
          "----------------------------------------------------------"
@@ -115,6 +118,10 @@ int main()
   printf("         celprm:%5"MODZ"u /%4"MODZ"u%s\n", sizeof(struct celprm),
          CELLEN, s);
 
+  s = (sizeof(struct disprm) == sizeof(int)*DISLEN) ? ok : mismatch;
+  printf("         disprm:%5"MODZ"u /%4"MODZ"u%s\n", sizeof(struct disprm),
+         DISLEN, s);
+
   s = (sizeof(struct fitskey) == sizeof(int)*KEYLEN) ? ok : mismatch;
   printf("        fitskey:%5"MODZ"u /%4"MODZ"u%s\n", sizeof(struct fitskey),
          KEYLEN, s);
@@ -431,5 +438,7 @@ int test_errors()
   nFail += check_error(&wcs, status, WCSERR_BAD_CTYPE,
              "Unmatched celestial axes");
 
+  wcsfree(&wcs);
+
   return nFail;
 }
diff --git a/C/test/twcs_locale.c b/C/test/twcs_locale.c
index f2127fa..8a56bb2 100644
--- a/C/test/twcs_locale.c
+++ b/C/test/twcs_locale.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
   Author: Michael Droetboom, Space Telescope Science Institute,
      and: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcs_locale.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcs_locale.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcs_locale tests wcslib's handling of locales, such as fr_FR, that use a
@@ -33,6 +33,7 @@
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <locale.h>
 
 #include "wcs.h"
@@ -42,46 +43,56 @@
 
 #define HEADER_SIZE 36000
 
-int main(int argc, char** argv)
+int main()
+
 {
-  struct wcsprm *w;
+  struct wcsprm *wcs, *wcsp;
   char header[HEADER_SIZE];
   size_t real_size;
   FILE *fd;
   int nreject, nwcs;
-  int status;
   int nkeyrec;
   char *gen_header;
 
   wcserr_enable(1);
   wcsprintf_set(stderr);
 
+  if ((fd = fopen("pih.fits", "r")) == 0x0) {
+    wcsprintf("\nFailed to open pih.fits, abort.\n");
+    return 1;
+  }
+
   setlocale(LC_NUMERIC, "fr_FR");
-  wcsprintf("Parsing xmmlss.hdr with locale set to fr_FR.\n");
+  wcsprintf("Parsing pih.fits with locale set to fr_FR.\n");
 
-  fd = fopen("test/xmmlss.hdr", "r");
   real_size = fread(header, 1, HEADER_SIZE, fd);
   fclose(fd);
 
-  if (wcspih(header, real_size / 80, WCSHDR_all, 0, &nreject, &nwcs, &w)) {
-    wcserr_prt(w->err, 0x0);
+  if (wcspih(header, real_size / 80, WCSHDR_all, 0, &nreject, &nwcs, &wcs)) {
+    wcsperr(wcs, 0x0);
     return 1;
   }
 
-  if (wcsset(w)) {
-    wcserr_prt(w->err, 0x0);
+  /* Choose one of the three WCS in this header. */
+  wcsp = wcs + 1;
+
+  if (wcsset(wcsp)) {
+    wcsperr(wcsp, 0x0);
     return 1;
   }
 
   wcsprintf("\nOutput from wcsprt() with this locale\n"
               "-------------------------------------\n");
-  wcsprt(w);
+  wcsprt(wcsp);
   wcsprintf("\n");
 
   wcsprintf("Output from wcshdo() with the same locale\n"
             "-----------------------------------------\n");
-  wcshdo(1, w, &nkeyrec, &gen_header);
+  wcshdo(1, wcsp, &nkeyrec, &gen_header);
   printf("%s", gen_header);
 
+  free(gen_header);
+  wcsvfree(&nwcs, &wcs);
+
   return 0;
 }
diff --git a/C/test/twcscompare.c b/C/test/twcscompare.c
index d1358f2..0b50d47 100644
--- a/C/test/twcscompare.c
+++ b/C/test/twcscompare.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO,
      and: Michael Droetboom, Space Telescope Science Institute
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcscompare.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcscompare.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * Test wcscompare().
@@ -51,8 +51,8 @@ int main()
   wcsini(1, 2, &a);
   wcsini(1, 2, &b);
 
-  if (status = wcscompare(0, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(0, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (!equal) {
     printf("FAIL: Equal wcsprms tested unequal.\n");
@@ -61,16 +61,16 @@ int main()
 
   strncpy(b.dateobs, "2014-01-01T00:00:00", 72);
 
-  if (status = wcscompare(0, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(0, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (equal) {
     printf("FAIL: Unequal wcsprms tested equal.\n");
     return 1;
   }
 
-  if (status = wcscompare(WCSCOMPARE_ANCILLARY, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(WCSCOMPARE_ANCILLARY, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (!equal) {
     printf("FAIL: Ancillary keyword not ignored.\n");
@@ -80,8 +80,8 @@ int main()
   b.crpix[0] = 12.5;
   b.crpix[1] = 12.5;
 
-  if (status = wcscompare(WCSCOMPARE_ANCILLARY, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(WCSCOMPARE_ANCILLARY, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (equal) {
     printf("FAIL: Unequal wcsprms tested equal.\n");
@@ -89,8 +89,8 @@ int main()
   }
 
   cmp = WCSCOMPARE_ANCILLARY | WCSCOMPARE_TILING;
-  if (status = wcscompare(cmp, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(cmp, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (equal) {
     printf("FAIL: Non-integral translation equates as a tiling.\n");
@@ -98,8 +98,8 @@ int main()
   }
 
   cmp = WCSCOMPARE_ANCILLARY | WCSCOMPARE_CRPIX;
-  if (status = wcscompare(cmp, 0.0, &a, &b, &equal)) {
-    printf("wcscompare ERROR %d: %d.\n", status, wcs_errmsg[status]);
+  if ((status = wcscompare(cmp, 0.0, &a, &b, &equal))) {
+    printf("wcscompare ERROR %d: %s.\n", status, wcs_errmsg[status]);
     return 1;
   } else if (!equal) {
     printf("FAIL: Translation not ignored.\n");
diff --git a/C/test/twcsfix.c b/C/test/twcsfix.c
index c463ba1..f7bf968 100644
--- a/C/test/twcsfix.c
+++ b/C/test/twcsfix.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcsfix.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcsfix.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcsfix tests the translation routines for non-standard WCS keyvalues, the
@@ -110,7 +110,7 @@ int main()
   /* Extract information from the FITS header. */
   if (wcsset(&wcs)) {
     wcsprintf("\n");
-    wcserr_prt(wcs.err, 0x0);
+    wcsperr(&wcs, 0x0);
   }
 
   wcsprintf("\n");
@@ -122,12 +122,12 @@ int main()
   strcpy(ctypeS, "FREQ-???");
   i = -1;
   if (wcssptr(&wcs, &i, ctypeS)) {
-    wcserr_prt(wcs.err, 0x0);
+    wcsperr(&wcs, 0x0);
     return 1;
   }
 
   if (wcsset(&wcs)) {
-    wcserr_prt(wcs.err, 0x0);
+    wcsperr(&wcs, 0x0);
     return 1;
   }
 
diff --git a/C/test/twcsfix.out b/C/test/twcsfix.out
index aa660c6..440b581 100644
--- a/C/test/twcsfix.out
+++ b/C/test/twcsfix.out
@@ -3,25 +3,25 @@ Testing WCSLIB translator for non-standard usage (twcsfix.c)
 
 wcsfix status returns: (-1, 0, 0, 0, 0, -1)
 
-INFORMATIVE message from datfix() at line 402 of file wcsfix.c:
+INFORMATIVE message from datfix() at line 429 of file wcsfix.c:
 Changed '1957/02/15 01:10:00' to '1957-02-15T01:10:00'.
 
-INFORMATIVE message from unitfix() at line 438 of file wcsfix.c:
+INFORMATIVE message from unitfix() at line 465 of file wcsfix.c:
 Changed units: 'ARCSEC' -> 'arcsec', 'ARCSEC' -> 'arcsec', 'KM/SEC' -> 'km/s'.
 
-INFORMATIVE message from spcfix() at line 485 of file wcsfix.c:
+INFORMATIVE message from spcfix() at line 512 of file wcsfix.c:
 Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
 
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778   19687     
+              -0.00027778   0.00027778   19687.    
       crval: 0x<address>
                265.62      -28.988       5.5693e+06
       cunit: 0x<address>
@@ -39,18 +39,18 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
         npv: 3
      npvmax: 3
          pv: 0x<address>
-              -1  -1  -1         
-               2   1   0         
+              -1  -1  -1.0000    
+               2   1   0.0000    
                2   2  -1.8049    
         nps: 0
      npsmax: 8
          ps: 0x<address>
          cd: 0x<address>
-    cd[0][]:   0            0            0         
-    cd[1][]:   0            0            0         
-    cd[2][]:   0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0         
+               0.0000       0.0000       0.0000    
      altlin: 0
      velref: 2
         alt: ' '
@@ -118,31 +118,39 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778   19687     
-      unity: 1
-        err: 0x0
+              -0.00027778   0.00027778   19687.    
+     dispre: 0x0
+     disseq: 0x0
      piximg: (nil)
      imgpix: (nil)
+    i_naxis: 0
+      unity: 1
+     affine: 0
+     simple: 0
+        err: 0x0
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   265.62      -28.988       180         -28.988    
-       prj: (see below)
-     euler:   265.62       118.99       180         -0.48463      0.87472   
+        ref:   265.62      -28.988       180.00      -28.988    
+        prj: (see below)
+      euler:   265.62       118.99       180.00      -0.48463      0.87472   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -152,7 +160,7 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        code: "SIN"
          r0: 57.295780
          pv: (0)
-              0           -1.8049    
+              0.0000      -1.8049    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -168,8 +176,8 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     3.2577       4.2577       2.2577       0         
-               0            0            0            0            0         
+        w[]:   0.017453     3.2577       4.2577       2.2577       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -179,11 +187,11 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        flag: 111
        type: "VOPT"
        code: "F2W"
-      crval:  5.569e+06 
+      crval:  5.5693e+06
     restfrq: 1420405750.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0.2111       1.395e+09   -4.567       (remainder unused)
+          w:   0.21106      1.3945e+09  -4.5667      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -195,13 +203,13 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778  -89906     
+              -0.00027778   0.00027778  -89906.    
       crval: 0x<address>
                265.62      -28.988       1.3945e+09
       cunit: 0x<address>
@@ -219,18 +227,18 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
         npv: 3
      npvmax: 3
          pv: 0x<address>
-              -1  -1  -1         
-               2   1   0         
+              -1  -1  -1.0000    
+               2   1   0.0000    
                2   2  -1.8049    
         nps: 0
      npsmax: 8
          ps: 0x<address>
          cd: 0x<address>
-    cd[0][]:   0            0            0         
-    cd[1][]:   0            0            0         
-    cd[2][]:   0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0         
+               0.0000       0.0000       0.0000    
      altlin: 0
      velref: 2
         alt: ' '
@@ -298,31 +306,39 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778  -89906     
-      unity: 1
-        err: 0x0
+              -0.00027778   0.00027778  -89906.    
+     dispre: 0x0
+     disseq: 0x0
      piximg: (nil)
      imgpix: (nil)
+    i_naxis: 0
+      unity: 1
+     affine: 0
+     simple: 0
+        err: 0x0
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   265.62      -28.988       180         -28.988    
-       prj: (see below)
-     euler:   265.62       118.99       180         -0.48463      0.87472   
+        ref:   265.62      -28.988       180.00      -28.988    
+        prj: (see below)
+      euler:   265.62       118.99       180.00      -0.48463      0.87472   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -332,7 +348,7 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
        code: "SIN"
          r0: 57.295780
          pv: (0)
-              0           -1.8049    
+              0.0000      -1.8049    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -348,8 +364,8 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     3.2577       4.2577       2.2577       0         
-               0            0            0            0            0         
+        w[]:   0.017453     3.2577       4.2577       2.2577       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -363,7 +379,7 @@ Changed CTYPE3 from 'FELO-HEL' to 'VOPT-F2W'.
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/C/test/twcshdr.c b/C/test/twcshdr.c
index 5b6da71..9b3f9b1 100644
--- a/C/test/twcshdr.c
+++ b/C/test/twcshdr.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcshdr.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcshdr.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcshdr illustrates the steps required to read WCS information (including
diff --git a/C/test/twcslint b/C/test/twcslint
new file mode 100644
index 0000000..83721a5
--- /dev/null
+++ b/C/test/twcslint
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+  exec 1>twcslint.out 2>&1
+
+  echo "Testing WCSLIB syntax checker for FITS WCS keyrecords (twcslint)"
+  echo "----------------------------------------------------------------"
+  ../utils/wcsware -l -p -v wcslint.fits
diff --git a/C/test/twcslint.out b/C/test/twcslint.out
new file mode 100644
index 0000000..d51995c
--- /dev/null
+++ b/C/test/twcslint.out
@@ -0,0 +1,705 @@
+Testing WCSLIB syntax checker for FITS WCS keyrecords (twcslint)
+----------------------------------------------------------------
+Found one coordinate representation.
+SIMPLE  =                    F / Standards-conformant FITS format?  NO!         
+  Not a recognized WCS keyword.
+BITPIX  =                  -32 / IEEE single precision floating point           
+  Not a recognized WCS keyword.
+NAXIS   =                    0 / No image data                                  
+  Not a recognized WCS keyword.
+WCSAXESA=                    4 / Four coordinate axes                           
+  Accepted (1) as a valid WCS keyrecord.
+WCSNAMEA= 'wcslint test header'                                                 
+  Accepted (2) as a valid WCS keyrecord.
+CRPIX1A =                513.0 / Pixel coordinate of reference point            
+  Accepted (3) as a valid WCS keyrecord.
+CRPIX2A =                513.0 / Pixel coordinate of reference point            
+  Accepted (4) as a valid WCS keyrecord.
+CRPIX3A =               1025.0 / Pixel coordinate of reference point            
+  Accepted (5) as a valid WCS keyrecord.
+CRPIX4A =                  1.0 / Pixel coordinate of reference point            
+  Accepted (6) as a valid WCS keyrecord.
+PC1_1A  =          0.866025404 / Linear transformation matrix element           
+  Accepted (7) as a valid WCS keyrecord.
+PC1_2A  =          0.500000000 / Linear transformation matrix element           
+  Accepted (8) as a valid WCS keyrecord.
+PC2_1A  =         -0.500000000 / Linear transformation matrix element           
+  Accepted (9) as a valid WCS keyrecord.
+PC2_2A  =          0.866025404 / Linear transformation matrix element           
+  Accepted (10) as a valid WCS keyrecord.
+CDELT1A =                -0.10 / [deg] x-scale                                  
+  Accepted (11) as a valid WCS keyrecord.
+CUNIT1A = 'deg'                / Degree units are required                      
+  Accepted (12) as a valid WCS keyrecord.
+CTYPE1A = 'RA---SZP'           / Right ascension in slant zenithal projection   
+  Accepted (13) as a valid WCS keyrecord.
+CRVAL1A =                150.0 / [deg] Right ascension at the reference point   
+  Accepted (14) as a valid WCS keyrecord.
+CNAME1A = 'Right ascension (J2000)' / Axis name for labelling purposes          
+  Accepted (15) as a valid WCS keyrecord.
+CDELT2A =                 0.10 / [deg] y-scale                                  
+  Accepted (16) as a valid WCS keyrecord.
+CUNIT2A = 'deg'                / Degree units are required                      
+  Accepted (17) as a valid WCS keyrecord.
+CTYPE2A = 'DEC--SZP'           / Declination in a slant zenithal projection     
+  Accepted (18) as a valid WCS keyrecord.
+CRVAL2A =                -30.0 / [deg] Declination at the reference point       
+  Accepted (19) as a valid WCS keyrecord.
+CNAME2A = 'Declination (J2000)' / Axis name for labelling purposes              
+  Accepted (20) as a valid WCS keyrecord.
+PV1_1A  =                  0.0 / [deg] Native longitude of the reference point  
+  Accepted (21) as a valid WCS keyrecord.
+PV1_2A  =                 90.0 / [deg] Native latitude  of the reference point  
+  Accepted (22) as a valid WCS keyrecord.
+PV1_3A  =                195.0 / [deg] LONPOLEa by another name (precedence)    
+  Accepted (23) as a valid WCS keyrecord.
+PV1_4A  =                999.0 / [deg] LATPOLEa by another name (precedence)    
+  Accepted (24) as a valid WCS keyrecord.
+PV2_1A  =                  0.0 / SZP distance, in spherical radii               
+  Accepted (25) as a valid WCS keyrecord.
+PV2_2A  =                180.0 / [deg] SZP P-longitude                          
+  Accepted (26) as a valid WCS keyrecord.
+PV2_3A  =                 45.0 / [deg] SZP P-latitude                           
+  Accepted (27) as a valid WCS keyrecord.
+LONPOLEA=                195.0 / [deg] Native longitude of the NCP              
+  Accepted (28) as a valid WCS keyrecord.
+LATPOLEA=                999.0 / [deg] Native latitude of the NCP               
+  Accepted (29) as a valid WCS keyrecord.
+RADESYSA= 'FK5'                / Mean equatorial coordinates, IAU 1984 system   
+  Accepted (30) as a valid WCS keyrecord.
+EQUINOXA=               2000.0 / [yr] Equinox of equatorial coordinates         
+  Accepted (31) as a valid WCS keyrecord.
+CDELT3A =      -9.635265432e-6 / [m] Wavelength scale                           
+  Accepted (32) as a valid WCS keyrecord.
+CUNIT3A = 'm'                  / Wavelength units                               
+  Accepted (33) as a valid WCS keyrecord.
+CTYPE3A = 'WAVE-F2W'           / Frequency axis expressed as wavelength         
+  Accepted (34) as a valid WCS keyrecord.
+CRVAL3A =          0.214982042 / [m] Reference wavelength                       
+  Accepted (35) as a valid WCS keyrecord.
+CNAME3A = 'Wavelength'         / Axis name for labelling purposes               
+  Accepted (36) as a valid WCS keyrecord.
+CRDER3A =              1.0e-11 / [m] Wavelength calibration, random error       
+  Accepted (37) as a valid WCS keyrecord.
+CSYER3A =              1.0e-12 / [m] Wavelength calibration, systematic error   
+  Accepted (38) as a valid WCS keyrecord.
+RESTFRQA=         1.42040575e9 / [Hz] HI rest frequency                         
+  Accepted (39) as a valid WCS keyrecord.
+RESTWAVA=          0.211061141 / [m] HI rest wavelength                         
+  Accepted (40) as a valid WCS keyrecord.
+SPECSYSA= 'BARYCENT'           / Reference frame of spectral coordinates        
+  Accepted (41) as a valid WCS keyrecord.
+SSYSOBSA= 'TOPOCENT'           / Reference frame of observation                 
+  Accepted (42) as a valid WCS keyrecord.
+VELOSYSA=               1500.0 / [m/s] Bary-topo velocity towards the source    
+  Accepted (43) as a valid WCS keyrecord.
+SSYSSRCA= 'LSRK'               / Reference frame of source redshift             
+  Accepted (44) as a valid WCS keyrecord.
+ZSOURCEA=               0.0025 / Redshift of the source                         
+  Accepted (45) as a valid WCS keyrecord.
+CDELT4A =                  1.0 / [s] Time scale                                 
+  Accepted (46) as a valid WCS keyrecord.
+CUNIT4A = 's'                  / Time units                                     
+  Accepted (47) as a valid WCS keyrecord.
+CTYPE4A = 'TIME''x'''          / String value and comment containing quotes (') 
+  Accepted (48) as a valid WCS keyrecord.
+CRVAL4A =                 -2e3 / [s] Time at the reference point                
+  Accepted (49) as a valid WCS keyrecord.
+CNAME4A = 'Time offset'        / Axis name for labelling purposes               
+  Accepted (50) as a valid WCS keyrecord.
+PS4_0A  = 'UTC'                / Time measurement system                        
+  Accepted (51) as a valid WCS keyrecord.
+DATE-OBS= '1957-02-14T15:00:00'/ UTC date corresponding to MJD-OBS              
+  Accepted (52) as a valid WCS keyrecord.
+DATE-AVG= '1957-02-14T16:48:00'/ UTC date corresponding to MJD-AVG              
+  Accepted (53) as a valid WCS keyrecord.
+MJD-OBS =            35883.625 / [d] MJD at start of observation (UTC)          
+  Accepted (54) as a valid WCS keyrecord.
+MJD-AVG =            35883.700 / [d] MJD mid-observation time (UTC)             
+  Accepted (55) as a valid WCS keyrecord.
+OBSGEO-X=           -4554231.9 / [m] ITRF observatory coordinates               
+  Accepted (56) as a valid WCS keyrecord.
+OBSGEO-Y=            2816758.3 /                                                
+  Accepted (57) as a valid WCS keyrecord.
+OBSGEO-Z=           -3454035.9                                                  
+  Accepted (58) as a valid WCS keyrecord.
+PV4_1A  =                                                                    1.0
+  Accepted (59) as a valid WCS keyrecord.
+PV4_2A  =                                                                   2.0/
+  Accepted (60) as a valid WCS keyrecord.
+PV4_3A  =                                                                  3.0 /
+  Accepted (61) as a valid WCS keyrecord.
+PV4_4A  =                                                                 4.0 / 
+  Accepted (62) as a valid WCS keyrecord.
+PS4_1A  =                                                                  'ABC'
+  Accepted (63) as a valid WCS keyrecord.
+PS4_2A  =                                                                 'DEF'/
+  Accepted (64) as a valid WCS keyrecord.
+PS4_3A  =                                                                'GHI' /
+  Accepted (65) as a valid WCS keyrecord.
+PS4_4A  =                                                               'JKL' / 
+  Accepted (66) as a valid WCS keyrecord.
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system                 
+  Rejected (1), syntactically valid WCS keyrecord has no effect.
+LONPOLEX=                180.0 / [deg] Native longitude of the NCP              
+  Rejected (2), syntactically valid WCS keyrecord has no effect.
+LATPOLEX=                999.0 / [deg] Native latitude of the NCP               
+  Rejected (3), syntactically valid WCS keyrecord has no effect.
+RESTFRQX=         1.42040575e9 / [Hz] HI rest frequency                         
+  Rejected (4), syntactically valid WCS keyrecord has no effect.
+RESTWAVX=          0.211061141 / [m] HI rest wavelength                         
+  Rejected (5), syntactically valid WCS keyrecord has no effect.
+EQUINOXX=               2000.0 / [yr] Equinox of equatorial coordinates         
+  Rejected (6), syntactically valid WCS keyrecord has no effect.
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system   
+  Rejected (7), syntactically valid WCS keyrecord has no effect.
+SPECSYSX= 'BARYCENT'           / Reference frame of spectral coordinates        
+  Rejected (8), syntactically valid WCS keyrecord has no effect.
+SSYSOBSX= 'TOPOCENT'           / Reference frame of observation                 
+  Rejected (9), syntactically valid WCS keyrecord has no effect.
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift             
+  Rejected (10), syntactically valid WCS keyrecord has no effect.
+VELANGLX=                35.25 / Velocity orientation angle                     
+  Rejected (11), syntactically valid WCS keyrecord has no effect.
+VELOSYSX=               1500.0 / [m/s] Bary-topo velocity towards the source    
+  Rejected (12), syntactically valid WCS keyrecord has no effect.
+ZSOURCEX=               0.0025 / Redshift of the source                         
+  Rejected (13), syntactically valid WCS keyrecord has no effect.
+WCSNAMEB= B means BAD!         / Name of this system                            
+  Rejected (14), a string value was expected.
+WCSAXESB=                   -4 / Four coordinate axes                           
+  Rejected (15), negative value of WCSAXESa ignored.
+CRPIX0B =                  0.0 / Not a valid CRPIXja keyword                    
+  Rejected (16), axis number must exceed 0.
+CDELT0B =                  1.0 / Not a valid CDELTia keyword                    
+  Rejected (17), axis number must exceed 0.
+CUNIT0B = 'INVALID'            / Not a valid CUNITia keyword                    
+  Rejected (18), axis number must exceed 0.
+CTYPE0B = 'INVALID'            / Not a valid CTYPEia keyword                    
+  Rejected (19), axis number must exceed 0.
+CRVAL0B =                  0.0 / Not a valid CRVALia keyword                    
+  Rejected (20), axis number must exceed 0.
+CNAME0B = 'INVALID'            / Not a valid CNAMEia keyword                    
+  Rejected (21), axis number must exceed 0.
+CRDER0B =                  0.0 / Not a valid CRDERia keyword                    
+  Rejected (22), axis number must exceed 0.
+CSYER0B =                  0.0 / Not a valid CSYERia keyword                    
+  Rejected (23), axis number must exceed 0.
+PC0_0B  =                  0.0 / Not a valid PCi_ja  keyword                    
+  Rejected (24), axis number must exceed 0.
+CD0_0B  =                  0.0 / Not a valid CDi_ja  keyword                    
+  Rejected (25), axis number must exceed 0.
+PV0_1B  =                  0.0 / Not a valid PVi_ma  keyword                    
+  Rejected (26), axis number must exceed 0.
+PS0_1B  = 'INVALID'            / Not a valid PSi_ma  keyword                    
+  Rejected (27), axis number must exceed 0.
+CRPIX01B=                  0.0 / Invalid CRPIXja  keyword syntax                
+  Rejected (28), indices in parameterized keywords must not have leading zeroes.
+CDELT01B=                  1.0 / Invalid CDELTia  keyword syntax                
+  Rejected (29), indices in parameterized keywords must not have leading zeroes.
+CUNIT01B= 'INVALID'            / Invalid CUNITia  keyword syntax                
+  Rejected (30), indices in parameterized keywords must not have leading zeroes.
+CTYPE01B= 'INVALID'            / Invalid CTYPEia  keyword syntax                
+  Rejected (31), indices in parameterized keywords must not have leading zeroes.
+CRVAL01B=                  0.0 / Invalid CRVALia  keyword syntax                
+  Rejected (32), indices in parameterized keywords must not have leading zeroes.
+CNAME01B= 'INVALID'            / Invalid CNAMEia  keyword syntax                
+  Rejected (33), indices in parameterized keywords must not have leading zeroes.
+CRDER01B=                  0.0 / Invalid CRDERia  keyword syntax                
+  Rejected (34), indices in parameterized keywords must not have leading zeroes.
+CSYER01B=                  0.0 / Invalid CSYERia  keyword syntax                
+  Rejected (35), indices in parameterized keywords must not have leading zeroes.
+PC01_1B =                  1.0 / Invalid PCi_ja   keyword syntax                
+  Rejected (36), indices in parameterized keywords must not have leading zeroes.
+PC1_01B =                  0.0 / Invalid PCi_ja   keyword syntax                
+  Rejected (37), indices in parameterized keywords must not have leading zeroes.
+PC01_01B=                  0.0 / Invalid PCi_ja   keyword syntax                
+  Rejected (38), indices in parameterized keywords must not have leading zeroes.
+PC1-1B  =                  1.0 / Invalid PCi_ja   keyword syntax                
+  Rejected (39), PCi_ja keyword must use an underscore, not a dash.
+CD01_1B =                  1.0 / Invalid CDi_ja   keyword syntax                
+  Rejected (40), indices in parameterized keywords must not have leading zeroes.
+CD1_01B =                  0.0 / Invalid CDi_ja   keyword syntax                
+  Rejected (41), indices in parameterized keywords must not have leading zeroes.
+CD01_01B=                  0.0 / Invalid CDi_ja   keyword syntax                
+  Rejected (42), indices in parameterized keywords must not have leading zeroes.
+CD1-1B  =                  1.0 / Invalid CDi_ja   keyword syntax                
+  Rejected (43), CDi_ja keyword must use an underscore, not a dash.
+PV01_1B =                  0.0 / Invalid PVi_ma   keyword syntax                
+  Rejected (44), indices in parameterized keywords must not have leading zeroes.
+PV1_01B =                  0.0 / Invalid PVi_ma   keyword syntax                
+  Rejected (45), indices in parameterized keywords must not have leading zeroes.
+PV01_01B=                  0.0 / Invalid PVi_ma   keyword syntax                
+  Rejected (46), indices in parameterized keywords must not have leading zeroes.
+PV1-1B  =                  0.0 / Invalid PVi_ma   keyword syntax                
+  Rejected (47), PVi_ma keyword must use an underscore, not a dash.
+PS01_1B = 'INVALID'            / Invalid PSi_ma   keyword syntax                
+  Rejected (48), indices in parameterized keywords must not have leading zeroes.
+PS1_01B = 'INVALID'            / Invalid PSi_ma   keyword syntax                
+  Rejected (49), indices in parameterized keywords must not have leading zeroes.
+PS01_01B= 'INVALID'            / Invalid PSi_ma   keyword syntax                
+  Rejected (50), indices in parameterized keywords must not have leading zeroes.
+PS1-1B  = 'INVALID'            / Invalid PSi_ma   keyword syntax                
+  Rejected (51), PSi_ma keyword must use an underscore, not a dash.
+EQUINOX1=                  0.0 / Invalid EQUINOXa keyword syntax                
+  Rejected (52), invalid alternate code, keyword resembles EQUINOXa but isn't.
+LONPOLE2=                  0.0 / Invalid LONPOLEa keyword syntax                
+  Rejected (53), invalid alternate code, keyword resembles LONPOLEa but isn't.
+LATPOLE3=                  0.0 / Invalid LATPOLEa keyword syntax                
+  Rejected (54), invalid alternate code, keyword resembles LATPOLEa but isn't.
+RESTFRQ4=                  0.0 / Invalid RESTFRQa keyword syntax                
+  Rejected (55), invalid alternate code, keyword resembles RESTFRQa but isn't.
+RESTWAV5=                  0.0 / Invalid RESTWAVa keyword syntax                
+  Rejected (56), invalid alternate code, keyword resembles RESTWAVa but isn't.
+RADESYS6= 'INVALID'            / Invalid RADESYSa keyword syntax                
+  Rejected (57), invalid alternate code, keyword resembles RADESYSa but isn't.
+SPECSYS7= 'INVALID'            / Invalid SPECSYSa keyword syntax                
+  Rejected (58), invalid alternate code, keyword resembles SPECSYSa but isn't.
+SSYSOBS8= 'INVALID'            / Invalid SSYSOBSa keyword syntax                
+  Rejected (59), invalid alternate code, keyword resembles SSYSOBSa but isn't.
+SSYSSRC9= 'INVALID'            / Invalid SSYSSRCa keyword syntax                
+  Rejected (60), invalid alternate code, keyword resembles SSYSSRCa but isn't.
+VELANGL-=                  0.0 / Invalid VELANGLa keyword syntax                
+  Rejected (61), invalid alternate code, keyword resembles VELANGLa but isn't.
+VELOSYS_=                  0.0 / Invalid VELOSYSa keyword syntax                
+  Rejected (62), invalid alternate code, keyword resembles VELOSYSa but isn't.
+WCSNAMEb= 'INVALID'            / Invalid WCSNAMEa keyword syntax                
+  Rejected (63), invalid alternate code, keyword resembles WCSNAMEa but isn't.
+ZSOURCE*=                  0.0 / Invalid ZSOURCEa keyword syntax                
+  Rejected (64), invalid alternate code, keyword resembles ZSOURCEa but isn't.
+CRPIX2B =  INVALID             / Not a valid CRPIXja  keyvalue                  
+  Rejected (65), a floating-point value was expected.
+CDELT2B =            (137, -1) / Not a valid CDELTia  keyvalue                  
+  Rejected (66), a floating-point value was expected.
+CUNIT2B =                   -1 / Not a valid CUNITia  keyvalue                  
+  Rejected (67), a string value was expected.
+CTYPE2B =                    T / Not a valid CTYPEia  keyvalue                  
+  Rejected (68), a string value was expected.
+CRVAL2B = 'INVALID'            / Not a valid CRVALia  keyvalue                  
+  Rejected (69), a floating-point value was expected.
+CNAME2B =                    F / Not a valid CNAMEia  keyvalue                  
+  Rejected (70), a string value was expected.
+CRDER2B =          (10E5,-0.1) / Not a valid CRDERia  keyvalue                  
+  Rejected (71), a floating-point value was expected.
+CSYER2B = 'INVALID'            / Not a valid CSYERia  keyvalue                  
+  Rejected (72), a floating-point value was expected.
+PC1_1B  =                 0xff / Not a valid PCi_ja   keyvalue                  
+  Rejected (73), invalid keyvalue.
+CD1_1B  = 'INVALID'            / Not a valid CDi_ja   keyvalue                  
+  Rejected (74), a floating-point value was expected.
+PV1_1B  = 'INVALID'            / Not a valid PVi_ma   keyvalue                  
+  Rejected (75), a floating-point value was expected.
+PS1_1B  =                    0 / Not a valid PSi_ma   keyvalue                  
+  Rejected (76), a string value was expected.
+EQUINOXB=             '2000.0' / Not a valid EQUINOXa keyvalue                  
+  Rejected (77), a floating-point value was expected.
+EPOCH   = 'B1950.0'            / Not a valid EPOCH    keyvalue                  
+  Rejected (78), the EPOCH keyword is deprecated, use EQUINOXa.
+LONPOLEB= 'INVALID'            / Not a valid LONPOLEa keyvalue                  
+  Rejected (79), a floating-point value was expected.
+LATPOLEB= 'INVALID'            / Not a valid LATPOLEa keyvalue                  
+  Rejected (80), a floating-point value was expected.
+RESTFRQB= 'INVALID'            / Not a valid RESTFRQa keyvalue                  
+  Rejected (81), a floating-point value was expected.
+RESTWAVB= 'INVALID'            / Not a valid RESTWAVa keyvalue                  
+  Rejected (82), a floating-point value was expected.
+RADESYSB=                 ICRS / Not a valid RADESYSa keyvalue                  
+  Rejected (83), a string value was expected.
+SPECSYSB=                  0.0 / Not a valid SPECSYSa keyvalue                  
+  Rejected (84), a string value was expected.
+SSYSOBSB=                  0.0 / Not a valid SSYSOBSa keyvalue                  
+  Rejected (85), a string value was expected.
+SSYSSRCB=                  0.0 / Not a valid SSYSSRCa keyvalue                  
+  Rejected (86), a string value was expected.
+VELANGLB= 'INVALID'            / Not a valid VELANGLa keyvalue                  
+  Rejected (87), a floating-point value was expected.
+VELOSYSB= 'INVALID'            / Not a valid VELOSYSa keyvalue                  
+  Rejected (88), a floating-point value was expected.
+WCSNAMEB=                  0.0 / Not a valid WCSNAMEa keyvalue                  
+  Rejected (89), a string value was expected.
+ZSOURCEB= 'INVALID'            / Not a valid ZSOURCEa keyvalue                  
+  Rejected (90), a floating-point value was expected.
+DATE-AVG=                  0.0 / Not a valid DATE-AVG keyvalue                  
+  Rejected (91), a string value was expected.
+DATE-OBS=                  0.0 / Not a valid DATE-OBS keyvalue                  
+  Rejected (92), a string value was expected.
+MJD-AVG = 'INVALID'            / Not a valid MJD-AVG  keyvalue                  
+  Rejected (93), a floating-point value was expected.
+MJD-OBS = 'INVALID'            / Not a valid MJD-OBS  keyvalue                  
+  Rejected (94), a floating-point value was expected.
+OBSGEO-X= 'INVALID'            / Not a valid OBSGEO-X keyvalue                  
+  Rejected (95), a floating-point value was expected.
+OBSGEO-Y= 'INVALID'            / Not a valid OBSGEO-Y keyvalue                  
+  Rejected (96), a floating-point value was expected.
+OBSGEO-Z= 'INVALID'            / Not a valid OBSGEO-Z keyvalue                  
+  Rejected (97), a floating-point value was expected.
+CRPIX3B=                   0.0 / Illegal, "= " not in columns 9-10              
+  Rejected (98), keyword looks very much like CRPIXja but isn't.
+CDELT3B  =                 1.0 / Illegal, "= " not in columns 9-10              
+  Rejected (99), invalid KEYWORD = VALUE syntax.
+CUNIT3B ='deg'                 / Illegal, "= " not in columns 9-10              
+  Rejected (100), invalid KEYWORD = VALUE syntax.
+CTYPE3B   'FREQ'               / Illegal, "= " not in columns 9-10              
+  Rejected (101), invalid KEYWORD = VALUE syntax.
+CRVAL3B =                2 + 2 / Not a valid keyvalue                           
+  Rejected (102), invalid keyvalue.
+CNAME3B = 'IN' 'VALID'         / Not a valid keyvalue                           
+  Rejected (103), invalid keyvalue.
+CRDER3B =             1934-638 / Not a valid keyvalue                           
+  Rejected (104), invalid keyvalue.
+CSYER3B =                1.2.3 / Not a valid keyvalue                           
+  Rejected (105), invalid keyvalue.
+PC1_1B  =            12h34m56s / Not a valid keyvalue                           
+  Rejected (106), invalid keyvalue.
+CD1_1B  =                 0xFF / Not a valid keyvalue                           
+  Rejected (107), invalid keyvalue.
+PV1_1B  =              58 - 21 / Not a valid keyvalue                           
+  Rejected (108), invalid keyvalue.
+PS1_1B  =                "UTC" / Not a valid keyvalue                           
+  Rejected (109), a string value was expected.
+EQUINOXB=                J2000 / Not a valid keyvalue                           
+  Rejected (110), a floating-point value was expected.
+EPOCH   =              B1950.0 / Not a valid keyvalue                           
+  Rejected (111), the EPOCH keyword is deprecated, use EQUINOXa.
+LONPOLEB=            180:00:00 / Not a valid keyvalue                           
+  Rejected (112), invalid keyvalue.
+LATPOLEB=                $9.99 / Not a valid keyvalue                           
+  Rejected (113), a floating-point value was expected.
+RESTFRQB=                      / Not a valid keyvalue                           
+  Rejected (114), a floating-point value was expected.
+RESTWAVB=                      / Not a valid keyvalue                           
+  Rejected (115), a floating-point value was expected.
+RADESYSB= ICRS                 / Not a valid keyvalue                           
+  Rejected (116), a string value was expected.
+SPECSYSB= 'BARYCENT'             Invalid keycomment                             
+  Rejected (117), invalid keyvalue or malformed keycomment.
+SSYSOBSB= 'TOPOCENT'             1/8 = 0.125                                    
+  Rejected (118), invalid keyvalue.
+PV3_1B  =                                                                   1.0O
+  Rejected (119), invalid keyvalue.
+PV3_2B  =                                                                  2 + 2
+  Rejected (120), invalid keyvalue or malformed keycomment.
+PV3_3B  =                                                                 3.0 : 
+  Rejected (121), invalid keyvalue or malformed keycomment.
+PS3_1B  =                                                  'Jean-Pierre O'Toole'
+  Rejected (122), invalid keyvalue.
+PS3_2B  =                                                                'UVW' :
+  Rejected (123), invalid keyvalue or malformed keycomment.
+PS3_3B  =                                                               'XYZ' : 
+  Rejected (124), invalid keyvalue or malformed keycomment.
+CRPIX4A_= 'PHONEY'             / Lookalike keyword is not CRPIXja               
+  Rejected (125), keyword looks very much like CRPIXja but isn't.
+CDELT4_B= 'PHONEY'             / Lookalike keyword is not CDELTia               
+  Rejected (126), keyword looks very much like CDELTia but isn't.
+CUNIT4-B= 'PHONEY'             / Lookalike keyword is not CUNITia               
+  Rejected (127), keyword looks very much like CUNITia but isn't.
+CTYPE-4B= 'PHONEY'             / Lookalike keyword is not CTYPEia               
+  Rejected (128), keyword looks very much like CTYPEia but isn't.
+CRVAL_4B= 'PHONEY'             / Lookalike keyword is not CRVALia               
+  Rejected (129), keyword looks very much like CRVALia but isn't.
+CNAME4_ = 'PHONEY'             / Lookalike keyword is not CNAMEia               
+  Rejected (130), keyword looks very much like CNAMEia but isn't.
+CRDER4_ = 'PHONEY'             / Lookalike keyword is not CRDERia               
+  Rejected (131), keyword looks very much like CRDERia but isn't.
+CSYER4_ = 'PHONEY'             / Lookalike keyword is not CSYERia               
+  Rejected (132), keyword looks very much like CSYERia but isn't.
+PC4X4B  = 'PHONEY'             / Lookalike keyword is not PCi_ja                
+  Not a recognized WCS keyword.
+PC4__4B = 'PHONEY'             / Lookalike keyword is not PCi_ja                
+  Not a recognized WCS keyword.
+PC4_IB  = 'PHONEY'             / Lookalike keyword is not PCi_ja                
+  Not a recognized WCS keyword.
+PC4 4B  = 'PHONEY'             / Lookalike keyword is not PCi_ja                
+  Not a recognized WCS keyword.
+CD4X4B  = 'PHONEY'             / Lookalike keyword is not CDi_ja                
+  Not a recognized WCS keyword.
+CD4__4B = 'PHONEY'             / Lookalike keyword is not CDi_ja                
+  Not a recognized WCS keyword.
+CD4_IB  = 'PHONEY'             / Lookalike keyword is not CDi_ja                
+  Not a recognized WCS keyword.
+CD4 4B  = 'PHONEY'             / Lookalike keyword is not CDi_ja                
+  Not a recognized WCS keyword.
+PV4X4B  = 'PHONEY'             / Lookalike keyword is not PVi_ja                
+  Not a recognized WCS keyword.
+PV4__4B = 'PHONEY'             / Lookalike keyword is not PVi_ja                
+  Not a recognized WCS keyword.
+PV4_OB  = 'PHONEY'             / Lookalike keyword is not PVi_ja                
+  Not a recognized WCS keyword.
+PV4 0B  = 'PHONEY'             / Lookalike keyword is not PVi_ja                
+  Not a recognized WCS keyword.
+PS4X4B  = 'PHONEY'             / Lookalike keyword is not PSi_ja                
+  Not a recognized WCS keyword.
+PS4__4B = 'PHONEY'             / Lookalike keyword is not PSi_ja                
+  Not a recognized WCS keyword.
+PS4_IB  = 'PHONEY'             / Lookalike keyword is not PSi_ja                
+  Not a recognized WCS keyword.
+PS4 0B  = 'PHONEY'             / Lookalike keyword is not PSi_ja                
+  Not a recognized WCS keyword.
+CRPIXELS=                  0.0 / Furphy, not CRPIXja                            
+  Rejected (133), keyword looks very much like CRPIXja but isn't.
+PCATALOG=                  0.0 / Furphy, not PCi_ja                             
+  Not a recognized WCS keyword.
+CDELTA  =                  0.0 / Furphy, not CDELTia                            
+  Rejected (134), keyword looks very much like CDELTia but isn't.
+CDI_JA  =                  0.0 / Furphy, not CDi_ja                             
+  Not a recognized WCS keyword.
+CUNITARY=                  0.0 / Furphy, not CUNITia                            
+  Rejected (135), keyword looks very much like CUNITia but isn't.
+CTYPEXY =                  0.0 / Furphy, not CTYPEia                            
+  Rejected (136), keyword looks very much like CTYPEia but isn't.
+CRVALUE =                  0.0 / Furphy, not CRVALia                            
+  Rejected (137), keyword looks very much like CRVALia but isn't.
+CNAME   =                  0.0 / Furphy, not CNAMEia                            
+  Rejected (138), keyword looks very much like CNAMEia but isn't.
+PV1_1AL =                  0.0 / Furphy, not PVi_ma                             
+  Not a recognized WCS keyword.
+PSEUDO  =                  0.0 / Furphy, not PSi_ma                             
+  Not a recognized WCS keyword.
+EPOCHAL =                  0.0 / Furphy, not EPOCH                              
+  Not a recognized WCS keyword.
+VELREF1 =                  0.0 / Furphy, not VELREF                             
+  Not a recognized WCS keyword.
+EPOCHB  =                  0.0 / Invalid alternate code on EPOCH  keyword       
+  Rejected (139), the EPOCH keyword is deprecated, use EQUINOXa.
+VELREFB =                    0 / Invalid alternate code on VELREF keyword       
+  Rejected (140), the VELREF keyword is deprecated, use SPECSYSa.
+PC001001=                  1.0 / PC00i00j keyword is deprecated, use PCi_ja     
+  Rejected (141), this form of the PCi_ja keyword is deprecated, use PCi_ja.
+CD001001=                  1.0 / PC00i00j keyword is deprecated, use CDi_ja     
+  Rejected (142), this form of the CDi_ja keyword is deprecated, use CDi_ja.
+VSOURCEB=                  0.0 / VSOURCEa keyword is deprecated, use ZSOURCEa   
+  Rejected (143), the VSOURCEa keyword is deprecated, use ZSOURCEa.
+RADECSYS= 'DEPRECATED'         / RADECSYS keyword is deprecated, use RADESYSa   
+  Rejected (144), the RADECSYS keyword is deprecated, use RADESYSa.
+PROJP1  =                  0.0 / PROJPn   keyword is deprecated, use PVi_ma     
+  Rejected (145), the PROJPn keyword is deprecated, use PVi_ma.
+CROTA1  =                  0.0 / CROTAn   keyword is deprecated, use PCi_ja     
+  Rejected (146), the CROTAn keyword is deprecated, use PCi_ja.
+RESTFREQ=                  0.0 / Use RESTFRQa in preference to RESTFREQ         
+  Rejected (147), the RESTFREQ keyword is deprecated, use RESTFRQa.
+ALTRPIX =                  0.0 / AIPS spectral convention, not recognised       
+  Not a recognized WCS keyword.
+ALTRVAL =                  0.0 / AIPS spectral convention, not recognised       
+  Not a recognized WCS keyword.
+END                                                                             
+  Not a recognized WCS keyword.
+
+  147 keyrecords were rejected for syntax or other errors,
+   66 were recognized as syntactically valid, and
+   28 others were not recognized as WCS keyrecords.
+
+The rejected keyrecords do not conform strictly to the FITS WCS standard.
+WARNING, no primary coordinate representation.
+
+wcslint test header
+       flag: 137
+      naxis: 4
+      crpix: 0x<address>
+               513.00       513.00       1025.0       1.0000    
+         pc: 0x<address>
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
+      cdelt: 0x<address>
+              -0.10000      0.10000     -9.6353e-06   1.0000    
+      crval: 0x<address>
+               150.00      -30.000       0.21498     -2000.0    
+      cunit: 0x<address>
+             "deg"
+             "deg"
+             "m"
+             "s"
+      ctype: 0x<address>
+             "RA---SZP"
+             "DEC--SZP"
+             "WAVE-F2W"
+             "TIME'x'"
+    lonpole: 195.000000
+    latpole: -30.000000
+    restfrq: 1420405750.000000
+    restwav: 0.211061
+        npv: 11
+     npvmax: 11
+         pv: 0x<address>
+               1   1   0.0000    
+               1   2   90.000    
+               1   3   195.00    
+               1   4  -30.000    
+               2   1   0.0000    
+               2   2   180.00    
+               2   3   45.000    
+               4   1   1.0000    
+               4   2   2.0000    
+               4   3   3.0000    
+               4   4   4.0000    
+        nps: 5
+     npsmax: 5
+         ps: 0x<address>
+               4   0  UTC
+               4   1  ABC
+               4   2  DEF
+               4   3  GHI
+               4   4  JKL
+         cd: 0x<address>
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
+      crota: 0x<address>
+               0.0000       0.0000       0.0000       0.0000    
+     altlin: 1
+     velref: 0
+        alt: 'A'
+     colnum: 0
+      colax: 0x<address>
+                 0      0      0      0
+    wcsname: "wcslint test header"
+      cname: 0x<address>
+             "Right ascension (J2000)"
+             "Declination (J2000)"
+             "Wavelength"
+             "Time offset"
+      crder: 0x<address>
+             UNDEFINED     UNDEFINED      1.0000e-11  UNDEFINED   
+      csyer: 0x<address>
+             UNDEFINED     UNDEFINED      1.0000e-12  UNDEFINED   
+    radesys: "FK5"
+    equinox: 2000.000000
+    specsys: "BARYCENT"
+    ssysobs: "TOPOCENT"
+    velosys: 1500.000000
+    ssyssrc: "LSRK"
+    zsource:  0.002500
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
+    dateobs: "1957-02-14T15:00:00"
+    dateavg: "1957-02-14T16:48:00"
+     mjdobs: 35883.625000
+     mjdavg: 35883.700000
+       ntab: 0
+        tab: 0x0
+       nwtb: 0
+        wtb: 0x0
+      types: 0x<address>
+            2200 2201 3300    0
+     lngtyp: "RA"
+     lattyp: "DEC"
+        lng: 0
+        lat: 1
+       spec: 2
+   cubeface: -1
+        err: 0x0
+        lin: (see below)
+        cel: (see below)
+        spc: (see below)
+     m_flag: 137
+    m_naxis: 4
+    m_crpix: 0x<address>  (= crpix)
+       m_pc: 0x<address>  (= pc)
+    m_cdelt: 0x<address>  (= cdelt)
+    m_crval: 0x<address>  (= crval)
+    m_cunit: 0x<address>  (= cunit)
+    m_ctype: 0x<address>  (= ctype)
+       m_pv: 0x<address>  (= pv)
+       m_ps: 0x<address>  (= ps)
+       m_cd: 0x<address>  (= cd)
+    m_crota: 0x<address>  (= crota)
+
+    m_colax: 0x<address>  (= colax)
+    m_cname: 0x<address>  (= cname)
+    m_crder: 0x<address>  (= crder)
+    m_csyer: 0x<address>  (= csyer)
+      m_tab: 0x0  (= tab)
+      m_wtb: 0x0  (= wtb)
+
+   lin.*
+       flag: 137
+      naxis: 4
+      crpix: 0x<address>
+               513.00       513.00       1025.0       1.0000    
+         pc: 0x<address>
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
+      cdelt: 0x<address>
+              -0.10000      0.10000     -9.6353e-06   1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000    -0.0000      -0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000       0.0000    
+piximg[2][]:  -0.0000      -0.0000      -9.6353e-06  -0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -8.6603      -5.0000      -0.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -1.0379e+05  -0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
+      unity: 0
+     affine: 1
+     simple: 0
+        err: 0x0
+     tmpcrd: 0x<address>
+     m_flag: 0
+    m_naxis: 0
+    m_crpix: 0x0
+       m_pc: 0x0
+    m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
+
+   cel.*
+      flag: 137
+     offset: 0
+       phi0:  0.000000
+     theta0: 90.000000
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
+    latpreq: 0 (not required)
+     isolat: 0
+        err: 0x0
+
+   prj.*
+       flag: 102
+       code: "SZP"
+         r0: 57.295780
+         pv: (0)
+              0.0000       180.00       45.000    
+       phi0:  0.000000
+     theta0: 90.000000
+     bounds: 7
+
+       name: "slant zenithal perspective"
+   category: 1 (zenithal)
+    pvrange: 103
+  simplezen: 0
+  equiareal: 0
+  conformal: 0
+     global: 0
+  divergent: 1
+         x0: 0.000000
+         y0: 0.000000
+        err: 0x0
+        w[]:   0.017453    -0.0000      -0.0000       1.0000      -0.0000    
+              -0.0000       57.296      -1.0000       0.0000       0.0000    
+          m: 0
+          n: 0
+     prjx2s: 0x<address>
+     prjs2x: 0x<address>
+
+   spc.*
+       flag: 110
+       type: "WAVE"
+       code: "F2W"
+      crval:  0.21498   
+    restfrq: 1420405750.000000
+    restwav: 0.211061
+         pv: (not used)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
+    isGrism: 0
+        err: 0x0
+     spxX2P: 0x<address>
+     spxP2S: 0x0
+     spxS2P: 0x0
+     spxP2X: 0x<address>
diff --git a/C/test/twcsmix.c b/C/test/twcsmix.c
index 1fd92f7..4bfb3db 100644
--- a/C/test/twcsmix.c
+++ b/C/test/twcsmix.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcsmix.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcsmix.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcsmix tests wcsmix() for closure on the 1 degree celestial graticule for
@@ -639,6 +639,8 @@ double imax, imin, jmax, jmin;
     cpgline(k, ir, jr);
   }
 
+  wcsfree(&native);
+
 
   /* Draw a colour-coded celestial coordinate graticule. */
   ci = 1;
diff --git a/C/test/twcssub.c b/C/test/twcssub.c
index 5051b16..45c2ded 100644
--- a/C/test/twcssub.c
+++ b/C/test/twcssub.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcssub.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcssub.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcssub tests wcssub() which extracts the coordinate description for a
diff --git a/C/test/twcssub.out b/C/test/twcssub.out
index 753ab15..4c770a3 100644
--- a/C/test/twcssub.out
+++ b/C/test/twcssub.out
@@ -5,16 +5,16 @@ Initial contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               1025         64           512          513       
+               1025.0       64.000       512.00       513.00    
          pc: 0x<address>
-    pc[0][]:   1.1          0            0            0         
-    pc[1][]:   0            1            0            0         
-    pc[2][]:   0            0            1            0.1       
-    pc[3][]:   0            0            0.2          1         
+    pc[0][]:   1.1000       0.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.10000   
+    pc[3][]:   0.0000       0.0000       0.20000      1.0000    
       cdelt: 0x<address>
-              -9.2e-06      10           1           -1         
+              -9.2000e-06   10.000       1.0000      -1.0000    
       crval: 0x<address>
-               0.21498     -2000        -30           150       
+               0.21498     -2000.0      -30.000       150.00    
       cunit: 0x<address>
              "m"
              "s"
@@ -32,21 +32,21 @@ Initial contents of wcsprm struct:
         npv: 4
      npvmax: 64
          pv: 0x<address>
-               1   1  -1         
-               3   1   2         
-               3   2   210       
-               3   3   60        
+               1   1  -1.0000    
+               3   1   2.0000    
+               3   2   210.00    
+               3   3   60.000    
         nps: 1
      npsmax: 8
          ps: 0x<address>
                2   1  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -115,38 +115,46 @@ Initial contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               1025         64           512          513       
+               1025.0       64.000       512.00       513.00    
          pc: 0x<address>
-    pc[0][]:   1.1          0            0            0         
-    pc[1][]:   0            1            0            0         
-    pc[2][]:   0            0            1            0.1       
-    pc[3][]:   0            0            0.2          1         
+    pc[0][]:   1.1000       0.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.10000   
+    pc[3][]:   0.0000       0.0000       0.20000      1.0000    
       cdelt: 0x<address>
-              -9.2e-06      10           1           -1         
+              -9.2000e-06   10.000       1.0000      -1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -1.0120e-05  -0.0000      -0.0000      -0.0000    
+piximg[1][]:   0.0000       10.000       0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       1.0000       0.10000   
+piximg[3][]:  -0.0000      -0.0000      -0.20000     -1.0000    
+imgpix[0][]:  -98814.      -0.0000      -0.0000      -0.0000    
+imgpix[1][]:   0.0000       0.10000      0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.0204       0.10204   
+imgpix[3][]:  -0.0000      -0.0000      -0.20408     -1.0204    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -1.012e-05   -0           -0           -0         
-piximg[1][]:   0            10           0            0         
-piximg[2][]:   0            0            1            0.1       
-piximg[3][]:  -0           -0           -0.2         -1         
-imgpix[0][]:  -98814       -0           -0           -0         
-imgpix[1][]:   0            0.1          0            0         
-imgpix[2][]:   0            0            1.0204       0.10204   
-imgpix[3][]:  -0           -0           -0.20408     -1.0204    
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           150         -30        
-       prj: (see below)
-     euler:   150          120          150         -0.5          0.86603   
+        ref:   150.00      -30.000       150.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       150.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -156,7 +164,7 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              2            210          60        
+              2.0000       210.00       60.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -172,8 +180,8 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     0.5         -0.86603      2.7321       28.648    
-              -49.62        156.53       3.7321      -90           0         
+        w[]:   0.017453     0.50000     -0.86603      2.7321       28.648    
+              -49.620       156.53       3.7321      -90.000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -183,11 +191,11 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
        flag: 110
        type: "WAVE"
        code: "F2W"
-      crval:  0.215     
+      crval:  0.21498   
     restfrq: 1420405750.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            1.395e+09   -6.487e+09   (remainder unused)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -200,16 +208,16 @@ Extracted contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          512          64           0         
+               513.00       512.00       64.000       0.0000    
          pc: 0x<address>
-    pc[0][]:   1            0.2          0            0         
-    pc[1][]:   0.1          1            0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   1.0000       0.20000      0.0000       0.0000    
+    pc[1][]:   0.10000      1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -1            1            10           1         
+              -1.0000       1.0000       10.000       1.0000    
       crval: 0x<address>
-               150         -30          -2000         0         
+               150.00      -30.000      -2000.0       0.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -227,20 +235,20 @@ Extracted contents of wcsprm struct:
         npv: 3
      npvmax: 3
          pv: 0x<address>
-               2   1   2         
-               2   2   210       
-               2   3   60        
+               2   1   2.0000    
+               2   2   210.00    
+               2   3   60.000    
         nps: 1
      npsmax: 1
          ps: 0x<address>
                3   1  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -309,38 +317,46 @@ Extracted contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          512          64           0         
+               513.00       512.00       64.000       0.0000    
          pc: 0x<address>
-    pc[0][]:   1            0.2          0            0         
-    pc[1][]:   0.1          1            0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   1.0000       0.20000      0.0000       0.0000    
+    pc[1][]:   0.10000      1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -1            1            10           1         
+              -1.0000       1.0000       10.000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -1.0000      -0.20000     -0.0000      -0.0000    
+piximg[1][]:   0.10000      1.0000       0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       10.000       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -1.0204      -0.20408     -0.0000      -0.0000    
+imgpix[1][]:   0.10204      1.0204       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       0.10000      0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -1           -0.2         -0           -0         
-piximg[1][]:   0.1          1            0            0         
-piximg[2][]:   0            0            10           0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -1.0204      -0.20408     -0           -0         
-imgpix[1][]:   0.10204      1.0204       0            0         
-imgpix[2][]:   0            0            0.1          0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           150         -30        
-       prj: (see below)
-     euler:   150          120          150         -0.5          0.86603   
+        ref:   150.00      -30.000       150.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       150.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -350,7 +366,7 @@ imgpix[3][]:   0            0            0            1
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              2            210          60        
+              2.0000       210.00       60.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -366,8 +382,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     0.5         -0.86603      2.7321       28.648    
-              -49.62        156.53       3.7321      -90           0         
+        w[]:   0.017453     0.50000     -0.86603      2.7321       28.648    
+              -49.620       156.53       3.7321      -90.000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -381,7 +397,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/C/test/twcstab.c b/C/test/twcstab.c
index 6352e9e..918f861 100644
--- a/C/test/twcstab.c
+++ b/C/test/twcstab.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: twcstab.c,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+  $Id: twcstab.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=============================================================================
 *
 * twcstab tests wcstab() and also provides sample code for using it in
diff --git a/C/test/twcstab.out b/C/test/twcstab.out
index fa37957..d259c0e 100644
--- a/C/test/twcstab.out
+++ b/C/test/twcstab.out
@@ -4,16 +4,16 @@ Testing -TAB interpreter (twcstab.c)
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               129          65           0.5          1         
+               129.00       65.000       0.50000      1.0000    
          pc: 0x<address>
-    pc[0][]:   0.99619      0.087156     0            0         
-    pc[1][]:  -0.087156     0.99619      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            1            1         
+    pc[0][]:   0.99619      0.087156     0.0000       0.0000    
+    pc[1][]:  -0.087156     0.99619      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       1.0000       1.0000    
       cdelt: 0x<address>
-               1            1            1            1         
+               1.0000       1.0000       1.0000       1.0000    
       crval: 0x<address>
-               136          76           0.5          0         
+               136.00       76.000       0.50000      0.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -31,18 +31,18 @@ Testing -TAB interpreter (twcstab.c)
         npv: 12
      npvmax: 12
          pv: 0x<address>
-               1   1   1         
-               1   2   1         
-               1   3   1         
-               2   1   1         
-               2   2   1         
-               2   3   2         
-               3   1   2         
-               3   2   1         
-               3   3   1         
-               4   1   2         
-               4   2   1         
-               4   3   1         
+               1   1   1.0000    
+               1   2   1.0000    
+               1   3   1.0000    
+               2   1   1.0000    
+               2   2   1.0000    
+               2   3   2.0000    
+               3   1   2.0000    
+               3   2   1.0000    
+               3   3   1.0000    
+               4   1   2.0000    
+               4   2   1.0000    
+               4   3   1.0000    
         nps: 12
      npsmax: 12
          ps: 0x<address>
@@ -59,12 +59,12 @@ Testing -TAB interpreter (twcstab.c)
                4   1  TimeCoord
                4   2  TimeIndex
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: ' '
@@ -228,32 +228,32 @@ tab[0].*
         map: 0x<address>
                  0     1
       crval: 0x<address>
-               136          76        
+               136.00       76.000    
       index: 0x<address>
    index[0]: 0x<address>
-               0            4            8            12           16        
-               20           24           28           32           36        
-               40           44           48           52           56        
-               60           64           68           72           76        
-               80           84           88           92           96        
-               100          104          108          112          116       
-               120          124          128          132          136       
-               140          144          148          152          156       
-               160          164          168          172          176       
-               180          184          188          192          196       
-               200          204          208          212          216       
-               220          224          228          232          236       
-               240          244          248          252          256       
-               260          264          268          272          276       
+               0.0000       4.0000       8.0000       12.000       16.000    
+               20.000       24.000       28.000       32.000       36.000    
+               40.000       44.000       48.000       52.000       56.000    
+               60.000       64.000       68.000       72.000       76.000    
+               80.000       84.000       88.000       92.000       96.000    
+               100.00       104.00       108.00       112.00       116.00    
+               120.00       124.00       128.00       132.00       136.00    
+               140.00       144.00       148.00       152.00       156.00    
+               160.00       164.00       168.00       172.00       176.00    
+               180.00       184.00       188.00       192.00       196.00    
+               200.00       204.00       208.00       212.00       216.00    
+               220.00       224.00       228.00       232.00       236.00    
+               240.00       244.00       248.00       252.00       256.00    
+               260.00       264.00       268.00       272.00       276.00    
    index[1]: 0x<address>
-               0            4            8            12           16        
-               20           24           28           32           36        
-               40           44           48           52           56        
-               60           64           68           72           76        
-               80           84           88           92           96        
-               100          104          108          112          116       
-               120          124          128          132          136       
-               140          144          148          152          156       
+               0.0000       4.0000       8.0000       12.000       16.000    
+               20.000       24.000       28.000       32.000       36.000    
+               40.000       44.000       48.000       52.000       56.000    
+               60.000       64.000       68.000       72.000       76.000    
+               80.000       84.000       88.000       92.000       96.000    
+               100.00       104.00       108.00       112.00       116.00    
+               120.00       124.00       128.00       132.00       136.00    
+               140.00       144.00       148.00       152.00       156.00    
       coord: 0x<address>
              (*, 1, 1)   147.58      -31.516    
              (*, 2, 1)   147.69      -31.445    
@@ -270,21 +270,21 @@ tab[0].*
              (*,13, 1)   148.43      -31.367    
              (*,14, 1)   148.49      -31.495    
              (*,15, 1)   148.56      -31.473    
-             (*,16, 1)   148.7       -31.389    
+             (*,16, 1)   148.70      -31.389    
              (*,17, 1)   148.71      -31.493    
              (*,18, 1)   148.77      -31.394    
              (*,19, 1)   148.84      -31.405    
              (*,20, 1)   148.72      -31.455    
              (*,21, 1)   149.04      -31.488    
-             (*,22, 1)   149         -31.299    
+             (*,22, 1)   149.00      -31.299    
              (*,23, 1)   149.17      -31.359    
              (*,24, 1)   149.15      -31.411    
              (*,25, 1)   149.34      -31.386    
              (*,26, 1)   149.33      -31.444    
-             (*,27, 1)   149.5       -31.366    
+             (*,27, 1)   149.50      -31.366    
              (*,28, 1)   149.47      -31.481    
-             (*,29, 1)   149.5       -31.379    
-             (*,30, 1)   149.5       -31.424    
+             (*,29, 1)   149.50      -31.379    
+             (*,30, 1)   149.50      -31.424    
              (*,31, 1)   149.51      -31.462    
              (*,32, 1)   149.88      -31.451    
              (*,33, 1)   149.85      -31.462    
@@ -296,7 +296,7 @@ tab[0].*
              (*,39, 1)   150.29      -31.463    
              (*,40, 1)   150.29      -31.418    
              (*,41, 1)   150.35      -31.328    
-             (*,42, 1)   150.41      -31.39     
+             (*,42, 1)   150.41      -31.390    
              (*,43, 1)   150.53      -31.388    
              (*,44, 1)   150.72      -31.395    
              (*,45, 1)   150.76      -31.519    
@@ -307,7 +307,7 @@ tab[0].*
              (*,50, 1)   151.06      -31.373    
              (*,51, 1)   150.96      -31.437    
              (*,52, 1)   151.17      -31.366    
-             (*,53, 1)   151.38      -31.35     
+             (*,53, 1)   151.38      -31.350    
              (*,54, 1)   151.36      -31.396    
              (*,55, 1)   151.52      -31.454    
              (*,56, 1)   151.54      -31.438    
@@ -318,9 +318,9 @@ tab[0].*
              (*,61, 1)   151.83      -31.365    
              (*,62, 1)   151.98      -31.475    
              (*,63, 1)   152.08      -31.468    
-             (*,64, 1)   152.14      -31.41     
-             (*,65, 1)   152.19      -31.43     
-             (*,66, 1)   152.4       -31.46     
+             (*,64, 1)   152.14      -31.410    
+             (*,65, 1)   152.19      -31.430    
+             (*,66, 1)   152.40      -31.460    
              (*,67, 1)   152.23      -31.494    
              (*,68, 1)   152.34      -31.461    
              (*,69, 1)   152.26      -31.432    
@@ -339,7 +339,7 @@ tab[0].*
              (*,12, 2)   148.28      -31.337    
              (*,13, 2)   148.46      -31.316    
              (*,14, 2)   148.47      -31.307    
-             (*,15, 2)   148.38      -31.36     
+             (*,15, 2)   148.38      -31.360    
              (*,16, 2)   148.57      -31.387    
              (*,17, 2)   148.67      -31.311    
              (*,18, 2)   148.79      -31.407    
@@ -349,7 +349,7 @@ tab[0].*
              (*,22, 2)   149.05      -31.339    
              (*,23, 2)   148.95      -31.399    
              (*,24, 2)   149.21      -31.388    
-             (*,25, 2)   149.26      -31.34     
+             (*,25, 2)   149.26      -31.340    
              (*,26, 2)   149.29      -31.305    
              (*,27, 2)   149.47      -31.289    
              (*,28, 2)   149.53      -31.302    
@@ -357,18 +357,18 @@ tab[0].*
              (*,30, 2)   149.45      -31.352    
              (*,31, 2)   149.71      -31.372    
              (*,32, 2)   149.82      -31.414    
-             (*,33, 2)   149.68      -31.31     
+             (*,33, 2)   149.68      -31.310    
              (*,34, 2)   149.84      -31.323    
              (*,35, 2)   150.11      -31.284    
              (*,36, 2)   150.12      -31.295    
              (*,37, 2)   150.21      -31.355    
              (*,38, 2)   150.04      -31.432    
-             (*,39, 2)   150.4       -31.449    
-             (*,40, 2)   150.44      -31.23     
+             (*,39, 2)   150.40      -31.449    
+             (*,40, 2)   150.44      -31.230    
              (*,41, 2)   150.44      -31.349    
-             (*,42, 2)   150.49      -31.35     
+             (*,42, 2)   150.49      -31.350    
              (*,43, 2)   150.54      -31.353    
-             (*,44, 2)   150.84      -31.46     
+             (*,44, 2)   150.84      -31.460    
              (*,45, 2)   150.73      -31.394    
              (*,46, 2)   150.87      -31.427    
              (*,47, 2)   150.67      -31.278    
@@ -394,18 +394,18 @@ tab[0].*
              (*,67, 2)   152.26      -31.343    
              (*,68, 2)   152.23      -31.384    
              (*,69, 2)   152.37      -31.289    
-             (*,70, 2)   152.61      -31.38     
+             (*,70, 2)   152.61      -31.380    
              (*, 1, 3)   147.44      -31.323    
              (*, 2, 3)   147.38      -31.229    
              (*, 3, 3)   147.51      -31.286    
              (*, 4, 3)   147.76      -31.179    
-             (*, 5, 3)   147.88      -31.28     
+             (*, 5, 3)   147.88      -31.280    
              (*, 6, 3)   147.82      -31.271    
              (*, 7, 3)   147.92      -31.283    
-             (*, 8, 3)   148.01      -31.33     
+             (*, 8, 3)   148.01      -31.330    
              (*, 9, 3)   148.15      -31.176    
              (*,10, 3)   148.23      -31.316    
-             (*,11, 3)   148.18      -31.27     
+             (*,11, 3)   148.18      -31.270    
              (*,12, 3)   148.51      -31.241    
              (*,13, 3)   148.33      -31.312    
              (*,14, 3)   148.43      -31.283    
@@ -425,12 +425,12 @@ tab[0].*
              (*,28, 3)   149.56      -31.374    
              (*,29, 3)   149.47      -31.311    
              (*,30, 3)   149.74      -31.303    
-             (*,31, 3)   149.63      -31.27     
+             (*,31, 3)   149.63      -31.270    
              (*,32, 3)   149.73      -31.251    
              (*,33, 3)   149.91      -31.321    
-             (*,34, 3)   149.91      -31.32     
+             (*,34, 3)   149.91      -31.320    
              (*,35, 3)   149.87      -31.257    
-             (*,36, 3)   149.9       -31.308    
+             (*,36, 3)   149.90      -31.308    
              (*,37, 3)   150.21      -31.273    
              (*,38, 3)   150.12      -31.255    
              (*,39, 3)   150.35      -31.258    
@@ -439,10 +439,10 @@ tab[0].*
              (*,42, 3)   150.47      -31.314    
              (*,43, 3)   150.47      -31.229    
              (*,44, 3)   150.56      -31.379    
-             (*,45, 3)   150.8       -31.242    
-             (*,46, 3)   150.8       -31.345    
+             (*,45, 3)   150.80      -31.242    
+             (*,46, 3)   150.80      -31.345    
              (*,47, 3)   150.85      -31.265    
-             (*,48, 3)   150.9       -31.282    
+             (*,48, 3)   150.90      -31.282    
              (*,49, 3)   150.86      -31.256    
              (*,50, 3)   151.11      -31.236    
              (*,51, 3)   151.22      -31.236    
@@ -454,7 +454,7 @@ tab[0].*
              (*,57, 3)   151.41      -31.211    
              (*,58, 3)   151.52      -31.362    
              (*,59, 3)   151.81      -31.318    
-             (*,60, 3)   151.93      -31.33     
+             (*,60, 3)   151.93      -31.330    
              (*,61, 3)   151.94      -31.308    
              (*,62, 3)   151.71      -31.307    
              (*,63, 3)   152.25      -31.314    
@@ -462,9 +462,9 @@ tab[0].*
              (*,65, 3)   152.13      -31.346    
              (*,66, 3)   152.13      -31.331    
              (*,67, 3)   152.21      -31.292    
-             (*,68, 3)   152.25      -31.3      
+             (*,68, 3)   152.25      -31.300    
              (*,69, 3)   152.45      -31.376    
-             (*,70, 3)   152.49      -31.23     
+             (*,70, 3)   152.49      -31.230    
              (*, 1, 4)   147.42      -31.165    
              (*, 2, 4)   147.49      -31.209    
              (*, 3, 4)   147.61      -31.202    
@@ -490,34 +490,34 @@ tab[0].*
              (*,23, 4)   149.05      -31.161    
              (*,24, 4)   149.05      -31.223    
              (*,25, 4)   149.16      -31.224    
-             (*,26, 4)   149.3       -31.203    
+             (*,26, 4)   149.30      -31.203    
              (*,27, 4)   149.21      -31.164    
              (*,28, 4)   149.42      -31.171    
              (*,29, 4)   149.45      -31.243    
-             (*,30, 4)   149.5       -31.245    
+             (*,30, 4)   149.50      -31.245    
              (*,31, 4)   149.59      -31.224    
              (*,32, 4)   149.64      -31.215    
              (*,33, 4)   149.81      -31.196    
              (*,34, 4)   149.75      -31.158    
-             (*,35, 4)   149.97      -31.25     
+             (*,35, 4)   149.97      -31.250    
              (*,36, 4)   150.13      -31.214    
              (*,37, 4)   150.17      -31.266    
              (*,38, 4)   149.99      -31.118    
              (*,39, 4)   150.34      -31.229    
-             (*,40, 4)   150.3       -31.218    
+             (*,40, 4)   150.30      -31.218    
              (*,41, 4)   150.24      -31.229    
-             (*,42, 4)   150.54      -31.36     
-             (*,43, 4)   150.5       -31.176    
+             (*,42, 4)   150.54      -31.360    
+             (*,43, 4)   150.50      -31.176    
              (*,44, 4)   150.68      -31.182    
              (*,45, 4)   150.52      -31.188    
              (*,46, 4)   150.75      -31.208    
-             (*,47, 4)   150.73      -31.17     
+             (*,47, 4)   150.73      -31.170    
              (*,48, 4)   151.05      -31.112    
-             (*,49, 4)   151.01      -31.12     
+             (*,49, 4)   151.01      -31.120    
              (*,50, 4)   151.07      -31.202    
              (*,51, 4)   151.09      -31.224    
              (*,52, 4)   151.09      -31.253    
-             (*,53, 4)   151.3       -31.164    
+             (*,53, 4)   151.30      -31.164    
              (*,54, 4)   151.28      -31.222    
              (*,55, 4)   151.47      -31.226    
              (*,56, 4)   151.54      -31.149    
@@ -525,39 +525,39 @@ tab[0].*
              (*,58, 4)   151.54      -31.287    
              (*,59, 4)   151.82      -31.157    
              (*,60, 4)   151.93      -31.042    
-             (*,61, 4)   151.76      -31.18     
+             (*,61, 4)   151.76      -31.180    
              (*,62, 4)   151.95      -31.194    
              (*,63, 4)   151.95      -31.268    
              (*,64, 4)   152.03      -31.229    
-             (*,65, 4)   152.1       -31.307    
+             (*,65, 4)   152.10      -31.307    
              (*,66, 4)   152.16      -31.283    
-             (*,67, 4)   152.3       -31.254    
+             (*,67, 4)   152.30      -31.254    
              (*,68, 4)   152.28      -31.222    
              (*,69, 4)   152.31      -31.169    
-             (*,70, 4)   152.5       -31.219    
+             (*,70, 4)   152.50      -31.219    
              (*, 1, 5)   147.38      -31.115    
              (*, 2, 5)   147.51      -31.154    
              (*, 3, 5)   147.68      -31.037    
-             (*, 4, 5)   147.7       -31.165    
+             (*, 4, 5)   147.70      -31.165    
              (*, 5, 5)   147.84      -31.089    
-             (*, 6, 5)   147.86      -31.14     
+             (*, 6, 5)   147.86      -31.140    
              (*, 7, 5)   147.85      -31.264    
              (*, 8, 5)   147.93      -31.055    
              (*, 9, 5)   147.98      -31.197    
-             (*,10, 5)   148.01      -31.16     
-             (*,11, 5)   148.4       -31.111    
-             (*,12, 5)   148.2       -31.184    
+             (*,10, 5)   148.01      -31.160    
+             (*,11, 5)   148.40      -31.111    
+             (*,12, 5)   148.20      -31.184    
              (*,13, 5)   148.36      -31.164    
-             (*,14, 5)   148.4       -31.083    
+             (*,14, 5)   148.40      -31.083    
              (*,15, 5)   148.52      -31.083    
              (*,16, 5)   148.47      -31.119    
              (*,17, 5)   148.66      -31.211    
-             (*,18, 5)   148.7       -31.173    
+             (*,18, 5)   148.70      -31.173    
              (*,19, 5)   148.65      -31.112    
-             (*,20, 5)   149.02      -31.03     
+             (*,20, 5)   149.02      -31.030    
              (*,21, 5)   149.05      -31.133    
              (*,22, 5)   148.96      -31.148    
-             (*,23, 5)   149         -31.209    
+             (*,23, 5)   149.00      -31.209    
              (*,24, 5)   149.08      -31.137    
              (*,25, 5)   149.18      -31.136    
              (*,26, 5)   149.42      -31.111    
@@ -572,15 +572,15 @@ tab[0].*
              (*,35, 5)   149.88      -31.109    
              (*,36, 5)   150.08      -31.167    
              (*,37, 5)   150.14      -31.107    
-             (*,38, 5)   150.3       -31.15     
-             (*,39, 5)   150.14      -31.22     
+             (*,38, 5)   150.30      -31.150    
+             (*,39, 5)   150.14      -31.220    
              (*,40, 5)   150.08      -31.249    
              (*,41, 5)   150.27      -31.179    
              (*,42, 5)   150.58      -31.179    
-             (*,43, 5)   150.52      -31.14     
+             (*,43, 5)   150.52      -31.140    
              (*,44, 5)   150.62      -31.113    
              (*,45, 5)   150.75      -31.116    
-             (*,46, 5)   150.9       -31.16     
+             (*,46, 5)   150.90      -31.160    
              (*,47, 5)   150.87      -31.029    
              (*,48, 5)   151.11      -31.176    
              (*,49, 5)   151.12      -31.182    
@@ -591,50 +591,50 @@ tab[0].*
              (*,54, 5)   151.38      -31.176    
              (*,55, 5)   151.58      -31.042    
              (*,56, 5)   151.53      -31.089    
-             (*,57, 5)   151.5       -31.047    
-             (*,58, 5)   151.6       -31.092    
+             (*,57, 5)   151.50      -31.047    
+             (*,58, 5)   151.60      -31.092    
              (*,59, 5)   151.52      -31.195    
              (*,60, 5)   151.73      -31.164    
              (*,61, 5)   151.85      -31.162    
-             (*,62, 5)   151.9       -31.144    
+             (*,62, 5)   151.90      -31.144    
              (*,63, 5)   151.99      -31.122    
              (*,64, 5)   152.03      -31.238    
              (*,65, 5)   151.98      -31.146    
-             (*,66, 5)   152.14      -31.07     
+             (*,66, 5)   152.14      -31.070    
              (*,67, 5)   152.31      -31.042    
              (*,68, 5)   152.48      -31.139    
              (*,69, 5)   152.51      -31.123    
-             (*,70, 5)   152.3       -31.209    
+             (*,70, 5)   152.30      -31.209    
              (*, 1, 6)   147.41      -31.091    
              (*, 2, 6)   147.56      -31.023    
              (*, 3, 6)   147.79      -31.031    
              (*, 4, 6)   147.75      -31.041    
-             (*, 5, 6)   147.9       -30.988    
+             (*, 5, 6)   147.90      -30.988    
              (*, 6, 6)   147.99      -31.094    
              (*, 7, 6)   147.82      -31.142    
              (*, 8, 6)   147.85      -31.139    
-             (*, 9, 6)   148         -31.111    
+             (*, 9, 6)   148.00      -31.111    
              (*,10, 6)   148.23      -30.986    
              (*,11, 6)   148.14      -31.045    
              (*,12, 6)   148.31      -31.042    
              (*,13, 6)   148.43      -31.031    
              (*,14, 6)   148.56      -31.102    
-             (*,15, 6)   148.56      -31.02     
+             (*,15, 6)   148.56      -31.020    
              (*,16, 6)   148.46      -30.871    
              (*,17, 6)   148.57      -31.089    
              (*,18, 6)   148.61      -31.086    
              (*,19, 6)   148.75      -31.042    
              (*,20, 6)   148.93      -31.125    
-             (*,21, 6)   149         -31.151    
+             (*,21, 6)   149.00      -31.151    
              (*,22, 6)   148.84      -30.944    
              (*,23, 6)   148.89      -31.112    
-             (*,24, 6)   149.14      -31.01     
+             (*,24, 6)   149.14      -31.010    
              (*,25, 6)   149.05      -31.071    
              (*,26, 6)   149.28      -31.127    
              (*,27, 6)   149.41      -31.007    
-             (*,28, 6)   149.39      -31.07     
+             (*,28, 6)   149.39      -31.070    
              (*,29, 6)   149.61      -31.152    
-             (*,30, 6)   149.69      -31.08     
+             (*,30, 6)   149.69      -31.080    
              (*,31, 6)   149.53      -31.047    
              (*,32, 6)   149.67      -31.063    
              (*,33, 6)   149.81      -31.139    
@@ -642,7 +642,7 @@ tab[0].*
              (*,35, 6)   150.12      -31.137    
              (*,36, 6)   150.01      -30.995    
              (*,37, 6)   150.16      -31.002    
-             (*,38, 6)   150.2       -31.099    
+             (*,38, 6)   150.20      -31.099    
              (*,39, 6)   150.18      -31.007    
              (*,40, 6)   150.31      -31.059    
              (*,41, 6)   150.43      -31.061    
@@ -651,19 +651,19 @@ tab[0].*
              (*,44, 6)   150.54      -31.102    
              (*,45, 6)   150.57      -31.047    
              (*,46, 6)   150.74      -31.148    
-             (*,47, 6)   150.87      -31.1      
+             (*,47, 6)   150.87      -31.100    
              (*,48, 6)   150.82      -31.001    
              (*,49, 6)   150.99      -31.139    
              (*,50, 6)   151.31      -31.026    
              (*,51, 6)   151.37      -30.941    
-             (*,52, 6)   151.25      -31.05     
+             (*,52, 6)   151.25      -31.050    
              (*,53, 6)   151.38      -31.056    
              (*,54, 6)   151.25      -31.099    
              (*,55, 6)   151.53      -31.121    
              (*,56, 6)   151.42      -31.066    
              (*,57, 6)   151.37      -30.949    
              (*,58, 6)   151.59      -31.069    
-             (*,59, 6)   151.7       -31.103    
+             (*,59, 6)   151.70      -31.103    
              (*,60, 6)   151.77      -31.006    
              (*,61, 6)   151.84      -31.046    
              (*,62, 6)   151.89      -31.059    
@@ -675,7 +675,7 @@ tab[0].*
              (*,68, 6)   152.34      -31.009    
              (*,69, 6)   152.55      -31.038    
              (*,70, 6)   152.51      -31.071    
-             (*, 1, 7)   147.7       -30.901    
+             (*, 1, 7)   147.70      -30.901    
              (*, 2, 7)   147.41      -30.985    
              (*, 3, 7)   147.67      -31.015    
              (*, 4, 7)   147.56      -31.006    
@@ -693,13 +693,13 @@ tab[0].*
              (*,16, 7)   148.67      -31.005    
              (*,17, 7)   148.77      -30.952    
              (*,18, 7)   148.84      -31.024    
-             (*,19, 7)   148.83      -31.07     
+             (*,19, 7)   148.83      -31.070    
              (*,20, 7)   148.95      -31.008    
-             (*,21, 7)   148.92      -31.05     
+             (*,21, 7)   148.92      -31.050    
              (*,22, 7)   149.03      -30.967    
-             (*,23, 7)   149.1       -31.001    
+             (*,23, 7)   149.10      -31.001    
              (*,24, 7)   149.02      -30.901    
-             (*,25, 7)   149.24      -31.01     
+             (*,25, 7)   149.24      -31.010    
              (*,26, 7)   149.19      -30.994    
              (*,27, 7)   149.38      -31.011    
              (*,28, 7)   149.32      -31.024    
@@ -710,24 +710,24 @@ tab[0].*
              (*,33, 7)   149.92      -31.025    
              (*,34, 7)   150.03      -31.055    
              (*,35, 7)   149.85      -31.031    
-             (*,36, 7)   150.2       -31        
-             (*,37, 7)   150.23      -30.99     
+             (*,36, 7)   150.20      -31.000    
+             (*,37, 7)   150.23      -30.990    
              (*,38, 7)   150.38      -30.997    
-             (*,39, 7)   150.25      -30.94     
+             (*,39, 7)   150.25      -30.940    
              (*,40, 7)   150.28      -31.086    
              (*,41, 7)   150.43      -30.939    
              (*,42, 7)   150.43      -30.993    
-             (*,43, 7)   150.5       -30.937    
+             (*,43, 7)   150.50      -30.937    
              (*,44, 7)   150.72      -30.998    
              (*,45, 7)   150.65      -31.038    
              (*,46, 7)   150.72      -31.056    
-             (*,47, 7)   150.94      -30.98     
+             (*,47, 7)   150.94      -30.980    
              (*,48, 7)   150.93      -30.998    
              (*,49, 7)   150.93      -31.044    
              (*,50, 7)   151.23      -30.955    
              (*,51, 7)   151.14      -31.033    
              (*,52, 7)   151.13      -30.986    
-             (*,53, 7)   151.2       -31.055    
+             (*,53, 7)   151.20      -31.055    
              (*,54, 7)   151.43      -30.924    
              (*,55, 7)   151.32      -30.975    
              (*,56, 7)   151.41      -30.965    
@@ -740,7 +740,7 @@ tab[0].*
              (*,63, 7)   152.09      -31.107    
              (*,64, 7)   151.99      -31.014    
              (*,65, 7)   152.02      -31.067    
-             (*,66, 7)   152.2       -31.006    
+             (*,66, 7)   152.20      -31.006    
              (*,67, 7)   152.31      -31.013    
              (*,68, 7)   152.37      -31.003    
              (*,69, 7)   152.41      -31.042    
@@ -752,8 +752,8 @@ tab[0].*
              (*, 5, 8)   147.87      -30.804    
              (*, 6, 8)   147.88      -30.824    
              (*, 7, 8)   147.98      -30.871    
-             (*, 8, 8)   148.1       -30.91     
-             (*, 9, 8)   147.99      -30.94     
+             (*, 8, 8)   148.10      -30.910    
+             (*, 9, 8)   147.99      -30.940    
              (*,10, 8)   148.22      -30.922    
              (*,11, 8)   148.34      -30.886    
              (*,12, 8)   148.23      -30.929    
@@ -787,21 +787,21 @@ tab[0].*
              (*,40, 8)   150.53      -30.931    
              (*,41, 8)   150.32      -30.971    
              (*,42, 8)   150.47      -30.973    
-             (*,43, 8)   150.5       -31.006    
+             (*,43, 8)   150.50      -31.006    
              (*,44, 8)   150.64      -30.915    
-             (*,45, 8)   150.47      -30.94     
+             (*,45, 8)   150.47      -30.940    
              (*,46, 8)   150.83      -31.012    
              (*,47, 8)   150.86      -30.944    
              (*,48, 8)   150.94      -30.971    
-             (*,49, 8)   150.96      -30.99     
+             (*,49, 8)   150.96      -30.990    
              (*,50, 8)   151.24      -30.849    
              (*,51, 8)   151.29      -30.838    
              (*,52, 8)   151.19      -30.955    
              (*,53, 8)   151.29      -30.947    
              (*,54, 8)   151.37      -30.922    
-             (*,55, 8)   151.3       -30.938    
+             (*,55, 8)   151.30      -30.938    
              (*,56, 8)   151.49      -30.909    
-             (*,57, 8)   151.4       -30.887    
+             (*,57, 8)   151.40      -30.887    
              (*,58, 8)   151.56      -30.919    
              (*,59, 8)   151.74      -31.009    
              (*,60, 8)   152.04      -30.916    
@@ -812,7 +812,7 @@ tab[0].*
              (*,65, 8)   152.17      -30.881    
              (*,66, 8)   152.27      -30.999    
              (*,67, 8)   152.15      -30.865    
-             (*,68, 8)   152.35      -30.9      
+             (*,68, 8)   152.35      -30.900    
              (*,69, 8)   152.54      -30.936    
              (*,70, 8)   152.48      -30.911    
              (*, 1, 9)   147.55      -30.819    
@@ -822,21 +822,21 @@ tab[0].*
              (*, 5, 9)   147.87      -30.834    
              (*, 6, 9)   147.98      -30.835    
              (*, 7, 9)   147.91      -30.796    
-             (*, 8, 9)   148.1       -30.882    
+             (*, 8, 9)   148.10      -30.882    
              (*, 9, 9)   148.15      -30.804    
              (*,10, 9)   148.36      -30.873    
              (*,11, 9)   148.09      -30.901    
              (*,12, 9)   148.23      -30.759    
              (*,13, 9)   148.35      -30.833    
              (*,14, 9)   148.48      -30.836    
-             (*,15, 9)   148.5       -30.85     
+             (*,15, 9)   148.50      -30.850    
              (*,16, 9)   148.52      -30.896    
              (*,17, 9)   148.57      -30.854    
              (*,18, 9)   148.81      -30.814    
              (*,19, 9)   148.88      -30.788    
              (*,20, 9)   149.12      -30.841    
-             (*,21, 9)   149.08      -30.82     
-             (*,22, 9)   149         -30.871    
+             (*,21, 9)   149.08      -30.820    
+             (*,22, 9)   149.00      -30.871    
              (*,23, 9)   149.06      -30.791    
              (*,24, 9)   149.16      -30.819    
              (*,25, 9)   149.13      -30.821    
@@ -860,43 +860,43 @@ tab[0].*
              (*,43, 9)   150.63      -30.773    
              (*,44, 9)   150.66      -30.895    
              (*,45, 9)   150.88      -30.799    
-             (*,46, 9)   150.6       -30.889    
+             (*,46, 9)   150.60      -30.889    
              (*,47, 9)   150.74      -30.838    
              (*,48, 9)   151.07      -30.831    
              (*,49, 9)   150.87      -30.869    
              (*,50, 9)   150.98      -30.887    
-             (*,51, 9)   151.3       -30.855    
+             (*,51, 9)   151.30      -30.855    
              (*,52, 9)   151.25      -30.869    
-             (*,53, 9)   151.34      -30.83     
+             (*,53, 9)   151.34      -30.830    
              (*,54, 9)   151.38      -30.781    
              (*,55, 9)   151.31      -30.805    
              (*,56, 9)   151.48      -30.832    
              (*,57, 9)   151.47      -30.818    
-             (*,58, 9)   151.6       -30.788    
+             (*,58, 9)   151.60      -30.788    
              (*,59, 9)   151.64      -30.761    
              (*,60, 9)   151.77      -30.807    
              (*,61, 9)   151.88      -30.816    
              (*,62, 9)   151.94      -30.907    
              (*,63, 9)   151.94      -30.914    
              (*,64, 9)   152.09      -30.855    
-             (*,65, 9)   152.23      -30.79     
-             (*,66, 9)   152.14      -30.81     
+             (*,65, 9)   152.23      -30.790    
+             (*,66, 9)   152.14      -30.810    
              (*,67, 9)   152.38      -30.888    
              (*,68, 9)   152.28      -30.844    
              (*,69, 9)   152.42      -30.843    
-             (*,70, 9)   152.6       -30.819    
+             (*,70, 9)   152.60      -30.819    
              (*, 1,10)   147.37      -30.829    
-             (*, 2,10)   147.6       -30.737    
+             (*, 2,10)   147.60      -30.737    
              (*, 3,10)   147.81      -30.705    
              (*, 4,10)   147.69      -30.774    
              (*, 5,10)   147.74      -30.769    
-             (*, 6,10)   147.8       -30.745    
+             (*, 6,10)   147.80      -30.745    
              (*, 7,10)   147.97      -30.806    
              (*, 8,10)   148.08      -30.716    
              (*, 9,10)   148.02      -30.788    
              (*,10,10)   148.23      -30.783    
              (*,11,10)   148.15      -30.762    
-             (*,12,10)   148.38      -30.82     
+             (*,12,10)   148.38      -30.820    
              (*,13,10)   148.33      -30.676    
              (*,14,10)   148.47      -30.733    
              (*,15,10)   148.49      -30.818    
@@ -904,12 +904,12 @@ tab[0].*
              (*,17,10)   148.56      -30.761    
              (*,18,10)   148.62      -30.765    
              (*,19,10)   148.78      -30.757    
-             (*,20,10)   148.9       -30.769    
+             (*,20,10)   148.90      -30.769    
              (*,21,10)   149.09      -30.814    
              (*,22,10)   149.12      -30.825    
              (*,23,10)   149.17      -30.791    
              (*,24,10)   149.28      -30.826    
-             (*,25,10)   149.3       -30.817    
+             (*,25,10)   149.30      -30.817    
              (*,26,10)   149.49      -30.775    
              (*,27,10)   149.42      -30.702    
              (*,28,10)   149.42      -30.784    
@@ -923,47 +923,47 @@ tab[0].*
              (*,36,10)   150.02      -30.766    
              (*,37,10)   150.12      -30.825    
              (*,38,10)   150.25      -30.822    
-             (*,39,10)   150.05      -30.65     
+             (*,39,10)   150.05      -30.650    
              (*,40,10)   150.27      -30.798    
              (*,41,10)   150.44      -30.707    
              (*,42,10)   150.33      -30.659    
              (*,43,10)   150.68      -30.744    
-             (*,44,10)   150.6       -30.797    
+             (*,44,10)   150.60      -30.797    
              (*,45,10)   150.38      -30.719    
              (*,46,10)   150.78      -30.771    
              (*,47,10)   150.95      -30.775    
-             (*,48,10)   151.1       -30.715    
+             (*,48,10)   151.10      -30.715    
              (*,49,10)   151.13      -30.756    
              (*,50,10)   151.25      -30.745    
              (*,51,10)   151.05      -30.731    
              (*,52,10)   151.19      -30.675    
              (*,53,10)   151.16      -30.717    
              (*,54,10)   151.42      -30.743    
-             (*,55,10)   151.5       -30.694    
+             (*,55,10)   151.50      -30.694    
              (*,56,10)   151.43      -30.823    
              (*,57,10)   151.46      -30.766    
              (*,58,10)   151.73      -30.808    
-             (*,59,10)   151.7       -30.776    
-             (*,60,10)   151.8       -30.79     
+             (*,59,10)   151.70      -30.776    
+             (*,60,10)   151.80      -30.790    
              (*,61,10)   151.91      -30.846    
              (*,62,10)   151.81      -30.794    
              (*,63,10)   152.04      -30.764    
-             (*,64,10)   152         -30.767    
+             (*,64,10)   152.00      -30.767    
              (*,65,10)   152.12      -30.758    
-             (*,66,10)   152.3       -30.744    
+             (*,66,10)   152.30      -30.744    
              (*,67,10)   152.14      -30.839    
              (*,68,10)   152.29      -30.727    
-             (*,69,10)   152.52      -30.74     
+             (*,69,10)   152.52      -30.740    
              (*,70,10)   152.63      -30.795    
              (*, 1,11)   147.37      -30.629    
              (*, 2,11)   147.73      -30.808    
-             (*, 3,11)   147.56      -30.72     
-             (*, 4,11)   147.8       -30.663    
+             (*, 3,11)   147.56      -30.720    
+             (*, 4,11)   147.80      -30.663    
              (*, 5,11)   147.94      -30.602    
              (*, 6,11)   147.92      -30.641    
              (*, 7,11)   148.03      -30.752    
              (*, 8,11)   148.01      -30.629    
-             (*, 9,11)   148.1       -30.723    
+             (*, 9,11)   148.10      -30.723    
              (*,10,11)   148.09      -30.736    
              (*,11,11)   148.17      -30.708    
              (*,12,11)   148.43      -30.649    
@@ -982,68 +982,68 @@ tab[0].*
              (*,25,11)   149.17      -30.677    
              (*,26,11)   149.37      -30.593    
              (*,27,11)   149.47      -30.647    
-             (*,28,11)   149.65      -30.77     
+             (*,28,11)   149.65      -30.770    
              (*,29,11)   149.71      -30.783    
              (*,30,11)   149.86      -30.685    
              (*,31,11)   149.55      -30.736    
              (*,32,11)   149.58      -30.677    
-             (*,33,11)   149.7       -30.711    
+             (*,33,11)   149.70      -30.711    
              (*,34,11)   149.81      -30.761    
              (*,35,11)   150.11      -30.706    
              (*,36,11)   150.08      -30.657    
              (*,37,11)   150.03      -30.707    
              (*,38,11)   150.19      -30.667    
-             (*,39,11)   150.3       -30.713    
+             (*,39,11)   150.30      -30.713    
              (*,40,11)   150.37      -30.688    
              (*,41,11)   150.55      -30.632    
              (*,42,11)   150.42      -30.681    
              (*,43,11)   150.44      -30.731    
              (*,44,11)   150.67      -30.742    
              (*,45,11)   150.73      -30.829    
-             (*,46,11)   150.76      -30.61     
+             (*,46,11)   150.76      -30.610    
              (*,47,11)   150.69      -30.654    
              (*,48,11)   150.77      -30.742    
-             (*,49,11)   151.2       -30.755    
+             (*,49,11)   151.20      -30.755    
              (*,50,11)   151.07      -30.814    
              (*,51,11)   151.06      -30.655    
              (*,52,11)   151.19      -30.714    
              (*,53,11)   151.12      -30.705    
-             (*,54,11)   151.4       -30.652    
-             (*,55,11)   151.45      -30.7      
+             (*,54,11)   151.40      -30.652    
+             (*,55,11)   151.45      -30.700    
              (*,56,11)   151.54      -30.615    
-             (*,57,11)   151.7       -30.606    
+             (*,57,11)   151.70      -30.606    
              (*,58,11)   151.81      -30.662    
-             (*,59,11)   151.4       -30.731    
+             (*,59,11)   151.40      -30.731    
              (*,60,11)   151.86      -30.762    
              (*,61,11)   151.87      -30.622    
-             (*,62,11)   151.96      -30.67     
+             (*,62,11)   151.96      -30.670    
              (*,63,11)   151.86      -30.653    
              (*,64,11)   152.09      -30.651    
              (*,65,11)   151.83      -30.756    
-             (*,66,11)   152.3       -30.723    
+             (*,66,11)   152.30      -30.723    
              (*,67,11)   152.23      -30.733    
              (*,68,11)   152.26      -30.674    
              (*,69,11)   152.58      -30.653    
              (*,70,11)   152.54      -30.742    
              (*, 1,12)   147.66      -30.669    
              (*, 2,12)   147.45      -30.599    
-             (*, 3,12)   147.69      -30.65     
+             (*, 3,12)   147.69      -30.650    
              (*, 4,12)   147.52      -30.619    
              (*, 5,12)   147.69      -30.665    
-             (*, 6,12)   147.77      -30.59     
+             (*, 6,12)   147.77      -30.590    
              (*, 7,12)   147.83      -30.495    
              (*, 8,12)   147.95      -30.611    
              (*, 9,12)   148.08      -30.599    
              (*,10,12)   148.11      -30.613    
              (*,11,12)   148.25      -30.656    
              (*,12,12)   148.29      -30.693    
-             (*,13,12)   148.48      -30.6      
+             (*,13,12)   148.48      -30.600    
              (*,14,12)   148.37      -30.624    
              (*,15,12)   148.46      -30.592    
              (*,16,12)   148.62      -30.563    
              (*,17,12)   148.74      -30.636    
-             (*,18,12)   148.72      -30.64     
-             (*,19,12)   148.77      -30.64     
+             (*,18,12)   148.72      -30.640    
+             (*,19,12)   148.77      -30.640    
              (*,20,12)   148.83      -30.654    
              (*,21,12)   148.83      -30.644    
              (*,22,12)   148.89      -30.656    
@@ -1056,14 +1056,14 @@ tab[0].*
              (*,29,12)   149.59      -30.669    
              (*,30,12)   149.63      -30.671    
              (*,31,12)   149.54      -30.655    
-             (*,32,12)   149.87      -30.65     
-             (*,33,12)   149.8       -30.604    
+             (*,32,12)   149.87      -30.650    
+             (*,33,12)   149.80      -30.604    
              (*,34,12)   149.85      -30.614    
-             (*,35,12)   150.12      -30.64     
+             (*,35,12)   150.12      -30.640    
              (*,36,12)   150.13      -30.628    
              (*,37,12)   150.28      -30.527    
              (*,38,12)   150.26      -30.631    
-             (*,39,12)   150.3       -30.583    
+             (*,39,12)   150.30      -30.583    
              (*,40,12)   150.42      -30.604    
              (*,41,12)   150.21      -30.597    
              (*,42,12)   150.81      -30.582    
@@ -1073,29 +1073,29 @@ tab[0].*
              (*,46,12)   150.74      -30.655    
              (*,47,12)   151.11      -30.665    
              (*,48,12)   150.97      -30.578    
-             (*,49,12)   150.9       -30.587    
-             (*,50,12)   151         -30.683    
+             (*,49,12)   150.90      -30.587    
+             (*,50,12)   151.00      -30.683    
              (*,51,12)   151.01      -30.549    
              (*,52,12)   151.09      -30.643    
              (*,53,12)   151.31      -30.569    
              (*,54,12)   151.35      -30.702    
              (*,55,12)   151.28      -30.591    
              (*,56,12)   151.44      -30.671    
-             (*,57,12)   151.4       -30.616    
+             (*,57,12)   151.40      -30.616    
              (*,58,12)   151.58      -30.622    
              (*,59,12)   151.75      -30.636    
              (*,60,12)   152.04      -30.477    
              (*,61,12)   151.96      -30.737    
              (*,62,12)   152.02      -30.503    
-             (*,63,12)   152.01      -30.64     
-             (*,64,12)   152         -30.635    
+             (*,63,12)   152.01      -30.640    
+             (*,64,12)   152.00      -30.635    
              (*,65,12)   152.06      -30.621    
              (*,66,12)   152.36      -30.594    
              (*,67,12)   152.11      -30.553    
              (*,68,12)   152.44      -30.629    
              (*,69,12)   152.36      -30.668    
              (*,70,12)   152.46      -30.664    
-             (*, 1,13)   147.48      -30.54     
+             (*, 1,13)   147.48      -30.540    
              (*, 2,13)   147.51      -30.492    
              (*, 3,13)   147.63      -30.563    
              (*, 4,13)   147.69      -30.587    
@@ -1106,15 +1106,15 @@ tab[0].*
              (*, 9,13)   147.99      -30.576    
              (*,10,13)   148.11      -30.543    
              (*,11,13)   148.28      -30.523    
-             (*,12,13)   148.25      -30.65     
+             (*,12,13)   148.25      -30.650    
              (*,13,13)   148.36      -30.578    
              (*,14,13)   148.32      -30.506    
              (*,15,13)   148.51      -30.549    
              (*,16,13)   148.77      -30.522    
-             (*,17,13)   148.5       -30.512    
+             (*,17,13)   148.50      -30.512    
              (*,18,13)   148.59      -30.572    
-             (*,19,13)   149         -30.544    
-             (*,20,13)   148.7       -30.617    
+             (*,19,13)   149.00      -30.544    
+             (*,20,13)   148.70      -30.617    
              (*,21,13)   148.89      -30.595    
              (*,22,13)   149.08      -30.645    
              (*,23,13)   149.19      -30.631    
@@ -1125,7 +1125,7 @@ tab[0].*
              (*,28,13)   149.37      -30.499    
              (*,29,13)   149.62      -30.527    
              (*,30,13)   149.48      -30.577    
-             (*,31,13)   149.59      -30.63     
+             (*,31,13)   149.59      -30.630    
              (*,32,13)   149.74      -30.566    
              (*,33,13)   150.04      -30.512    
              (*,34,13)   149.71      -30.531    
@@ -1133,22 +1133,22 @@ tab[0].*
              (*,36,13)   149.99      -30.626    
              (*,37,13)   150.16      -30.586    
              (*,38,13)   150.05      -30.593    
-             (*,39,13)   150.1       -30.489    
+             (*,39,13)   150.10      -30.489    
              (*,40,13)   150.44      -30.522    
-             (*,41,13)   150.33      -30.57     
-             (*,42,13)   150.4       -30.57     
+             (*,41,13)   150.33      -30.570    
+             (*,42,13)   150.40      -30.570    
              (*,43,13)   150.67      -30.517    
              (*,44,13)   150.57      -30.489    
-             (*,45,13)   150.7       -30.524    
-             (*,46,13)   150.77      -30.58     
+             (*,45,13)   150.70      -30.524    
+             (*,46,13)   150.77      -30.580    
              (*,47,13)   150.77      -30.514    
              (*,48,13)   150.91      -30.548    
              (*,49,13)   150.99      -30.582    
              (*,50,13)   151.06      -30.583    
              (*,51,13)   151.07      -30.517    
-             (*,52,13)   151.3       -30.525    
+             (*,52,13)   151.30      -30.525    
              (*,53,13)   151.41      -30.551    
-             (*,54,13)   151.3       -30.464    
+             (*,54,13)   151.30      -30.464    
              (*,55,13)   151.44      -30.537    
              (*,56,13)   151.41      -30.609    
              (*,57,13)   151.61      -30.567    
@@ -1159,36 +1159,36 @@ tab[0].*
              (*,62,13)   152.05      -30.625    
              (*,63,13)   151.94      -30.626    
              (*,64,13)   152.11      -30.447    
-             (*,65,13)   152.17      -30.42     
+             (*,65,13)   152.17      -30.420    
              (*,66,13)   152.19      -30.588    
              (*,67,13)   152.24      -30.584    
              (*,68,13)   152.32      -30.522    
              (*,69,13)   152.53      -30.565    
              (*,70,13)   152.54      -30.548    
-             (*, 1,14)   147.49      -30.59     
+             (*, 1,14)   147.49      -30.590    
              (*, 2,14)   147.65      -30.462    
              (*, 3,14)   147.64      -30.443    
              (*, 4,14)   147.96      -30.455    
              (*, 5,14)   147.87      -30.443    
              (*, 6,14)   147.92      -30.476    
              (*, 7,14)   147.96      -30.389    
-             (*, 8,14)   148         -30.442    
+             (*, 8,14)   148.00      -30.442    
              (*, 9,14)   148.21      -30.526    
-             (*,10,14)   148.11      -30.49     
+             (*,10,14)   148.11      -30.490    
              (*,11,14)   148.31      -30.461    
              (*,12,14)   148.42      -30.443    
-             (*,13,14)   148.3       -30.531    
+             (*,13,14)   148.30      -30.531    
              (*,14,14)   148.43      -30.493    
              (*,15,14)   148.45      -30.524    
              (*,16,14)   148.42      -30.455    
-             (*,17,14)   148.8       -30.486    
+             (*,17,14)   148.80      -30.486    
              (*,18,14)   148.69      -30.487    
              (*,19,14)   148.76      -30.449    
-             (*,20,14)   148.9       -30.455    
-             (*,21,14)   148.87      -30.4      
-             (*,22,14)   149.06      -30.45     
+             (*,20,14)   148.90      -30.455    
+             (*,21,14)   148.87      -30.400    
+             (*,22,14)   149.06      -30.450    
              (*,23,14)   149.16      -30.481    
-             (*,24,14)   149.41      -30.51     
+             (*,24,14)   149.41      -30.510    
              (*,25,14)   149.25      -30.361    
              (*,26,14)   149.26      -30.442    
              (*,27,14)   149.42      -30.478    
@@ -1196,7 +1196,7 @@ tab[0].*
              (*,29,14)   149.47      -30.531    
              (*,30,14)   149.68      -30.517    
              (*,31,14)   149.74      -30.458    
-             (*,32,14)   149.8       -30.495    
+             (*,32,14)   149.80      -30.495    
              (*,33,14)   149.66      -30.572    
              (*,34,14)   150.01      -30.424    
              (*,35,14)   150.16      -30.507    
@@ -1205,8 +1205,8 @@ tab[0].*
              (*,38,14)   150.14      -30.442    
              (*,39,14)   150.26      -30.444    
              (*,40,14)   150.29      -30.474    
-             (*,41,14)   150.5       -30.453    
-             (*,42,14)   150.5       -30.45     
+             (*,41,14)   150.50      -30.453    
+             (*,42,14)   150.50      -30.450    
              (*,43,14)   150.59      -30.538    
              (*,44,14)   150.67      -30.412    
              (*,45,14)   150.77      -30.462    
@@ -1222,22 +1222,22 @@ tab[0].*
              (*,55,14)   151.55      -30.441    
              (*,56,14)   151.62      -30.499    
              (*,57,14)   151.58      -30.505    
-             (*,58,14)   151.6       -30.397    
+             (*,58,14)   151.60      -30.397    
              (*,59,14)   151.67      -30.461    
              (*,60,14)   151.71      -30.435    
              (*,61,14)   151.88      -30.402    
              (*,62,14)   151.84      -30.513    
              (*,63,14)   151.98      -30.473    
              (*,64,14)   151.98      -30.519    
-             (*,65,14)   152.19      -30.52     
+             (*,65,14)   152.19      -30.520    
              (*,66,14)   152.07      -30.594    
              (*,67,14)   152.56      -30.521    
              (*,68,14)   152.34      -30.514    
              (*,69,14)   152.58      -30.515    
              (*,70,14)   152.57      -30.523    
              (*, 1,15)   147.45      -30.443    
-             (*, 2,15)   147.83      -30.39     
-             (*, 3,15)   147.76      -30.45     
+             (*, 2,15)   147.83      -30.390    
+             (*, 3,15)   147.76      -30.450    
              (*, 4,15)   147.67      -30.401    
              (*, 5,15)   147.71      -30.437    
              (*, 6,15)   147.94      -30.484    
@@ -1250,8 +1250,8 @@ tab[0].*
              (*,13,15)   148.39      -30.382    
              (*,14,15)   148.46      -30.353    
              (*,15,15)   148.58      -30.413    
-             (*,16,15)   148.7       -30.384    
-             (*,17,15)   148.7       -30.342    
+             (*,16,15)   148.70      -30.384    
+             (*,17,15)   148.70      -30.342    
              (*,18,15)   148.85      -30.433    
              (*,19,15)   148.85      -30.424    
              (*,20,15)   148.95      -30.344    
@@ -1261,11 +1261,11 @@ tab[0].*
              (*,24,15)   149.28      -30.499    
              (*,25,15)   149.25      -30.386    
              (*,26,15)   149.18      -30.409    
-             (*,27,15)   149.53      -30.36     
+             (*,27,15)   149.53      -30.360    
              (*,28,15)   149.52      -30.375    
              (*,29,15)   149.48      -30.418    
              (*,30,15)   149.73      -30.437    
-             (*,31,15)   149.4       -30.374    
+             (*,31,15)   149.40      -30.374    
              (*,32,15)   149.83      -30.382    
              (*,33,15)   149.91      -30.414    
              (*,34,15)   149.83      -30.396    
@@ -1284,7 +1284,7 @@ tab[0].*
              (*,47,15)   150.77      -30.432    
              (*,48,15)   150.89      -30.346    
              (*,49,15)   150.96      -30.353    
-             (*,50,15)   151.2       -30.404    
+             (*,50,15)   151.20      -30.404    
              (*,51,15)   151.26      -30.414    
              (*,52,15)   151.25      -30.358    
              (*,53,15)   151.15      -30.341    
@@ -1296,7 +1296,7 @@ tab[0].*
              (*,59,15)   151.78      -30.357    
              (*,60,15)   151.92      -30.469    
              (*,61,15)   151.87      -30.382    
-             (*,62,15)   151.9       -30.384    
+             (*,62,15)   151.90      -30.384    
              (*,63,15)   151.97      -30.413    
              (*,64,15)   151.96      -30.416    
              (*,65,15)   152.08      -30.416    
@@ -1305,44 +1305,44 @@ tab[0].*
              (*,68,15)   152.44      -30.396    
              (*,69,15)   152.37      -30.442    
              (*,70,15)   152.43      -30.416    
-             (*, 1,16)   147.6       -30.324    
+             (*, 1,16)   147.60      -30.324    
              (*, 2,16)   147.55      -30.276    
-             (*, 3,16)   147.68      -30.28     
+             (*, 3,16)   147.68      -30.280    
              (*, 4,16)   147.86      -30.382    
-             (*, 5,16)   147.89      -30.4      
+             (*, 5,16)   147.89      -30.400    
              (*, 6,16)   148.02      -30.385    
              (*, 7,16)   147.91      -30.355    
              (*, 8,16)   147.94      -30.372    
              (*, 9,16)   148.02      -30.415    
              (*,10,16)   148.12      -30.312    
-             (*,11,16)   148.2       -30.245    
+             (*,11,16)   148.20      -30.245    
              (*,12,16)   148.29      -30.266    
-             (*,13,16)   148.3       -30.357    
-             (*,14,16)   148.32      -30.3      
+             (*,13,16)   148.30      -30.357    
+             (*,14,16)   148.32      -30.300    
              (*,15,16)   148.58      -30.308    
-             (*,16,16)   148.7       -30.287    
+             (*,16,16)   148.70      -30.287    
              (*,17,16)   148.64      -30.271    
              (*,18,16)   148.82      -30.381    
-             (*,19,16)   148.8       -30.359    
+             (*,19,16)   148.80      -30.359    
              (*,20,16)   148.94      -30.213    
              (*,21,16)   148.95      -30.358    
-             (*,22,16)   148.9       -30.255    
+             (*,22,16)   148.90      -30.255    
              (*,23,16)   149.21      -30.327    
              (*,24,16)   149.09      -30.296    
              (*,25,16)   149.28      -30.238    
              (*,26,16)   149.33      -30.378    
              (*,27,16)   149.59      -30.384    
-             (*,28,16)   149.3       -30.334    
+             (*,28,16)   149.30      -30.334    
              (*,29,16)   149.54      -30.254    
              (*,30,16)   149.48      -30.351    
              (*,31,16)   149.77      -30.327    
              (*,32,16)   149.88      -30.275    
              (*,33,16)   149.85      -30.327    
-             (*,34,16)   149.85      -30.31     
+             (*,34,16)   149.85      -30.310    
              (*,35,16)   149.98      -30.389    
              (*,36,16)   150.07      -30.286    
              (*,37,16)   150.15      -30.255    
-             (*,38,16)   150.2       -30.296    
+             (*,38,16)   150.20      -30.296    
              (*,39,16)   150.05      -30.305    
              (*,40,16)   150.32      -30.322    
              (*,41,16)   150.36      -30.337    
@@ -1352,8 +1352,8 @@ tab[0].*
              (*,45,16)   150.67      -30.193    
              (*,46,16)   150.85      -30.278    
              (*,47,16)   150.82      -30.376    
-             (*,48,16)   150.83      -30.35     
-             (*,49,16)   151         -30.292    
+             (*,48,16)   150.83      -30.350    
+             (*,49,16)   151.00      -30.292    
              (*,50,16)   151.06      -30.276    
              (*,51,16)   151.26      -30.384    
              (*,52,16)   151.18      -30.368    
@@ -1368,40 +1368,40 @@ tab[0].*
              (*,61,16)   151.81      -30.363    
              (*,62,16)   151.81      -30.322    
              (*,63,16)   151.94      -30.388    
-             (*,64,16)   152.1       -30.322    
+             (*,64,16)   152.10      -30.322    
              (*,65,16)   152.15      -30.361    
              (*,66,16)   152.09      -30.248    
              (*,67,16)   152.29      -30.339    
-             (*,68,16)   152.36      -30.31     
-             (*,69,16)   152.3       -30.402    
+             (*,68,16)   152.36      -30.310    
+             (*,69,16)   152.30      -30.402    
              (*,70,16)   152.49      -30.385    
-             (*, 1,17)   147.4       -30.197    
-             (*, 2,17)   147.62      -30.21     
+             (*, 1,17)   147.40      -30.197    
+             (*, 2,17)   147.62      -30.210    
              (*, 3,17)   147.56      -30.288    
              (*, 4,17)   147.62      -30.207    
              (*, 5,17)   147.78      -30.286    
              (*, 6,17)   147.83      -30.378    
              (*, 7,17)   147.85      -30.245    
              (*, 8,17)   147.82      -30.217    
-             (*, 9,17)   148.07      -30.25     
-             (*,10,17)   148.14      -30.28     
+             (*, 9,17)   148.07      -30.250    
+             (*,10,17)   148.14      -30.280    
              (*,11,17)   148.26      -30.308    
-             (*,12,17)   148.3       -30.235    
-             (*,13,17)   148.4       -30.155    
+             (*,12,17)   148.30      -30.235    
+             (*,13,17)   148.40      -30.155    
              (*,14,17)   148.46      -30.304    
-             (*,15,17)   148.4       -30.355    
-             (*,16,17)   148.6       -30.251    
+             (*,15,17)   148.40      -30.355    
+             (*,16,17)   148.60      -30.251    
              (*,17,17)   148.66      -30.282    
              (*,18,17)   148.65      -30.235    
              (*,19,17)   148.64      -30.184    
              (*,20,17)   148.88      -30.374    
-             (*,21,17)   148.9       -30.292    
-             (*,22,17)   148.91      -30.21     
+             (*,21,17)   148.90      -30.292    
+             (*,22,17)   148.91      -30.210    
              (*,23,17)   149.09      -30.317    
              (*,24,17)   148.94      -30.217    
              (*,25,17)   149.24      -30.205    
              (*,26,17)   149.38      -30.186    
-             (*,27,17)   149.3       -30.222    
+             (*,27,17)   149.30      -30.222    
              (*,28,17)   149.66      -30.286    
              (*,29,17)   149.69      -30.266    
              (*,30,17)   149.79      -30.328    
@@ -1409,7 +1409,7 @@ tab[0].*
              (*,32,17)   149.69      -30.228    
              (*,33,17)   149.88      -30.181    
              (*,34,17)   149.88      -30.237    
-             (*,35,17)   150         -30.22     
+             (*,35,17)   150.00      -30.220    
              (*,36,17)   149.96      -30.199    
              (*,37,17)   150.18      -30.236    
              (*,38,17)   150.35      -30.159    
@@ -1421,23 +1421,23 @@ tab[0].*
              (*,44,17)   150.67      -30.221    
              (*,45,17)   150.83      -30.289    
              (*,46,17)   150.76      -30.341    
-             (*,47,17)   150.8       -30.255    
+             (*,47,17)   150.80      -30.255    
              (*,48,17)   150.92      -30.193    
              (*,49,17)   150.93      -30.176    
-             (*,50,17)   150.97      -30.19     
+             (*,50,17)   150.97      -30.190    
              (*,51,17)   151.04      -30.363    
              (*,52,17)   151.04      -30.281    
              (*,53,17)   151.29      -30.263    
              (*,54,17)   151.26      -30.221    
              (*,55,17)   151.26      -30.259    
-             (*,56,17)   151.5       -30.251    
+             (*,56,17)   151.50      -30.251    
              (*,57,17)   151.56      -30.212    
              (*,58,17)   151.68      -30.218    
-             (*,59,17)   151.8       -30.263    
+             (*,59,17)   151.80      -30.263    
              (*,60,17)   151.91      -30.263    
              (*,61,17)   151.96      -30.255    
-             (*,62,17)   152.2       -30.239    
-             (*,63,17)   151.95      -30.33     
+             (*,62,17)   152.20      -30.239    
+             (*,63,17)   151.95      -30.330    
              (*,64,17)   152.16      -30.243    
              (*,65,17)   152.14      -30.283    
              (*,66,17)   152.14      -30.289    
@@ -1447,7 +1447,7 @@ tab[0].*
              (*,70,17)   152.64      -30.185    
              (*, 1,18)   147.28      -30.162    
              (*, 2,18)   147.18      -30.138    
-             (*, 3,18)   147.65      -30.26     
+             (*, 3,18)   147.65      -30.260    
              (*, 4,18)   147.81      -30.263    
              (*, 5,18)   147.67      -30.191    
              (*, 6,18)   147.86      -30.174    
@@ -1465,35 +1465,35 @@ tab[0].*
              (*,18,18)   148.79      -30.123    
              (*,19,18)   148.78      -30.105    
              (*,20,18)   148.84      -30.252    
-             (*,21,18)   148.9       -30.248    
+             (*,21,18)   148.90      -30.248    
              (*,22,18)   149.03      -30.148    
              (*,23,18)   149.07      -30.188    
-             (*,24,18)   149.1       -30.173    
-             (*,25,18)   149.3       -30.22     
+             (*,24,18)   149.10      -30.173    
+             (*,25,18)   149.30      -30.220    
              (*,26,18)   149.26      -30.227    
              (*,27,18)   149.42      -30.195    
              (*,28,18)   149.57      -30.134    
              (*,29,18)   149.36      -30.183    
-             (*,30,18)   149.5       -30.149    
+             (*,30,18)   149.50      -30.149    
              (*,31,18)   149.67      -30.211    
              (*,32,18)   149.77      -30.234    
              (*,33,18)   149.78      -30.113    
              (*,34,18)   149.72      -30.188    
-             (*,35,18)   149.91      -30.24     
+             (*,35,18)   149.91      -30.240    
              (*,36,18)   150.01      -30.038    
              (*,37,18)   150.21      -30.222    
              (*,38,18)   150.28      -30.296    
              (*,39,18)   150.29      -30.104    
              (*,40,18)   150.37      -30.233    
              (*,41,18)   150.35      -30.198    
-             (*,42,18)   150.6       -30.208    
+             (*,42,18)   150.60      -30.208    
              (*,43,18)   150.49      -30.056    
              (*,44,18)   150.56      -30.116    
              (*,45,18)   150.72      -30.155    
-             (*,46,18)   150.7       -30.17     
-             (*,47,18)   150.7       -30.138    
+             (*,46,18)   150.70      -30.170    
+             (*,47,18)   150.70      -30.138    
              (*,48,18)   150.89      -30.183    
-             (*,49,18)   151.11      -30.17     
+             (*,49,18)   151.11      -30.170    
              (*,50,18)   151.04      -30.112    
              (*,51,18)   151.13      -30.186    
              (*,52,18)   151.13      -30.198    
@@ -1505,9 +1505,9 @@ tab[0].*
              (*,58,18)   151.67      -30.164    
              (*,59,18)   151.55      -30.147    
              (*,60,18)   151.78      -30.233    
-             (*,61,18)   151.9       -30.184    
+             (*,61,18)   151.90      -30.184    
              (*,62,18)   151.79      -30.212    
-             (*,63,18)   152.2       -30.244    
+             (*,63,18)   152.20      -30.244    
              (*,64,18)   152.08      -30.133    
              (*,65,18)   152.13      -30.188    
              (*,66,18)   152.24      -30.247    
@@ -1523,8 +1523,8 @@ tab[0].*
              (*, 6,19)   147.85      -30.099    
              (*, 7,19)   147.99      -30.096    
              (*, 8,19)   147.99      -30.117    
-             (*, 9,19)   147.9       -30.127    
-             (*,10,19)   148.17      -30.15     
+             (*, 9,19)   147.90      -30.127    
+             (*,10,19)   148.17      -30.150    
              (*,11,19)   148.29      -30.198    
              (*,12,19)   148.34      -30.106    
              (*,13,19)   148.28      -30.163    
@@ -1535,10 +1535,10 @@ tab[0].*
              (*,18,19)   148.68      -30.137    
              (*,19,19)   148.78      -30.128    
              (*,20,19)   148.83      -30.081    
-             (*,21,19)   149         -30.073    
+             (*,21,19)   149.00      -30.073    
              (*,22,19)   148.81      -30.114    
-             (*,23,19)   149         -30.127    
-             (*,24,19)   149.3       -30.183    
+             (*,23,19)   149.00      -30.127    
+             (*,24,19)   149.30      -30.183    
              (*,25,19)   149.21      -30.118    
              (*,26,19)   149.19      -30.125    
              (*,27,19)   149.51      -30.065    
@@ -1551,11 +1551,11 @@ tab[0].*
              (*,34,19)   149.87      -30.164    
              (*,35,19)   150.03      -30.102    
              (*,36,19)   149.99      -30.085    
-             (*,37,19)   150.3       -30.159    
+             (*,37,19)   150.30      -30.159    
              (*,38,19)   150.13      -30.055    
              (*,39,19)   150.12      -30.172    
              (*,40,19)   150.29      -30.035    
-             (*,41,19)   150.36      -30.11     
+             (*,41,19)   150.36      -30.110    
              (*,42,19)   150.41      -30.085    
              (*,43,19)   150.52      -30.007    
              (*,44,19)   150.75      -30.018    
@@ -1566,42 +1566,42 @@ tab[0].*
              (*,49,19)   150.93      -30.064    
              (*,50,19)   151.09      -30.101    
              (*,51,19)   151.14      -30.133    
-             (*,52,19)   151.2       -30.06     
+             (*,52,19)   151.20      -30.060    
              (*,53,19)   151.46      -30.197    
              (*,54,19)   151.26      -30.056    
-             (*,55,19)   151.2       -30.145    
-             (*,56,19)   151.44      -30.07     
+             (*,55,19)   151.20      -30.145    
+             (*,56,19)   151.44      -30.070    
              (*,57,19)   151.56      -30.112    
              (*,58,19)   151.69      -30.175    
              (*,59,19)   151.79      -30.081    
              (*,60,19)   151.75      -30.142    
              (*,61,19)   151.87      -30.083    
-             (*,62,19)   151.9       -30.155    
-             (*,63,19)   151.95      -30.14     
+             (*,62,19)   151.90      -30.155    
+             (*,63,19)   151.95      -30.140    
              (*,64,19)   152.05      -30.047    
              (*,65,19)   152.12      -30.138    
-             (*,66,19)   151.95      -30.08     
+             (*,66,19)   151.95      -30.080    
              (*,67,19)   152.28      -30.086    
-             (*,68,19)   152.15      -30.02     
-             (*,69,19)   152.4       -30.037    
-             (*,70,19)   152.5       -30.115    
+             (*,68,19)   152.15      -30.020    
+             (*,69,19)   152.40      -30.037    
+             (*,70,19)   152.50      -30.115    
              (*, 1,20)   147.31      -30.213    
-             (*, 2,20)   147.74      -30.02     
+             (*, 2,20)   147.74      -30.020    
              (*, 3,20)   147.64      -30.104    
              (*, 4,20)   147.76      -30.057    
              (*, 5,20)   147.52      -29.955    
              (*, 6,20)   147.86      -30.021    
              (*, 7,20)   148.01      -30.076    
-             (*, 8,20)   148.04      -29.91     
+             (*, 8,20)   148.04      -29.910    
              (*, 9,20)   148.07      -29.944    
              (*,10,20)   148.42      -30.043    
              (*,11,20)   148.27      -30.047    
              (*,12,20)   148.31      -30.009    
-             (*,13,20)   148.39      -30.07     
-             (*,14,20)   148.43      -30.08     
+             (*,13,20)   148.39      -30.070    
+             (*,14,20)   148.43      -30.080    
              (*,15,20)   148.34      -30.004    
-             (*,16,20)   148.57      -29.94     
-             (*,17,20)   148.65      -30.03     
+             (*,16,20)   148.57      -29.940    
+             (*,17,20)   148.65      -30.030    
              (*,18,20)   148.78      -30.037    
              (*,19,20)   148.83      -29.993    
              (*,20,20)   148.93      -29.991    
@@ -1611,7 +1611,7 @@ tab[0].*
              (*,24,20)   149.13      -30.066    
              (*,25,20)   149.16      -30.047    
              (*,26,20)   149.18      -30.089    
-             (*,27,20)   149.3       -30.087    
+             (*,27,20)   149.30      -30.087    
              (*,28,20)   149.51      -29.943    
              (*,29,20)   149.56      -30.063    
              (*,30,20)   149.71      -30.171    
@@ -1626,12 +1626,12 @@ tab[0].*
              (*,39,20)   150.14      -30.026    
              (*,40,20)   150.31      -30.039    
              (*,41,20)   150.25      -30.026    
-             (*,42,20)   150.55      -30.02     
+             (*,42,20)   150.55      -30.020    
              (*,43,20)   150.41      -30.042    
              (*,44,20)   150.71      -30.069    
              (*,45,20)   150.77      -30.067    
              (*,46,20)   150.71      -30.112    
-             (*,47,20)   150.81      -30.05     
+             (*,47,20)   150.81      -30.050    
              (*,48,20)   150.92      -30.021    
              (*,49,20)   150.95      -30.024    
              (*,50,20)   151.12      -30.062    
@@ -1639,13 +1639,13 @@ tab[0].*
              (*,52,20)   151.13      -30.105    
              (*,53,20)   151.27      -30.046    
              (*,54,20)   151.23      -30.026    
-             (*,55,20)   151.38      -29.97     
+             (*,55,20)   151.38      -29.970    
              (*,56,20)   151.58      -30.027    
              (*,57,20)   151.66      -29.986    
              (*,58,20)   151.68      -30.072    
              (*,59,20)   151.66      -29.952    
              (*,60,20)   151.73      -29.973    
-             (*,61,20)   151.62      -30.05     
+             (*,61,20)   151.62      -30.050    
              (*,62,20)   152.02      -30.018    
              (*,63,20)   151.95      -30.063    
              (*,64,20)   152.16      -30.075    
@@ -1656,68 +1656,68 @@ tab[0].*
              (*,69,20)   152.44      -30.077    
              (*,70,20)   152.51      -30.022    
              (*, 1,21)   147.38      -29.958    
-             (*, 2,21)   147.6       -30.023    
+             (*, 2,21)   147.60      -30.023    
              (*, 3,21)   147.54      -29.995    
              (*, 4,21)   147.84      -29.942    
              (*, 5,21)   147.82      -30.029    
              (*, 6,21)   147.88      -29.965    
              (*, 7,21)   147.86      -29.907    
              (*, 8,21)   148.08      -29.945    
-             (*, 9,21)   148         -29.875    
+             (*, 9,21)   148.00      -29.875    
              (*,10,21)   148.23      -29.907    
              (*,11,21)   148.33      -29.969    
              (*,12,21)   148.51      -29.905    
-             (*,13,21)   148.46      -29.94     
+             (*,13,21)   148.46      -29.940    
              (*,14,21)   148.38      -29.954    
-             (*,15,21)   148.43      -29.95     
+             (*,15,21)   148.43      -29.950    
              (*,16,21)   148.54      -29.922    
              (*,17,21)   148.59      -30.023    
              (*,18,21)   148.93      -29.917    
              (*,19,21)   148.89      -29.951    
-             (*,20,21)   148.87      -29.94     
-             (*,21,21)   148.97      -29.98     
+             (*,20,21)   148.87      -29.940    
+             (*,21,21)   148.97      -29.980    
              (*,22,21)   149.16      -29.923    
              (*,23,21)   149.27      -29.936    
              (*,24,21)   149.05      -29.977    
              (*,25,21)   149.22      -29.925    
-             (*,26,21)   149.22      -29.97     
+             (*,26,21)   149.22      -29.970    
              (*,27,21)   149.32      -30.004    
-             (*,28,21)   149.5       -29.964    
+             (*,28,21)   149.50      -29.964    
              (*,29,21)   149.49      -29.974    
              (*,30,21)   149.57      -29.991    
              (*,31,21)   149.91      -29.961    
              (*,32,21)   149.64      -29.889    
-             (*,33,21)   149.55      -29.95     
+             (*,33,21)   149.55      -29.950    
              (*,34,21)   149.87      -29.988    
              (*,35,21)   149.92      -30.062    
              (*,36,21)   150.04      -29.986    
              (*,37,21)   149.87      -29.898    
              (*,38,21)   150.11      -29.872    
              (*,39,21)   150.11      -29.906    
-             (*,40,21)   150.34      -30.04     
+             (*,40,21)   150.34      -30.040    
              (*,41,21)   150.39      -29.915    
-             (*,42,21)   150.65      -29.91     
+             (*,42,21)   150.65      -29.910    
              (*,43,21)   150.43      -29.976    
              (*,44,21)   150.57      -29.975    
              (*,45,21)   150.65      -29.937    
              (*,46,21)   150.64      -29.999    
-             (*,47,21)   150.8       -30.032    
+             (*,47,21)   150.80      -30.032    
              (*,48,21)   150.69      -29.867    
              (*,49,21)   150.94      -30.006    
              (*,50,21)   151.06      -29.964    
              (*,51,21)   151.23      -29.994    
              (*,52,21)   151.27      -29.858    
-             (*,53,21)   151.1       -29.96     
+             (*,53,21)   151.10      -29.960    
              (*,54,21)   151.48      -30.008    
-             (*,55,21)   151.45      -29.92     
-             (*,56,21)   151.42      -30.01     
+             (*,55,21)   151.45      -29.920    
+             (*,56,21)   151.42      -30.010    
              (*,57,21)   151.73      -29.964    
              (*,58,21)   151.48      -29.962    
              (*,59,21)   151.61      -29.963    
              (*,60,21)   151.71      -29.911    
              (*,61,21)   151.83      -29.957    
-             (*,62,21)   151.9       -30.019    
-             (*,63,21)   152.11      -29.99     
+             (*,62,21)   151.90      -30.019    
+             (*,63,21)   152.11      -29.990    
              (*,64,21)   152.17      -29.911    
              (*,65,21)   152.21      -29.957    
              (*,66,21)   152.31      -29.989    
@@ -1726,17 +1726,17 @@ tab[0].*
              (*,69,21)   152.51      -29.922    
              (*,70,21)   152.45      -30.085    
              (*, 1,22)   147.49      -29.878    
-             (*, 2,22)   147.5       -29.958    
+             (*, 2,22)   147.50      -29.958    
              (*, 3,22)   147.58      -29.807    
-             (*, 4,22)   147.8       -29.897    
+             (*, 4,22)   147.80      -29.897    
              (*, 5,22)   147.68      -29.861    
              (*, 6,22)   147.67      -29.822    
              (*, 7,22)   147.94      -29.952    
              (*, 8,22)   148.09      -29.804    
              (*, 9,22)   148.21      -29.865    
-             (*,10,22)   148.21      -29.98     
+             (*,10,22)   148.21      -29.980    
              (*,11,22)   148.09      -29.838    
-             (*,12,22)   148.47      -29.89     
+             (*,12,22)   148.47      -29.890    
              (*,13,22)   148.31      -29.863    
              (*,14,22)   148.52      -29.941    
              (*,15,22)   148.48      -29.881    
@@ -1749,7 +1749,7 @@ tab[0].*
              (*,22,22)   148.96      -29.873    
              (*,23,22)   149.03      -29.932    
              (*,24,22)   149.15      -29.901    
-             (*,25,22)   149.15      -29.91     
+             (*,25,22)   149.15      -29.910    
              (*,26,22)   149.34      -29.825    
              (*,27,22)   149.32      -29.967    
              (*,28,22)   149.45      -29.856    
@@ -1762,7 +1762,7 @@ tab[0].*
              (*,35,22)   149.96      -29.849    
              (*,36,22)   150.05      -29.919    
              (*,37,22)   150.38      -29.867    
-             (*,38,22)   150.1       -29.924    
+             (*,38,22)   150.10      -29.924    
              (*,39,22)   150.25      -29.887    
              (*,40,22)   150.27      -29.832    
              (*,41,22)   150.44      -29.892    
@@ -1781,7 +1781,7 @@ tab[0].*
              (*,54,22)   151.36      -29.974    
              (*,55,22)   151.47      -29.926    
              (*,56,22)   151.53      -29.885    
-             (*,57,22)   151.68      -29.93     
+             (*,57,22)   151.68      -29.930    
              (*,58,22)   151.61      -29.829    
              (*,59,22)   151.92      -29.871    
              (*,60,22)   151.57      -29.832    
@@ -1797,27 +1797,27 @@ tab[0].*
              (*,70,22)   152.51      -29.817    
              (*, 1,23)   147.51      -29.841    
              (*, 2,23)   147.67      -29.772    
-             (*, 3,23)   147.8       -29.82     
-             (*, 4,23)   147.6       -29.717    
-             (*, 5,23)   147.8       -29.784    
+             (*, 3,23)   147.80      -29.820    
+             (*, 4,23)   147.60      -29.717    
+             (*, 5,23)   147.80      -29.784    
              (*, 6,23)   147.88      -29.713    
              (*, 7,23)   147.73      -29.869    
              (*, 8,23)   147.88      -29.869    
              (*, 9,23)   148.27      -29.881    
-             (*,10,23)   148.22      -29.79     
+             (*,10,23)   148.22      -29.790    
              (*,11,23)   148.24      -29.884    
              (*,12,23)   148.38      -29.822    
              (*,13,23)   148.29      -29.876    
-             (*,14,23)   148.5       -29.725    
+             (*,14,23)   148.50      -29.725    
              (*,15,23)   148.64      -29.818    
              (*,16,23)   148.73      -29.852    
-             (*,17,23)   148.5       -29.779    
+             (*,17,23)   148.50      -29.779    
              (*,18,23)   148.46      -29.823    
              (*,19,23)   148.93      -29.832    
              (*,20,23)   148.98      -29.829    
-             (*,21,23)   148.9       -29.836    
-             (*,22,23)   149.09      -29.79     
-             (*,23,23)   149.3       -29.819    
+             (*,21,23)   148.90      -29.836    
+             (*,22,23)   149.09      -29.790    
+             (*,23,23)   149.30      -29.819    
              (*,24,23)   149.08      -29.687    
              (*,25,23)   149.02      -29.835    
              (*,26,23)   149.34      -29.819    
@@ -1829,9 +1829,9 @@ tab[0].*
              (*,32,23)   149.68      -29.741    
              (*,33,23)   149.81      -29.765    
              (*,34,23)   149.83      -29.876    
-             (*,35,23)   149.9       -29.838    
+             (*,35,23)   149.90      -29.838    
              (*,36,23)   150.04      -29.838    
-             (*,37,23)   150.07      -29.81     
+             (*,37,23)   150.07      -29.810    
              (*,38,23)   150.28      -29.853    
              (*,39,23)   150.22      -29.824    
              (*,40,23)   150.31      -29.713    
@@ -1840,33 +1840,33 @@ tab[0].*
              (*,43,23)   150.62      -29.859    
              (*,44,23)   150.64      -29.881    
              (*,45,23)   150.71      -29.882    
-             (*,46,23)   150.75      -29.78     
+             (*,46,23)   150.75      -29.780    
              (*,47,23)   150.81      -29.933    
              (*,48,23)   150.77      -29.784    
              (*,49,23)   151.05      -29.902    
-             (*,50,23)   150.94      -29.9      
+             (*,50,23)   150.94      -29.900    
              (*,51,23)   151.11      -29.868    
              (*,52,23)   151.26      -29.829    
-             (*,53,23)   151.48      -29.81     
-             (*,54,23)   151.6       -29.778    
+             (*,53,23)   151.48      -29.810    
+             (*,54,23)   151.60      -29.778    
              (*,55,23)   151.43      -29.803    
              (*,56,23)   151.44      -29.759    
              (*,57,23)   151.36      -29.742    
-             (*,58,23)   151.65      -29.77     
-             (*,59,23)   151.6       -29.852    
+             (*,58,23)   151.65      -29.770    
+             (*,59,23)   151.60      -29.852    
              (*,60,23)   151.77      -29.856    
              (*,61,23)   151.87      -29.908    
              (*,62,23)   151.77      -29.816    
              (*,63,23)   152.03      -29.829    
              (*,64,23)   152.18      -29.874    
              (*,65,23)   152.08      -29.865    
-             (*,66,23)   152.3       -29.795    
+             (*,66,23)   152.30      -29.795    
              (*,67,23)   152.26      -29.766    
-             (*,68,23)   152.37      -29.78     
+             (*,68,23)   152.37      -29.780    
              (*,69,23)   152.38      -29.851    
              (*,70,23)   152.41      -29.832    
              (*, 1,24)   147.47      -29.771    
-             (*, 2,24)   147.6       -29.773    
+             (*, 2,24)   147.60      -29.773    
              (*, 3,24)   147.77      -29.872    
              (*, 4,24)   147.74      -29.776    
              (*, 5,24)   147.73      -29.701    
@@ -1892,42 +1892,42 @@ tab[0].*
              (*,25,24)   149.31      -29.686    
              (*,26,24)   149.46      -29.765    
              (*,27,24)   149.53      -29.791    
-             (*,28,24)   149.3       -29.698    
+             (*,28,24)   149.30      -29.698    
              (*,29,24)   149.31      -29.807    
              (*,30,24)   149.67      -29.837    
-             (*,31,24)   149.8       -29.794    
+             (*,31,24)   149.80      -29.794    
              (*,32,24)   149.63      -29.713    
              (*,33,24)   149.72      -29.742    
              (*,34,24)   149.79      -29.763    
-             (*,35,24)   150         -29.739    
-             (*,36,24)   150.08      -29.7      
+             (*,35,24)   150.00      -29.739    
+             (*,36,24)   150.08      -29.700    
              (*,37,24)   150.29      -29.773    
-             (*,38,24)   150.29      -29.82     
+             (*,38,24)   150.29      -29.820    
              (*,39,24)   150.25      -29.687    
              (*,40,24)   150.52      -29.747    
              (*,41,24)   150.36      -29.709    
-             (*,42,24)   150.3       -29.806    
-             (*,43,24)   150.6       -29.839    
+             (*,42,24)   150.30      -29.806    
+             (*,43,24)   150.60      -29.839    
              (*,44,24)   150.49      -29.677    
              (*,45,24)   150.55      -29.719    
              (*,46,24)   150.68      -29.725    
              (*,47,24)   150.71      -29.748    
              (*,48,24)   150.78      -29.786    
-             (*,49,24)   151.1       -29.758    
+             (*,49,24)   151.10      -29.758    
              (*,50,24)   150.97      -29.696    
              (*,51,24)   151.07      -29.723    
              (*,52,24)   151.17      -29.747    
              (*,53,24)   151.35      -29.744    
              (*,54,24)   151.36      -29.812    
              (*,55,24)   151.38      -29.682    
-             (*,56,24)   151.5       -29.815    
+             (*,56,24)   151.50      -29.815    
              (*,57,24)   151.63      -29.739    
              (*,58,24)   151.49      -29.787    
              (*,59,24)   151.92      -29.781    
              (*,60,24)   151.81      -29.798    
              (*,61,24)   151.98      -29.753    
-             (*,62,24)   151.9       -29.792    
-             (*,63,24)   152         -29.697    
+             (*,62,24)   151.90      -29.792    
+             (*,63,24)   152.00      -29.697    
              (*,64,24)   152.06      -29.785    
              (*,65,24)   152.06      -29.833    
              (*,66,24)   152.22      -29.803    
@@ -1943,16 +1943,16 @@ tab[0].*
              (*, 6,25)   147.93      -29.634    
              (*, 7,25)   147.83      -29.631    
              (*, 8,25)   148.01      -29.611    
-             (*, 9,25)   148.08      -29.71     
+             (*, 9,25)   148.08      -29.710    
              (*,10,25)   148.14      -29.676    
              (*,11,25)   148.25      -29.683    
              (*,12,25)   148.43      -29.682    
              (*,13,25)   148.57      -29.745    
-             (*,14,25)   148.4       -29.625    
+             (*,14,25)   148.40      -29.625    
              (*,15,25)   148.77      -29.647    
              (*,16,25)   148.58      -29.697    
              (*,17,25)   148.82      -29.767    
-             (*,18,25)   148.6       -29.699    
+             (*,18,25)   148.60      -29.699    
              (*,19,25)   148.87      -29.709    
              (*,20,25)   148.96      -29.767    
              (*,21,25)   148.93      -29.724    
@@ -1976,14 +1976,14 @@ tab[0].*
              (*,39,25)   150.33      -29.652    
              (*,40,25)   150.43      -29.671    
              (*,41,25)   150.45      -29.659    
-             (*,42,25)   150.5       -29.695    
+             (*,42,25)   150.50      -29.695    
              (*,43,25)   150.68      -29.681    
              (*,44,25)   150.49      -29.595    
-             (*,45,25)   150.76      -29.67     
+             (*,45,25)   150.76      -29.670    
              (*,46,25)   150.81      -29.676    
-             (*,47,25)   150.94      -29.69     
+             (*,47,25)   150.94      -29.690    
              (*,48,25)   150.98      -29.588    
-             (*,49,25)   151.1       -29.647    
+             (*,49,25)   151.10      -29.647    
              (*,50,25)   151.22      -29.615    
              (*,51,25)   151.22      -29.643    
              (*,52,25)   151.16      -29.704    
@@ -1992,13 +1992,13 @@ tab[0].*
              (*,55,25)   151.45      -29.659    
              (*,56,25)   151.63      -29.581    
              (*,57,25)   151.39      -29.677    
-             (*,58,25)   151.47      -29.7      
-             (*,59,25)   151.6       -29.744    
+             (*,58,25)   151.47      -29.700    
+             (*,59,25)   151.60      -29.744    
              (*,60,25)   151.77      -29.715    
              (*,61,25)   151.87      -29.664    
              (*,62,25)   151.77      -29.683    
-             (*,63,25)   152.03      -29.66     
-             (*,64,25)   152         -29.622    
+             (*,63,25)   152.03      -29.660    
+             (*,64,25)   152.00      -29.622    
              (*,65,25)   152.08      -29.636    
              (*,66,25)   152.12      -29.726    
              (*,67,25)   152.31      -29.605    
@@ -2011,7 +2011,7 @@ tab[0].*
              (*, 4,26)   147.87      -29.644    
              (*, 5,26)   147.68      -29.542    
              (*, 6,26)   147.82      -29.536    
-             (*, 7,26)   147.8       -29.542    
+             (*, 7,26)   147.80      -29.542    
              (*, 8,26)   147.97      -29.564    
              (*, 9,26)   148.27      -29.592    
              (*,10,26)   148.24      -29.583    
@@ -2020,23 +2020,23 @@ tab[0].*
              (*,13,26)   148.52      -29.576    
              (*,14,26)   148.54      -29.499    
              (*,15,26)   148.54      -29.516    
-             (*,16,26)   148.6       -29.575    
-             (*,17,26)   148.7       -29.643    
+             (*,16,26)   148.60      -29.575    
+             (*,17,26)   148.70      -29.643    
              (*,18,26)   148.92      -29.617    
              (*,19,26)   148.72      -29.617    
-             (*,20,26)   148.7       -29.608    
+             (*,20,26)   148.70      -29.608    
              (*,21,26)   148.91      -29.653    
              (*,22,26)   149.17      -29.564    
              (*,23,26)   149.15      -29.537    
-             (*,24,26)   149.3       -29.662    
+             (*,24,26)   149.30      -29.662    
              (*,25,26)   149.24      -29.647    
-             (*,26,26)   149.15      -29.57     
+             (*,26,26)   149.15      -29.570    
              (*,27,26)   149.59      -29.537    
-             (*,28,26)   149.52      -29.59     
+             (*,28,26)   149.52      -29.590    
              (*,29,26)   149.48      -29.627    
-             (*,30,26)   149.5       -29.632    
+             (*,30,26)   149.50      -29.632    
              (*,31,26)   149.87      -29.646    
-             (*,32,26)   149.8       -29.527    
+             (*,32,26)   149.80      -29.527    
              (*,33,26)   149.79      -29.614    
              (*,34,26)   149.94      -29.606    
              (*,35,26)   149.98      -29.572    
@@ -2045,17 +2045,17 @@ tab[0].*
              (*,38,26)   150.14      -29.609    
              (*,39,26)   150.26      -29.647    
              (*,40,26)   150.32      -29.513    
-             (*,41,26)   150         -29.557    
+             (*,41,26)   150.00      -29.557    
              (*,42,26)   150.47      -29.545    
              (*,43,26)   150.48      -29.619    
              (*,44,26)   150.62      -29.539    
              (*,45,26)   150.77      -29.553    
-             (*,46,26)   150.6       -29.525    
+             (*,46,26)   150.60      -29.525    
              (*,47,26)   150.91      -29.656    
-             (*,48,26)   150.9       -29.674    
+             (*,48,26)   150.90      -29.674    
              (*,49,26)   150.89      -29.663    
              (*,50,26)   151.05      -29.654    
-             (*,51,26)   151.31      -29.6      
+             (*,51,26)   151.31      -29.600    
              (*,52,26)   151.27      -29.691    
              (*,53,26)   151.12      -29.661    
              (*,54,26)   151.41      -29.595    
@@ -2069,10 +2069,10 @@ tab[0].*
              (*,62,26)   151.79      -29.586    
              (*,63,26)   151.94      -29.565    
              (*,64,26)   152.08      -29.627    
-             (*,65,26)   152         -29.618    
+             (*,65,26)   152.00      -29.618    
              (*,66,26)   152.03      -29.569    
-             (*,67,26)   152.3       -29.586    
-             (*,68,26)   152.1       -29.636    
+             (*,67,26)   152.30      -29.586    
+             (*,68,26)   152.10      -29.636    
              (*,69,26)   152.38      -29.619    
              (*,70,26)   152.67      -29.592    
              (*, 1,27)   147.55      -29.626    
@@ -2083,14 +2083,14 @@ tab[0].*
              (*, 6,27)   147.91      -29.592    
              (*, 7,27)   147.92      -29.564    
              (*, 8,27)   147.97      -29.483    
-             (*, 9,27)   148.1       -29.527    
-             (*,10,27)   148.19      -29.57     
+             (*, 9,27)   148.10      -29.527    
+             (*,10,27)   148.19      -29.570    
              (*,11,27)   148.36      -29.464    
              (*,12,27)   148.25      -29.555    
              (*,13,27)   148.39      -29.535    
              (*,14,27)   148.41      -29.545    
              (*,15,27)   148.75      -29.498    
-             (*,16,27)   148.66      -29.58     
+             (*,16,27)   148.66      -29.580    
              (*,17,27)   148.74      -29.447    
              (*,18,27)   148.67      -29.529    
              (*,19,27)   148.73      -29.535    
@@ -2107,14 +2107,14 @@ tab[0].*
              (*,30,27)   149.43      -29.558    
              (*,31,27)   149.64      -29.604    
              (*,32,27)   149.64      -29.441    
-             (*,33,27)   149.83      -29.51     
-             (*,34,27)   150         -29.337    
+             (*,33,27)   149.83      -29.510    
+             (*,34,27)   150.00      -29.337    
              (*,35,27)   149.85      -29.565    
              (*,36,27)   150.04      -29.506    
              (*,37,27)   149.91      -29.481    
              (*,38,27)   150.31      -29.525    
              (*,39,27)   150.29      -29.483    
-             (*,40,27)   150.4       -29.517    
+             (*,40,27)   150.40      -29.517    
              (*,41,27)   150.28      -29.526    
              (*,42,27)   150.46      -29.524    
              (*,43,27)   150.52      -29.569    
@@ -2128,25 +2128,25 @@ tab[0].*
              (*,51,27)   151.21      -29.446    
              (*,52,27)   151.13      -29.464    
              (*,53,27)   151.29      -29.555    
-             (*,54,27)   151.3       -29.492    
-             (*,55,27)   151.4       -29.525    
+             (*,54,27)   151.30      -29.492    
+             (*,55,27)   151.40      -29.525    
              (*,56,27)   151.32      -29.622    
              (*,57,27)   151.49      -29.626    
              (*,58,27)   151.81      -29.542    
              (*,59,27)   151.65      -29.543    
              (*,60,27)   151.87      -29.584    
              (*,61,27)   151.74      -29.591    
-             (*,62,27)   151.84      -29.46     
+             (*,62,27)   151.84      -29.460    
              (*,63,27)   151.94      -29.557    
              (*,64,27)   151.96      -29.463    
              (*,65,27)   152.04      -29.577    
              (*,66,27)   152.36      -29.566    
              (*,67,27)   152.29      -29.547    
              (*,68,27)   152.36      -29.529    
-             (*,69,27)   152.5       -29.522    
+             (*,69,27)   152.50      -29.522    
              (*,70,27)   152.53      -29.592    
              (*, 1,28)   147.51      -29.455    
-             (*, 2,28)   147.4       -29.469    
+             (*, 2,28)   147.40      -29.469    
              (*, 3,28)   147.51      -29.425    
              (*, 4,28)   147.79      -29.464    
              (*, 5,28)   147.84      -29.464    
@@ -2159,21 +2159,21 @@ tab[0].*
              (*,12,28)   148.17      -29.412    
              (*,13,28)   148.51      -29.469    
              (*,14,28)   148.37      -29.453    
-             (*,15,28)   148.3       -29.519    
+             (*,15,28)   148.30      -29.519    
              (*,16,28)   148.58      -29.496    
              (*,17,28)   148.75      -29.461    
              (*,18,28)   148.85      -29.452    
              (*,19,28)   148.73      -29.449    
              (*,20,28)   148.86      -29.509    
              (*,21,28)   148.96      -29.523    
-             (*,22,28)   149.17      -29.42     
-             (*,23,28)   149.05      -29.4      
+             (*,22,28)   149.17      -29.420    
+             (*,23,28)   149.05      -29.400    
              (*,24,28)   149.12      -29.468    
              (*,25,28)   149.12      -29.455    
              (*,26,28)   149.43      -29.505    
              (*,27,28)   149.43      -29.507    
              (*,28,28)   149.24      -29.516    
-             (*,29,28)   149.48      -29.42     
+             (*,29,28)   149.48      -29.420    
              (*,30,28)   149.52      -29.441    
              (*,31,28)   149.83      -29.388    
              (*,32,28)   149.79      -29.423    
@@ -2188,10 +2188,10 @@ tab[0].*
              (*,41,28)   150.29      -29.502    
              (*,42,28)   150.36      -29.483    
              (*,43,28)   150.48      -29.449    
-             (*,44,28)   150.5       -29.477    
+             (*,44,28)   150.50      -29.477    
              (*,45,28)   150.64      -29.494    
              (*,46,28)   150.62      -29.447    
-             (*,47,28)   150.85      -29.42     
+             (*,47,28)   150.85      -29.420    
              (*,48,28)   150.83      -29.464    
              (*,49,28)   150.89      -29.487    
              (*,50,28)   150.98      -29.472    
@@ -2201,25 +2201,25 @@ tab[0].*
              (*,54,28)   151.36      -29.473    
              (*,55,28)   151.48      -29.441    
              (*,56,28)   151.72      -29.404    
-             (*,57,28)   151.3       -29.423    
-             (*,58,28)   151.6       -29.473    
-             (*,59,28)   151.6       -29.431    
-             (*,60,28)   151.9       -29.425    
-             (*,61,28)   151.8       -29.472    
+             (*,57,28)   151.30      -29.423    
+             (*,58,28)   151.60      -29.473    
+             (*,59,28)   151.60      -29.431    
+             (*,60,28)   151.90      -29.425    
+             (*,61,28)   151.80      -29.472    
              (*,62,28)   152.05      -29.482    
-             (*,63,28)   151.8       -29.482    
+             (*,63,28)   151.80      -29.482    
              (*,64,28)   152.22      -29.427    
              (*,65,28)   152.07      -29.526    
-             (*,66,28)   152.37      -29.4      
+             (*,66,28)   152.37      -29.400    
              (*,67,28)   152.33      -29.347    
              (*,68,28)   152.24      -29.389    
              (*,69,28)   152.42      -29.414    
              (*,70,28)   152.39      -29.523    
              (*, 1,29)   147.67      -29.379    
-             (*, 2,29)   147.73      -29.38     
+             (*, 2,29)   147.73      -29.380    
              (*, 3,29)   147.54      -29.306    
              (*, 4,29)   147.84      -29.454    
-             (*, 5,29)   147.7       -29.444    
+             (*, 5,29)   147.70      -29.444    
              (*, 6,29)   147.81      -29.325    
              (*, 7,29)   148.04      -29.364    
              (*, 8,29)   147.99      -29.397    
@@ -2227,9 +2227,9 @@ tab[0].*
              (*,10,29)   148.11      -29.263    
              (*,11,29)   148.18      -29.345    
              (*,12,29)   148.32      -29.382    
-             (*,13,29)   148.33      -29.38     
-             (*,14,29)   148.29      -29.44     
-             (*,15,29)   148.49      -29.36     
+             (*,13,29)   148.33      -29.380    
+             (*,14,29)   148.29      -29.440    
+             (*,15,29)   148.49      -29.360    
              (*,16,29)   148.65      -29.463    
              (*,17,29)   148.57      -29.336    
              (*,18,29)   148.59      -29.356    
@@ -2253,7 +2253,7 @@ tab[0].*
              (*,36,29)   149.97      -29.367    
              (*,37,29)   150.18      -29.317    
              (*,38,29)   150.21      -29.375    
-             (*,39,29)   150.3       -29.413    
+             (*,39,29)   150.30      -29.413    
              (*,40,29)   150.16      -29.362    
              (*,41,29)   150.52      -29.334    
              (*,42,29)   150.42      -29.354    
@@ -2263,41 +2263,41 @@ tab[0].*
              (*,46,29)   150.79      -29.388    
              (*,47,29)   150.88      -29.436    
              (*,48,29)   150.81      -29.446    
-             (*,49,29)   151.1       -29.428    
+             (*,49,29)   151.10      -29.428    
              (*,50,29)   150.81      -29.376    
-             (*,51,29)   151.3       -29.279    
+             (*,51,29)   151.30      -29.279    
              (*,52,29)   151.25      -29.324    
              (*,53,29)   151.28      -29.441    
              (*,54,29)   151.37      -29.418    
              (*,55,29)   151.61      -29.241    
              (*,56,29)   151.55      -29.345    
-             (*,57,29)   151.52      -29.47     
+             (*,57,29)   151.52      -29.470    
              (*,58,29)   151.35      -29.233    
              (*,59,29)   151.78      -29.365    
              (*,60,29)   151.77      -29.356    
              (*,61,29)   151.87      -29.406    
-             (*,62,29)   152.2       -29.512    
-             (*,63,29)   152.12      -29.28     
-             (*,64,29)   152.01      -29.38     
+             (*,62,29)   152.20      -29.512    
+             (*,63,29)   152.12      -29.280    
+             (*,64,29)   152.01      -29.380    
              (*,65,29)   152.24      -29.411    
              (*,66,29)   152.22      -29.409    
              (*,67,29)   152.13      -29.309    
-             (*,68,29)   152.3       -29.419    
+             (*,68,29)   152.30      -29.419    
              (*,69,29)   152.44      -29.347    
              (*,70,29)   152.65      -29.359    
              (*, 1,30)   147.54      -29.354    
              (*, 2,30)   147.51      -29.205    
              (*, 3,30)   147.73      -29.297    
-             (*, 4,30)   147.71      -29.3      
-             (*, 5,30)   147.73      -29.32     
+             (*, 4,30)   147.71      -29.300    
+             (*, 5,30)   147.73      -29.320    
              (*, 6,30)   147.96      -29.284    
              (*, 7,30)   147.93      -29.367    
-             (*, 8,30)   147.99      -29.15     
+             (*, 8,30)   147.99      -29.150    
              (*, 9,30)   148.13      -29.299    
              (*,10,30)   148.35      -29.277    
              (*,11,30)   148.27      -29.274    
              (*,12,30)   148.39      -29.329    
-             (*,13,30)   148.5       -29.255    
+             (*,13,30)   148.50      -29.255    
              (*,14,30)   148.38      -29.298    
              (*,15,30)   148.56      -29.344    
              (*,16,30)   148.61      -29.353    
@@ -2314,10 +2314,10 @@ tab[0].*
              (*,27,30)   149.32      -29.379    
              (*,28,30)   149.42      -29.365    
              (*,29,30)   149.57      -29.311    
-             (*,30,30)   149.6       -29.346    
+             (*,30,30)   149.60      -29.346    
              (*,31,30)   149.82      -29.308    
              (*,32,30)   149.66      -29.415    
-             (*,33,30)   149.8       -29.348    
+             (*,33,30)   149.80      -29.348    
              (*,34,30)   149.76      -29.327    
              (*,35,30)   149.98      -29.302    
              (*,36,30)   149.99      -29.325    
@@ -2330,7 +2330,7 @@ tab[0].*
              (*,43,30)   150.51      -29.366    
              (*,44,30)   150.47      -29.272    
              (*,45,30)   150.66      -29.331    
-             (*,46,30)   150.81      -29.25     
+             (*,46,30)   150.81      -29.250    
              (*,47,30)   150.91      -29.273    
              (*,48,30)   151.16      -29.343    
              (*,49,30)   150.89      -29.273    
@@ -2349,16 +2349,16 @@ tab[0].*
              (*,62,30)   152.08      -29.296    
              (*,63,30)   151.96      -29.351    
              (*,64,30)   152.02      -29.265    
-             (*,65,30)   152.1       -29.25     
+             (*,65,30)   152.10      -29.250    
              (*,66,30)   152.18      -29.329    
              (*,67,30)   152.17      -29.274    
-             (*,68,30)   152.3       -29.371    
+             (*,68,30)   152.30      -29.371    
              (*,69,30)   152.41      -29.323    
              (*,70,30)   152.47      -29.338    
              (*, 1,31)   147.44      -29.348    
-             (*, 2,31)   147.3       -29.201    
-             (*, 3,31)   147.69      -29.29     
-             (*, 4,31)   147.83      -29.21     
+             (*, 2,31)   147.30      -29.201    
+             (*, 3,31)   147.69      -29.290    
+             (*, 4,31)   147.83      -29.210    
              (*, 5,31)   147.81      -29.217    
              (*, 6,31)   147.88      -29.288    
              (*, 7,31)   148.13      -29.257    
@@ -2381,14 +2381,14 @@ tab[0].*
              (*,24,31)   149.17      -29.284    
              (*,25,31)   149.09      -29.231    
              (*,26,31)   149.27      -29.188    
-             (*,27,31)   149.34      -29.19     
+             (*,27,31)   149.34      -29.190    
              (*,28,31)   149.62      -29.221    
-             (*,29,31)   149.4       -29.238    
+             (*,29,31)   149.40      -29.238    
              (*,30,31)   149.68      -29.225    
              (*,31,31)   149.96      -29.212    
              (*,32,31)   149.76      -29.238    
              (*,33,31)   149.69      -29.209    
-             (*,34,31)   149.76      -29.24     
+             (*,34,31)   149.76      -29.240    
              (*,35,31)   149.83      -29.154    
              (*,36,31)   150.25      -29.227    
              (*,37,31)   150.17      -29.227    
@@ -2402,19 +2402,19 @@ tab[0].*
              (*,45,31)   150.73      -29.219    
              (*,46,31)   150.69      -29.176    
              (*,47,31)   150.79      -29.268    
-             (*,48,31)   150.82      -29.28     
+             (*,48,31)   150.82      -29.280    
              (*,49,31)   150.93      -29.246    
-             (*,50,31)   151.05      -29.21     
+             (*,50,31)   151.05      -29.210    
              (*,51,31)   151.14      -29.292    
              (*,52,31)   150.94      -29.141    
-             (*,53,31)   151.38      -29.2      
-             (*,54,31)   151.17      -29.18     
+             (*,53,31)   151.38      -29.200    
+             (*,54,31)   151.17      -29.180    
              (*,55,31)   151.31      -29.178    
-             (*,56,31)   151.5       -29.186    
+             (*,56,31)   151.50      -29.186    
              (*,57,31)   151.44      -29.284    
-             (*,58,31)   151.76      -29.23     
-             (*,59,31)   151.6       -29.247    
-             (*,60,31)   151.9       -29.214    
+             (*,58,31)   151.76      -29.230    
+             (*,59,31)   151.60      -29.247    
+             (*,60,31)   151.90      -29.214    
              (*,61,31)   151.75      -29.288    
              (*,62,31)   152.12      -29.154    
              (*,63,31)   151.96      -29.304    
@@ -2422,22 +2422,22 @@ tab[0].*
              (*,65,31)   152.27      -29.256    
              (*,66,31)   152.43      -29.223    
              (*,67,31)   152.26      -29.266    
-             (*,68,31)   152.41      -29.2      
-             (*,69,31)   152.5       -29.252    
+             (*,68,31)   152.41      -29.200    
+             (*,69,31)   152.50      -29.252    
              (*,70,31)   152.58      -29.376    
              (*, 1,32)   147.51      -29.103    
              (*, 2,32)   147.53      -29.177    
              (*, 3,32)   147.77      -29.133    
              (*, 4,32)   147.86      -29.101    
-             (*, 5,32)   147.67      -29.13     
+             (*, 5,32)   147.67      -29.130    
              (*, 6,32)   147.92      -29.121    
-             (*, 7,32)   147.96      -29.24     
+             (*, 7,32)   147.96      -29.240    
              (*, 8,32)   147.99      -29.117    
-             (*, 9,32)   148.14      -29.24     
+             (*, 9,32)   148.14      -29.240    
              (*,10,32)   148.28      -29.184    
              (*,11,32)   148.19      -29.119    
              (*,12,32)   148.22      -29.198    
-             (*,13,32)   148.35      -29.14     
+             (*,13,32)   148.35      -29.140    
              (*,14,32)   148.46      -29.143    
              (*,15,32)   148.62      -29.107    
              (*,16,32)   148.65      -29.153    
@@ -2447,15 +2447,15 @@ tab[0].*
              (*,20,32)   148.85      -29.208    
              (*,21,32)   148.94      -29.189    
              (*,22,32)   149.13      -29.089    
-             (*,23,32)   149.2       -29.117    
+             (*,23,32)   149.20      -29.117    
              (*,24,32)   149.06      -29.117    
              (*,25,32)   149.23      -29.163    
-             (*,26,32)   149.3       -29.183    
+             (*,26,32)   149.30      -29.183    
              (*,27,32)   149.36      -29.171    
              (*,28,32)   149.38      -29.165    
-             (*,29,32)   149.65      -29.24     
-             (*,30,32)   149.72      -29.12     
-             (*,31,32)   149.54      -29.09     
+             (*,29,32)   149.65      -29.240    
+             (*,30,32)   149.72      -29.120    
+             (*,31,32)   149.54      -29.090    
              (*,32,32)   150.02      -29.231    
              (*,33,32)   149.69      -29.147    
              (*,34,32)   149.94      -29.226    
@@ -2464,32 +2464,32 @@ tab[0].*
              (*,37,32)   150.16      -29.112    
              (*,38,32)   150.12      -29.128    
              (*,39,32)   150.23      -29.134    
-             (*,40,32)   150.3       -29.161    
+             (*,40,32)   150.30      -29.161    
              (*,41,32)   150.51      -29.161    
-             (*,42,32)   150.27      -29.07     
+             (*,42,32)   150.27      -29.070    
              (*,43,32)   150.61      -29.208    
-             (*,44,32)   150.6       -29.181    
+             (*,44,32)   150.60      -29.181    
              (*,45,32)   150.64      -29.166    
              (*,46,32)   150.91      -29.164    
-             (*,47,32)   150.74      -29.12     
+             (*,47,32)   150.74      -29.120    
              (*,48,32)   150.96      -29.189    
-             (*,49,32)   150.96      -29.15     
+             (*,49,32)   150.96      -29.150    
              (*,50,32)   150.86      -29.203    
-             (*,51,32)   151         -29.165    
+             (*,51,32)   151.00      -29.165    
              (*,52,32)   151.24      -29.207    
-             (*,53,32)   151.23      -29.17     
+             (*,53,32)   151.23      -29.170    
              (*,54,32)   151.33      -29.226    
              (*,55,32)   151.47      -29.012    
              (*,56,32)   151.47      -29.149    
              (*,57,32)   151.48      -29.246    
-             (*,58,32)   151.5       -29.137    
+             (*,58,32)   151.50      -29.137    
              (*,59,32)   151.94      -29.182    
              (*,60,32)   151.68      -29.255    
              (*,61,32)   151.85      -29.168    
              (*,62,32)   151.73      -29.183    
              (*,63,32)   152.06      -29.163    
              (*,64,32)   152.07      -29.165    
-             (*,65,32)   152.23      -29.17     
+             (*,65,32)   152.23      -29.170    
              (*,66,32)   152.15      -29.109    
              (*,67,32)   152.25      -29.205    
              (*,68,32)   152.23      -29.103    
@@ -2497,37 +2497,37 @@ tab[0].*
              (*,70,32)   152.44      -29.217    
              (*, 1,33)   147.41      -29.112    
              (*, 2,33)   147.62      -29.066    
-             (*, 3,33)   147.53      -29.13     
+             (*, 3,33)   147.53      -29.130    
              (*, 4,33)   147.88      -29.072    
              (*, 5,33)   147.86      -29.058    
-             (*, 6,33)   147.7       -29.122    
+             (*, 6,33)   147.70      -29.122    
              (*, 7,33)   148.03      -29.101    
              (*, 8,33)   148.08      -29.085    
              (*, 9,33)   148.12      -29.088    
              (*,10,33)   148.21      -29.049    
-             (*,11,33)   148.15      -29.11     
+             (*,11,33)   148.15      -29.110    
              (*,12,33)   148.37      -29.083    
-             (*,13,33)   148.3       -29.173    
+             (*,13,33)   148.30      -29.173    
              (*,14,33)   148.41      -29.107    
              (*,15,33)   148.64      -29.126    
-             (*,16,33)   148.6       -29.045    
+             (*,16,33)   148.60      -29.045    
              (*,17,33)   148.62      -29.028    
              (*,18,33)   148.67      -29.086    
-             (*,19,33)   148.8       -29.098    
+             (*,19,33)   148.80      -29.098    
              (*,20,33)   148.88      -29.114    
              (*,21,33)   148.88      -29.055    
              (*,22,33)   149.06      -29.078    
              (*,23,33)   148.88      -29.096    
-             (*,24,33)   149.3       -28.991    
+             (*,24,33)   149.30      -28.991    
              (*,25,33)   149.19      -28.978    
              (*,26,33)   149.46      -29.068    
              (*,27,33)   149.42      -29.134    
              (*,28,33)   149.76      -29.087    
-             (*,29,33)   149.5       -29.127    
+             (*,29,33)   149.50      -29.127    
              (*,30,33)   149.47      -29.095    
              (*,31,33)   149.67      -29.161    
-             (*,32,33)   149.96      -29.12     
-             (*,33,33)   149.71      -29        
+             (*,32,33)   149.96      -29.120    
+             (*,33,33)   149.71      -29.000    
              (*,34,33)   149.93      -29.092    
              (*,35,33)   150.14      -29.066    
              (*,36,33)   150.23      -29.167    
@@ -2543,7 +2543,7 @@ tab[0].*
              (*,46,33)   150.72      -29.091    
              (*,47,33)   150.74      -29.065    
              (*,48,33)   151.16      -29.076    
-             (*,49,33)   150.9       -29.174    
+             (*,49,33)   150.90      -29.174    
              (*,50,33)   151.01      -28.963    
              (*,51,33)   151.05      -29.123    
              (*,52,33)   151.23      -29.042    
@@ -2566,8 +2566,8 @@ tab[0].*
              (*,69,33)   152.24      -29.142    
              (*,70,33)   152.56      -29.059    
              (*, 1,34)   147.48      -28.936    
-             (*, 2,34)   147.57      -28.98     
-             (*, 3,34)   147.6       -28.902    
+             (*, 2,34)   147.57      -28.980    
+             (*, 3,34)   147.60      -28.902    
              (*, 4,34)   147.93      -29.067    
              (*, 5,34)   147.66      -29.049    
              (*, 6,34)   147.87      -29.021    
@@ -2586,24 +2586,24 @@ tab[0].*
              (*,19,34)   148.76      -28.932    
              (*,20,34)   148.89      -29.073    
              (*,21,34)   149.08      -28.934    
-             (*,22,34)   149.05      -29.05     
-             (*,23,34)   149         -29.011    
+             (*,22,34)   149.05      -29.050    
+             (*,23,34)   149.00      -29.011    
              (*,24,34)   149.41      -28.983    
              (*,25,34)   149.35      -28.909    
              (*,26,34)   149.42      -28.986    
              (*,27,34)   149.29      -29.065    
              (*,28,34)   149.41      -28.926    
-             (*,29,34)   149.56      -29.04     
+             (*,29,34)   149.56      -29.040    
              (*,30,34)   149.56      -28.999    
              (*,31,34)   149.62      -29.093    
              (*,32,34)   149.88      -29.023    
              (*,33,34)   149.83      -28.989    
              (*,34,34)   149.94      -29.057    
-             (*,35,34)   149.98      -29        
+             (*,35,34)   149.98      -29.000    
              (*,36,34)   150.15      -29.067    
              (*,37,34)   149.93      -29.085    
              (*,38,34)   150.19      -29.042    
-             (*,39,34)   150.09      -28.95     
+             (*,39,34)   150.09      -28.950    
              (*,40,34)   150.45      -29.011    
              (*,41,34)   150.43      -28.993    
              (*,42,34)   150.51      -28.985    
@@ -2613,11 +2613,11 @@ tab[0].*
              (*,46,34)   150.56      -29.024    
              (*,47,34)   150.65      -29.033    
              (*,48,34)   150.81      -29.008    
-             (*,49,34)   150.9       -29.023    
+             (*,49,34)   150.90      -29.023    
              (*,50,34)   150.91      -29.015    
              (*,51,34)   151.24      -28.951    
              (*,52,34)   151.06      -29.151    
-             (*,53,34)   151.34      -29.05     
+             (*,53,34)   151.34      -29.050    
              (*,54,34)   151.18      -29.028    
              (*,55,34)   151.32      -29.132    
              (*,56,34)   151.59      -28.973    
@@ -2636,9 +2636,9 @@ tab[0].*
              (*,69,34)   152.51      -29.079    
              (*,70,34)   152.42      -29.004    
              (*, 1,35)   147.72      -28.939    
-             (*, 2,35)   147.58      -28.91     
+             (*, 2,35)   147.58      -28.910    
              (*, 3,35)   147.66      -28.955    
-             (*, 4,35)   147.7       -28.916    
+             (*, 4,35)   147.70      -28.916    
              (*, 5,35)   147.77      -28.984    
              (*, 6,35)   147.99      -28.896    
              (*, 7,35)   147.85      -28.899    
@@ -2655,9 +2655,9 @@ tab[0].*
              (*,18,35)   148.82      -29.008    
              (*,19,35)   148.51      -28.907    
              (*,20,35)   149.03      -28.932    
-             (*,21,35)   148.95      -29.03     
+             (*,21,35)   148.95      -29.030    
              (*,22,35)   148.96      -28.915    
-             (*,23,35)   149         -28.902    
+             (*,23,35)   149.00      -28.902    
              (*,24,35)   149.16      -28.926    
              (*,25,35)   149.17      -28.906    
              (*,26,35)   149.26      -28.909    
@@ -2668,40 +2668,40 @@ tab[0].*
              (*,31,35)   149.72      -28.957    
              (*,32,35)   149.76      -28.917    
              (*,33,35)   149.77      -28.927    
-             (*,34,35)   150.15      -28.99     
+             (*,34,35)   150.15      -28.990    
              (*,35,35)   149.96      -28.959    
              (*,36,35)   149.85      -28.903    
-             (*,37,35)   150         -28.903    
+             (*,37,35)   150.00      -28.903    
              (*,38,35)   150.31      -28.887    
              (*,39,35)   150.18      -28.955    
              (*,40,35)   150.31      -29.031    
              (*,41,35)   150.43      -28.919    
              (*,42,35)   150.48      -28.918    
              (*,43,35)   150.51      -28.888    
-             (*,44,35)   150.6       -28.948    
+             (*,44,35)   150.60      -28.948    
              (*,45,35)   150.63      -28.779    
              (*,46,35)   150.78      -28.913    
-             (*,47,35)   150.9       -28.906    
+             (*,47,35)   150.90      -28.906    
              (*,48,35)   150.72      -28.972    
              (*,49,35)   151.06      -28.903    
              (*,50,35)   151.16      -28.898    
-             (*,51,35)   151.14      -28.91     
+             (*,51,35)   151.14      -28.910    
              (*,52,35)   151.27      -29.012    
              (*,53,35)   151.26      -28.903    
              (*,54,35)   151.44      -28.845    
-             (*,55,35)   151.3       -28.955    
-             (*,56,35)   151.5       -29.015    
+             (*,55,35)   151.30      -28.955    
+             (*,56,35)   151.50      -29.015    
              (*,57,35)   151.58      -28.962    
              (*,58,35)   151.67      -28.923    
              (*,59,35)   151.75      -28.904    
              (*,60,35)   151.79      -28.862    
-             (*,61,35)   151.78      -28.92     
+             (*,61,35)   151.78      -28.920    
              (*,62,35)   151.84      -28.997    
              (*,63,35)   151.93      -28.909    
              (*,64,35)   152.08      -28.879    
              (*,65,35)   152.27      -28.992    
              (*,66,35)   152.08      -28.922    
-             (*,67,35)   152.17      -28.98     
+             (*,67,35)   152.17      -28.980    
              (*,68,35)   152.48      -28.972    
              (*,69,35)   152.68      -28.955    
              (*,70,35)   152.63      -28.878    
@@ -2709,16 +2709,16 @@ tab[0].*
              (*, 2,36)   147.59      -28.949    
              (*, 3,36)   147.61      -28.823    
              (*, 4,36)   147.47      -28.847    
-             (*, 5,36)   147.9       -28.897    
-             (*, 6,36)   147.9       -28.861    
+             (*, 5,36)   147.90      -28.897    
+             (*, 6,36)   147.90      -28.861    
              (*, 7,36)   147.93      -28.885    
              (*, 8,36)   148.01      -28.841    
-             (*, 9,36)   148.24      -28.92     
-             (*,10,36)   148.1       -28.849    
+             (*, 9,36)   148.24      -28.920    
+             (*,10,36)   148.10      -28.849    
              (*,11,36)   148.18      -28.966    
              (*,12,36)   148.29      -28.884    
              (*,13,36)   148.29      -28.932    
-             (*,14,36)   148.46      -28.86     
+             (*,14,36)   148.46      -28.860    
              (*,15,36)   148.55      -28.786    
              (*,16,36)   148.72      -28.845    
              (*,17,36)   148.68      -28.926    
@@ -2749,12 +2749,12 @@ tab[0].*
              (*,42,36)   150.56      -28.895    
              (*,43,36)   150.35      -28.873    
              (*,44,36)   150.55      -28.878    
-             (*,45,36)   150.8       -28.818    
+             (*,45,36)   150.80      -28.818    
              (*,46,36)   150.72      -28.897    
              (*,47,36)   150.75      -28.819    
              (*,48,36)   151.09      -28.866    
              (*,49,36)   150.71      -28.841    
-             (*,50,36)   151.2       -28.797    
+             (*,50,36)   151.20      -28.797    
              (*,51,36)   151.05      -28.905    
              (*,52,36)   151.31      -28.816    
              (*,53,36)   151.28      -28.908    
@@ -2777,17 +2777,17 @@ tab[0].*
              (*,70,36)   152.56      -28.919    
              (*, 1,37)   147.52      -28.753    
              (*, 2,37)   147.56      -28.792    
-             (*, 3,37)   147.61      -28.78     
+             (*, 3,37)   147.61      -28.780    
              (*, 4,37)   147.77      -28.913    
              (*, 5,37)   147.81      -28.767    
              (*, 6,37)   147.56      -28.758    
-             (*, 7,37)   148.01      -28.9      
+             (*, 7,37)   148.01      -28.900    
              (*, 8,37)   147.96      -28.793    
              (*, 9,37)   147.93      -28.818    
              (*,10,37)   148.37      -28.791    
-             (*,11,37)   148.29      -28.79     
+             (*,11,37)   148.29      -28.790    
              (*,12,37)   148.42      -28.781    
-             (*,13,37)   148.4       -28.805    
+             (*,13,37)   148.40      -28.805    
              (*,14,37)   148.27      -28.849    
              (*,15,37)   148.39      -28.745    
              (*,16,37)   148.53      -28.796    
@@ -2796,7 +2796,7 @@ tab[0].*
              (*,19,37)   148.88      -28.817    
              (*,20,37)   148.97      -28.765    
              (*,21,37)   148.88      -28.747    
-             (*,22,37)   149         -28.786    
+             (*,22,37)   149.00      -28.786    
              (*,23,37)   149.05      -28.823    
              (*,24,37)   149.16      -28.795    
              (*,25,37)   149.37      -28.763    
@@ -2807,14 +2807,14 @@ tab[0].*
              (*,30,37)   149.72      -28.719    
              (*,31,37)   149.61      -28.958    
              (*,32,37)   149.56      -28.814    
-             (*,33,37)   149.77      -28.77     
+             (*,33,37)   149.77      -28.770    
              (*,34,37)   149.91      -28.758    
              (*,35,37)   149.96      -28.789    
              (*,36,37)   150.06      -28.805    
-             (*,37,37)   150         -28.769    
+             (*,37,37)   150.00      -28.769    
              (*,38,37)   150.16      -28.737    
-             (*,39,37)   150.38      -28.8      
-             (*,40,37)   150.24      -28.8      
+             (*,39,37)   150.38      -28.800    
+             (*,40,37)   150.24      -28.800    
              (*,41,37)   150.29      -28.828    
              (*,42,37)   150.55      -28.785    
              (*,43,37)   150.55      -28.847    
@@ -2823,16 +2823,16 @@ tab[0].*
              (*,46,37)   150.86      -28.857    
              (*,47,37)   150.85      -28.721    
              (*,48,37)   150.85      -28.755    
-             (*,49,37)   151         -28.838    
+             (*,49,37)   151.00      -28.838    
              (*,50,37)   151.02      -28.788    
-             (*,51,37)   151         -28.798    
+             (*,51,37)   151.00      -28.798    
              (*,52,37)   151.21      -28.743    
              (*,53,37)   151.37      -28.881    
-             (*,54,37)   151.28      -28.87     
+             (*,54,37)   151.28      -28.870    
              (*,55,37)   151.58      -28.803    
              (*,56,37)   151.33      -28.846    
              (*,57,37)   151.54      -28.753    
-             (*,58,37)   151.59      -28.8      
+             (*,58,37)   151.59      -28.800    
              (*,59,37)   151.83      -28.742    
              (*,60,37)   151.76      -28.791    
              (*,61,37)   151.93      -28.729    
@@ -2843,7 +2843,7 @@ tab[0].*
              (*,66,37)   152.11      -28.808    
              (*,67,37)   152.36      -28.784    
              (*,68,37)   152.39      -28.803    
-             (*,69,37)   152.6       -28.819    
+             (*,69,37)   152.60      -28.819    
              (*,70,37)   152.58      -28.848    
              (*, 1,38)   147.59      -28.752    
              (*, 2,38)   147.49      -28.764    
@@ -2858,23 +2858,23 @@ tab[0].*
              (*,11,38)   148.26      -28.714    
              (*,12,38)   148.21      -28.653    
              (*,13,38)   148.37      -28.731    
-             (*,14,38)   148.46      -28.71     
+             (*,14,38)   148.46      -28.710    
              (*,15,38)   148.49      -28.683    
-             (*,16,38)   148.4       -28.727    
+             (*,16,38)   148.40      -28.727    
              (*,17,38)   148.71      -28.708    
              (*,18,38)   148.88      -28.711    
-             (*,19,38)   148.9       -28.734    
+             (*,19,38)   148.90      -28.734    
              (*,20,38)   148.78      -28.771    
              (*,21,38)   149.02      -28.698    
-             (*,22,38)   148.98      -28.72     
+             (*,22,38)   148.98      -28.720    
              (*,23,38)   149.03      -28.745    
              (*,24,38)   149.19      -28.724    
-             (*,25,38)   149.2       -28.709    
+             (*,25,38)   149.20      -28.709    
              (*,26,38)   149.39      -28.751    
              (*,27,38)   149.23      -28.663    
              (*,28,38)   149.44      -28.674    
              (*,29,38)   149.42      -28.703    
-             (*,30,38)   149.57      -28.76     
+             (*,30,38)   149.57      -28.760    
              (*,31,38)   149.52      -28.674    
              (*,32,38)   149.86      -28.711    
              (*,33,38)   149.89      -28.791    
@@ -2886,19 +2886,19 @@ tab[0].*
              (*,39,38)   150.24      -28.681    
              (*,40,38)   150.42      -28.688    
              (*,41,38)   150.36      -28.723    
-             (*,42,38)   150.7       -28.693    
+             (*,42,38)   150.70      -28.693    
              (*,43,38)   150.46      -28.679    
              (*,44,38)   150.46      -28.608    
-             (*,45,38)   150.8       -28.632    
+             (*,45,38)   150.80      -28.632    
              (*,46,38)   150.83      -28.712    
-             (*,47,38)   151         -28.754    
+             (*,47,38)   151.00      -28.754    
              (*,48,38)   150.91      -28.638    
              (*,49,38)   150.81      -28.814    
              (*,50,38)   151.05      -28.641    
              (*,51,38)   151.02      -28.669    
              (*,52,38)   151.08      -28.733    
              (*,53,38)   151.18      -28.751    
-             (*,54,38)   151.3       -28.722    
+             (*,54,38)   151.30      -28.722    
              (*,55,38)   151.19      -28.675    
              (*,56,38)   151.46      -28.729    
              (*,57,38)   151.72      -28.683    
@@ -2915,7 +2915,7 @@ tab[0].*
              (*,68,38)   152.52      -28.731    
              (*,69,38)   152.53      -28.677    
              (*,70,38)   152.44      -28.702    
-             (*, 1,39)   147.52      -28.68     
+             (*, 1,39)   147.52      -28.680    
              (*, 2,39)   147.55      -28.552    
              (*, 3,39)   147.67      -28.642    
              (*, 4,39)   147.73      -28.607    
@@ -2925,12 +2925,12 @@ tab[0].*
              (*, 8,39)   148.01      -28.565    
              (*, 9,39)   148.27      -28.683    
              (*,10,39)   148.18      -28.522    
-             (*,11,39)   148.08      -28.63     
+             (*,11,39)   148.08      -28.630    
              (*,12,39)   148.28      -28.672    
-             (*,13,39)   148.5       -28.691    
+             (*,13,39)   148.50      -28.691    
              (*,14,39)   148.44      -28.716    
              (*,15,39)   148.46      -28.651    
-             (*,16,39)   148.7       -28.61     
+             (*,16,39)   148.70      -28.610    
              (*,17,39)   148.78      -28.606    
              (*,18,39)   148.63      -28.516    
              (*,19,39)   148.74      -28.654    
@@ -2945,7 +2945,7 @@ tab[0].*
              (*,28,39)   149.34      -28.641    
              (*,29,39)   149.47      -28.675    
              (*,30,39)   149.61      -28.652    
-             (*,31,39)   149.48      -28.66     
+             (*,31,39)   149.48      -28.660    
              (*,32,39)   149.69      -28.619    
              (*,33,39)   149.85      -28.597    
              (*,34,39)   149.73      -28.713    
@@ -2972,7 +2972,7 @@ tab[0].*
              (*,55,39)   151.42      -28.742    
              (*,56,39)   151.33      -28.641    
              (*,57,39)   151.37      -28.615    
-             (*,58,39)   151.58      -28.68     
+             (*,58,39)   151.58      -28.680    
              (*,59,39)   151.72      -28.635    
              (*,60,39)   151.97      -28.644    
              (*,61,39)   151.91      -28.577    
@@ -2981,31 +2981,31 @@ tab[0].*
              (*,64,39)   152.24      -28.614    
              (*,65,39)   152.05      -28.636    
              (*,66,39)   152.23      -28.594    
-             (*,67,39)   152.3       -28.622    
+             (*,67,39)   152.30      -28.622    
              (*,68,39)   152.41      -28.629    
-             (*,69,39)   152.4       -28.664    
+             (*,69,39)   152.40      -28.664    
              (*,70,39)   152.45      -28.565    
-             (*, 1,40)   147.63      -28.52     
+             (*, 1,40)   147.63      -28.520    
              (*, 2,40)   147.57      -28.594    
              (*, 3,40)   147.71      -28.646    
              (*, 4,40)   147.65      -28.523    
-             (*, 5,40)   147.92      -28.61     
-             (*, 6,40)   147.9       -28.576    
+             (*, 5,40)   147.92      -28.610    
+             (*, 6,40)   147.90      -28.576    
              (*, 7,40)   147.91      -28.569    
              (*, 8,40)   148.06      -28.579    
              (*, 9,40)   148.11      -28.532    
              (*,10,40)   148.26      -28.592    
              (*,11,40)   148.16      -28.603    
              (*,12,40)   148.44      -28.543    
-             (*,13,40)   148.43      -28.56     
+             (*,13,40)   148.43      -28.560    
              (*,14,40)   148.53      -28.687    
-             (*,15,40)   148.73      -28.56     
+             (*,15,40)   148.73      -28.560    
              (*,16,40)   148.52      -28.565    
              (*,17,40)   148.51      -28.649    
              (*,18,40)   148.76      -28.547    
              (*,19,40)   148.73      -28.621    
              (*,20,40)   148.87      -28.591    
-             (*,21,40)   148.88      -28.59     
+             (*,21,40)   148.88      -28.590    
              (*,22,40)   149.13      -28.506    
              (*,23,40)   148.95      -28.566    
              (*,24,40)   149.24      -28.523    
@@ -3024,7 +3024,7 @@ tab[0].*
              (*,37,40)   150.37      -28.538    
              (*,38,40)   149.96      -28.621    
              (*,39,40)   150.34      -28.521    
-             (*,40,40)   150.4       -28.595    
+             (*,40,40)   150.40      -28.595    
              (*,41,40)   150.33      -28.623    
              (*,42,40)   150.46      -28.558    
              (*,43,40)   150.46      -28.533    
@@ -3043,17 +3043,17 @@ tab[0].*
              (*,56,40)   151.38      -28.599    
              (*,57,40)   151.66      -28.584    
              (*,58,40)   151.57      -28.652    
-             (*,59,40)   151.63      -28.52     
+             (*,59,40)   151.63      -28.520    
              (*,60,40)   151.65      -28.647    
              (*,61,40)   151.78      -28.461    
-             (*,62,40)   152.1       -28.577    
+             (*,62,40)   152.10      -28.577    
              (*,63,40)   152.04      -28.595    
              (*,64,40)   152.11      -28.581    
              (*,65,40)   152.13      -28.627    
              (*,66,40)   152.36      -28.606    
              (*,67,40)   152.23      -28.563    
              (*,68,40)   152.27      -28.616    
-             (*,69,40)   152.4       -28.564    
+             (*,69,40)   152.40      -28.564    
              (*,70,40)   152.52      -28.568    
          nc: 2800
       sense: 0x<address>
@@ -3061,45 +3061,45 @@ tab[0].*
          p0: 0x<address>
                  0     0
       delta: 0x<address>
-               0            0         
+               0.0000       0.0000    
     extrema: 0x<address>
              (*,*, 1)   147.57      -31.525    ->     152.52      -31.299    
-             (*,*, 2)   147.32      -31.483    ->     152.64      -31.23     
-             (*,*, 3)   147.38      -31.379    ->     152.5       -31.176    
-             (*,*, 4)   147.41      -31.36     ->     152.52      -31.042    
+             (*,*, 2)   147.32      -31.483    ->     152.64      -31.230    
+             (*,*, 3)   147.38      -31.379    ->     152.50      -31.176    
+             (*,*, 4)   147.41      -31.360    ->     152.52      -31.042    
              (*,*, 5)   147.36      -31.264    ->     152.51      -31.029    
              (*,*, 6)   147.39      -31.152    ->     152.55      -30.871    
              (*,*, 7)   147.41      -31.107    ->     152.47      -30.891    
              (*,*, 8)   147.47      -31.042    ->     152.54      -30.804    
              (*,*, 9)   147.54      -30.914    ->     152.62      -30.754    
-             (*,*,10)   147.34      -30.861    ->     152.64      -30.65     
+             (*,*,10)   147.34      -30.861    ->     152.64      -30.650    
              (*,*,11)   147.33      -30.829    ->     152.58      -30.593    
              (*,*,12)   147.45      -30.748    ->     152.47      -30.477    
-             (*,*,13)   147.47      -30.65     ->     152.55      -30.42     
+             (*,*,13)   147.47      -30.650    ->     152.55      -30.420    
              (*,*,14)   147.47      -30.606    ->     152.58      -30.337    
-             (*,*,15)   147.4       -30.499    ->     152.44      -30.289    
+             (*,*,15)   147.40      -30.499    ->     152.44      -30.289    
              (*,*,16)   147.55      -30.415    ->     152.51      -30.193    
              (*,*,17)   147.37      -30.378    ->     152.66      -30.155    
              (*,*,18)   147.18      -30.296    ->     152.69      -30.038    
              (*,*,19)   147.44      -30.198    ->     152.51      -30.007    
-             (*,*,20)   147.25      -30.237    ->     152.53      -29.91     
+             (*,*,20)   147.25      -30.237    ->     152.53      -29.910    
              (*,*,21)   147.35      -30.105    ->     152.51      -29.858    
              (*,*,22)   147.49      -30.006    ->     152.52      -29.804    
              (*,*,23)   147.49      -29.933    ->     152.41      -29.687    
              (*,*,24)   147.45      -29.872    ->     152.64      -29.668    
              (*,*,25)   147.41      -29.767    ->     152.48      -29.555    
-             (*,*,26)   147.43      -29.691    ->     152.7       -29.489    
+             (*,*,26)   147.43      -29.691    ->     152.70      -29.489    
              (*,*,27)   147.44      -29.633    ->     152.53      -29.337    
-             (*,*,28)   147.4       -29.559    ->     152.42      -29.345    
+             (*,*,28)   147.40      -29.559    ->     152.42      -29.345    
              (*,*,29)   147.54      -29.512    ->     152.67      -29.233    
-             (*,*,30)   147.51      -29.415    ->     152.47      -29.15     
-             (*,*,31)   147.3       -29.392    ->     152.59      -29.141    
+             (*,*,30)   147.51      -29.415    ->     152.47      -29.150    
+             (*,*,31)   147.30      -29.392    ->     152.59      -29.141    
              (*,*,32)   147.51      -29.255    ->     152.54      -29.012    
-             (*,*,33)   147.38      -29.209    ->     152.6       -28.963    
+             (*,*,33)   147.38      -29.209    ->     152.60      -28.963    
              (*,*,34)   147.47      -29.151    ->     152.51      -28.902    
              (*,*,35)   147.58      -29.031    ->     152.68      -28.779    
              (*,*,36)   147.47      -28.966    ->     152.58      -28.756    
-             (*,*,37)   147.51      -28.958    ->     152.6       -28.713    
+             (*,*,37)   147.51      -28.958    ->     152.60      -28.713    
              (*,*,38)   147.49      -28.831    ->     152.53      -28.608    
              (*,*,39)   147.51      -28.774    ->     152.46      -28.516    
              (*,*,40)   147.57      -28.687    ->     152.54      -28.461    
@@ -3123,29 +3123,29 @@ tab[1].*
         map: 0x<address>
                  2
       crval: 0x<address>
-               0.5       
+               0.50000   
       index: 0x<address>
    index[0]: 0x<address>
-               0.5          1.5          1.5          2.5          2.5       
-               3.5          3.5          4.5       
+               0.50000      1.5000       1.5000       2.5000       2.5000    
+               3.5000       3.5000       4.5000    
       coord: 0x<address>
              (*,1)   0.21106   
              (*,2)   0.21076   
-             (*,3)   2e-06     
-             (*,4)   2.2e-06   
-             (*,5)   5e-07     
-             (*,6)   6.5e-07   
-             (*,7)   1.24e-09  
-             (*,8)   2.48e-09  
+             (*,3)   2.0000e-06
+             (*,4)   2.2000e-06
+             (*,5)   5.0000e-07
+             (*,6)   6.5000e-07
+             (*,7)   1.2400e-09
+             (*,8)   2.4800e-09
          nc: 8
       sense: 0x<address>
                  1
          p0: 0x<address>
                  0
       delta: 0x<address>
-               0         
+               0.0000    
     extrema: 0x<address>
-             (*,*)   1.24e-09  ->     0.21121   
+             (*,*)   1.2400e-09->     0.21121   
         err: 0x0
      m_flag: 137
         m_M: 1
@@ -3165,11 +3165,11 @@ tab[2].*
         map: 0x<address>
                  3
       crval: 0x<address>
-               0         
+               0.0000    
       index: 0x<address>
    index[0]: 0x<address>
-               0            1            1            2            2         
-               3            3            4         
+               0.0000       1.0000       1.0000       2.0000       2.0000    
+               3.0000       3.0000       4.0000    
       coord: 0x<address>
              (*,1)   1997.8    
              (*,2)   1997.8    
@@ -3185,7 +3185,7 @@ tab[2].*
          p0: 0x<address>
                  0
       delta: 0x<address>
-               0         
+               0.0000    
     extrema: 0x<address>
              (*,*)   1993.3    ->     2002.2    
         err: 0x0
@@ -3203,38 +3203,46 @@ tab[2].*
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               129          65           0.5          1         
+               129.00       65.000       0.50000      1.0000    
          pc: 0x<address>
-    pc[0][]:   0.99619      0.087156     0            0         
-    pc[1][]:  -0.087156     0.99619      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            1            1         
+    pc[0][]:   0.99619      0.087156     0.0000       0.0000    
+    pc[1][]:  -0.087156     0.99619      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       1.0000       1.0000    
       cdelt: 0x<address>
-               1            1            1            1         
+               1.0000       1.0000       1.0000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:   0.99619      0.087156     0.0000       0.0000    
+piximg[1][]:  -0.087156     0.99619      0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       1.0000       0.0000    
+piximg[3][]:   0.0000       0.0000       1.0000       1.0000    
+imgpix[0][]:   0.99619     -0.087156     0.0000       0.0000    
+imgpix[1][]:   0.087156     0.99619      0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.0000       0.0000    
+imgpix[3][]:   0.0000       0.0000      -1.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:   0.99619      0.087156     0            0         
-piximg[1][]:  -0.087156     0.99619      0            0         
-piximg[2][]:   0            0            1            0         
-piximg[3][]:   0            0            1            1         
-imgpix[0][]:   0.99619     -0.087156     0            0         
-imgpix[1][]:   0.087156     0.99619      0            0         
-imgpix[2][]:   0            0            1            0         
-imgpix[3][]:   0            0           -1            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 0
      offset: 0
        phi0: UNDEFINED
      theta0: UNDEFINED
-       ref:   0            0            9.8765e+107   90        
-       prj: (see below)
-     euler:   0            0            0            0            0         
+        ref:   0.0000       0.0000       9.8765e+107   90.000    
+        prj: (see below)
+      euler:   0.0000       0.0000       0.0000       0.0000       0.0000    
     latpreq: -1 (UNDEFINED)
      isolat: 0
         err: 0x0
@@ -3259,8 +3267,8 @@ imgpix[3][]:   0            0           -1            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x0
@@ -3274,7 +3282,7 @@ imgpix[3][]:   0            0           -1            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/C/test/wcslint.keyrec b/C/test/wcslint.keyrec
new file mode 100644
index 0000000..6d185a4
--- /dev/null
+++ b/C/test/wcslint.keyrec
@@ -0,0 +1,349 @@
+#-----------------------------------------------------------------------------
+#
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
+# Copyright (C) 1995-2015, Mark Calabretta
+#
+# This file is part of WCSLIB.
+#
+# WCSLIB is free software: you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+# more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+#
+# Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+#
+# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+# http://www.atnf.csiro.au/people/Mark.Calabretta
+# $Id: wcslint.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+#-----------------------------------------------------------------------------
+#
+# List of FITS header keyrecords, mostly invalid, for testing 'wcslint' and
+# also, by extension, wcspih() which it uses.
+#
+# Use 'tofits' (supplied) to convert this file to proper FITS format via
+#
+#     tofits < wcslint.keyrec > wcslint.fits
+#
+# Lines in this file beginning with '#' are ignored by 'tofits'.
+#
+#-----------------------------------------------------------------------------
+SIMPLE  =                    F / Standards-conformant FITS format?  NO!
+BITPIX  =                  -32 / IEEE single precision floating point
+NAXIS   =                    0 / No image data
+
+COMMENT                        WARNING  WARNING  WARNING
+COMMENT                        -------------------------
+COMMENT  This header is not a usage template.  It is intended for testing
+COMMENT  'wcslint' and as such mostly contains invalid WCS keyrecords.
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The 'A' representation is legitimate.
+COMMENT  -----------------------------------------------------------------------
+
+WCSAXESA=                    4 / Four coordinate axes
+WCSNAMEA= 'wcslint test header'
+
+CRPIX1A =                513.0 / Pixel coordinate of reference point
+CRPIX2A =                513.0 / Pixel coordinate of reference point
+CRPIX3A =               1025.0 / Pixel coordinate of reference point
+CRPIX4A =                  1.0 / Pixel coordinate of reference point
+PC1_1A  =          0.866025404 / Linear transformation matrix element
+PC1_2A  =          0.500000000 / Linear transformation matrix element
+PC2_1A  =         -0.500000000 / Linear transformation matrix element
+PC2_2A  =          0.866025404 / Linear transformation matrix element
+
+CDELT1A =                -0.10 / [deg] x-scale
+CUNIT1A = 'deg'                / Degree units are required
+CTYPE1A = 'RA---SZP'           / Right ascension in slant zenithal projection
+CRVAL1A =                150.0 / [deg] Right ascension at the reference point
+CNAME1A = 'Right ascension (J2000)' / Axis name for labelling purposes
+CDELT2A =                 0.10 / [deg] y-scale
+CUNIT2A = 'deg'                / Degree units are required
+CTYPE2A = 'DEC--SZP'           / Declination in a slant zenithal projection
+CRVAL2A =                -30.0 / [deg] Declination at the reference point
+CNAME2A = 'Declination (J2000)' / Axis name for labelling purposes
+PV1_1A  =                  0.0 / [deg] Native longitude of the reference point
+PV1_2A  =                 90.0 / [deg] Native latitude  of the reference point
+PV1_3A  =                195.0 / [deg] LONPOLEa by another name (precedence)
+PV1_4A  =                999.0 / [deg] LATPOLEa by another name (precedence)
+PV2_1A  =                  0.0 / SZP distance, in spherical radii
+PV2_2A  =                180.0 / [deg] SZP P-longitude
+PV2_3A  =                 45.0 / [deg] SZP P-latitude
+LONPOLEA=                195.0 / [deg] Native longitude of the NCP
+LATPOLEA=                999.0 / [deg] Native latitude of the NCP
+RADESYSA= 'FK5'                / Mean equatorial coordinates, IAU 1984 system
+EQUINOXA=               2000.0 / [yr] Equinox of equatorial coordinates
+
+CDELT3A =      -9.635265432e-6 / [m] Wavelength scale
+CUNIT3A = 'm'                  / Wavelength units
+CTYPE3A = 'WAVE-F2W'           / Frequency axis expressed as wavelength
+CRVAL3A =          0.214982042 / [m] Reference wavelength
+CNAME3A = 'Wavelength'         / Axis name for labelling purposes
+CRDER3A =              1.0e-11 / [m] Wavelength calibration, random error
+CSYER3A =              1.0e-12 / [m] Wavelength calibration, systematic error
+RESTFRQA=         1.42040575e9 / [Hz] HI rest frequency
+RESTWAVA=          0.211061141 / [m] HI rest wavelength
+SPECSYSA= 'BARYCENT'           / Reference frame of spectral coordinates
+SSYSOBSA= 'TOPOCENT'           / Reference frame of observation
+VELOSYSA=               1500.0 / [m/s] Bary-topo velocity towards the source
+SSYSSRCA= 'LSRK'               / Reference frame of source redshift
+ZSOURCEA=               0.0025 / Redshift of the source
+
+CDELT4A =                  1.0 / [s] Time scale
+CUNIT4A = 's'                  / Time units
+CTYPE4A = 'TIME''x'''          / String value and comment containing quotes (')
+CRVAL4A =                 -2e3 / [s] Time at the reference point
+CNAME4A = 'Time offset'        / Axis name for labelling purposes
+PS4_0A  = 'UTC'                / Time measurement system
+
+DATE-OBS= '1957-02-14T15:00:00'/ UTC date corresponding to MJD-OBS
+DATE-AVG= '1957-02-14T16:48:00'/ UTC date corresponding to MJD-AVG
+MJD-OBS =            35883.625 / [d] MJD at start of observation (UTC)
+MJD-AVG =            35883.700 / [d] MJD mid-observation time (UTC)
+OBSGEO-X=           -4554231.9 / [m] ITRF observatory coordinates
+OBSGEO-Y=            2816758.3 /
+OBSGEO-Z=           -3454035.9
+
+COMMENT   The following test parser boundary conditions:
+PV4_1A  =                                                                    1.0
+PV4_2A  =                                                                   2.0/
+PV4_3A  =                                                                  3.0 /
+PV4_4A  =                                                                 4.0 /
+PS4_1A  =                                                                  'ABC'
+PS4_2A  =                                                                 'DEF'/
+PS4_3A  =                                                                'GHI' /
+PS4_4A  =                                                               'JKL' /
+
+
+COMMENT  =======================================================================
+COMMENT  By themselves, these primary image header auxiliary keywords should
+COMMENT  not be sufficient to cause a wcsprm struct to be created for
+COMMENT  representation X, nor should they affect any of the others.
+COMMENT  -----------------------------------------------------------------------
+
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system
+LONPOLEX=                180.0 / [deg] Native longitude of the NCP
+LATPOLEX=                999.0 / [deg] Native latitude of the NCP
+RESTFRQX=         1.42040575e9 / [Hz] HI rest frequency
+RESTWAVX=          0.211061141 / [m] HI rest wavelength
+EQUINOXX=               2000.0 / [yr] Equinox of equatorial coordinates
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system
+SPECSYSX= 'BARYCENT'           / Reference frame of spectral coordinates
+SSYSOBSX= 'TOPOCENT'           / Reference frame of observation
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift
+VELANGLX=                35.25 / Velocity orientation angle
+VELOSYSX=               1500.0 / [m/s] Bary-topo velocity towards the source
+ZSOURCEX=               0.0025 / Redshift of the source
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  Every keyrecord for the 'B' representation below either violates or
+COMMENT  does not strictly conform to the FITS WCS standard.
+COMMENT  -----------------------------------------------------------------------
+
+WCSNAMEB= B means BAD!         / Name of this system
+WCSAXESB=                   -4 / Four coordinate axes
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following have invalid keyword indices.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIX0B =                  0.0 / Not a valid CRPIXja keyword
+CDELT0B =                  1.0 / Not a valid CDELTia keyword
+CUNIT0B = 'INVALID'            / Not a valid CUNITia keyword
+CTYPE0B = 'INVALID'            / Not a valid CTYPEia keyword
+CRVAL0B =                  0.0 / Not a valid CRVALia keyword
+CNAME0B = 'INVALID'            / Not a valid CNAMEia keyword
+CRDER0B =                  0.0 / Not a valid CRDERia keyword
+CSYER0B =                  0.0 / Not a valid CSYERia keyword
+PC0_0B  =                  0.0 / Not a valid PCi_ja  keyword
+CD0_0B  =                  0.0 / Not a valid CDi_ja  keyword
+PV0_1B  =                  0.0 / Not a valid PVi_ma  keyword
+PS0_1B  = 'INVALID'            / Not a valid PSi_ma  keyword
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following have invalid keyword syntax.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIX01B=                  0.0 / Invalid CRPIXja  keyword syntax
+CDELT01B=                  1.0 / Invalid CDELTia  keyword syntax
+CUNIT01B= 'INVALID'            / Invalid CUNITia  keyword syntax
+CTYPE01B= 'INVALID'            / Invalid CTYPEia  keyword syntax
+CRVAL01B=                  0.0 / Invalid CRVALia  keyword syntax
+CNAME01B= 'INVALID'            / Invalid CNAMEia  keyword syntax
+CRDER01B=                  0.0 / Invalid CRDERia  keyword syntax
+CSYER01B=                  0.0 / Invalid CSYERia  keyword syntax
+PC01_1B =                  1.0 / Invalid PCi_ja   keyword syntax
+PC1_01B =                  0.0 / Invalid PCi_ja   keyword syntax
+PC01_01B=                  0.0 / Invalid PCi_ja   keyword syntax
+PC1-1B  =                  1.0 / Invalid PCi_ja   keyword syntax
+CD01_1B =                  1.0 / Invalid CDi_ja   keyword syntax
+CD1_01B =                  0.0 / Invalid CDi_ja   keyword syntax
+CD01_01B=                  0.0 / Invalid CDi_ja   keyword syntax
+CD1-1B  =                  1.0 / Invalid CDi_ja   keyword syntax
+PV01_1B =                  0.0 / Invalid PVi_ma   keyword syntax
+PV1_01B =                  0.0 / Invalid PVi_ma   keyword syntax
+PV01_01B=                  0.0 / Invalid PVi_ma   keyword syntax
+PV1-1B  =                  0.0 / Invalid PVi_ma   keyword syntax
+PS01_1B = 'INVALID'            / Invalid PSi_ma   keyword syntax
+PS1_01B = 'INVALID'            / Invalid PSi_ma   keyword syntax
+PS01_01B= 'INVALID'            / Invalid PSi_ma   keyword syntax
+PS1-1B  = 'INVALID'            / Invalid PSi_ma   keyword syntax
+EQUINOX1=                  0.0 / Invalid EQUINOXa keyword syntax
+LONPOLE2=                  0.0 / Invalid LONPOLEa keyword syntax
+LATPOLE3=                  0.0 / Invalid LATPOLEa keyword syntax
+RESTFRQ4=                  0.0 / Invalid RESTFRQa keyword syntax
+RESTWAV5=                  0.0 / Invalid RESTWAVa keyword syntax
+RADESYS6= 'INVALID'            / Invalid RADESYSa keyword syntax
+SPECSYS7= 'INVALID'            / Invalid SPECSYSa keyword syntax
+SSYSOBS8= 'INVALID'            / Invalid SSYSOBSa keyword syntax
+SSYSSRC9= 'INVALID'            / Invalid SSYSSRCa keyword syntax
+VELANGL-=                  0.0 / Invalid VELANGLa keyword syntax
+VELOSYS_=                  0.0 / Invalid VELOSYSa keyword syntax
+WCSNAMEb= 'INVALID'            / Invalid WCSNAMEa keyword syntax
+ZSOURCE*=                  0.0 / Invalid ZSOURCEa keyword syntax
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following have invalid keyvalues.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIX2B =  INVALID             / Not a valid CRPIXja  keyvalue
+CDELT2B =            (137, -1) / Not a valid CDELTia  keyvalue
+CUNIT2B =                   -1 / Not a valid CUNITia  keyvalue
+CTYPE2B =                    T / Not a valid CTYPEia  keyvalue
+CRVAL2B = 'INVALID'            / Not a valid CRVALia  keyvalue
+CNAME2B =                    F / Not a valid CNAMEia  keyvalue
+CRDER2B =          (10E5,-0.1) / Not a valid CRDERia  keyvalue
+CSYER2B = 'INVALID'            / Not a valid CSYERia  keyvalue
+PC1_1B  =                 0xff / Not a valid PCi_ja   keyvalue
+CD1_1B  = 'INVALID'            / Not a valid CDi_ja   keyvalue
+PV1_1B  = 'INVALID'            / Not a valid PVi_ma   keyvalue
+PS1_1B  =                    0 / Not a valid PSi_ma   keyvalue
+EQUINOXB=             '2000.0' / Not a valid EQUINOXa keyvalue
+EPOCH   = 'B1950.0'            / Not a valid EPOCH    keyvalue
+LONPOLEB= 'INVALID'            / Not a valid LONPOLEa keyvalue
+LATPOLEB= 'INVALID'            / Not a valid LATPOLEa keyvalue
+RESTFRQB= 'INVALID'            / Not a valid RESTFRQa keyvalue
+RESTWAVB= 'INVALID'            / Not a valid RESTWAVa keyvalue
+RADESYSB=                 ICRS / Not a valid RADESYSa keyvalue
+SPECSYSB=                  0.0 / Not a valid SPECSYSa keyvalue
+SSYSOBSB=                  0.0 / Not a valid SSYSOBSa keyvalue
+SSYSSRCB=                  0.0 / Not a valid SSYSSRCa keyvalue
+VELANGLB= 'INVALID'            / Not a valid VELANGLa keyvalue
+VELOSYSB= 'INVALID'            / Not a valid VELOSYSa keyvalue
+WCSNAMEB=                  0.0 / Not a valid WCSNAMEa keyvalue
+ZSOURCEB= 'INVALID'            / Not a valid ZSOURCEa keyvalue
+DATE-AVG=                  0.0 / Not a valid DATE-AVG keyvalue
+DATE-OBS=                  0.0 / Not a valid DATE-OBS keyvalue
+MJD-AVG = 'INVALID'            / Not a valid MJD-AVG  keyvalue
+MJD-OBS = 'INVALID'            / Not a valid MJD-OBS  keyvalue
+OBSGEO-X= 'INVALID'            / Not a valid OBSGEO-X keyvalue
+OBSGEO-Y= 'INVALID'            / Not a valid OBSGEO-Y keyvalue
+OBSGEO-Z= 'INVALID'            / Not a valid OBSGEO-Z keyvalue
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following are basic syntax errors.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIX3B=                   0.0 / Illegal, "= " not in columns 9-10
+CDELT3B  =                 1.0 / Illegal, "= " not in columns 9-10
+CUNIT3B ='deg'                 / Illegal, "= " not in columns 9-10
+CTYPE3B   'FREQ'               / Illegal, "= " not in columns 9-10
+CRVAL3B =                2 + 2 / Not a valid keyvalue
+CNAME3B = 'IN' 'VALID'         / Not a valid keyvalue
+CRDER3B =             1934-638 / Not a valid keyvalue
+CSYER3B =                1.2.3 / Not a valid keyvalue
+PC1_1B  =            12h34m56s / Not a valid keyvalue
+CD1_1B  =                 0xFF / Not a valid keyvalue
+PV1_1B  =              58 - 21 / Not a valid keyvalue
+PS1_1B  =                "UTC" / Not a valid keyvalue
+EQUINOXB=                J2000 / Not a valid keyvalue
+EPOCH   =              B1950.0 / Not a valid keyvalue
+LONPOLEB=            180:00:00 / Not a valid keyvalue
+LATPOLEB=                $9.99 / Not a valid keyvalue
+RESTFRQB=                      / Not a valid keyvalue
+RESTWAVB=                      / Not a valid keyvalue
+RADESYSB= ICRS                 / Not a valid keyvalue
+SPECSYSB= 'BARYCENT'             Invalid keycomment
+SSYSOBSB= 'TOPOCENT'             1/8 = 0.125
+PV3_1B  =                                                                   1.0O
+PV3_2B  =                                                                  2 + 2
+PV3_3B  =                                                                 3.0 :
+PS3_1B  =                                                  'Jean-Pierre O'Toole'
+PS3_2B  =                                                                'UVW' :
+PS3_3B  =                                                               'XYZ' :
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following are deprecated or unrecognised AIPS-convention keywords.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIX4A_= 'PHONEY'             / Lookalike keyword is not CRPIXja
+CDELT4_B= 'PHONEY'             / Lookalike keyword is not CDELTia
+CUNIT4-B= 'PHONEY'             / Lookalike keyword is not CUNITia
+CTYPE-4B= 'PHONEY'             / Lookalike keyword is not CTYPEia
+CRVAL_4B= 'PHONEY'             / Lookalike keyword is not CRVALia
+CNAME4_ = 'PHONEY'             / Lookalike keyword is not CNAMEia
+CRDER4_ = 'PHONEY'             / Lookalike keyword is not CRDERia
+CSYER4_ = 'PHONEY'             / Lookalike keyword is not CSYERia
+
+PC4X4B  = 'PHONEY'             / Lookalike keyword is not PCi_ja
+PC4__4B = 'PHONEY'             / Lookalike keyword is not PCi_ja
+PC4_IB  = 'PHONEY'             / Lookalike keyword is not PCi_ja
+PC4 4B  = 'PHONEY'             / Lookalike keyword is not PCi_ja
+CD4X4B  = 'PHONEY'             / Lookalike keyword is not CDi_ja
+CD4__4B = 'PHONEY'             / Lookalike keyword is not CDi_ja
+CD4_IB  = 'PHONEY'             / Lookalike keyword is not CDi_ja
+CD4 4B  = 'PHONEY'             / Lookalike keyword is not CDi_ja
+PV4X4B  = 'PHONEY'             / Lookalike keyword is not PVi_ja
+PV4__4B = 'PHONEY'             / Lookalike keyword is not PVi_ja
+PV4_OB  = 'PHONEY'             / Lookalike keyword is not PVi_ja
+PV4 0B  = 'PHONEY'             / Lookalike keyword is not PVi_ja
+PS4X4B  = 'PHONEY'             / Lookalike keyword is not PSi_ja
+PS4__4B = 'PHONEY'             / Lookalike keyword is not PSi_ja
+PS4_IB  = 'PHONEY'             / Lookalike keyword is not PSi_ja
+PS4 0B  = 'PHONEY'             / Lookalike keyword is not PSi_ja
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following look vaguely like WCS keywords but should be discarded.
+COMMENT  -----------------------------------------------------------------------
+
+CRPIXELS=                  0.0 / Furphy, not CRPIXja
+PCATALOG=                  0.0 / Furphy, not PCi_ja
+CDELTA  =                  0.0 / Furphy, not CDELTia
+CDI_JA  =                  0.0 / Furphy, not CDi_ja
+CUNITARY=                  0.0 / Furphy, not CUNITia
+CTYPEXY =                  0.0 / Furphy, not CTYPEia
+CRVALUE =                  0.0 / Furphy, not CRVALia
+CNAME   =                  0.0 / Furphy, not CNAMEia
+PV1_1AL =                  0.0 / Furphy, not PVi_ma
+PSEUDO  =                  0.0 / Furphy, not PSi_ma
+EPOCHAL =                  0.0 / Furphy, not EPOCH
+VELREF1 =                  0.0 / Furphy, not VELREF
+
+COMMENT  -----------------------------------------------------------------------
+COMMENT  The following are deprecated or unrecognised AIPS-convention keywords.
+COMMENT  -----------------------------------------------------------------------
+
+EPOCHB  =                  0.0 / Invalid alternate code on EPOCH  keyword
+VELREFB =                    0 / Invalid alternate code on VELREF keyword
+
+PC001001=                  1.0 / PC00i00j keyword is deprecated, use PCi_ja
+CD001001=                  1.0 / PC00i00j keyword is deprecated, use CDi_ja
+VSOURCEB=                  0.0 / VSOURCEa keyword is deprecated, use ZSOURCEa
+RADECSYS= 'DEPRECATED'         / RADECSYS keyword is deprecated, use RADESYSa
+PROJP1  =                  0.0 / PROJPn   keyword is deprecated, use PVi_ma
+CROTA1  =                  0.0 / CROTAn   keyword is deprecated, use PCi_ja
+
+RESTFREQ=                  0.0 / Use RESTFRQa in preference to RESTFREQ
+
+ALTRPIX =                  0.0 / AIPS spectral convention, not recognised
+ALTRVAL =                  0.0 / AIPS spectral convention, not recognised
+
+END
diff --git a/C/test/wcstab.keyrec b/C/test/wcstab.keyrec
index 2b638a3..6eb91d4 100644
--- a/C/test/wcstab.keyrec
+++ b/C/test/wcstab.keyrec
@@ -1,6 +1,6 @@
 #-----------------------------------------------------------------------------
 #
-# WCSLIB 4.25 - an implementation of the FITS WCS standard.
+# WCSLIB 5.0 - an implementation of the FITS WCS standard.
 # Copyright (C) 1995-2015, Mark Calabretta
 #
 # This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: wcstab.keyrec,v 4.25.1.2 2015/01/06 01:01:52 mcalabre Exp mcalabre $
+# $Id: wcstab.keyrec,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 #-----------------------------------------------------------------------------
 #
 # List of FITS header keyrecords used by 'twcstab' to construct a FITS file
diff --git a/C/wcs.c b/C/wcs.c
index 8f1a06d..86ba9ba 100644
--- a/C/wcs.c
+++ b/C/wcs.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcs.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcs.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -37,6 +37,7 @@
 #include "wcsunits.h"
 #include "wcsutil.h"
 #include "lin.h"
+#include "dis.h"
 #include "log.h"
 #include "spc.h"
 #include "prj.h"
@@ -57,10 +58,10 @@ const char *wcs_errmsg[] = {
   "Null wcsprm pointer passed",
   "Memory allocation failed",
   "Linear transformation matrix is singular",
-  "Inconsistent or unrecognized coordinate axis types",
+  "Inconsistent or unrecognized coordinate axis type",
   "Invalid parameter value",
-  "Invalid coordinate transformation parameters",
-  "Ill-conditioned coordinate transformation parameters",
+  "Unrecognized coordinate transformation parameter",
+  "Ill-conditioned coordinate transformation parameter",
   "One or more of the pixel coordinates were invalid",
   "One or more of the world coordinates were invalid",
   "Invalid world coordinate",
@@ -68,6 +69,53 @@ const char *wcs_errmsg[] = {
   "Invalid subimage specification",
   "Non-separable subimage coordinate system"};
 
+/* Map error returns for lower-level routines. */
+const int wcs_linerr[] = {
+  WCSERR_SUCCESS,		/*  0: LINERR_SUCCESS         */
+  WCSERR_NULL_POINTER,		/*  1: LINERR_NULL_POINTER    */
+  WCSERR_MEMORY,		/*  2: LINERR_MEMORY          */
+  WCSERR_SINGULAR_MTX,		/*  3: LINERR_SINGULAR_MTX    */
+  WCSERR_BAD_PARAM,		/*  4: LINERR_DISTORT_INIT    */
+  WCSERR_BAD_PIX,		/*  5: LINERR_DISTORT         */
+  WCSERR_BAD_WORLD		/*  6: LINERR_DEDISTORT       */
+};
+
+const int wcs_logerr[] = {
+  WCSERR_SUCCESS,		/*  0: LOGERR_SUCCESS         */
+  WCSERR_NULL_POINTER,		/*  1: LOGERR_NULL_POINTER    */
+  WCSERR_BAD_PARAM,		/*  2: LOGERR_BAD_LOG_REF_VAL */
+  WCSERR_BAD_PIX,		/*  3: LOGERR_BAD_X           */
+  WCSERR_BAD_WORLD		/*  4: LOGERR_BAD_WORLD       */
+};
+
+const int wcs_spcerr[] = {
+				/* -1: SPCERR_NO_CHANGE       */
+  WCSERR_SUCCESS,		/*  0: SPCERR_SUCCESS         */
+  WCSERR_NULL_POINTER,		/*  1: SPCERR_NULL_POINTER    */
+  WCSERR_BAD_PARAM,		/*  2: SPCERR_BAD_SPEC_PARAMS */
+  WCSERR_BAD_PIX,		/*  3: SPCERR_BAD_X           */
+  WCSERR_BAD_WORLD		/*  4: SPCERR_BAD_SPEC        */
+};
+
+const int wcs_celerr[] = {
+  WCSERR_SUCCESS,		/*  0: CELERR_SUCCESS         */
+  WCSERR_NULL_POINTER,		/*  1: CELERR_NULL_POINTER    */
+  WCSERR_BAD_PARAM,		/*  2: CELERR_BAD_PARAM       */
+  WCSERR_BAD_COORD_TRANS,	/*  3: CELERR_BAD_COORD_TRANS */
+  WCSERR_ILL_COORD_TRANS,	/*  4: CELERR_ILL_COORD_TRANS */
+  WCSERR_BAD_PIX,		/*  5: CELERR_BAD_PIX         */
+  WCSERR_BAD_WORLD		/*  6: CELERR_BAD_WORLD       */
+};
+
+const int wcs_taberr[] = {
+  WCSERR_SUCCESS,		/*  0: TABERR_SUCCESS         */
+  WCSERR_NULL_POINTER,		/*  1: TABERR_NULL_POINTER    */
+  WCSERR_MEMORY,		/*  2: TABERR_MEMORY          */
+  WCSERR_BAD_PARAM,		/*  3: TABERR_BAD_PARAMS      */
+  WCSERR_BAD_PIX,		/*  4: TABERR_BAD_X           */
+  WCSERR_BAD_WORLD		/*  5: TABERR_BAD_WORLD       */
+};
+
 /* Convenience macro for invoking wcserr_set(). */
 #define WCS_ERRMSG(status) WCSERR_SET(status), wcs_errmsg[status]
 
@@ -104,21 +152,19 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
     if (wcs->lin.err) free(wcs->lin.err);
     if (wcs->cel.err) free(wcs->cel.err);
     if (wcs->spc.err) free(wcs->spc.err);
-    if (wcs->cel.prj.err) free(wcs->cel.prj.err);
   }
   wcs->err = 0x0;
   wcs->lin.err = 0x0;
   wcs->cel.err = 0x0;
   wcs->spc.err = 0x0;
-  wcs->cel.prj.err = 0x0;
 
 
   /* Initialize pointers. */
   if (wcs->flag == -1 || wcs->m_flag != WCSSET) {
     if (wcs->flag == -1) {
+      wcs->tab   = 0x0;
       wcs->types = 0x0;
       wcs->lin.flag = -1;
-      wcs->tab = 0x0;
     }
 
     /* Initialize memory management. */
@@ -181,7 +227,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->crpix = wcs->m_crpix;
 
       } else {
-        if (!(wcs->crpix = calloc(naxis, sizeof(double)))) {
+        if ((wcs->crpix = calloc(naxis, sizeof(double))) == 0x0) {
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
 
@@ -197,7 +243,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->pc = wcs->m_pc;
 
       } else {
-        if (!(wcs->pc = calloc(naxis*naxis, sizeof(double)))) {
+        if ((wcs->pc = calloc(naxis*naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -214,7 +260,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->cdelt = wcs->m_cdelt;
 
       } else {
-        if (!(wcs->cdelt = calloc(naxis, sizeof(double)))) {
+        if ((wcs->cdelt = calloc(naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -231,7 +277,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->crval = wcs->m_crval;
 
       } else {
-        if (!(wcs->crval = calloc(naxis, sizeof(double)))) {
+        if ((wcs->crval = calloc(naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -248,7 +294,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->cunit = wcs->m_cunit;
 
       } else {
-        if (!(wcs->cunit = calloc(naxis, sizeof(char [72])))) {
+        if ((wcs->cunit = calloc(naxis, sizeof(char [72]))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -265,7 +311,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->ctype = wcs->m_ctype;
 
       } else {
-        if (!(wcs->ctype = calloc(naxis, sizeof(char [72])))) {
+        if ((wcs->ctype = calloc(naxis, sizeof(char [72]))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -283,7 +329,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
 
       } else {
         if (NPVMAX) {
-          if (!(wcs->pv = calloc(NPVMAX, sizeof(struct pvcard)))) {
+          if ((wcs->pv = calloc(NPVMAX, sizeof(struct pvcard))) == 0x0) {
             wcsfree(wcs);
             return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
           }
@@ -306,7 +352,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
 
       } else {
         if (NPSMAX) {
-          if (!(wcs->ps = calloc(NPSMAX, sizeof(struct pscard)))) {
+          if ((wcs->ps = calloc(NPSMAX, sizeof(struct pscard))) == 0x0) {
             wcsfree(wcs);
             return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
           }
@@ -328,7 +374,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->cd = wcs->m_cd;
 
       } else {
-        if (!(wcs->cd = calloc(naxis*naxis, sizeof(double)))) {
+        if ((wcs->cd = calloc(naxis*naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -345,7 +391,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->crota = wcs->m_crota;
 
       } else {
-        if (!(wcs->crota = calloc(naxis, sizeof(double)))) {
+        if ((wcs->crota = calloc(naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -362,7 +408,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->colax = wcs->m_colax;
 
       } else {
-        if (!(wcs->colax = calloc(naxis, sizeof(int)))) {
+        if ((wcs->colax = calloc(naxis, sizeof(int))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -379,7 +425,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->cname = wcs->m_cname;
 
       } else {
-        if (!(wcs->cname = calloc(naxis, sizeof(char [72])))) {
+        if ((wcs->cname = calloc(naxis, sizeof(char [72]))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -396,7 +442,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->crder = wcs->m_crder;
 
       } else {
-        if (!(wcs->crder = calloc(naxis, sizeof(double)))) {
+        if ((wcs->crder = calloc(naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -413,7 +459,7 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
         wcs->csyer = wcs->m_csyer;
 
       } else {
-        if (!(wcs->csyer = calloc(naxis, sizeof(double)))) {
+        if ((wcs->csyer = calloc(naxis, sizeof(double))) == 0x0) {
           wcsfree(wcs);
           return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
         }
@@ -434,9 +480,8 @@ int wcsini(int alloc, int naxis, struct wcsprm *wcs)
   wcs->lin.crpix  = wcs->crpix;
   wcs->lin.pc     = wcs->pc;
   wcs->lin.cdelt  = wcs->cdelt;
-  wcs->lin.m_flag = 0;
   if ((status = linini(0, naxis, &(wcs->lin)))) {
-    return wcserr_set(WCS_ERRMSG(status));
+    return wcserr_set(WCS_ERRMSG(wcs_linerr[status]));
   }
 
 
@@ -575,13 +620,13 @@ int wcssub(
 
   /* Allocate enough temporary storage to hold either axes[] or map[].*/
   ntmp = (*nsub <= naxis) ? naxis : *nsub;
-  if (!(itmp = calloc(ntmp, sizeof(int)))) {
+  if ((itmp = calloc(ntmp, sizeof(int))) == 0x0) {
     return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
   }
 
   if ((dealloc = (axes == 0x0))) {
     /* Construct an index array. */
-    if (!(axes = calloc(naxis, sizeof(int)))) {
+    if ((axes = calloc(naxis, sizeof(int))) == 0x0) {
       free(itmp);
       return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
     }
@@ -939,7 +984,7 @@ int wcssub(
 
   if (wcsdst->ntab) {
     /* Allocate memory for tabprm structs. */
-    if (!(wcsdst->tab = calloc(wcsdst->ntab, sizeof(struct tabprm)))) {
+    if ((wcsdst->tab = calloc(wcsdst->ntab, sizeof(struct tabprm))) == 0x0) {
       wcsdst->ntab = 0;
 
       status = wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
@@ -956,7 +1001,7 @@ int wcssub(
 
       if (map[i-1]) {
         if ((status = tabcpy(1, wcssrc->tab + itab, tabp))) {
-          wcserr_set(WCS_ERRMSG(status));
+          wcserr_set(WCS_ERRMSG(wcs_taberr[status]));
           goto cleanup;
         }
 
@@ -973,7 +1018,11 @@ cleanup:
     free(axes);
   }
 
-  if (status && wcsdst->m_tab) free(wcsdst->m_tab);
+  if (status && wcsdst->m_tab) {
+    free(wcsdst->m_tab);
+    wcsdst->tab   = 0x0;
+    wcsdst->m_tab = 0x0;
+  }
 
   return status;
 }
@@ -1245,7 +1294,7 @@ int wcsprt(const struct wcsprm *wcs)
   WCSPRINTF_PTR("      crpix: ", wcs->crpix, "\n");
   wcsprintf("            ");
   for (i = 0; i < wcs->naxis; i++) {
-    wcsprintf("  %- 11.5g", wcs->crpix[i]);
+    wcsprintf("  %#- 11.5g", wcs->crpix[i]);
   }
   wcsprintf("\n");
 
@@ -1255,7 +1304,7 @@ int wcsprt(const struct wcsprm *wcs)
   for (i = 0; i < wcs->naxis; i++) {
     wcsprintf("    pc[%d][]:", i);
     for (j = 0; j < wcs->naxis; j++) {
-      wcsprintf("  %- 11.5g", wcs->pc[k++]);
+      wcsprintf("  %#- 11.5g", wcs->pc[k++]);
     }
     wcsprintf("\n");
   }
@@ -1264,7 +1313,7 @@ int wcsprt(const struct wcsprm *wcs)
   WCSPRINTF_PTR("      cdelt: ", wcs->cdelt, "\n");
   wcsprintf("            ");
   for (i = 0; i < wcs->naxis; i++) {
-    wcsprintf("  %- 11.5g", wcs->cdelt[i]);
+    wcsprintf("  %#- 11.5g", wcs->cdelt[i]);
   }
   wcsprintf("\n");
 
@@ -1272,7 +1321,7 @@ int wcsprt(const struct wcsprm *wcs)
   WCSPRINTF_PTR("      crval: ", wcs->crval, "\n");
   wcsprintf("            ");
   for (i = 0; i < wcs->naxis; i++) {
-    wcsprintf("  %- 11.5g", wcs->crval[i]);
+    wcsprintf("  %#- 11.5g", wcs->crval[i]);
   }
   wcsprintf("\n");
 
@@ -1302,7 +1351,7 @@ int wcsprt(const struct wcsprm *wcs)
   wcsprintf("     npvmax: %d\n", wcs->npvmax);
   WCSPRINTF_PTR("         pv: ", wcs->pv, "\n");
   for (i = 0; i < wcs->npv; i++) {
-    wcsprintf("             %3d%4d  %- 11.5g\n", (wcs->pv[i]).i,
+    wcsprintf("             %3d%4d  %#- 11.5g\n", (wcs->pv[i]).i,
       (wcs->pv[i]).m, (wcs->pv[i]).value);
   }
   wcsprintf("        nps: %d\n", wcs->nps);
@@ -1320,7 +1369,7 @@ int wcsprt(const struct wcsprm *wcs)
     for (i = 0; i < wcs->naxis; i++) {
       wcsprintf("    cd[%d][]:", i);
       for (j = 0; j < wcs->naxis; j++) {
-        wcsprintf("  %- 11.5g", wcs->cd[k++]);
+        wcsprintf("  %#- 11.5g", wcs->cd[k++]);
       }
       wcsprintf("\n");
     }
@@ -1330,7 +1379,7 @@ int wcsprt(const struct wcsprm *wcs)
   if (wcs->crota) {
     wcsprintf("            ");
     for (i = 0; i < wcs->naxis; i++) {
-      wcsprintf("  %- 11.5g", wcs->crota[i]);
+      wcsprintf("  %#- 11.5g", wcs->crota[i]);
     }
     wcsprintf("\n");
   }
@@ -1377,7 +1426,7 @@ int wcsprt(const struct wcsprm *wcs)
       if (undefined(wcs->crder[i])) {
         wcsprintf("  UNDEFINED   ");
       } else {
-        wcsprintf("  %- 11.5g", wcs->crder[i]);
+        wcsprintf("  %#- 11.5g", wcs->crder[i]);
       }
     }
     wcsprintf("\n");
@@ -1390,7 +1439,7 @@ int wcsprt(const struct wcsprm *wcs)
       if (undefined(wcs->csyer[i])) {
         wcsprintf("  UNDEFINED   ");
       } else {
-        wcsprintf("  %- 11.5g", wcs->csyer[i]);
+        wcsprintf("  %#- 11.5g", wcs->csyer[i]);
       }
     }
     wcsprintf("\n");
@@ -1443,7 +1492,7 @@ int wcsprt(const struct wcsprm *wcs)
     if (undefined(wcs->obsgeo[i])) {
       wcsprintf("UNDEFINED     ");
     } else {
-      wcsprintf("%- 11.5g  ", wcs->obsgeo[i]);
+      wcsprintf("  %#- 11.5g", wcs->obsgeo[i]);
     }
   }
   wcsprintf("\n");
@@ -1612,10 +1661,9 @@ int wcsperr(const struct wcsprm *wcs, const char *prefix)
 
   if (wcs == 0x0) return WCSERR_NULL_POINTER;
 
-  if (!wcserr_prt(wcs->err, prefix)) {
-    wcserr_prt(wcs->lin.err, prefix);
-    wcserr_prt(wcs->cel.err, prefix);
-    wcserr_prt(wcs->cel.prj.err, prefix);
+  if (wcs->err && wcserr_prt(wcs->err, prefix) == 0) {
+    linperr(&(wcs->lin), prefix);
+    celperr(&(wcs->cel), prefix);
     wcserr_prt(wcs->spc.err, prefix);
     if (wcs->tab) {
       for (j = 0; j < wcs->ntab; j++) {
@@ -1653,9 +1701,11 @@ int wcsset(struct wcsprm *wcs)
   static const char *function = "wcsset";
 
   char scode[4], stype[5];
-  int i, j, k, m, naxis, status;
-  double lambda, rho;
+  int i, j, k, m, npv, naxis, nparm, status;
+  double lambda, rho, value;
   double *cd, *pc;
+  struct disprm *dis;
+  struct linprm *wcslin = &(wcs->lin);
   struct celprm *wcscel = &(wcs->cel);
   struct prjprm *wcsprj = &(wcscel->prj);
   struct spcprm *wcsspc = &(wcs->spc);
@@ -1675,6 +1725,8 @@ int wcsset(struct wcsprm *wcs)
     return status;
   }
 
+  naxis = wcs->naxis;
+
 
   /* Non-linear celestial axes present? */
   if (wcs->lng >= 0 && wcs->types[wcs->lng] == 2200) {
@@ -1686,6 +1738,118 @@ int wcsset(struct wcsprm *wcs)
     wcscel->ref[2] = wcs->lonpole;
     wcscel->ref[3] = wcs->latpole;
 
+    /* Do alias translation for TPU/TPV before dealing with PVi_ma. */
+    strncpy(wcsprj->code, wcs->ctype[wcs->lng]+5, 3);
+    wcsprj->code[3] = '\0';
+    if (strncmp(wcsprj->code, "TPU", 3) == 0 ||
+        strncmp(wcsprj->code, "TPV", 3) == 0) {
+      /* Translate the PV parameters. */
+      if ((dis = calloc(1, sizeof(struct disprm))) == 0x0) {
+        return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
+      }
+
+      /* Attach it to linprm.  Also inits it. */
+      dis->flag = -1;
+      if (strncmp(wcsprj->code, "TPU", 3) == 0) {
+        /* Prior distortion. */
+        lindis(1, wcslin, dis);
+      } else {
+        /* Sequent distortion. */
+        lindis(2, wcslin, dis);
+      }
+
+      strcpy(dis->dtype[wcs->lng], "TPV");
+      strcpy(dis->dtype[wcs->lat], "TPV");
+
+      /* Noting that axmap axis numbers are 1-relative. */
+      dis->axmap[wcs->lng][0] = wcs->lng + 1;
+      dis->axmap[wcs->lng][1] = wcs->lat + 1;
+      dis->axmap[wcs->lat][0] = wcs->lat + 1;
+      dis->axmap[wcs->lat][1] = wcs->lng + 1;
+
+      /* What is the maximum parameter index for each celestial axis? */
+      for (k = 0; k < wcs->npv; k++) {
+        i = wcs->pv[k].i - 1;
+
+        if (i == wcs->lng || i == wcs->lat) {
+          nparm = wcs->pv[k].m + 1;
+          if (dis->nparm[i] < nparm) dis->nparm[i] = nparm;
+        }
+      }
+
+      /* Determine the correct number of parameters for TPV. */
+      for (k = 0; k < 2; k++) {
+        if (k == 0) {
+          i = wcs->lng;
+        } else {
+          i = wcs->lat;
+        }
+
+        nparm = dis->nparm[i];
+        if (nparm <= 4) {
+          /* First order. */
+          dis->nparm[i] = 4;
+        } else if (nparm <= 7) {
+          /* Second order. */
+          dis->nparm[i] = 7;
+        } else if (nparm <= 12) {
+          /* Third order. */
+          dis->nparm[i] = 12;
+        } else if (nparm <= 17) {
+          /* Fourth order. */
+          dis->nparm[i] = 17;
+        } else if (nparm <= 24) {
+          /* Fifth order. */
+          dis->nparm[i] = 24;
+        } else if (nparm <= 31) {
+          /* Sixth order. */
+          dis->nparm[i] = 31;
+        } else if (nparm <= 40) {
+          /* Seventh order. */
+          dis->nparm[i] = 40;
+        } else {
+          return wcserr_set(WCSERR_SET(WCSERR_BAD_PARAM),
+            "Invalid number of parameters (%d) for %s", nparm, wcsprj->code);
+        }
+      }
+
+      /* Allocate distortion parameter arrays. */
+      disparms(dis);
+
+      /* Copy the distortion parameters. */
+      for (k = 0; k < wcs->npv; k++) {
+        i = wcs->pv[k].i - 1;
+        m = wcs->pv[k].m;
+        dis->parms[i][m] = wcs->pv[k].value;
+      }
+
+      /* Hide PVi_ma associated with the celestial axes. */
+      npv = 0;
+      for (k = 0; k < wcs->npv; k++) {
+        i = wcs->pv[k].i - 1;
+        if (i == wcs->lng || i == wcs->lat) continue;
+
+        i = wcs->pv[k].i;
+        m = wcs->pv[k].m;
+        value = wcs->pv[k].value;
+
+        for (j = k; j > npv; j--) {
+          wcs->pv[j].i = wcs->pv[j-1].i;
+          wcs->pv[j].m = wcs->pv[j-1].m;
+          wcs->pv[j].value = wcs->pv[j-1].value;
+        }
+
+        wcs->pv[npv].i = i;
+        wcs->pv[npv].m = m;
+        wcs->pv[npv].value = value;
+
+        npv++;
+      }
+
+      wcs->npv = npv;
+      strcpy(wcsprj->code, "TAN");
+    }
+
     /* PVi_ma keyvalues. */
     for (k = 0; k < wcs->npv; k++) {
       i = wcs->pv[k].i - 1;
@@ -1748,16 +1912,12 @@ int wcsset(struct wcsprm *wcs)
       strcpy(wcsprj->code, "SIN");
       wcsprj->pv[1] = 0.0;
       wcsprj->pv[2] = cosd(wcscel->ref[1])/sind(wcscel->ref[1]);
-
-    } else {
-      strncpy(wcsprj->code, wcs->ctype[wcs->lng]+5, 3);
-      wcsprj->code[3] = '\0';
     }
 
     /* Initialize the celestial transformation routines. */
     wcsprj->r0 = 0.0;
     if ((status = celset(wcscel))) {
-      return wcserr_set(WCS_ERRMSG(status+3));
+      return wcserr_set(WCS_ERRMSG(wcs_celerr[status]));
     }
 
     /* Update LONPOLE, LATPOLE, and PVi_ma keyvalues. */
@@ -1818,7 +1978,7 @@ int wcsset(struct wcsprm *wcs)
 
     /* Initialize the spectral transformation routines. */
     if ((status = spcset(wcsspc))) {
-      return wcserr_set(WCS_ERRMSG(status+3));
+      return wcserr_set(WCS_ERRMSG(wcs_spcerr[status]));
     }
   }
 
@@ -1826,13 +1986,12 @@ int wcsset(struct wcsprm *wcs)
   /* Tabular axes present? */
   for (j = 0; j < wcs->ntab; j++) {
     if ((status = tabset(wcs->tab + j))) {
-      return wcserr_set(WCS_ERRMSG(status+3));
+      return wcserr_set(WCS_ERRMSG(wcs_taberr[status]));
     }
   }
 
 
   /* Initialize the linear transformation. */
-  naxis = wcs->naxis;
   wcs->altlin &= 7;
   if (wcs->altlin > 1 && !(wcs->altlin & 1)) {
     pc = wcs->pc;
@@ -1870,7 +2029,7 @@ int wcsset(struct wcsprm *wcs)
   wcs->lin.pc     = wcs->pc;
   wcs->lin.cdelt  = wcs->cdelt;
   if ((status = linset(&(wcs->lin)))) {
-    return wcserr_set(WCS_ERRMSG(status));
+    return wcserr_set(WCS_ERRMSG(wcs_linerr[status]));
   }
 
 
@@ -1933,8 +2092,8 @@ int wcs_types(struct wcsprm *wcs)
 {
   static const char *function = "wcs_types";
 
-  const int  nalias = 2;
-  const char aliases [2][4] = {"NCP", "GLS"};
+  const int  nalias = 4;
+  const char aliases [4][4] = {"NCP", "GLS", "TPU", "TPV"};
 
   const char *alt = "";
   char ctypei[16], pcode[4], requir[9], scode[4], specsys[9];
@@ -1957,8 +2116,7 @@ int wcs_types(struct wcsprm *wcs)
 
   naxis = wcs->naxis;
   if (wcs->types) free(wcs->types);
-  wcs->types = calloc(naxis, sizeof(int));
-  if (wcs->types == NULL) {
+  if ((wcs->types = calloc(naxis, sizeof(int))) == 0x0) {
     return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
   }
 
@@ -2306,11 +2464,11 @@ int wcsp2s(
 
   /* Apply pixel-to-world linear transformation. */
   if ((status = linp2x(&(wcs->lin), ncoord, nelem, pixcrd, imgcrd))) {
-    return wcserr_set(WCS_ERRMSG(status));
+    return wcserr_set(WCS_ERRMSG(wcs_linerr[status]));
   }
 
   /* Initialize status vectors. */
-  if (!(istatp = calloc(ncoord, sizeof(int)))) {
+  if ((istatp = calloc(ncoord, sizeof(int))) == 0x0) {
     return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
   }
 
@@ -2401,11 +2559,11 @@ int wcsp2s(
       if ((istat = celx2s(wcscel, nx, ny, nelem, nelem, imgcrd+i,
                           imgcrd+wcs->lat, phi, theta, world+i,
                           world+wcs->lat, istatp))) {
-        if (istat == CELERR_BAD_PIX) {
-          status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_PIX));
-        } else {
-          status = wcserr_set(WCS_ERRMSG(istat+3));
-          goto cleanup;
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_celerr[istat]));
+          if (status != WCSERR_BAD_PIX) {
+            goto cleanup;
+          }
         }
       }
 
@@ -2435,23 +2593,21 @@ int wcsp2s(
         /* Spectral coordinates. */
         istat = spcx2s(&(wcs->spc), nx, nelem, nelem, imgcrd+i, world+i,
                        istatp);
-        if (istat == SPCERR_BAD_X) {
-          status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_PIX));
-        } else if (istat) {
-          status = wcserr_set(WCS_ERRMSG(istat+3));
-          goto cleanup;
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_spcerr[istat]));
+          if (status != WCSERR_BAD_PIX) {
+            goto cleanup;
+          }
         }
       } else if (type == 4) {
         /* Logarithmic coordinates. */
         istat = logx2s(wcs->crval[i], nx, nelem, nelem, imgcrd+i, world+i,
                        istatp);
-        if (istat == LOGERR_BAD_X) {
-          if (*err == 0x0) {
-            wcserr_set(WCS_ERRMSG(WCSERR_BAD_PIX));
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_logerr[istat]));
+          if (status != WCSERR_BAD_PIX) {
+            goto cleanup;
           }
-        } else if (istat == LOGERR_BAD_LOG_REF_VAL) {
-          wcserr_set(WCSERR_SET(WCSERR_BAD_PARAM), log_errmsg[istat]);
-          goto cleanup;
         }
       }
 
@@ -2472,19 +2628,19 @@ int wcsp2s(
   for (itab = 0; itab < wcs->ntab; itab++) {
     istat = tabx2s(wcs->tab + itab, ncoord, nelem, imgcrd, world, istatp);
 
-    if (istat == TABERR_BAD_X) {
-      status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_PIX));
+    if (istat) {
+      status = wcserr_set(WCS_ERRMSG(wcs_taberr[istat]));
 
-      bits = 0;
-      for (m = 0; m < wcs->tab[itab].M; m++) {
-        bits |= 1 << wcs->tab[itab].map[m];
-      }
-      wcsutil_setBit(ncoord, istatp, bits, stat);
+      if (status != WCSERR_BAD_PIX) {
+        goto cleanup;
 
-    } else if (istat) {
-      if (istat == TABERR_BAD_PARAMS) istat = WCSERR_BAD_PARAM;
-      status = wcserr_set(WCS_ERRMSG(istat));
-      goto cleanup;
+      } else {
+        bits = 0;
+        for (m = 0; m < wcs->tab[itab].M; m++) {
+          bits |= 1 << wcs->tab[itab].map[m];
+        }
+        wcsutil_setBit(ncoord, istatp, bits, stat);
+      }
     }
   }
 
@@ -2541,7 +2697,7 @@ int wcss2p(
   }
 
   /* Initialize status vectors. */
-  if (!(istatp = calloc(ncoord, sizeof(int)))) {
+  if ((istatp = calloc(ncoord, sizeof(int))) == 0x0) {
     return wcserr_set(WCS_ERRMSG(WCSERR_MEMORY));
   }
 
@@ -2583,11 +2739,11 @@ int wcss2p(
       if ((istat = cels2x(wcscel, nlng, nlat, nelem, nelem, world+i,
                           world+wcs->lat, phi, theta, imgcrd+i,
                           imgcrd+wcs->lat, istatp))) {
-        if (istat == CELERR_BAD_WORLD) {
-          status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_WORLD));
-        } else {
-          status = wcserr_set(WCS_ERRMSG(istat+3));
-          goto cleanup;
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_celerr[istat]));
+          if (status != WCSERR_BAD_WORLD) {
+            goto cleanup;
+          }
         }
       }
 
@@ -2652,22 +2808,21 @@ int wcss2p(
         /* Spectral coordinates. */
         istat = spcs2x(&(wcs->spc), nwrld, nelem, nelem, world+i,
                        imgcrd+i, istatp);
-        if (istat == SPCERR_BAD_SPEC) {
-          status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_WORLD));
-        } else if (istat) {
-          status = wcserr_set(WCS_ERRMSG(istat+3));
-          goto cleanup;
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_spcerr[istat]));
+          if (status != WCSERR_BAD_WORLD) {
+            goto cleanup;
+          }
         }
       } else if (type == 4) {
         /* Logarithmic coordinates. */
         istat = logs2x(wcs->crval[i], nwrld, nelem, nelem, world+i,
                        imgcrd+i, istatp);
-        if (istat == LOGERR_BAD_WORLD) {
-          status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_WORLD));
-        } else if (istat == LOGERR_BAD_LOG_REF_VAL) {
-          status = wcserr_set(WCSERR_SET(WCSERR_BAD_PARAM),
-                     log_errmsg[istat]);
-          goto cleanup;
+        if (istat) {
+          status = wcserr_set(WCS_ERRMSG(wcs_logerr[istat]));
+          if (status != WCSERR_BAD_WORLD) {
+            goto cleanup;
+          }
         }
       }
 
@@ -2688,19 +2843,19 @@ int wcss2p(
   for (itab = 0; itab < wcs->ntab; itab++) {
     istat = tabs2x(wcs->tab + itab, ncoord, nelem, world, imgcrd, istatp);
 
-    if (istat == TABERR_BAD_WORLD) {
-      status = wcserr_set(WCS_ERRMSG(WCSERR_BAD_WORLD));
+    if (istat) {
+      status = wcserr_set(WCS_ERRMSG(wcs_taberr[istat]));
 
-      bits = 0;
-      for (m = 0; m < wcs->tab[itab].M; m++) {
-        bits |= 1 << wcs->tab[itab].map[m];
-      }
-      wcsutil_setBit(ncoord, istatp, bits, stat);
+      if (status == WCSERR_BAD_WORLD) {
+        bits = 0;
+        for (m = 0; m < wcs->tab[itab].M; m++) {
+          bits |= 1 << wcs->tab[itab].map[m];
+        }
+        wcsutil_setBit(ncoord, istatp, bits, stat);
 
-    } else if (istat) {
-      if (istat == TABERR_BAD_PARAMS) istat = WCSERR_BAD_PARAM;
-      status = wcserr_set(WCS_ERRMSG(istat));
-      goto cleanup;
+      } else {
+        goto cleanup;
+      }
     }
   }
 
@@ -2714,7 +2869,7 @@ int wcss2p(
 
   /* Apply world-to-pixel linear transformation. */
   if ((istat = linx2p(&(wcs->lin), ncoord, nelem, imgcrd, pixcrd))) {
-    status = wcserr_set(WCS_ERRMSG(istat));
+    status = wcserr_set(WCS_ERRMSG(wcs_linerr[istat]));
     goto cleanup;
   }
 
@@ -3414,9 +3569,10 @@ int wcssptr(
   }
 
   /* Translate the spectral axis. */
-  if (spctrne(wcs->ctype[j], wcs->crval[j], wcs->cdelt[j], wcs->restfrq,
-              wcs->restwav, ctype, &crval, &cdelt, &(wcs->spc.err))) {
-    return wcserr_set(WCS_ERRMSG(WCSERR_BAD_COORD_TRANS));
+  if ((status = spctrne(wcs->ctype[j], wcs->crval[j], wcs->cdelt[j],
+                        wcs->restfrq, wcs->restwav, ctype, &crval, &cdelt,
+                        &(wcs->spc.err)))) {
+    return wcserr_set(WCS_ERRMSG(wcs_spcerr[status]));
   }
 
 
@@ -3433,3 +3589,22 @@ int wcssptr(
 
   return 0;
 }
+
+/*--------------------------------------------------------------------------*/
+
+#define STRINGIZE(s) STRINGIFY(s)
+#define STRINGIFY(s) #s
+
+const char *wcslib_version(
+  int  vers[3])
+
+{
+  static const char *wcsver = STRINGIZE(WCSLIB_VERSION);
+
+  if (vers != 0x0) {
+    vers[2] = 0;
+    sscanf(wcsver, "%d.%d.%d", vers, vers+1, vers+2);
+  }
+
+  return wcsver;
+}
diff --git a/C/wcs.h b/C/wcs.h
index dcd71ea..e446d25 100644
--- a/C/wcs.h
+++ b/C/wcs.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcs.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcs.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -79,6 +79,8 @@
 * wcssptr() translates the spectral axis in a wcsprm struct.  For example, a
 * 'FREQ' axis may be translated into 'ZOPT-F2W' and vice versa.
 *
+* wcslib_version() returns the WCSLIB version number.
+*
 * Quadcube projections:
 * ---------------------
 *   The quadcube projections (TSC, CSC, QSC) may be represented in FITS in
@@ -766,6 +768,35 @@
 *                       wcsprm::err if enabled, see wcserr_enable().
 *
 *
+* wcslib_version() - WCSLIB version number
+* ----------------------------------------
+* wcslib_version() returns the WCSLIB version number.
+*
+* The major version number changes when the ABI changes or when the license
+* conditions change.  ABI changes typically result from a change to the
+* contents of one of the structs.  The major version number is used to
+* distinguish between incompatible versions of the sharable library.
+*
+* The minor version number changes with new functionality or bug fixes that do
+* not involve a change in the ABI.
+*
+* The auxiliary version number (which is often absent) signals changes to the
+* documentation, test suite, build procedures, or any other change that does
+* not affect the compiled library.
+*
+* Returned:
+*   vers[3]   int[3]    The broken-down version number:
+*                         0: Major version number.
+*                         1: Minor version number.
+*                         2: Auxiliary version number (zero if absent).
+*                       May be given as a null pointer if not required.
+*
+* Function return value:
+*             char*     A null-terminated, statically allocated string
+*                       containing the version number in the usual form, i.e.
+*                       "<major>.<minor>.<auxiliary>".
+*
+*
 * wcsprm struct - Coordinate transformation parameters
 * ----------------------------------------------------
 * The wcsprm struct contains information required to transform world
@@ -808,7 +839,11 @@
 *       - wcsprm::ps,
 *       - wcsprm::cd,
 *       - wcsprm::crota,
-*       - wcsprm::altlin.
+*       - wcsprm::altlin,
+*       - wcsprm::ntab,
+*       - wcsprm::nwtb,
+*       - wcsprm::tab,
+*       - wcsprm::wtb.
 *
 *     This signals the initialization routine, wcsset(), to recompute the
 *     returned members of the celprm struct.  celset() will reset flag to
@@ -1036,6 +1071,9 @@
 *   int velref
 *     (Given) AIPS velocity code VELREF, refer to spcaips().
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::velref is changed.
+*
 *   char alt[4]
 *     (Given, auxiliary) Character code for alternate coordinate descriptions
 *     (i.e. the 'a' in keyword names such as CTYPEia).  This is blank for the
@@ -1045,6 +1083,9 @@
 *     An array of four characters is provided for alignment purposes, only the
 *     first is used.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::alt is changed.
+*
 *   int colnum
 *     (Given, auxiliary) Where the coordinate representation is associated
 *     with an image-array column in a FITS binary table, this variable may be
@@ -1052,6 +1093,9 @@
 *
 *     It should be set to zero for an image header or pixel list.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::colnum is changed.
+*
 *   int *colax
 *     (Given, auxiliary) Address of the first element of an array of int
 *     recording the column numbers for each axis in a pixel list.
@@ -1059,6 +1103,9 @@
 *     The array elements should be set to zero for an image header or image
 *     array in a binary table.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::colax is changed.
+*
 *   char (*cname)[72]
 *     (Given, auxiliary) The address of the first element of an array of
 *     char[72] containing the coordinate axis names, CNAMEia.
@@ -1067,69 +1114,126 @@
 *     keyword, being limited to 68 characters, plus the null-terminating
 *     character.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::cname is changed.
+*
 *   double *crder
 *     (Given, auxiliary) Address of the first element of an array of double
 *     recording the random error in the coordinate value, CRDERia.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::crder is changed.
+*
 *   double *csyer
 *     (Given, auxiliary) Address of the first element of an array of double
 *     recording the systematic error in the coordinate value, CSYERia.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::csyer is changed.
+*
 *   char dateavg[72]
 *     (Given, auxiliary) The date of a representative mid-point of the
 *     observation in ISO format, yyyy-mm-ddThh:mm:ss.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::dateavg is changed.
+*
 *   char dateobs[72]
 *     (Given, auxiliary) The date of the start of the observation unless
 *     otherwise explained in the comment field of the DATE-OBS keyword, in
 *     ISO format, yyyy-mm-ddThh:mm:ss.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::dateobs is changed.
+*
 *   double equinox
 *     (Given, auxiliary) The equinox associated with dynamical equatorial or
 *     ecliptic coordinate systems, EQUINOXa (or EPOCH in older headers).  Not
 *     applicable to ICRS equatorial or ecliptic coordinates.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::equinox is changed.
+*
 *   double mjdavg
 *     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-AVG,
 *     corresponding to DATE-AVG.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::mjdavg is changed.
+*
 *   double mjdobs
 *     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-OBS,
 *     corresponding to DATE-OBS.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::mjdobs is changed.
+*
 *   double obsgeo[3]
 *     (Given, auxiliary) Location of the observer in a standard terrestrial
 *     reference frame, OBSGEO-X, OBSGEO-Y, OBSGEO-Z [m].
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::obsgeo is changed.
+*
 *   char radesys[72]
 *     (Given, auxiliary) The equatorial or ecliptic coordinate system type,
 *     RADESYSa.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::radesys is changed.
+*
 *   char specsys[72]
 *     (Given, auxiliary) Spectral reference frame (standard of rest),
-*     SPECSYSa, and ...
+*     SPECSYSa.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::specsys is changed.
+*
 *   char ssysobs[72]
-*     (Given, auxiliary) ... the actual frame in which there is no
+*     (Given, auxiliary) The spectral reference frame in which there is no
 *     differential variation in the spectral coordinate across the
 *     field-of-view, SSYSOBSa.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::ssysobs is changed.
+*
 *   double velosys
 *     (Given, auxiliary) The relative radial velocity [m/s] between the
 *     observer and the selected standard of rest in the direction of the
 *     celestial reference coordinate, VELOSYSa.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::velosys is changed.
+*
 *   double zsource
-*     (Given, auxiliary) The redshift, ZSOURCEa, of the source, and ...
+*     (Given, auxiliary) The redshift, ZSOURCEa, of the source.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::zsource is changed.
+*
 *   char ssyssrc[72]
-*     (Given, auxiliary) ... the spectral reference frame (standard of rest)
-*     in which this was measured, SSYSSRCa.
+*     (Given, auxiliary) The spectral reference frame (standard of rest),
+*     SSYSSRCa, in which wcsprm::zsource was measured.
+*
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::ssyssrc is changed.
 *
 *   double velangl
 *     (Given, auxiliary) The angle [deg] that should be used to decompose an
 *     observed velocity into radial and transverse components.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::velangl is changed.
+*
 *   char wcsname[72]
 *     (Given, auxiliary) The name given to the coordinate representation,
 *     WCSNAMEa.  This variable accomodates the longest allowed string-valued
 *     FITS keyword, being limited to 68 characters, plus the null-terminating
 *     character.
 *
+*     It is not necessary to reset the wcsprm struct (via wcsset()) when
+*     wcsprm::wcsname is changed.
+*
 *   int ntab
 *     (Given) See wcsprm::tab.
 *
@@ -1232,7 +1336,7 @@
 *     prologue to spc.h).
 *
 *   struct wcserr *err
-*     (Returned) If enabled, when an error status is returned this struct
+*     (Returned) If enabled, when an error status is returned, this struct
 *     contains detailed information about the error, see wcserr_enable().
 *
 *   void *m_padding
@@ -1373,8 +1477,6 @@
 #include "lin.h"
 #include "cel.h"
 #include "spc.h"
-#include "tab.h"
-#include "wcserr.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -1402,12 +1504,12 @@ enum wcs_errmsg_enum {
   WCSERR_SINGULAR_MTX    =  3,	/* Linear transformation matrix is
 				   singular. */
   WCSERR_BAD_CTYPE       =  4,	/* Inconsistent or unrecognized coordinate
-				   axis types. */
+				   axis type. */
   WCSERR_BAD_PARAM       =  5,	/* Invalid parameter value. */
-  WCSERR_BAD_COORD_TRANS =  6,	/* Invalid coordinate transformation
-				   parameters. */
+  WCSERR_BAD_COORD_TRANS =  6,	/* Unrecognized coordinate transformation
+				   parameter. */
   WCSERR_ILL_COORD_TRANS =  7,	/* Ill-conditioned coordinate transformation
-				   parameters. */
+				   parameter. */
   WCSERR_BAD_PIX         =  8,	/* One or more of the pixel coordinates were
 				   invalid. */
   WCSERR_BAD_WORLD       =  9,	/* One or more of the world coordinates were
@@ -1540,7 +1642,7 @@ struct wcsprm {
   struct celprm cel;		/* Celestial transformation parameters.     */
   struct spcprm spc;		/* Spectral  transformation parameters.     */
 
-  /* Error handling                                                         */
+  /* Error handling, if enabled.                                            */
   /*------------------------------------------------------------------------*/
   struct wcserr *err;
 
@@ -1600,6 +1702,8 @@ int wcsmix(struct wcsprm *wcs, int mixpix, int mixcel, const double vspan[],
 
 int wcssptr(struct wcsprm *wcs, int *i, char ctype[9]);
 
+const char* wcslib_version(int vers[3]);
+
 /* Defined mainly for backwards compatibility, use wcssub() instead. */
 #define wcscopy(alloc, wcssrc, wcsdst) wcssub(alloc, wcssrc, 0x0, 0x0, wcsdst)
 
diff --git a/C/wcsbth.l b/C/wcsbth.l
index 29df241..157ffe5 100644
--- a/C/wcsbth.l
+++ b/C/wcsbth.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsbth.l,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsbth.l,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * wcsbth.l is a Flex description file containing the definition of a lexical
@@ -35,7 +35,7 @@
 *
 * Implementation notes
 * --------------------
-* wcsbth() may be invoked with an option that causes it to recognise the
+* wcsbth() may be invoked with an option that causes it to recognize the
 * image-header form of WCS keywords as defaults for each alternate coordinate
 * representation (up to 27).  By design, with this option enabled wcsbth() can
 * also handle primary image and image extension headers, effectively treating
@@ -76,7 +76,11 @@
 %option prefix="wcsbth"
 
 /* Indices for parameterized keywords. */
-I0	[0-9]
+Z1	[0-9]
+Z2	[0-9]{2}
+Z3	[0-9]{3}
+Z4	[0-9]{4}
+
 I1	[1-9]
 I2	[1-9][0-9]
 I3	[1-9][0-9]{2}
@@ -87,9 +91,12 @@ ALT	[ A-Z]
 
 /* Keyvalue data types. */
 INTEGER	[+-]?[0-9]+
-FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?
+FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eEdD][+-]?[0-9]+)?
 STRING	'([^']|'')*'
 
+/* Inline comment syntax. */
+INLINE " "*(\/.*)?
+
 /* Exclusive start states. */
 %x CCCCCia   iCCCna iCCCCn    TCCCna TCCCCn
 %x CCi_ja    ijCCna           TCn_ka TCCn_ka
@@ -153,9 +160,9 @@ STRING	'([^']|'')*'
 /* A convenience macro to get around incompatibilities between unput() and
    yyless(): put yytext followed by a blank back onto the input stream. */
 #define WCSBTH_PUTBACK \
-  sprintf(stmp, "%s ", yytext); \
-  itmp = strlen(stmp); \
-  while (itmp) unput(stmp[--itmp]);
+  sprintf(strtmp, "%s ", yytext); \
+  itmp = strlen(strtmp); \
+  while (itmp) unput(strtmp[--itmp]);
 
 /* These global variables are required by YY_INPUT. */
 char *wcsbth_hdr;
@@ -188,8 +195,8 @@ struct wcsprm *wcsbth_idx(struct wcsprm *wcs, struct wcsbth_alts *alts,
         int keytype, int n, char a);
 int wcsbth_colax(struct wcsprm *wcs, struct wcsbth_alts *alts, int k, char a);
 
-int wcsbth_epoch(void *wptr);
-int wcsbth_vsource(void *wptr);
+int wcsbth_epoch(double *wptr, double epoch);
+int wcsbth_vsource(double *wptr, double vsource);
 
 int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 
@@ -200,14 +207,15 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	char a;
 	int  i, j, k, m, n;
 	
-	char *cptr, *errmsg, errtxt[80], exclude[1000], *extkey, *hptr, ptype,
-	     stmp[16];
-	int  altlin, ialt, icol, incl, ipass, ipx, itmp, ix, jx, keytype,
-	     nsel, npass, status, valtype, voff;
+	char *cptr, *errmsg, errtxt[80], exclude[1000], gotone, *hptr, *keep,
+	     *keyname, *keyrec, ptype, strtmp[80];
+	int  altlin, ialt, icol, incl, inttmp, ipass, ipx, itmp, ix, jx,
+	     keytype, nother, nsel, npass, nvalid, status, valtype, voff;
+	double dbltmp;
 	void   *vptr, *wptr;
 	struct wcsbth_alts alts;
 	struct wcsprm *wcsp, wcstem;
-	int (*special)(void *);
+	int (*special)(double *, double);
 	int yylex_destroy(void);
 	
 	/* The data structures produced. */
@@ -219,8 +227,17 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	wcsbth_nkeyrec = nkeyrec;
 	
 	/* Our handle on the input stream. */
+	keyrec = header;
 	hptr = header;
+	keep = 0x0;
+	
+	/* For keeping tallies of keywords found. */
 	*nreject = 0;
+	nvalid = 0;
+	nother = 0;
+	
+	/* If strict, then also reject. */
+	if (relax & WCSHDR_strict) relax |= WCSHDR_reject;
 	
 	/* Keyword parameters. */
 	i = j = 0;
@@ -247,8 +264,8 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	vptr    = 0x0;
 	
 	/* For keywords that require special handling. */
-	altlin = 0;
-	ptype  = ' ';
+	altlin  = 0;
+	ptype   = ' ';
 	special = 0x0;
 	
 	/* Selection by column number. */
@@ -295,7 +312,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	      sscanf(yytext, "TFIELDS = %d", &(alts.ncol));
 	      BEGIN(FLUSH);
 	    } else {
-	      errmsg = "Duplicate or out-of-sequence TFIELDS keyword";
+	      errmsg = "duplicate or out-of-sequence TFIELDS keyword";
 	      BEGIN(ERROR);
 	    }
 	
@@ -305,23 +322,29 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	}
 
 ^WCSAXES{ALT}=" "" "*{INTEGER} {
-	  keytype = IMGAXIS;
-	
-	  if (!(keytype & keysel)) {
+	  if (!(keysel & IMGAXIS)) {
 	    /* Ignore this key type. */
 	    BEGIN(DISCARD);
 	
 	  } else {
 	    if (relax & WCSHDR_ALLIMG) {
-	      if (ipass == 1) {
-	        sscanf(yytext, "WCSAXES%c= %d", &a, &i);
-	        wcsbth_pass1(IMGAXIS, i, 0, 0, 0, a, ' ', &alts);
-	      }
+	      sscanf(yytext, "WCSAXES%c= %d", &a, &i);
 	
-	      BEGIN(FLUSH);
+	      if (i < 0) {
+	        errmsg = "negative value of WCSAXESa ignored";
+	        BEGIN(ERROR);
+	
+	      } else {
+	        valtype = INTEGER;
+	        vptr    = 0x0;
+	
+	        keyname = "WCSAXESa";
+	        keytype = IMGAXIS;
+	        BEGIN(COMMENT);
+	      }
 	
 	    } else if (relax & WCSHDR_reject) {
-	      errmsg = "Image-header keyword WCSAXESa in binary table";
+	      errmsg = "image-header keyword WCSAXESa in binary table";
 	      BEGIN(ERROR);
 	
 	    } else {
@@ -334,20 +357,27 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^WCAX{I1}{ALT}"  = "" "*{INTEGER} |
 ^WCAX{I2}{ALT}" = "" "*{INTEGER}  |
 ^WCAX{I3}{ALT}"= "" "*{INTEGER} {
-	  keytype = BIMGARR;
+	  keyname = "WCAXna";
 	
 	  /* Note that a blank in the sscanf() format string matches zero or
 	     more of them in the input. */
 	  sscanf(yytext, "WCAX%d%c = %d", &n, &a, &i);
 	
-	  if (!(keytype & keysel) || exclude[n]) {
+	  if (!(keysel & BIMGARR) || exclude[n]) {
 	    /* Ignore this key type or column. */
 	    BEGIN(DISCARD);
+	
+	  } else if (i < 0) {
+	    errmsg = "negative value of WCSAXESa ignored";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    if (ipass == 1) {
-	      wcsbth_pass1(BIMGARR, i, 0, n, 0, a, ' ', &alts);
-	    }
-	    BEGIN(FLUSH);
+	    valtype = INTEGER;
+	    vptr    = 0x0;
+	
+	    keyname = "WCAXna";
+	    keytype = IMGAXIS;
+	    BEGIN(COMMENT);
 	  }
 	}
 
@@ -355,8 +385,8 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^WCST{I2}{ALT}" = "" "*{STRING} |
 ^WCST{I3}{ALT}"= "" "*{STRING} {
 	  /* Cross-reference supplier. */
-	  keytype = BIMGARR;
-	  errmsg = "Cross-references are not currently implemented";
+	  keyname = "WCSTna";
+	  errmsg = "cross-references are not implemented";
 	  BEGIN(ERROR);
 	}
 
@@ -364,30 +394,31 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^WCSX{I2}{ALT}" = "" "*{STRING} |
 ^WCSX{I3}{ALT}"= "" "*{STRING} {
 	  /* Cross-reference consumer. */
-	  keytype = BIMGARR;
-	  errmsg = "Cross-references are not currently implemented";
+	  keyname = "WCSXna";
+	  errmsg = "cross-references are not implemented";
 	  BEGIN(ERROR);
 	}
 
 ^CRPIX	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
-	
-	  extkey = "CRPIXja";
+	  vptr    = &(wcstem.crpix);
+
+	  keyname = "CRPIXja";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CRP  |
 ^{I1}CRPX {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
+	  vptr    = &(wcstem.crpix);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "jCRPna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "jCRPXn";
+	    keyname = "jCRPXn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -395,101 +426,107 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCRP	|
 ^TCRPX	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crpix);
+	  vptr    = &(wcstem.crpix);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCRPna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCRPXn";
+	    keyname = "TCRPXn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^PC	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
+	  vptr    = &(wcstem.pc);
 	  altlin = 1;
 	
-	  extkey = "PCi_ja";
+	  keyname = "PCi_ja";
 	  BEGIN(CCi_ja);
 	}
 
 ^{I2}PC	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
-	  altlin = 1;
+	  vptr    = &(wcstem.pc);
+	  altlin  = 1;
 	
 	  sscanf(yytext, "%1d%1d", &i, &j);
 	
+	  keyname = "ijPCna";
 	  BEGIN(ijCCna);
 	}
 
 ^TP	|
 ^TPC	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pc);
-	  altlin = 1;
+	  vptr    = &(wcstem.pc);
+	  altlin  = 1;
 	
 	  if (yyleng == 2) {
+	    keyname = "TPn_ka";
 	    BEGIN(TCn_ka);
 	  } else {
-	    extkey = "TPCn_ka";
+	    keyname = "TPCn_ka";
 	    BEGIN(TCCn_ka);
 	  }
 	}
 
 ^CD	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
-	  extkey = "CDi_ja";
+	  keyname = "CDi_ja";
 	  BEGIN(CCi_ja);
 	}
 
 ^{I2}CD	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
 	  sscanf(yytext, "%1d%1d", &i, &j);
 	
+	  keyname = "ijCDna";
 	  BEGIN(ijCCna);
 	}
 
 ^TC	|
 ^TCD	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cd);
-	  altlin = 2;
+	  vptr    = &(wcstem.cd);
+	  altlin  = 2;
 	
 	  if (yyleng == 2) {
+	    keyname = "TCn_ka";
 	    BEGIN(TCn_ka);
 	  } else {
-	    extkey = "TCDn_ka";
+	    keyname = "TCDn_ka";
 	    BEGIN(TCCn_ka);
 	  }
 	}
 
 ^CDELT	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
-	  extkey = "CDELTia";
+	  keyname = "CDELTia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CDE  |
 ^{I1}CDLT {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCDEna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCDLTn";
+	    keyname = "iCDLTn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -497,64 +534,66 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCDE	|
 ^TCDLT	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.cdelt);
+	  vptr    = &(wcstem.cdelt);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCDEna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCDLTn";
+	    keyname = "TCDLTn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^CROTA	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
-	  extkey = "CROTAi";
+	  keyname = "CROTAi";
 	  BEGIN(CROTAi);
 	}
 
 ^{I1}CROT {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
 	  sscanf(yytext, "%d", &i);
 	
-	  extkey = "iCROTn";
+	  keyname = "iCROTn";
 	  BEGIN(iCROTn);
 	}
 
 ^TCROT	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crota);
-	  altlin = 4;
+	  vptr    = &(wcstem.crota);
+	  altlin  = 4;
 	
-	  extkey = "TCROTn";
+	  keyname = "TCROTn";
 	  BEGIN(TCROTn);
 	}
 
 ^CUNIT	{
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
-	  extkey = "CUNITia";
+	  keyname = "CUNITia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CUN  |
 ^{I1}CUNI {
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCUNna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCUNIn";
+	    keyname = "iCUNIn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -562,35 +601,37 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCUN	|
 ^TCUNI	{
 	  valtype = STRING;
-	  vptr = &(wcstem.cunit);
+	  vptr    = &(wcstem.cunit);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCUNna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCUNIn";
+	    keyname = "TCUNIn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^CTYPE	{
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
-	  extkey = "CTYPEia";
+	  keyname = "CTYPEia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CTY  |
 ^{I1}CTYP {
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCTYna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCTYPn";
+	    keyname = "iCTYPn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -598,35 +639,37 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCTY	|
 ^TCTYP	{
 	  valtype = STRING;
-	  vptr = &(wcstem.ctype);
+	  vptr    = &(wcstem.ctype);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCTYna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCTYPn";
+	    keyname = "TCTYPn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^CRVAL	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
-	  extkey = "CRVALia";
+	  keyname = "CRVALia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CRV  |
 ^{I1}CRVL {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCRVna";
 	    BEGIN(iCCCna);
 	  } else {
-	    extkey = "iCRVLn";
+	    keyname = "iCRVLn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -634,12 +677,13 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCRV	|
 ^TCRVL	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crval);
+	  vptr    = &(wcstem.crval);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCRVna";
 	    BEGIN(TCCCna);
 	  } else {
-	    extkey = "TCRVLn";
+	    keyname = "TCRVLn";
 	    BEGIN(TCCCCn);
 	  }
 	}
@@ -647,12 +691,13 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^LONPOLE |
 ^LONP	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.lonpole);
+	  vptr    = &(wcstem.lonpole);
 	
 	  if (yyleng == 7) {
-	    extkey = "LONPOLEa";
+	    keyname = "LONPOLEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "LONPna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -660,30 +705,41 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^LATPOLE |
 ^LATP	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.latpole);
+	  vptr    = &(wcstem.latpole);
 	
 	  if (yyleng == 7) {
-	    extkey = "LATPOLEa";
+	    keyname = "LATPOLEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "LATPna";
 	    BEGIN(CCCCna);
 	  }
 	}
 
-^RESTFRQ  |
 ^RESTFREQ |
+^RESTFRQ  |
 ^RFRQ	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.restfrq);
+	  vptr    = &(wcstem.restfrq);
 	
 	  if (yyleng == 8) {
-	    unput(' ');
-	    extkey = "RESTFREQ";
-	    BEGIN(CCCCCCCa);
+	    if (relax & WCSHDR_strict) {
+	      errmsg = "the RESTFREQ keyword is deprecated, use RESTFRQa";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      unput(' ');
+	
+	      keyname = "RESTFREQ";
+	      BEGIN(CCCCCCCa);
+	    }
+	
 	  } else if (yyleng == 7) {
-	    extkey = "RESTFRQa";
+	    keyname = "RESTFRQa";
 	    BEGIN(CCCCCCCa);
+	
 	  } else {
+	    keyname = "RFRQna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -691,37 +747,39 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^RESTWAV |
 ^RWAV	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.restwav);
+	  vptr    = &(wcstem.restwav);
 	
 	  if (yyleng == 7) {
-	    extkey = "RESTWAVa";
+	    keyname = "RESTWAVa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "RWAVna";
 	    BEGIN(CCCCna);
 	  }
 	}
 
 ^PV	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
-	  extkey = "PVi_ma";
+	  keyname = "PVi_ma";
 	  BEGIN(CCi_ma);
 	}
 
 ^{I1}V	|
 ^{I1}PV	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 2) {
+	    keyname = "iVn_ma";
 	    BEGIN(iCn_ma);
 	  } else {
-	    extkey = "iPVn_ma";
+	    keyname = "iPVn_ma";
 	    BEGIN(iCCn_ma);
 	  }
 	}
@@ -729,46 +787,49 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TV	|
 ^TPV	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
 	  if (yyleng == 2) {
+	    keyname = "TVn_ma";
 	    BEGIN(TCn_ma);
 	  } else {
-	    extkey = "TPVn_ma";
+	    keyname = "TPVn_ma";
 	    BEGIN(TCCn_ma);
 	  }
 	}
 
 ^PROJP	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.pv);
-	  ptype = 'v';
+	  vptr    = &(wcstem.pv);
+	  ptype   = 'v';
 	
+	  keyname = "PROJPm";
 	  BEGIN(PROJPm);
 	}
 
 ^PS	{
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
-	  extkey = "PSi_ma";
+	  keyname = "PSi_ma";
 	  BEGIN(CCi_ma);
 	}
 
 ^{I1}S	|
 ^{I1}PS	{
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 2) {
+	    keyname = "iSn_ma";
 	    BEGIN(iCn_ma);
 	  } else {
-	    extkey = "iPSn_ma";
+	    keyname = "iPSn_ma";
 	    BEGIN(iCCn_ma);
 	  }
 	}
@@ -776,37 +837,39 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TS	|
 ^TPS	{
 	  valtype = STRING;
-	  vptr = &(wcstem.ps);
-	  ptype = 's';
+	  vptr    = &(wcstem.ps);
+	  ptype   = 's';
 	
 	  if (yyleng == 2) {
+	    keyname = "TSn_ma";
 	    BEGIN(TCn_ma);
 	  } else {
-	    extkey = "TPSn_ma";
+	    keyname = "TPSn_ma";
 	    BEGIN(TCCn_ma);
 	  }
 	}
 
 ^CNAME	{
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
-	  extkey = "CNAMEia";
+	  keyname = "CNAMEia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CNA  |
 ^{I1}CNAM {
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCNAna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCNAMn";
+	    keyname = "iCNAMn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -814,37 +877,39 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCNA	|
 ^TCNAM	{
 	  valtype = STRING;
-	  vptr = &(wcstem.cname);
+	  vptr    = &(wcstem.cname);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCNAna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCNAMn";
+	    keyname = "TCNAMn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^CRDER	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
-	  extkey = "CRDERia";
+	  keyname = "CRDERia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CRD |
 ^{I1}CRDE {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCRDna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCRDEn";
+	    keyname = "iCRDEn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -852,37 +917,39 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCRD	|
 ^TCRDE	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.crder);
+	  vptr    = &(wcstem.crder);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCRDna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCRDEn";
+	    keyname = "TCRDEn";
 	    BEGIN(TCCCCn);
 	  }
 	}
 
 ^CSYER	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
-	  extkey = "CSYERia";
+	  keyname = "CSYERia";
 	  BEGIN(CCCCCia);
 	}
 
 ^{I1}CSY  |
 ^{I1}CSYE {
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
 	  sscanf(yytext, "%d", &i);
 	
 	  if (yyleng == 4) {
+	    keyname = "iCSYna";
 	    BEGIN(iCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "iCSYEn";
+	    keyname = "iCSYEn";
 	    BEGIN(iCCCCn);
 	  }
 	}
@@ -890,13 +957,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^TCSY	|
 ^TCSYE	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.csyer);
+	  vptr    = &(wcstem.csyer);
 	
 	  if (yyleng == 4) {
+	    keyname = "TCSYna";
 	    BEGIN(TCCCna);
 	  } else {
 	    if (!(relax & WCSHDR_CNAMn)) vptr = 0x0;
-	    extkey = "TCSYEn";
+	    keyname = "TCSYEn";
 	    BEGIN(TCCCCn);
 	  }
 	}
@@ -904,77 +972,85 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^DATE-AVG |
 ^DAVG   {
 	  valtype = STRING;
-	  vptr = wcstem.dateavg;
+	  vptr    = wcstem.dateavg;
 	
 	  if (yyleng == 8) {
-	    extkey = "DATE-AVG";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "DATE-AVG";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "DAVGna";
 	    BEGIN(CCCCn);
 	  }
 	}
 
 ^DATE-OBS {
 	  valtype = STRING;
-	  vptr = wcstem.dateobs;
+	  vptr    = wcstem.dateobs;
+	
+	  if (ctrl < -10) keep = keyrec;
 	
-	  extkey = "DATE-OBS";
+	  keyname = "DATE-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^DOBS{I1}"   " |
 ^DOBS{I2}"  "  |
 ^DOBS{I3}" " {
-	  if (relax & WCSHDR_DOBSn) {
-	    valtype = STRING;
-	    vptr = wcstem.dateobs;
+	  valtype = STRING;
+	  vptr    = wcstem.dateobs;
 	
+	  if (relax & WCSHDR_DOBSn) {
 	    yyless(4);
+	
+	    keyname = "DOBSna";
 	    BEGIN(CCCCn);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "DOBSna keyword is non-standard";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = BINTAB;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "DOBSna keyword is non-standard";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
 ^EPOCH{ALT}"  " {
 	  sscanf(yytext, "EPOCH%c", &a);
 	
-	  if (a == ' ' || (relax & WCSHDR_EPOCHa)) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the EPOCH keyword is deprecated, use EQUINOXa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || (relax & WCSHDR_EPOCHa)) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.equinox);
+	    vptr    = &(wcstem.equinox);
 	    special = wcsbth_epoch;
 	
 	    unput(a);
-	    extkey = "EPOCH";
+	
+	    keyname = "EPOCH";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "EPOCH keyword may not have an alternate version code";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "EPOCH keyword may not have an alternate version code";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
 ^EQUINOX |
 ^EQUI	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.equinox);
+	  vptr    = &(wcstem.equinox);
 	
 	  if (yyleng == 7) {
-	    extkey = "EQUINOXa";
+	    keyname = "EQUINOXa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "EQUIna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -982,12 +1058,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^MJD-AVG" " |
 ^MJDA	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.mjdavg);
+	  vptr    = &(wcstem.mjdavg);
 	
 	  if (yyleng == 8) {
-	    extkey = "MJD-AVG";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "MJD-AVG";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "MJDAn";
 	    BEGIN(CCCCn);
 	  }
 	}
@@ -995,12 +1073,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^MJD-OBS" " |
 ^MJDOB	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.mjdobs);
+	  vptr    = &(wcstem.mjdobs);
 	
 	  if (yyleng == 8) {
-	    extkey = "MJD-OBS";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "MJD-OBS";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "MJDOn";
 	    BEGIN(CCCCCn);
 	  }
 	}
@@ -1008,12 +1088,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^OBSGEO-X |
 ^OBSGX	{
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo;
+	  vptr    = wcstem.obsgeo;
 	
 	  if (yyleng == 8) {
-	    extkey = "OBSGEO-X";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-X";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGXn";
 	    BEGIN(CCCCCn);
 	  }
 	}
@@ -1021,12 +1103,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^OBSGEO-Y |
 ^OBSGY	{
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo + 1;
+	  vptr    = wcstem.obsgeo + 1;
 	
 	  if (yyleng == 8) {
-	    extkey = "OBSGEO-Y";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-Y";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGYn";
 	    BEGIN(CCCCCn);
 	  }
 	}
@@ -1034,12 +1118,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^OBSGEO-Z |
 ^OBSGZ	{
 	  valtype = FLOAT;
-	  vptr = wcstem.obsgeo + 2;
+	  vptr    = wcstem.obsgeo + 2;
 	
 	  if (yyleng == 8) {
-	    extkey = "OBSGEO-Z";
+	    if (ctrl < -10) keep = keyrec;
+	    keyname = "OBSGEO-Z";
 	    BEGIN(CCCCCCCC);
 	  } else {
+	    keyname = "OBSGZn";
 	    BEGIN(CCCCCn);
 	  }
 	}
@@ -1047,12 +1133,13 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^RADESYS |
 ^RADE	{
 	  valtype = STRING;
-	  vptr = wcstem.radesys;
+	  vptr    = wcstem.radesys;
 	
 	  if (yyleng == 7) {
-	    extkey = "RADESYSa";
+	    keyname = "RADESYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "RADEna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -1060,32 +1147,32 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^RADECSYS {
 	  if (relax & WCSHDR_RADECSYS) {
 	    valtype = STRING;
-	    vptr = wcstem.radesys;
+	    vptr    = wcstem.radesys;
 	
 	    unput(' ');
-	    extkey = "RADECSYS";
+	
+	    keyname = "RADECSYS";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "the RADECSYS keyword is deprecated, use RADESYSa";
+	    BEGIN(ERROR);
+
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "RADECSYS keyword is non-standard";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
 ^SPECSYS |
 ^SPEC	{
 	  valtype = STRING;
-	  vptr = wcstem.specsys;
+	  vptr    = wcstem.specsys;
 	
 	  if (yyleng == 7) {
-	    extkey = "SPECSYSa";
+	    keyname = "SPECSYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SPECna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -1093,12 +1180,13 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^SSYSOBS |
 ^SOBS	{
 	  valtype = STRING;
-	  vptr = wcstem.ssysobs;
+	  vptr    = wcstem.ssysobs;
 	
 	  if (yyleng == 7) {
-	    extkey = "SSYSOBSa";
+	    keyname = "SSYSOBSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SOBSna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -1106,38 +1194,41 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^SSYSSRC |
 ^SSRC	{
 	  valtype = STRING;
-	  vptr = wcstem.ssyssrc;
+	  vptr    = wcstem.ssyssrc;
 	
 	  if (yyleng == 7) {
-	    extkey = "SSYSSRCa";
+	    keyname = "SSYSSRCa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "SSRCna";
 	    BEGIN(CCCCna);
 	  }
 	}
 
-^VELOSYS |
-^VSYS	{
+^VELANGL |
+^VANG	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.velosys);
+	  vptr    = &(wcstem.velangl);
 	
 	  if (yyleng == 7) {
-	    extkey = "VELOSYSa";
+	    keyname = "VELANGLa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "VANGna";
 	    BEGIN(CCCCna);
 	  }
 	}
 
-^VELANGL |
-^VANG	{
+^VELOSYS |
+^VSYS	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.velangl);
+	  vptr    = &(wcstem.velosys);
 	
 	  if (yyleng == 7) {
-	    extkey = "VELANGLa";
+	    keyname = "VELOSYSa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "VSYSna";
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -1145,43 +1236,45 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^VELREF{ALT}" " {
 	  sscanf(yytext, "VELREF%c", &a);
 	
-	  if (a == ' ' || (relax & WCSHDR_VELREFa)) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the VELREF keyword is deprecated, use SPECSYSa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || (relax & WCSHDR_VELREFa)) {
 	    valtype = INTEGER;
-	    vptr = &(wcstem.velref);
+	    vptr    = &(wcstem.velref);
 	
 	    unput(a);
-	    extkey = "VELREF";
+	
+	    keyname = "VELREF";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "VELREF keyword may not have an alternate version code";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VELREF keyword may not have an alternate version code";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
 ^VSOURCE{ALT} {
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.zsource);
+	    vptr    = &(wcstem.zsource);
 	    special = wcsbth_vsource;
 	
 	    yyless(7);
-	    extkey = "VSOURCEa";
+	
+	    keyname = "VSOURCEa";
 	    BEGIN(CCCCCCCa);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "the VSOURCEa keyword is deprecated, use ZSOURCEa";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = IMGAUX;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VSOURCEa keyword is deprecated";
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
@@ -1190,21 +1283,20 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^VSOU{I3}{ALT} {
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    vptr = &(wcstem.zsource);
+	    vptr    = &(wcstem.zsource);
 	    special = wcsbth_vsource;
 	
 	    yyless(4);
+	    keyname = "VSOUna";
 	    BEGIN(CCCCna);
 	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "VSOUna keyword is deprecated, use ZSOUna";
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = BINTAB;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = "VSOUna keyword is deprecated";
-	      BEGIN(ERROR);
-	    } else {
-	      /* Pretend we don't recognize it. */
-	      BEGIN(DISCARD);
-	    }
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
 	}
 
@@ -1212,12 +1304,18 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^WCSN	 |
 ^TWCS	{
 	  valtype = STRING;
-	  vptr = wcstem.wcsname;
+	  vptr    = wcstem.wcsname;
 	
 	  if (yyleng == 7) {
-	    extkey = "WCSNAMEa";
+	    keyname = "WCSNAMEa";
 	    BEGIN(CCCCCCCa);
+	
 	  } else {
+	    if (*yytext == 'W') {
+	      keyname = "WCSNna";
+	    } else {
+	      keyname = "TWCSna";
+	    }
 	    BEGIN(CCCCna);
 	  }
 	}
@@ -1225,21 +1323,21 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 ^ZSOURCE |
 ^ZSOU	{
 	  valtype = FLOAT;
-	  vptr = &(wcstem.zsource);
+	  vptr    = &(wcstem.zsource);
 	
 	  if (yyleng == 7) {
-	    extkey = "ZSOURCEa";
+	    keyname = "ZSOURCEa";
 	    BEGIN(CCCCCCCa);
 	  } else {
+	    keyname = "ZSOUna";
 	    BEGIN(CCCCna);
 	  }
 	}
 
 ^END" "{77} {
-	  yyless(0);
 	  if (wcsbth_nkeyrec) {
 	    wcsbth_nkeyrec = 0;
-	    errmsg = "Keyrecords following the END keyrecord were ignored";
+	    errmsg = "keyrecords following the END keyrecord were ignored";
 	    BEGIN(ERROR);
 	  } else {
 	    BEGIN(DISCARD);
@@ -1247,22 +1345,20 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	}
 
 ^.	{
-	  yyless(0);
 	  BEGIN(DISCARD);
 	}
 
 <CCCCCia>{I1}{ALT}" " |
 <CCCCCia>{I2}{ALT} {
-	  /* Image-header keyword. */
-	  keytype = IMGAXIS;
 	  if (relax & WCSHDR_ALLIMG) {
 	    sscanf(yytext, "%d%c", &i, &a);
+	    keytype = IMGAXIS;
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1271,13 +1367,60 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
-<CCCCCia>{I3} {
-	  /* Invalid axis number in image-header keyword. */
-	  keytype = IMGAXIS;
+<CCCCCia>0{I1}{ALT} |
+<CCCCCia>00{I1} {
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will also be flagged by <VALUE> as invalid. */
-	    sscanf(yytext, "%3d", &i);
-	    BEGIN(VALUE);
+	    if (relax & WCSHDR_reject) {
+	      /* Violates the basic FITS standard. */
+	      errmsg = "indices in parameterized keywords must not have "
+	               "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCCCCia>0{ALT}" " |
+<CCCCCia>00{ALT} |
+<CCCCCia>{Z3} {
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  if (relax & WCSHDR_ALLIMG) {
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCCCCia>. {
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "keyword looks very much like %s but isn't",
+	      keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -1294,15 +1437,14 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  if (vptr) {
 	    WCSBTH_PUTBACK;
 	    BEGIN((YY_START == iCCCCn) ? iCCCna : TCCCna);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg, "%s keyword is non-standard", keyname);
+	    BEGIN(ERROR);
+	
 	  } else {
-	    keytype = (YY_START == iCCCCn) ? BIMGARR : PIXLIST;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      sprintf(errmsg, "%s keyword is non-standard", extkey);
-	      BEGIN(ERROR);
-	    } else {
-	      BEGIN(DISCARD);
-	    }
+	    BEGIN(DISCARD);
 	  }
 	}
 
@@ -1314,22 +1456,19 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	    WCSBTH_PUTBACK;
 	    BEGIN((YY_START == iCCCCn) ? iCCCna : TCCCna);
 	
-	  } else {
-	    keytype = (YY_START == iCCCna) ? BIMGARR : PIXLIST;
-	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      if (!vptr) {
-	        sprintf(errmsg, "%s keyword is non-standard", extkey);
-	      } else {
-	        sprintf(errmsg,
-	          "%s keyword may not have an alternate version code", extkey);
-	      }
-	      BEGIN(ERROR);
-	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    if (!vptr) {
+	      sprintf(errmsg, "%s keyword is non-standard", keyname);
 	    } else {
-	      /* Pretend we don't recognize it. */
-	      BEGIN(DISCARD);
+	      sprintf(errmsg,
+	        "%s keyword may not have an alternate version code", keyname);
 	    }
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
 	}
 
@@ -1359,7 +1498,6 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 <CCi_ja>{I1}_{I2}{ALT}" " |
 <CCi_ja>{I2}_{I1}{ALT}" " |
 <CCi_ja>{I2}_{I2}{ALT} {
-	  /* Image-header keyword. */
 	  if (relax & WCSHDR_ALLIMG) {
 	    sscanf(yytext, "%d_%d%c", &i, &j, &a);
 	    keytype = IMGAXIS;
@@ -1368,7 +1506,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1377,18 +1515,105 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
-<CCi_ja>{I1}_{I3}{ALT} |
-<CCi_ja>{I3}_{I1}{ALT} |
-<CCi_ja>{I1}_{I4} |
-<CCi_ja>{I2}_{I3} |
-<CCi_ja>{I3}_{I2} |
-<CCi_ja>{I4}_{I1} {
-	  /* Invalid axis number in image-header keyword. */
+<CCi_ja>0{I1}_{I1}{ALT}" " |
+<CCi_ja>{I1}_0{I1}{ALT}" " |
+<CCi_ja>00{I1}_{I1}{ALT} |
+<CCi_ja>0{I1}_0{I1}{ALT} |
+<CCi_ja>{I1}_00{I1}{ALT} |
+<CCi_ja>000{I1}_{I1} |
+<CCi_ja>00{I1}_0{I1} |
+<CCi_ja>0{I1}_00{I1} |
+<CCi_ja>{I1}_000{I1} |
+<CCi_ja>0{I1}_{I2}{ALT} |
+<CCi_ja>{I1}_0{I2}{ALT} |
+<CCi_ja>00{I1}_{I2} |
+<CCi_ja>0{I1}_0{I2} |
+<CCi_ja>{I1}_00{I2} |
+<CCi_ja>0{I2}_{I1}{ALT} |
+<CCi_ja>{I2}_0{I1}{ALT} |
+<CCi_ja>00{I2}_{I1} |
+<CCi_ja>0{I2}_0{I1} |
+<CCi_ja>{I2}_00{I1} |
+<CCi_ja>0{I2}_{I2} |
+<CCi_ja>{I2}_0{I2} {
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will be flagged by <VALUE> as invalid. */
-	    sscanf(yytext, "%d_%d", &i, &j);
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	    if (((altlin == 1) && (relax & WCSHDR_PC0i_0ja)) ||
+	        ((altlin == 2) && (relax & WCSHDR_CD0i_0ja))) {
+	      sscanf(yytext, "%d_%d%c", &i, &j, &a);
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCi_ja>{Z1}_{Z1}{ALT}"  " |
+<CCi_ja>{Z2}_{Z1}{ALT}" " |
+<CCi_ja>{Z1}_{Z2}{ALT}" " |
+<CCi_ja>{Z3}_{Z1}{ALT} |
+<CCi_ja>{Z2}_{Z2}{ALT} |
+<CCi_ja>{Z1}_{Z3}{ALT} |
+<CCi_ja>{Z4}_{Z1} |
+<CCi_ja>{Z3}_{Z2} |
+<CCi_ja>{Z2}_{Z3} |
+<CCi_ja>{Z1}_{Z4} {
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  if (relax & WCSHDR_ALLIMG) {
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCi_ja>{Z1}-{Z1}{ALT}"  " |
+<CCi_ja>{Z2}-{Z1}{ALT}" " |
+<CCi_ja>{Z1}-{Z2}{ALT}" " |
+<CCi_ja>{Z3}-{Z1}{ALT} |
+<CCi_ja>{Z2}-{Z2}{ALT} |
+<CCi_ja>{Z1}-{Z3}{ALT} |
+<CCi_ja>{Z4}-{Z1} |
+<CCi_ja>{Z3}-{Z2} |
+<CCi_ja>{Z2}-{Z3} |
+<CCi_ja>{Z1}-{Z4} {
+	  if (relax & WCSHDR_ALLIMG) {
+	    errmsg = errtxt;
+	    sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	      keyname);
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -1396,19 +1621,32 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
-<CCi_ja>{I0}{6} {
+<CCi_ja>{Z1}{6} {
 	  /* This covers the defunct forms CD00i00j and PC00i00j. */
-	  if (((relax & WCSHDR_PC00i00j) && (altlin == 1)) ||
-	      ((relax & WCSHDR_CD00i00j) && (altlin == 2))) {
-	    sscanf(yytext, "%3d%3d", &i, &j);
-	    a = ' ';
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	  if (relax & WCSHDR_ALLIMG) {
+	    if (((altlin == 1) && (relax & WCSHDR_PC00i00j)) ||
+	        ((altlin == 2) && (relax & WCSHDR_CD00i00j))) {
+	      sscanf(yytext, "%3d%3d", &i, &j);
+	      a = ' ';
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = errtxt;
+	      sprintf(errmsg,
+	        "this form of the %s keyword is deprecated, use %s",
+	        keyname, keyname);
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "Defunct form of %si_ja keyword",
-	                     (altlin==1) ? "PC" : "CD");
+	    sprintf(errmsg,
+	      "deprecated image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1441,7 +1679,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "%s keyword is non-standard", extkey);
+	    sprintf(errmsg, "%s keyword is non-standard", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1483,20 +1721,34 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  BEGIN(DISCARD);
 	}
 
-<CROTAi>{I1}"  " |
-<CROTAi>{I2}" " {
-	  yyless(0);
-	  BEGIN(CCCCCia);
-	}
-
-<CROTAi>{I1}[A-Z]" " |
-<CROTAi>{I2}[A-Z] {
-	  if (relax & WCSHDR_CROTAia) {
-	    yyless(0);
-	    BEGIN(CCCCCia);
+<CROTAi>{Z1}{ALT}" " |
+<CROTAi>{Z2}{ALT} |
+<CROTAi>{Z3} {
+	  if (relax & WCSHDR_ALLIMG) {
+	    a = ' ';
+	    sscanf(yytext, "%d%c", &i, &a);
+	
+	    if (relax & WCSHDR_strict) {
+	      errmsg = "the CROTAn keyword is deprecated, use PCi_ja";
+	      BEGIN(ERROR);
+	
+	    } else if (a == ' ' || relax & WCSHDR_CROTAia) {
+	      yyless(0);
+	      BEGIN(CCCCCia);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "CROTAn keyword may not have an alternate version code";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "CROTAn keyword may not have an alternate version code";
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "deprecated image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1506,7 +1758,13 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	}
 
 <CROTAi>. {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_ALLIMG) {
+	    yyless(0);
+	    BEGIN(CCCCCia);
+	  } else {
+	    /* Let it go. */
+	    BEGIN(DISCARD);
+	  }
 	}
 
 <iCROTn>{I1}"  " |
@@ -1530,7 +1788,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "%s keyword may not have an alternate version code", extkey);
+	      "%s keyword may not have an alternate version code", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1560,7 +1818,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1570,7 +1828,17 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	}
 
 <CCCCCCCa>. {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "invalid alternate code, keyword resembles %s "
+	      "but isn't", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 
 <CCCCna>{I1}{ALT}"  " |
@@ -1613,9 +1881,9 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  BEGIN(DISCARD);
 	}
 
-<CCi_ma>{I1}_{I0}{ALT}"  " |
+<CCi_ma>{I1}_{Z1}{ALT}"  " |
 <CCi_ma>{I1}_{I2}{ALT}" " |
-<CCi_ma>{I2}_{I0}{ALT}" " |
+<CCi_ma>{I2}_{Z1}{ALT}" " |
 <CCi_ma>{I2}_{I2}{ALT} {
 	  /* Image-header keyword. */
 	  if (relax & WCSHDR_ALLIMG) {
@@ -1626,7 +1894,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
 	    sprintf(errmsg,
-	      "Image-header keyword %s in binary table", extkey);
+	      "image-header keyword %s in binary table", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1635,18 +1903,49 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
-<CCi_ma>{I1}_{I3}{ALT} |
-<CCi_ma>{I3}_{I0}{ALT} |
-<CCi_ma>{I1}_{I4} |
-<CCi_ma>{I2}_{I3} |
-<CCi_ma>{I3}_{I2} |
-<CCi_ma>{I4}_{I0} {
-	  /* Invalid parameter in image-header keyword. */
+<CCi_ma>0{I1}_{Z1}{ALT}" " |
+<CCi_ma>{I1}_0{Z1}{ALT}" " |
+<CCi_ma>00{I1}_{Z1}{ALT} |
+<CCi_ma>0{I1}_0{Z1}{ALT} |
+<CCi_ma>{I1}_00{Z1}{ALT} |
+<CCi_ma>000{I1}_{Z1} |
+<CCi_ma>00{I1}_0{Z1} |
+<CCi_ma>0{I1}_00{Z1} |
+<CCi_ma>{I1}_000{Z1} |
+<CCi_ma>0{I1}_{I2}{ALT} |
+<CCi_ma>{I1}_0{I2}{ALT} |
+<CCi_ma>00{I1}_{I2} |
+<CCi_ma>0{I1}_0{I2} |
+<CCi_ma>{I1}_00{I2} |
+<CCi_ma>0{I2}_{Z1}{ALT} |
+<CCi_ma>{I2}_0{Z1}{ALT} |
+<CCi_ma>00{I2}_{Z1} |
+<CCi_ma>0{I2}_0{Z1} |
+<CCi_ma>{I2}_00{Z1} |
+<CCi_ma>0{I2}_{I2} |
+<CCi_ma>{I2}_0{I2} {
 	  if (relax & WCSHDR_ALLIMG) {
-	    /* Will be flagged by <VALUE> as invalid. */
-	    sscanf(yytext, "%d_%d", &i, &m);
-	    keytype = IMGAXIS;
-	    BEGIN(VALUE);
+	    if (((valtype == FLOAT)  && (relax & WCSHDR_PV0i_0ma)) ||
+	        ((valtype == STRING) && (relax & WCSHDR_PS0i_0ma))) {
+	      sscanf(yytext, "%d_%d%c", &i, &m, &a);
+	      keytype = IMGAXIS;
+	      BEGIN(VALUE);
+	
+	    } else if (relax & WCSHDR_reject) {
+	      errmsg = "indices in parameterized keywords must not have "
+	               "leading zeroes";
+	      BEGIN(ERROR);
+	
+	    } else {
+	      /* Pretend we don't recognize it. */
+	      BEGIN(DISCARD);
+	    }
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
 	
 	  } else {
 	    /* Pretend we don't recognize it. */
@@ -1654,29 +1953,73 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
+<CCi_ma>{Z1}_{Z1}{ALT}"  " |
+<CCi_ma>{Z2}_{Z1}{ALT}" " |
+<CCi_ma>{Z1}_{Z2}{ALT}" " |
+<CCi_ma>{Z3}_{Z1}{ALT} |
+<CCi_ma>{Z2}_{Z2}{ALT} |
+<CCi_ma>{Z1}_{Z3}{ALT} |
+<CCi_ma>{Z4}_{Z1} |
+<CCi_ma>{Z3}_{Z2} |
+<CCi_ma>{Z2}_{Z3} |
+<CCi_ma>{Z1}_{Z4} {
+	  if (relax & WCSHDR_ALLIMG) {
+	    /* Anything that has fallen through to this point must contain */
+	    /* an invalid parameter. */
+	    errmsg = "axis number must exceed 0";
+	    BEGIN(ERROR);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = errtxt;
+	    sprintf(errmsg,
+	      "invalid image-header keyword %s in binary table", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCi_ma>{Z1}-{Z1}{ALT}"  " |
+<CCi_ma>{Z2}-{Z1}{ALT}" " |
+<CCi_ma>{Z1}-{Z2}{ALT}" " |
+<CCi_ma>{Z3}-{Z1}{ALT} |
+<CCi_ma>{Z2}-{Z2}{ALT} |
+<CCi_ma>{Z1}-{Z3}{ALT} |
+<CCi_ma>{Z4}-{Z1} |
+<CCi_ma>{Z3}-{Z2} |
+<CCi_ma>{Z2}-{Z3} |
+<CCi_ma>{Z1}-{Z4} {
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
+	}
+
 <CCi_ma>. {
 	  BEGIN(DISCARD);
 	}
 
-<iCCn_ma>{I1}_{I0}{ALT}" " |
+<iCCn_ma>{I1}_{Z1}{ALT}" " |
 <iCCn_ma>{I1}_{I2}{ALT}    |
 <iCCn_ma>{I1}_{I3}         |
-<iCCn_ma>{I2}_{I0}{ALT}    |
+<iCCn_ma>{I2}_{Z1}{ALT}    |
 <iCCn_ma>{I2}_{I2}         |
-<iCCn_ma>{I3}_{I0}         |
-<TCCn_ma>{I1}_{I0}{ALT}" " |
+<iCCn_ma>{I3}_{Z1}         |
+<TCCn_ma>{I1}_{Z1}{ALT}" " |
 <TCCn_ma>{I1}_{I2}{ALT}    |
 <TCCn_ma>{I1}_{I3}         |
-<TCCn_ma>{I2}_{I0}{ALT}    |
+<TCCn_ma>{I2}_{Z1}{ALT}    |
 <TCCn_ma>{I2}_{I2}         |
-<TCCn_ma>{I3}_{I0} {
+<TCCn_ma>{I3}_{Z1} {
 	  if (relax & WCSHDR_LONGKEY) {
 	    WCSBTH_PUTBACK;
 	    BEGIN((YY_START == iCCn_ma) ? iCn_ma : TCn_ma);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "%s keyword is non-standard", extkey);
+	    sprintf(errmsg, "the %s keyword is non-standard", keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1690,18 +2033,18 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  BEGIN(DISCARD);
 	}
 
-<iCn_ma>{I1}_{I0}{ALT}"  " |
+<iCn_ma>{I1}_{Z1}{ALT}"  " |
 <iCn_ma>{I1}_{I2}{ALT}" "  |
 <iCn_ma>{I1}_{I3}{ALT}     |
-<iCn_ma>{I2}_{I0}{ALT}" "  |
+<iCn_ma>{I2}_{Z1}{ALT}" "  |
 <iCn_ma>{I2}_{I2}{ALT}     |
-<iCn_ma>{I3}_{I0}{ALT}     |
-<TCn_ma>{I1}_{I0}{ALT}"  " |
+<iCn_ma>{I3}_{Z1}{ALT}     |
+<TCn_ma>{I1}_{Z1}{ALT}"  " |
 <TCn_ma>{I1}_{I2}{ALT}" "  |
 <TCn_ma>{I1}_{I3}{ALT}     |
-<TCn_ma>{I2}_{I0}{ALT}" "  |
+<TCn_ma>{I2}_{Z1}{ALT}" "  |
 <TCn_ma>{I2}_{I2}{ALT}     |
-<TCn_ma>{I3}_{I0}{ALT} {
+<TCn_ma>{I3}_{Z1}{ALT} {
 	  sscanf(yytext, "%d_%d%c", &n, &m, &a);
 	  if (YY_START == TCn_ma) i = wcsbth_colax(*wcs, &alts, n, a);
 	  keytype = (YY_START == iCn_ma) ? BIMGARR : PIXLIST;
@@ -1711,11 +2054,11 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 <iCn_ma>{I1}_{I4} |
 <iCn_ma>{I2}_{I3} |
 <iCn_ma>{I3}_{I2} |
-<iCn_ma>{I4}_{I0} |
+<iCn_ma>{I4}_{Z1} |
 <TCn_ma>{I1}_{I4} |
 <TCn_ma>{I2}_{I3} |
 <TCn_ma>{I3}_{I2} |
-<TCn_ma>{I4}_{I0} {
+<TCn_ma>{I4}_{Z1} {
 	  /* Invalid combinations will be flagged by <VALUE>. */
 	  sscanf(yytext, "%d_%d", &n, &m);
 	  a = ' ';
@@ -1729,7 +2072,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  BEGIN(DISCARD);
 	}
 
-<PROJPm>{I0}"  " {
+<PROJPm>{Z1}"  " {
 	  if (relax & WCSHDR_PROJPn) {
 	    sscanf(yytext, "%d", &m);
 	    i = 0;
@@ -1738,7 +2081,7 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "PROJPn keyword is defunct";
+	    errmsg = "the PROJPn keyword is deprecated, use PVi_ma";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -1747,6 +2090,17 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	  }
 	}
 
+<PROJPm>{Z2}" " |
+<PROJPm>{Z3} {
+	  if (relax & (WCSHDR_PROJPn | WCSHDR_reject)) {
+	    errmsg = "invalid PROJPn keyword";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    BEGIN(DISCARD);
+	  }
+	}
+
 <PROJPm>. {
 	  BEGIN(DISCARD);
 	}
@@ -1773,11 +2127,11 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	    if (relax & WCSHDR_reject) {
 	      errmsg = errtxt;
 	      if (i > 99 || j > 99) {
-	        sprintf(errmsg, "Axis number exceeds 99");
+	        sprintf(errmsg, "axis number exceeds 99");
 	      } else if (m > 99) {
-	        sprintf(errmsg, "Parameter number exceeds 99");
+	        sprintf(errmsg, "parameter number exceeds 99");
 	      } else if (n > 999 || k > 999) {
-	        sprintf(errmsg, "Column number exceeds 999");
+	        sprintf(errmsg, "column number exceeds 999");
 	      }
 	      BEGIN(ERROR);
 	
@@ -1790,14 +2144,12 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	    /* Skip keyvalues that won't be inherited. */
 	    BEGIN(FLUSH);
 	
-	  } else if (ipass == 3 && (keytype & IMGHEAD)) {
-	    /* IMGHEAD keytypes are always dealt with on the second pass. */
-	    BEGIN(FLUSH);
-	
-	  } else if (vptr) {
-	    alts.icol = 0;
-	    alts.ialt = 0;
-	    voff = (char *)vptr - (char *)(&wcstem);
+	  } else {
+	    if (ipass == 3 && (keytype & IMGHEAD)) {
+	      /* IMGHEAD keytypes are always dealt with on the second pass. */
+	      /* However, they must be re-parsed in order to report errors. */
+	      vptr = 0x0;
+	    }
 	
 	    if (valtype == INTEGER) {
 	      BEGIN(INTEGER_VAL);
@@ -1807,243 +2159,290 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	      BEGIN(STRING_VAL);
 	    } else {
 	      errmsg = errtxt;
-	      sprintf(errmsg, "Internal parser ERROR, bad data type: %d",
+	      sprintf(errmsg, "internal parser ERROR, bad data type: %d",
 	        valtype);
 	      BEGIN(ERROR);
 	    }
-	
-	  } else {
-	    errmsg = "Internal parser ERROR, null pointer";
-	    BEGIN(ERROR);
 	  }
 	}
 
 <VALUE>. {
-	  errmsg = "Invalid KEYWORD = VALUE syntax";
+	  errmsg = "invalid KEYWORD = VALUE syntax";
 	  BEGIN(ERROR);
 	}
 
 <INTEGER_VAL>{INTEGER} {
 	  if (ipass == 1) {
-	    /* Do first-pass bookkeeping. */
-	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
-	    BEGIN(FLUSH);
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    /* Update each coordinate representation. */
-	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
-	
-	      /* Read the keyvalue. */
-	      if (special) {
-	        special(wptr);
-	      } else {
-	        sscanf(yytext, "%d", (int *)wptr);
-	      }
-	    }
+	    /* Read the keyvalue. */
+	    sscanf(yytext, "%d", &inttmp);
 	
 	    BEGIN(COMMENT);
 	  }
 	}
 
 <INTEGER_VAL>. {
-	  errmsg = "An integer value was expected";
+	  errmsg = "an integer value was expected";
 	  BEGIN(ERROR);
 	}
 
 <FLOAT_VAL>{FLOAT} {
 	  if (ipass == 1) {
-	    /* Do first-pass bookkeeping. */
-	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
-	    BEGIN(FLUSH);
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    /* Update each coordinate representation. */
-	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
+	    /* Read the keyvalue. */
+	    wcsutil_str2double(yytext, "%lf", &dbltmp);
 	
-	      /* Apply keyword parameterization. */
-	      if (ptype == 'v') {
-	        ipx = wcsp->npv++;
-	        wcsp->pv[ipx].i = i;
-	        wcsp->pv[ipx].m = m;
-	        wptr = &(wcsp->pv[ipx].value);
+	    BEGIN(COMMENT);
+	  }
+	}
+
+<FLOAT_VAL>. {
+	  errmsg = "a floating-point value was expected";
+	  BEGIN(ERROR);
+	}
+
+<STRING_VAL>{STRING} {
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
-	      } else if (j) {
-	        /* Is the de-reference necessary? */
-	        wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis) + (j - 1);
+	  } else {
+	    /* Read the keyvalue. */
+	      strcpy(strtmp, yytext+1);
 	
-	      } else if (i) {
-	        wptr = *((double **)wptr) + (i - 1);
+	    /* Squeeze out repeated quotes. */
+	    ix = 0;
+	    for (jx = 0; jx < 72; jx++) {
+	      if (ix < jx) {
+	        strtmp[ix] = strtmp[jx];
 	      }
 	
-	      /* Read the keyvalue. */
-	      if (special) {
-	        special(wptr);
-	      } else {
-	        wcsutil_str2double(yytext, "%lf", (double *)wptr);
+	      if (strtmp[jx] == '\0') {
+	        if (ix) strtmp[ix-1] = '\0';
+	        break;
+	      } else if (strtmp[jx] == '\'' && strtmp[jx+1] == '\'') {
+	        jx++;
 	      }
 	
-	      /* Flag the presence of PC, or CD and/or CROTA. */
-	      if (altlin) {
-	        wcsp->altlin |= altlin;
-	        altlin = 0;
-	      }
+	      ix++;
 	    }
 	
 	    BEGIN(COMMENT);
 	  }
 	}
 
-<FLOAT_VAL>. {
-	  errmsg = "A floating-point value was expected";
+<STRING_VAL>. {
+	  errmsg = "a string value was expected";
 	  BEGIN(ERROR);
 	}
 
-<STRING_VAL>{STRING} {
+<COMMENT>{INLINE}$ {
 	  if (ipass == 1) {
 	    /* Do first-pass bookkeeping. */
 	    wcsbth_pass1(keytype, i, j, n, k, a, ptype, &alts);
 	    BEGIN(FLUSH);
 	
-	  } else {
+	  } else if (*wcs) {
+	    /* Store the value now that the keyrecord has been validated. */
+	    alts.icol = 0;
+	    alts.ialt = 0;
+	
 	    /* Update each coordinate representation. */
+	    gotone = 0;
 	    while ((wcsp = wcsbth_idx(*wcs, &alts, keytype, n, a))) {
-	      wptr = (void *)((char *)wcsp + voff);
-	
-	      /* Apply keyword parameterization. */
-	      if (ptype == 's') {
-	        ipx = wcsp->nps++;
-	        wcsp->ps[ipx].i = i;
-	        wcsp->ps[ipx].m = m;
-	        wptr = wcsp->ps[ipx].value;
-	
-	      } else if (j) {
-	        wptr = *((char (**)[72])wptr) +
-	                (i - 1)*(wcsp->naxis) + (j - 1);
-	
-	      } else if (i) {
-	        wptr = *((char (**)[72])wptr) + (i - 1);
+	      gotone = 1;
+	
+	      if (vptr) {
+	        voff = (char *)vptr - (char *)(&wcstem);
+	        wptr = (void *)((char *)wcsp + voff);
+	
+	        if (valtype == INTEGER) {
+	          *((int *)wptr) = inttmp;
+	
+	        } else if (valtype == FLOAT) {
+	          /* Apply keyword parameterization. */
+	          if (ptype == 'v') {
+	            ipx = (wcsp->npv)++;
+	            wcsp->pv[ipx].i = i;
+	            wcsp->pv[ipx].m = m;
+	            wptr = &(wcsp->pv[ipx].value);
+	
+	          } else if (j) {
+	            wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis)
+	                                      + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((double **)wptr) + (i - 1);
+	          }
+	
+	          if (special) {
+	            special(wptr, dbltmp);
+	          } else {
+	            *((double *)wptr) = dbltmp;
+	          }
+	
+	          /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
+	          if (altlin) {
+	            wcsp->altlin |= altlin;
+	            altlin = 0;
+	          }
+	
+	        } else if (valtype == STRING) {
+	          /* Apply keyword parameterization. */
+	          if (ptype == 's') {
+	            ipx = wcsp->nps++;
+	            wcsp->ps[ipx].i = i;
+	            wcsp->ps[ipx].m = m;
+	            wptr = wcsp->ps[ipx].value;
+	
+	          } else if (j) {
+	            wptr = *((char (**)[72])wptr) +
+	                    (i - 1)*(wcsp->naxis) + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((char (**)[72])wptr) + (i - 1);
+	          }
+	
+	          cptr = (char *)wptr;
+	          strcpy(cptr, strtmp);
+	        }
 	      }
+	    }
 	
-	      /* Read the keyvalue. */
-	      cptr = (char *)wptr;
-	      strcpy(cptr, yytext+1);
-	
-	      /* Squeeze out repeated quotes. */
-	      ix = 0;
-	      for (jx = 0; jx < 72; jx++) {
-	        if (ix < jx) {
-	          cptr[ix] = cptr[jx];
+	    if (ipass == npass) {
+	      if (gotone) {
+	        nvalid++;
+	        if (ctrl == 4) {
+	          wcsfprintf(stderr,
+	            "%.80s\n  Accepted (%d) as a valid WCS keyrecord.\n",
+	            keyrec, nvalid);
 	        }
 	
-	        if (cptr[jx] == '\0') {
-	          if (ix) cptr[ix-1] = '\0';
-	          break;
-	        } else if (cptr[jx] == '\'' && cptr[jx+1] == '\'') {
-	          jx++;
-	        }
+	        BEGIN(FLUSH);
 	
-	        ix++;
+	      } else {
+	        errmsg = "syntactically valid WCS keyrecord has no effect";
+	        BEGIN(ERROR);
 	      }
+	
+	    } else {
+	      BEGIN(FLUSH);
 	    }
 	
-	    BEGIN(COMMENT);
+	  } else {
+	    BEGIN(FLUSH);
 	  }
 	}
 
-<STRING_VAL>. {
-	  errmsg = "A string value was expected";
+<COMMENT>.*" "*\/.*$ {
+	  errmsg = "invalid keyvalue";
 	  BEGIN(ERROR);
 	}
 
-<COMMENT>" "*\/.* |
-<COMMENT>" "* {
-	  BEGIN(FLUSH);
+<COMMENT>[^ \/\n]*{INLINE}$ {
+	  errmsg = "invalid keyvalue";
+	  BEGIN(ERROR);
+	}
+
+<COMMENT>" "+[^\/\n].*{INLINE}$ {
+	  errmsg = "invalid keyvalue or malformed keycomment";
+	  BEGIN(ERROR);
 	}
 
-<COMMENT>. {
-	  errmsg = "Malformed keycomment";
+<COMMENT>.*$ {
+	  errmsg = "malformed keycomment";
 	  BEGIN(ERROR);
 	}
 
-<DISCARD>.* {
+<DISCARD>.*$ {
 	  if (ipass == npass) {
 	    if (ctrl < 0) {
 	      /* Preserve discards. */
-	      if (hptr < wcsbth_hdr-80) {
-	        strncpy(hptr, wcsbth_hdr-80, 80);
-	      }
-	      hptr += 80;
+	      keep = keyrec;
 	
-	    } else if (ctrl > 2) {
-	      wcsfprintf(stderr, "%.80s\n  Discarded.\n", wcsbth_hdr-80);
+	    } else if (2 < ctrl) {
+	      nother++;
+	      wcsfprintf(stderr, "%.80s\n  Not a recognized WCS keyword.\n",
+	        keyrec);
 	    }
 	  }
-	
 	  BEGIN(FLUSH);
 	}
 
-<ERROR>.* {
-	  (*nreject)++;
+<ERROR>.*$ {
 	  if (ipass == npass) {
-	    if (ctrl == -1) {
-	      if (hptr < wcsbth_hdr-80) {
-	        /* Preserve rejects. */
-	        strncpy(hptr, wcsbth_hdr-80, 80);
-	      }
-	      hptr += 80;
+	    (*nreject)++;
+	
+	    if (ctrl%10 == -1) {
+	      keep = keyrec;
 	    }
 	
-	    if (abs(ctrl) > 1) {
-	      wcsfprintf(stderr, "%.80s\n%4d: %s.\n", wcsbth_hdr-80, *nreject,
-	        errmsg);
+	    if (1 < abs(ctrl%10)) {
+	      wcsfprintf(stderr, "%.80s\n  Rejected (%d), %s.\n",
+	        keyrec, *nreject, errmsg);
 	    }
 	  }
-	
 	  BEGIN(FLUSH);
 	}
 
 <FLUSH>.*\n {
+	  if (ipass == npass && keep) {
+	    if (hptr < keep) {
+	      strncpy(hptr, keep, 80);
+	    }
+	    hptr += 80;
+	  }
+	
 	  /* Throw away the rest of the line and reset for the next one. */
 	  i = j = 0;
 	  n = k = 0;
 	  m = 0;
 	  a = ' ';
 	
+	  keyrec += 80;
+	
 	  keytype =  0;
 	  valtype = -1;
 	  vptr    = 0x0;
+	  keep    = 0x0;
 	
-	  altlin = 0;
-	  ptype  = ' ';
+	  altlin  = 0;
+	  ptype   = ' ';
 	  special = 0x0;
+	
 	  BEGIN(INITIAL);
 	}
 
 <<EOF>>	 {
 	  /* End-of-input. */
 	  if (ipass == 1) {
-	    if ((status = wcsbth_init1(&alts, nwcs, wcs)) || *nwcs == 0) {
+	    if ((status = wcsbth_init1(&alts, nwcs, wcs)) ||
+	        (*nwcs == 0 && ctrl == 0)) {
 	      yylex_destroy();
 	      return status;
 	    }
 	
-	    if (alts.imgherit) npass = 3;
-	
-	    if (abs(ctrl) > 2) {
+	    if (2 < abs(ctrl%10)) {
 	      if (*nwcs == 1) {
-	        wcsfprintf(stderr, "Found one coordinate representation.\n");
+	        if (strcmp(wcs[0]->wcsname, "DEFAULTS") != 0) {
+	          wcsfprintf(stderr, "Found one coordinate representation.\n");
+	        }
 	      } else {
 	        wcsfprintf(stderr, "Found %d coordinate representations.\n",
 	          *nwcs);
 	      }
 	    }
+	
+	    if (alts.imgherit) npass = 3;
 	  }
 	
 	  if (ipass++ < npass) {
 	    wcsbth_hdr = header;
 	    wcsbth_nkeyrec = nkeyrec;
+	    keyrec = header;
 	    *nreject = 0;
 	
 	    i = j = 0;
@@ -2067,8 +2466,16 @@ int wcsbth_final(struct wcsbth_alts *alts, int *nwcs, struct wcsprm **wcs);
 	    if (ctrl < 0) {
 	      *hptr = '\0';
 	    } else if (ctrl == 1) {
-	      wcsfprintf(stderr, "%d WCS keyrecords were rejected.\n",
-	        *nreject);
+	      wcsfprintf(stderr, "%d WCS keyrecord%s rejected.\n",
+	        *nreject, (*nreject==1)?" was":"s were");
+	    } else if (ctrl == 4) {
+	      wcsfprintf(stderr, "\n");
+	      wcsfprintf(stderr, "%5d keyrecord%s rejected for syntax or "
+	        "other errors,\n", *nreject, (*nreject==1)?" was":"s were");
+	      wcsfprintf(stderr, "%5d %s recognized as syntactically valid, "
+	        "and\n", nvalid, (nvalid==1)?"was":"were");
+	      wcsfprintf(stderr, "%5d other%s were not recognized as WCS "
+	        "keyrecords.\n", nother, (nother==1)?"":"s");
 	    }
 	
 	    return wcsbth_final(&alts, nwcs, wcs);
@@ -2311,7 +2718,7 @@ int wcsbth_init1(
         /* ...but not if the IMGHEAD keywords will be inherited. */
         alts->arridx[0][ialt] = 0;
         alts->imgherit = 1;
-      } else {
+      } else if (alts->arridx[0][ialt] > 0) {
         (*nwcs)++;
       }
     }
@@ -2338,7 +2745,7 @@ int wcsbth_init1(
     *nwcs = 0;
     for (icol = 0; icol <= ncol; icol++) {
       for (ialt = 0; ialt < 27; ialt++) {
-        if (alts->arridx[icol][ialt]) {
+        if (alts->arridx[icol][ialt] > 0) {
           /* Image-header representations that are not for inheritance
              (icol == 0) or binary table image array representations. */
           wcsp->flag = -1;
@@ -2495,18 +2902,15 @@ int wcsbth_colax(
 
 
 /*----------------------------------------------------------------------------
-* Interpret EPOCH keywords.
+* Interpret EPOCHa keywords.
 *---------------------------------------------------------------------------*/
 
-int wcsbth_epoch(void *wptr)
+int wcsbth_epoch(double *equinox, double epoch)
 
 {
-  double *equinox;
-
   /* If EQUINOXa is currently undefined then set it from EPOCHa. */
-  equinox = (double *)wptr;
   if (undefined(*equinox)) {
-    wcsutil_str2double(yytext, "%lf", equinox);
+    *equinox = epoch;
   }
 
   return 0;
@@ -2514,19 +2918,16 @@ int wcsbth_epoch(void *wptr)
 
 
 /*----------------------------------------------------------------------------
-* Interpret VSOURCE keywords.
+* Interpret VSOURCEa keywords.
 *---------------------------------------------------------------------------*/
 
-int wcsbth_vsource(void *wptr)
+int wcsbth_vsource(double *zsource, double vsource)
 
 {
-  double beta, c = 299792458.0, vsource, *zsource;
+  double beta, c = 299792458.0;
 
   /* If ZSOURCEa is currently undefined then set it from VSOURCEa. */
-  zsource = (double *)wptr;
   if (undefined(*zsource)) {
-    wcsutil_str2double(yytext, "%lf", &vsource);
-
     /* Convert relativistic Doppler velocity to redshift. */
     beta = vsource/c;
     *zsource = (1.0 + beta)/sqrt(1.0 - beta*beta) - 1.0;
diff --git a/C/wcserr.c b/C/wcserr.c
index 31830b8..837f370 100644
--- a/C/wcserr.c
+++ b/C/wcserr.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   Module author: Michael Droettboom
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcserr.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcserr.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdarg.h>
diff --git a/C/wcserr.h b/C/wcserr.h
index 3fcaa8a..ed204cb 100644
--- a/C/wcserr.h
+++ b/C/wcserr.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   Module author: Michael Droettboom
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcserr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcserr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * Summary of the wcserr routines
diff --git a/C/wcsfix.c b/C/wcsfix.c
index 37856d7..29f0b32 100644
--- a/C/wcsfix.c
+++ b/C/wcsfix.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsfix.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsfix.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
@@ -33,6 +33,7 @@
 #include "wcserr.h"
 #include "wcsmath.h"
 #include "wcsutil.h"
+#include "lin.h"
 #include "sph.h"
 #include "wcs.h"
 #include "wcsunits.h"
@@ -57,6 +58,32 @@ const char *wcsfix_errmsg[] = {
   "Could not determine reference pixel coordinate",
   "Could not determine reference pixel value"};
 
+/* Map error returns for lower-level routines. */
+const int fix_linerr[] = {
+  FIXERR_SUCCESS,		/*  0: LINERR_SUCCESS         */
+  FIXERR_NULL_POINTER,		/*  1: LINERR_NULL_POINTER    */
+  FIXERR_MEMORY,		/*  2: LINERR_MEMORY          */
+  FIXERR_SINGULAR_MTX,		/*  3: LINERR_SINGULAR_MTX    */
+  FIXERR_BAD_PARAM,		/*  4: LINERR_DISTORT_INIT    */
+  FIXERR_NO_REF_PIX_COORD,	/*  5: LINERR_DISTORT         */
+  FIXERR_NO_REF_PIX_VAL		/*  6: LINERR_DEDISTORT       */
+};
+
+const int fix_wcserr[] = {
+  FIXERR_SUCCESS,		/*  0: WCSERR_SUCCESS         */
+  FIXERR_NULL_POINTER,		/*  1: WCSERR_NULL_POINTER    */
+  FIXERR_MEMORY,		/*  2: WCSERR_MEMORY          */
+  FIXERR_SINGULAR_MTX,		/*  3: WCSERR_SINGULAR_MTX    */
+  FIXERR_BAD_CTYPE,		/*  4: WCSERR_BAD_CTYPE       */
+  FIXERR_BAD_PARAM,		/*  5: WCSERR_BAD_PARAM       */
+  FIXERR_BAD_COORD_TRANS,	/*  6: WCSERR_BAD_COORD_TRANS */
+  FIXERR_ILL_COORD_TRANS,	/*  7: WCSERR_ILL_COORD_TRANS */
+  FIXERR_BAD_CORNER_PIX,	/*  8: WCSERR_BAD_PIX         */
+  FIXERR_NO_REF_PIX_VAL,	/*  9: WCSERR_BAD_WORLD       */
+  FIXERR_NO_REF_PIX_VAL 	/* 10: WCSERR_BAD_WORLD_COORD */
+				/*     ...others not used     */
+};
+
 /* Convenience macro for invoking wcserr_set(). */
 #define WCSFIX_ERRMSG(status) WCSERR_SET(status), wcsfix_errmsg[status]
 
@@ -146,7 +173,7 @@ int wcsfixi(int ctrl, const int naxis[], struct wcsprm *wcs, int stat[],
       /* No change => no message. */
       wcserr_copy(0x0, info+ifix);
 
-    } else if (stat[ifix] == FIXERR_SUCCESS) {
+    } else if (stat[ifix] == 0) {
       /* Successful translation, but there may be an informative message. */
       if (wcs->err && wcs->err->status < 0) {
         wcserr_copy(wcs->err, info+ifix);
@@ -207,7 +234,7 @@ int cdfix(struct wcsprm *wcs)
 
     cd = wcs->cd + i * (naxis + 1);
     *cd = 1.0;
-    status = FIXERR_SUCCESS;
+    status = 0;
 
 next: ;
   }
@@ -402,7 +429,7 @@ int datfix(struct wcsprm *wcs)
     wcserr_set(WCSERR_SET(FIXERR_DATE_FIX),
       "Changed '%s' to '%s'", orig_dateobs, dateobs);
 
-    return FIXERR_SUCCESS;
+    return 0;
   }
 
   return FIXERR_NO_CHANGE;
@@ -437,7 +464,7 @@ int unitfix(int ctrl, struct wcsprm *wcs)
     msg[k] = '\0';
     wcserr_set(WCSERR_SET(FIXERR_UNITS_ALIAS), msg);
 
-    status = FIXERR_SUCCESS;
+    status = 0;
   }
 
   return status;
@@ -469,14 +496,14 @@ int spcfix(struct wcsprm *wcs)
         strncpy(wcs->specsys, specsys, 9);
         wcserr_set(WCSERR_SET(FIXERR_SPC_UPDATE),
           "Changed SPECSYS to '%s'", specsys);
-        status = FIXERR_SUCCESS;
+        status = 0;
       }
 
       /* Was ctype translated?  Have to null-fill for comparing them. */
       wcsutil_null_fill(9, wcs->ctype[i]);
       if (strncmp(wcs->ctype[i], ctype, 9)) {
         /* ctype was translated... */
-        if (status == FIXERR_SUCCESS) {
+        if (status == 0) {
           /* ...and specsys was also. */
           wcserr_set(WCSERR_SET(FIXERR_SPC_UPDATE),
             "Changed CTYPE%d from '%s' to '%s', and SPECSYS to '%s'",
@@ -484,14 +511,14 @@ int spcfix(struct wcsprm *wcs)
         } else {
           wcserr_set(WCSERR_SET(FIXERR_SPC_UPDATE),
             "Changed CTYPE%d from '%s' to '%s'", i+1, wcs->ctype[i], ctype);
-          status = FIXERR_SUCCESS;
+          status = 0;
         }
 
         strncpy(wcs->ctype[i], ctype, 9);
       }
 
       /* Tidy up. */
-      if (status == FIXERR_SUCCESS) {
+      if (status == 0) {
         wcsutil_null_fill(72, wcs->ctype[i]);
         wcsutil_null_fill(72, wcs->specsys);
       }
@@ -526,7 +553,7 @@ int celfix(struct wcsprm *wcs)
 
   /* Initialize if required. */
   if (wcs->flag != WCSSET) {
-    if ((status = wcsset(wcs))) return status;
+    if ((status = wcsset(wcs))) return fix_wcserr[status];
   }
 
   /* Was an NCP or GLS projection code translated? */
@@ -569,7 +596,7 @@ int celfix(struct wcsprm *wcs)
       wcs->pv[wcs->npv].value = wcsprj->pv[2];
       (wcs->npv)++;
 
-      return FIXERR_SUCCESS;
+      return 0;
 
     } else if (strcmp(wcs->ctype[wcs->lat]+5, "GLS") == 0) {
       strcpy(wcs->ctype[wcs->lng]+5, "SFL");
@@ -624,7 +651,7 @@ int celfix(struct wcsprm *wcs)
         (wcs->npv)++;
       }
 
-      return FIXERR_SUCCESS;
+      return 0;
     }
   }
 
@@ -650,7 +677,7 @@ int cylfix(const int naxis[], struct wcsprm *wcs)
 
   /* Initialize if required. */
   if (wcs->flag != WCSSET) {
-    if ((status = wcsset(wcs))) return status;
+    if ((status = wcsset(wcs))) return fix_wcserr[status];
   }
 
   /* Check that we have a cylindrical projection. */
@@ -690,7 +717,7 @@ int cylfix(const int naxis[], struct wcsprm *wcs)
     }
   }
 
-  if (phimin > phimax) return status;
+  if (phimin > phimax) return fix_wcserr[status];
 
   /* Any changes needed? */
   if (phimin >= -180.0 && phimax <= 180.0) return FIXERR_NO_CHANGE;
@@ -703,9 +730,11 @@ int cylfix(const int naxis[], struct wcsprm *wcs)
   if ((status = prjs2x(&(wcs->cel.prj), 1, 1, 1, 1, &phi0, &theta0, &x, &y,
                        stat))) {
     if (status == PRJERR_BAD_PARAM) {
-      return wcserr_set(WCSFIX_ERRMSG(FIXERR_BAD_PARAM));
+      status = FIXERR_BAD_PARAM;
+    } else {
+      status = FIXERR_NO_REF_PIX_COORD;
     }
-    return wcserr_set(WCSFIX_ERRMSG(FIXERR_NO_REF_PIX_COORD));
+    return wcserr_set(WCSFIX_ERRMSG(status));
   }
 
   for (k = 0; k < wcs->naxis; k++) {
@@ -715,17 +744,14 @@ int cylfix(const int naxis[], struct wcsprm *wcs)
   img[0][wcs->lat] = y;
 
   if ((status = linx2p(&(wcs->lin), 1, 0, img[0], pix[0]))) {
-    return wcserr_set(WCSFIX_ERRMSG(status));
+    return wcserr_set(WCSFIX_ERRMSG(fix_linerr[status]));
   }
 
 
   /* Compute celestial coordinates at the new reference pixel. */
   if ((status = wcsp2s(wcs, 1, 0, pix[0], img[0], phi, theta, world[0],
                        stat))) {
-    if (wcs->err->status == WCSERR_BAD_PIX) {
-      wcs->err->status = FIXERR_NO_REF_PIX_COORD;
-    }
-    return wcs->err->status;
+    return fix_wcserr[status];
   }
 
   /* Compute native coordinates of the celestial pole. */
diff --git a/C/wcsfix.h b/C/wcsfix.h
index 3a4e07b..1983d84 100644
--- a/C/wcsfix.h
+++ b/C/wcsfix.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsfix.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsfix.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
diff --git a/C/wcshdr.c b/C/wcshdr.c
index 69a5d1a..157560b 100644
--- a/C/wcshdr.c
+++ b/C/wcshdr.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcshdr.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcshdr.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <ctype.h>
@@ -30,8 +30,9 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "wcsutil.h"
+#include "wcserr.h"
 #include "wcsmath.h"
+#include "wcsutil.h"
 #include "wcshdr.h"
 #include "tab.h"
 #include "wcs.h"
@@ -47,6 +48,16 @@ const char *wcshdr_errmsg[] = {
   "Fatal error returned by Flex parser",
   "Invalid tabular parameters"};
 
+/* Map error returns for lower-level routines. */
+const int wcshdr_taberr[] = {
+  WCSHDRERR_SUCCESS,		/*  0: TABERR_SUCCESS         */
+  WCSHDRERR_NULL_POINTER,	/*  1: TABERR_NULL_POINTER    */
+  WCSHDRERR_MEMORY,		/*  2: TABERR_MEMORY          */
+  WCSHDRERR_BAD_TABULAR_PARAMS	/*  3: TABERR_BAD_PARAMS      */
+				/*  4: TABERR_BAD_X           */
+				/*  5: TABERR_BAD_WORLD       */
+};
+
 /* Convenience macro for invoking wcserr_set(). */
 #define WCSHDR_ERRMSG(status) WCSERR_SET(status), wcshdr_errmsg[status]
 
@@ -226,8 +237,7 @@ int wcstab(struct wcsprm *wcs)
 
   for (itab = 0; itab < wcs->ntab; itab++) {
     if ((status = tabini(1, wcs->tab[itab].M, 0, wcs->tab + itab))) {
-      if (status == 3) status = 5;
-      wcserr_set(WCSHDR_ERRMSG(status));
+      status = wcserr_set(WCSHDR_ERRMSG(wcshdr_taberr[status]));
       goto cleanup;
     }
   }
@@ -687,7 +697,6 @@ int wcshdo(int relax, struct wcsprm *wcs, int *nkeyrec, char **header)
 
   for (k = 0; k < wcs->nps; k++) {
     sprintf(keyvalue, "'%s'", (wcs->ps[k]).value);
-
     wcshdo_util(relax, "PS", "S", WCSHDO_PVn_ma, "PS", wcs->ps[k].i, -1,
       wcs->ps[k].m, alt, colnum, colax, keyvalue,
       "Coordinate transformation parameter",
@@ -1047,22 +1056,40 @@ void wcshdo_util(
     }
   }
 
-  /* Double-up single-quotes in the keyvalue. */
-  hptr = keyvalue + 1;
-  while (*hptr) {
-    if (*hptr == '\'') {
-      kptr = hptr++;
-      if (*hptr) {
-        ch0 = *kptr;
-        while (*kptr) {
-          ch1 = *(++kptr);
-          *kptr = ch0;
-          ch0 = ch1;
+  /* Double-up single-quotes in string keyvalues. */
+  if (*keyvalue == '\'') {
+    hptr = keyvalue + 1;
+    while (*hptr) {
+      if (*hptr == '\'') {
+        kptr = hptr++;
+        if (*hptr) {
+          ch0 = *kptr;
+          while (*kptr) {
+            ch1 = *(++kptr);
+            *kptr = ch0;
+            ch0 = ch1;
+          }
+        } else {
+          break;
         }
       }
+
+      hptr++;
+    }
+
+    /* Check length. */
+    if (strlen(keyvalue) > 70) {
+      /* Truncate. */
+      keyvalue[69] = '\'';
+      keyvalue[70] = '\0';
     }
 
-    hptr++;
+  } else {
+    /* Check length. */
+    if (strlen(keyvalue) > 70) {
+      /* Truncate. */
+      keyvalue[70] = '\0';
+    }
   }
 
   if ((nv = strlen(keyvalue) > 20)) {
diff --git a/C/wcshdr.h b/C/wcshdr.h
index 7ef0e8f..2cb712a 100644
--- a/C/wcshdr.h
+++ b/C/wcshdr.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcshdr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcshdr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
@@ -157,6 +157,9 @@
 *                           3: As above, but also report all non-WCS
 *                              keyrecords that were discarded, and the number
 *                              of coordinate representations (nwcs) found.
+*                           4: As above, but also report the accepted WCS
+*                              keyrecords, with a summary of the number
+*                              accepted as well as rejected.
 *                       The report is written to stderr by default, or the
 *                       stream set by wcsprintf_set().
 *
@@ -286,6 +289,9 @@
 *                           3: As above, but also report all non-WCS
 *                              keyrecords that were discarded, and the number
 *                              of coordinate representations (nwcs) found.
+*                           4: As above, but also report the accepted WCS
+*                              keyrecords, with a summary of the number
+*                              accepted as well as rejected.
 *                       The report is written to stderr by default, or the
 *                       stream set by wcsprintf_set().
 *
@@ -409,7 +415,7 @@
 *   4: WCS Paper I mistakenly defined the pixel list form of WCSNAMEa as
 *      TWCSna instead of WCSNna; the 'T' is meant to substitute for the axis
 *      number in the binary table form of the keyword - note that keywords
-*      defined in WCS Papers II and III that are not parameterised by axis
+*      defined in WCS Papers II and III that are not parameterized by axis
 *      number have identical forms for binary tables and pixel lists.
 *      Consequently wcsbth() always treats WCSNna and TWCSna as equivalent.
 *
@@ -425,17 +431,38 @@
 *
 *      - WCSHDR_all: Accept all extensions recognized by the parser.
 *
-*      - WCSHDR_reject: Reject non-standard keywords (that are not otherwise
-*              accepted).  A message will optionally be printed on stderr by
-*              default, or the stream set by wcsprintf_set(), as determined by
-*              the ctrl argument, and nreject will be incremented.
+*      - WCSHDR_reject: Reject non-standard keyrecords (that are not otherwise
+*              explicitly accepted by one of the flags below).  A message will
+*              optionally be printed on stderr by default, or the stream set
+*              by wcsprintf_set(), as determined by the ctrl argument, and
+*              nreject will be incremented.
 *
 *              This flag may be used to signal the presence of non-standard
 *              keywords, otherwise they are simply passed over as though they
-*              did not exist in the header.
+*              did not exist in the header.  It is mainly intended for testing
+*              conformance of a FITS header to the WCS standard.
 *
-*              Useful for testing conformance of a FITS header to the WCS
-*              standard.
+*              Keyrecords may be non-standard in several ways:
+*
+*                - The keyword may be syntactically valid but with keyvalue of
+*                  incorrect type or invalid syntax, or the keycomment may be
+*                  malformed.
+*
+*                - The keyword may strongly resemble a WCS keyword but not, in
+*                  fact, be one because it does not conform to the standard.
+*                  For example, "CRPIX01" looks like a CRPIXja keyword, but in
+*                  fact the leading zero on the axis number violates the basic
+*                  FITS standard.  Likewise, "LONPOLE2" is not a valid
+*                  LONPOLEa keyword in the WCS standard, and indeed there is
+*                  nothing the parser can sensibly do with it.
+*
+*                - Use of the keyword may be deprecated by the standard.  Such
+*                  will be rejected if not explicitly accepted via one of the
+*                  flags below.
+*
+*      - WCSHDR_strict: As for WCSHDR_reject, but also reject AIPS-convention
+*              keywords and all other deprecated usage that is not explicitly
+*              accepted.
 *
 *      - WCSHDR_CROTAia: Accept CROTAia (wcspih()),
 *                               iCROTna (wcsbth()),
@@ -458,6 +485,19 @@
 *              equivalent to PVi_ma with m = n <= 9, and is associated
 *              exclusively with the latitude axis.
 *
+*      - WCSHDR_CD0i_0ja: Accept CD0i_0ja (wcspih()).
+*      - WCSHDR_PC0i_0ja: Accept PC0i_0ja (wcspih()).
+*      - WCSHDR_PV0i_0ma: Accept PV0i_0ja (wcspih()).
+*      - WCSHDR_PS0i_0ma: Accept PS0i_0ja (wcspih()).
+*              Allow the numerical index to have a leading zero in doubly-
+*              parameterized keywords, for example, PC01_01.  WCS Paper I
+*              (Sects 2.1.2 & 2.1.4) explicitly disallows leading zeroes.
+*              The FITS 3.0 standard document (Sect. 4.1.2.1) states that the
+*              index in singly-parameterized keywords (e.g. CTYPEia) "shall
+*              not have leading zeroes", and later in Sect. 8.1 that "leading
+*              zeroes must not be used" on PVi_ma and PSi_ma.  However, by an
+*              oversight, it is silent on PCi_ja and CDi_ja.
+*
 *      - WCSHDR_RADECSYS: Accept RADECSYS.  This appeared in early drafts of
 *              WCS Paper I+II and was subsequently replaced by RADESYSa.
 *
@@ -471,9 +511,9 @@
 *              wcsbth() accepts VSOURCEa only if WCSHDR_AUXIMG is also
 *              enabled.
 *
-*      - WCSHDR_DOBSn (wcsbth() only): Allow DOBSn, the column-specific analogue
-*              of DATE-OBS.  By an oversight this was never formally defined
-*              in the standard.
+*      - WCSHDR_DOBSn (wcsbth() only): Allow DOBSn, the column-specific
+*              analogue of DATE-OBS.  By an oversight this was never formally
+*              defined in the standard.
 *
 *      - WCSHDR_LONGKEY (wcsbth() only): Accept long forms of the alternate
 *              binary table and pixel list WCS keywords, i.e. with "a" non-
@@ -864,7 +904,7 @@
 *                       on return.
 *
 *   wcs       struct wcsprm**
-*                       Pointer to the array of wcsprm structs; set to 0 on
+*                       Pointer to the array of wcsprm structs; set to 0x0 on
 *                       return.
 *
 * Function return value:
@@ -1063,6 +1103,7 @@ extern "C" {
 #define WCSHDR_none     0x00000000
 #define WCSHDR_all      0x000FFFFF
 #define WCSHDR_reject   0x10000000
+#define WCSHDR_strict   0x20000000
 
 #define WCSHDR_CROTAia  0x00000001
 #define WCSHDR_EPOCHa   0x00000002
@@ -1070,17 +1111,21 @@ extern "C" {
 #define WCSHDR_CD00i00j 0x00000008
 #define WCSHDR_PC00i00j 0x00000010
 #define WCSHDR_PROJPn   0x00000020
-#define WCSHDR_RADECSYS 0x00000040
-#define WCSHDR_VSOURCE  0x00000080
-#define WCSHDR_DOBSn    0x00000100
-#define WCSHDR_LONGKEY  0x00000200
-#define WCSHDR_CNAMn    0x00000400
-#define WCSHDR_AUXIMG   0x00000800
-#define WCSHDR_ALLIMG   0x00001000
+#define WCSHDR_CD0i_0ja 0x00000040
+#define WCSHDR_PC0i_0ja 0x00000080
+#define WCSHDR_PV0i_0ma 0x00000100
+#define WCSHDR_PS0i_0ma 0x00000200
+#define WCSHDR_RADECSYS 0x00000400
+#define WCSHDR_VSOURCE  0x00000800
+#define WCSHDR_DOBSn    0x00001000
+#define WCSHDR_LONGKEY  0x00002000
+#define WCSHDR_CNAMn    0x00004000
+#define WCSHDR_AUXIMG   0x00008000
+#define WCSHDR_ALLIMG   0x00010000
 
-#define WCSHDR_IMGHEAD  0x00010000
-#define WCSHDR_BIMGARR  0x00020000
-#define WCSHDR_PIXLIST  0x00040000
+#define WCSHDR_IMGHEAD  0x00100000
+#define WCSHDR_BIMGARR  0x00200000
+#define WCSHDR_PIXLIST  0x00400000
 
 #define WCSHDO_none     0x00
 #define WCSHDO_all      0xFF
diff --git a/C/wcslib.h b/C/wcslib.h
index ac5afb2..1feda8d 100644
--- a/C/wcslib.h
+++ b/C/wcslib.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcslib.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcslib.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.
 *
 * Summary of wcslib.h
@@ -39,6 +39,7 @@
 #define WCSLIB_WCSLIB
 
 #include "cel.h"
+#include "dis.h"
 #include "fitshdr.h"
 #include "lin.h"
 #include "log.h"
diff --git a/C/wcsmath.h b/C/wcsmath.h
index 2b30ef0..edf678d 100644
--- a/C/wcsmath.h
+++ b/C/wcsmath.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsmath.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsmath.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * Summary of wcsmath.h
diff --git a/C/wcspih.l b/C/wcspih.l
index cec6b08..c2aac8d 100644
--- a/C/wcspih.l
+++ b/C/wcspih.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcspih.l,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcspih.l,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * wcspih.l is a Flex description file containing the definition of a lexical
@@ -73,7 +73,11 @@
 %option prefix="wcspih"
 
 /* Indices for parameterized keywords. */
-I0	[0-9]
+Z1	[0-9]
+Z2	[0-9]{2}
+Z3	[0-9]{3}
+Z4	[0-9]{4}
+
 I1	[1-9]
 I2	[1-9][0-9]
 I3	[1-9][0-9]{2}
@@ -84,9 +88,12 @@ ALT	[ A-Z]
 
 /* Keyvalue data types. */
 INTEGER	[+-]?[0-9]+
-FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?
+FLOAT	[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eEdD][+-]?[0-9]+)?
 STRING	'([^']|'')*'
 
+/* Inline comment syntax. */
+INLINE " "*(\/.*)?
+
 /* Exclusive start states. */
 %x CROTAi PROJPn
 %x CCCCCia CCi_ja CCi_ma CCCCCCCa CCCCCCCC
@@ -132,12 +139,14 @@ STRING	'([^']|'')*'
 char *wcspih_hdr;
 int  wcspih_nkeyrec;
 
-int wcspih_final(int alts[], double epoch[], double vsource[], int *nwcs,
-        struct wcsprm **wcs);
+int wcspih_final(int alts[], int *nwcs, struct wcsprm **wcs);
 int wcspih_inits(int naxis, int alts[], int npv[], int nps[], int *nwcs,
         struct wcsprm **wcs);
 void wcspih_naxes(int naxis, int i, int j, char a, int alts[], int *npptr);
 
+int wcspih_epoch(double *wptr, double epoch);
+int wcspih_vsource(double *wptr, double vsource);
+
 /* Used in preempting the call to exit() by yy_fatal_error(). */
 jmp_buf wcspih_abort_jmp_env;
 #define exit(status) longjmp(wcspih_abort_jmp_env, status)
@@ -149,12 +158,15 @@ jmp_buf wcspih_abort_jmp_env;
 	char a;
 	int  i, j, m;
 	
-	char *cptr, *errmsg, errtxt[80], *hptr, *keep;
-	int  altlin, alts[27], ialt, idx, ipx, ix, jx, naxis, *npptr,
-	     nps[27], npv[27], pass, status, valtype, voff;
-	double epoch[27], vsource[27];
+	char *cptr, *errmsg, errtxt[80], *hptr, *keep, *keyname, *keyrec,
+	     strtmp[80];
+	int  altlin, alts[27], gotone, ialt, inttmp, ipass, ipx, ix, jx,
+	     naxis, nother, *npptr, nps[27], npass, npv[27], nvalid, status,
+	     valtype, voff;
+	double dbltmp;
 	void *vptr, *wptr;
-	struct wcsprm *wcsp;
+	struct wcsprm *wcsp, wcstem;
+	int (*special)(double *, double);
 	int yylex_destroy(void);
 	
 	naxis = 0;
@@ -162,8 +174,6 @@ jmp_buf wcspih_abort_jmp_env;
 	  alts[ialt] = 0;
 	  npv[ialt] = 0;
 	  nps[ialt] = 0;
-	  epoch[ialt]   = UNDEFINED;
-	  vsource[ialt] = UNDEFINED;
 	}
 	
 	/* Parameters used to implement YY_INPUT. */
@@ -171,28 +181,39 @@ jmp_buf wcspih_abort_jmp_env;
 	wcspih_nkeyrec = nkeyrec;
 	
 	/* Our handle on the input stream. */
+	keyrec = header;
 	hptr = header;
 	keep = 0x0;
+	
+	/* For keeping tallies of keywords found. */
 	*nreject = 0;
+	nvalid = 0;
+	nother = 0;
+	
+	/* If strict, then also reject. */
+	if (relax & WCSHDR_strict) relax |= WCSHDR_reject;
 	
 	/* Keyword parameters. */
-	i = j = m = 0;
+	i = j = 0;
+	m = 0;
 	a = ' ';
 	
 	/* For decoding the keyvalue. */
 	valtype = -1;
-	idx     = -1;
 	vptr    = 0x0;
 	
 	/* For keywords that require special handling. */
-	altlin = 0;
-	npptr  = 0x0;
+	altlin  = 0;
+	npptr   = 0x0;
+	special = 0x0;
 	
 	/* The data structures produced. */
 	*nwcs = 0;
 	*wcs  = 0x0;
 	
-	pass = 1;
+	/* Control variables. */
+	ipass = 1;
+	npass = 2;
 	
 	/* Return here via longjmp() invoked by yy_fatal_error(). */
 	if (setjmp(wcspih_abort_jmp_env)) {
@@ -202,177 +223,241 @@ jmp_buf wcspih_abort_jmp_env;
 	BEGIN(INITIAL);
 
 
-^NAXIS"   = "" "*{INTEGER} {
-	  if (pass == 1) {
+^NAXIS"   = "" "*{INTEGER}{INLINE} {
+	  keyname = "NAXISn";
+	
+	  if (ipass == 1) {
 	    sscanf(yytext, "NAXIS   = %d", &naxis);
-	  }
+	    if (naxis < 0) naxis = 0;
+	    BEGIN(FLUSH);
 	
-	  if (naxis < 0) {
-	    errmsg = errtxt;
-	    sprintf(errmsg, "Negative value of NAXIS ignored: %d", naxis);
-	    naxis = 0;
-	    BEGIN(ERROR);
 	  } else {
-	    BEGIN(DISCARD);
+	    sscanf(yytext, "NAXIS   = %d", &i);
+	
+	    if (i < 0) {
+	      errmsg = "negative value of NAXIS ignored";
+	      BEGIN(ERROR);
+	    } else {
+	      BEGIN(DISCARD);
+	    }
 	  }
 	}
 
 ^WCSAXES{ALT}=" "" "*{INTEGER} {
-	  if (pass == 1) {
-	    sscanf(yytext, "WCSAXES%c= %d", &a, &i);
-	    wcspih_naxes(naxis, i, 0, a, alts, 0);
+	  sscanf(yytext, "WCSAXES%c= %d", &a, &i);
+	
+	  if (i < 0) {
+	    errmsg = "negative value of WCSAXESa ignored";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    valtype = INTEGER;
+	    vptr    = 0x0;
+	
+	    keyname = "WCSAXESa";
+	    BEGIN(COMMENT);
 	  }
-	  BEGIN(FLUSH);
 	}
 
 ^CRPIX	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crpix);
+	  vptr    = &(wcstem.crpix);
+	
+	  keyname = "CRPIXja";
 	  BEGIN(CCCCCia);
 	}
 
 ^PC	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pc);
+	  vptr    = &(wcstem.pc);
 	  altlin = 1;
+	
+	  keyname = "PCi_ja";
 	  BEGIN(CCi_ja);
 	}
 
 ^CD	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->cd);
+	  vptr    = &(wcstem.cd);
 	  altlin = 2;
+	
+	  keyname = "CDi_ja";
 	  BEGIN(CCi_ja);
 	}
 
 ^CDELT	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->cdelt);
+	  vptr    = &(wcstem.cdelt);
+	
+	  keyname = "CDELTia";
 	  BEGIN(CCCCCia);
 	}
 
 ^CROTA	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crota);
+	  vptr    = &(wcstem.crota);
 	  altlin = 4;
+	
+	  keyname = "CROTAn";
 	  BEGIN(CROTAi);
 	}
 
 ^CUNIT	{
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->cunit);
+	  vptr    = &(wcstem.cunit);
+	
+	  keyname = "CUNITia";
 	  BEGIN(CCCCCia);
 	}
 
 ^CTYPE	{
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->ctype);
+	  vptr    = &(wcstem.ctype);
+	
+	  keyname = "CTYPEia";
 	  BEGIN(CCCCCia);
 	}
 
 ^CRVAL	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crval);
+	  vptr    = &(wcstem.crval);
+	
+	  keyname = "CRVALia";
 	  BEGIN(CCCCCia);
 	}
 
 ^LONPOLE {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->lonpole);
+	  vptr    = &(wcstem.lonpole);
+	
+	  keyname = "LONPOLEa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^LATPOLE {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->latpole);
+	  vptr    = &(wcstem.latpole);
+	
+	  keyname = "LATPOLEa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^RESTFRQ {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restfrq);
+	  vptr    = &(wcstem.restfrq);
+	
+	  keyname = "RESTFRQa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^RESTFREQ {
-	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restfrq);
-	  unput(' ');
-	  BEGIN(CCCCCCCa);
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the RESTFREQ keyword is deprecated, use RESTFRQa";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    valtype = FLOAT;
+	    vptr    = &(wcstem.restfrq);
+	
+	    unput(' ');
+	
+	    keyname = "RESTFREQ";
+	    BEGIN(CCCCCCCa);
+	  }
 	}
 
 ^RESTWAV {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->restwav);
+	  vptr    = &(wcstem.restwav);
+	
+	  keyname = "RESTWAVa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^PV	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pv);
+	  vptr    = &(wcstem.pv);
 	  npptr = npv;
+	
+	  keyname = "PVi_ma";
 	  BEGIN(CCi_ma);
 	}
 
 ^PROJP	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->pv);
+	  vptr    = &(wcstem.pv);
 	  npptr = npv;
+	
+	  keyname = "PROJPn";
 	  BEGIN(PROJPn);
 	}
 
 ^PS	{
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->ps);
+	  vptr    = &(wcstem.ps);
 	  npptr = nps;
+	
+	  keyname = "PSi_ma";
 	  BEGIN(CCi_ma);
 	}
 
 ^CNAME	{
 	  valtype = STRING;
-	  if (pass == 2) vptr = &((*wcs)->cname);
+	  vptr    = &(wcstem.cname);
+	
+	  keyname = "CNAMEia";
 	  BEGIN(CCCCCia);
 	}
 
 ^CRDER	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->crder);
+	  vptr    = &(wcstem.crder);
+	
+	  keyname = "CRDERia";
 	  BEGIN(CCCCCia);
 	}
 
 ^CSYER	{
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->csyer);
+	  vptr    = &(wcstem.csyer);
+	
+	  keyname = "CSYERia";
 	  BEGIN(CCCCCia);
 	}
 
 ^DATE-AVG {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->dateavg;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.dateavg;
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "DATE-AVG";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^DATE-OBS {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->dateobs;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.dateobs;
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "DATE-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^EPOCH{ALT}"  " {
 	  sscanf(yytext, "EPOCH%c", &a);
 	
-	  if (a == ' ' || relax & WCSHDR_EPOCHa) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the EPOCH keyword is deprecated, use EQUINOXa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_EPOCHa) {
 	    valtype = FLOAT;
-	    if (pass == 2) {
-	      vptr = epoch;
-	      if (a >= 'A') {
-	        vptr = (void *)((double *)vptr + alts[a-'A'+1]);
-	      }
-	    }
+	    vptr    = &(wcstem.equinox);
+	    special = wcspih_epoch;
 	
-	    unput(' ');
+	    unput(a);
+	
+	    keyname = "EPOCH";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
@@ -386,60 +471,82 @@ jmp_buf wcspih_abort_jmp_env;
 
 ^EQUINOX {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->equinox);
+	  vptr    = &(wcstem.equinox);
+	
+	  keyname = "EQUINOXa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^MJD-AVG" " {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->mjdavg);
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = &(wcstem.mjdavg);
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "MJD-AVG";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^MJD-OBS" " {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->mjdobs);
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = &(wcstem.mjdobs);
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "MJD-OBS";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^OBSGEO-X {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-X";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^OBSGEO-Y {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo + 1;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo + 1;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-Y";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^OBSGEO-Z {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = (*wcs)->obsgeo + 2;
-	  if (ctrl < -10) keep = wcspih_hdr - 80;
+	  vptr    = wcstem.obsgeo + 2;
+	
+	  if (ctrl < -10) keep = keyrec;
+	
+	  keyname = "OBSGEO-Z";
 	  BEGIN(CCCCCCCC);
 	}
 
 ^RADESYS {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->radesys;
+	  vptr    = wcstem.radesys;
+	
+	  keyname = "RADESYSa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^RADECSYS {
 	  if (relax & WCSHDR_RADECSYS) {
 	    valtype = STRING;
-	    if (pass == 2) vptr = (*wcs)->radesys;
+	    vptr    = wcstem.radesys;
+	
 	    unput(' ');
+	
+	    keyname = "RADECSYS";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "RADECSYS is non-standard, use RADESYSa";
+	    errmsg = "the RADECSYS keyword is deprecated, use RADESYSa";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -449,42 +556,58 @@ jmp_buf wcspih_abort_jmp_env;
 
 ^SPECSYS {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->specsys;
+	  vptr    = wcstem.specsys;
+	
+	  keyname = "SPECSYSa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^SSYSOBS {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->ssysobs;
+	  vptr    = wcstem.ssysobs;
+	
+	  keyname = "SSYSOBSa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^SSYSSRC {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->ssyssrc;
+	  vptr    = wcstem.ssyssrc;
+	
+	  keyname = "SSYSSRCa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^VELANGL {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->velangl);
+	  vptr    = &(wcstem.velangl);
+	
+	  keyname = "VELANGLa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^VELOSYS {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->velosys);
+	  vptr    = &(wcstem.velosys);
+	
+	  keyname = "VELOSYSa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^VELREF{ALT}" " {
 	  sscanf(yytext, "VELREF%c", &a);
 	
-	  if (a == ' ' || relax & WCSHDR_VELREFa) {
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the VELREF keyword is deprecated, use SPECSYSa";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_VELREFa) {
 	    valtype = INTEGER;
-	    if (pass == 2) vptr = &((*wcs)->velref);
+	    vptr    = &(wcstem.velref);
 	
 	    unput(a);
+	
+	    keyname = "VELREF";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
@@ -497,22 +620,18 @@ jmp_buf wcspih_abort_jmp_env;
 	}
 
 ^VSOURCE{ALT} {
-	  sscanf(yytext, "VSOURCE%c", &a);
-	
 	  if (relax & WCSHDR_VSOURCE) {
 	    valtype = FLOAT;
-	    if (pass == 2) {
-	      vptr = vsource;
-	      if (a >= 'A') {
-	        vptr = (void *)((double *)vptr + alts[a-'A'+1]);
-	      }
-	    }
+	    vptr    = &(wcstem.zsource);
+	    special = wcspih_vsource;
 	
-	    unput(' ');
+	    yyless(7);
+	
+	    keyname = "VSOURCEa";
 	    BEGIN(CCCCCCCa);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "Deprecated VSOURCEa keyword rejected";
+	    errmsg = "the VSOURCEa keyword is deprecated, use ZSOURCEa";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -522,21 +641,24 @@ jmp_buf wcspih_abort_jmp_env;
 
 ^WCSNAME {
 	  valtype = STRING;
-	  if (pass == 2) vptr = (*wcs)->wcsname;
+	  vptr    = wcstem.wcsname;
+	
+	  keyname = "WCSNAMEa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^ZSOURCE {
 	  valtype = FLOAT;
-	  if (pass == 2) vptr = &((*wcs)->zsource);
+	  vptr    = &(wcstem.zsource);
+	
+	  keyname = "ZSOURCEa";
 	  BEGIN(CCCCCCCa);
 	}
 
 ^END" "{77} {
-	  yyless(0);
 	  if (wcspih_nkeyrec) {
 	    wcspih_nkeyrec = 0;
-	    errmsg = "Keyrecords following the END keyrecord were ignored";
+	    errmsg = "keyrecords following the END keyrecord were ignored";
 	    BEGIN(ERROR);
 	  } else {
 	    BEGIN(DISCARD);
@@ -550,18 +672,44 @@ jmp_buf wcspih_abort_jmp_env;
 <CCCCCia>{I1}{ALT}" " |
 <CCCCCia>{I2}{ALT} {
 	  sscanf(yytext, "%d%c", &i, &a);
-	  idx = i - 1;
 	  BEGIN(VALUE);
 	}
 
-<CCCCCia>{I3} {
-	  /* Invalid axis number will be caught by <VALUE>. */
-	  sscanf(yytext, "%3d", &i);
-	  BEGIN(VALUE);
+<CCCCCia>0{I1}{ALT} |
+<CCCCCia>00{I1} {
+	  if (relax & WCSHDR_reject) {
+	    /* Violates the basic FITS standard. */
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCCCCia>0{ALT}" " |
+<CCCCCia>00{ALT} |
+<CCCCCia>{Z3} {
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
 	}
 
 <CCCCCia>. {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "keyword looks very much like %s but isn't",
+	      keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Let it go. */
+	    BEGIN(DISCARD);
+	  }
 	}
 
 <CCi_ja>{I1}_{I1}{ALT}"  " |
@@ -569,46 +717,96 @@ jmp_buf wcspih_abort_jmp_env;
 <CCi_ja>{I2}_{I1}{ALT}" " |
 <CCi_ja>{I2}_{I2}{ALT} {
 	  sscanf(yytext, "%d_%d%c", &i, &j, &a);
-	  if (pass == 2) {
-	    wcsp = *wcs;
-	    if (a != ' ') {
-	      wcsp += alts[a-'A'+1];
-	    }
+	  BEGIN(VALUE);
+	}
+
+
+<CCi_ja>0{I1}_{I1}{ALT}" " |
+<CCi_ja>{I1}_0{I1}{ALT}" " |
+<CCi_ja>00{I1}_{I1}{ALT} |
+<CCi_ja>0{I1}_0{I1}{ALT} |
+<CCi_ja>{I1}_00{I1}{ALT} |
+<CCi_ja>000{I1}_{I1} |
+<CCi_ja>00{I1}_0{I1} |
+<CCi_ja>0{I1}_00{I1} |
+<CCi_ja>{I1}_000{I1} |
+<CCi_ja>0{I1}_{I2}{ALT} |
+<CCi_ja>{I1}_0{I2}{ALT} |
+<CCi_ja>00{I1}_{I2} |
+<CCi_ja>0{I1}_0{I2} |
+<CCi_ja>{I1}_00{I2} |
+<CCi_ja>0{I2}_{I1}{ALT} |
+<CCi_ja>{I2}_0{I1}{ALT} |
+<CCi_ja>00{I2}_{I1} |
+<CCi_ja>0{I2}_0{I1} |
+<CCi_ja>{I2}_00{I1} |
+<CCi_ja>0{I2}_{I2} |
+<CCi_ja>{I2}_0{I2} {
+	  if (((altlin == 1) && (relax & WCSHDR_PC0i_0ja)) ||
+	      ((altlin == 2) && (relax & WCSHDR_CD0i_0ja))) {
+	    sscanf(yytext, "%d_%d%c", &i, &j, &a);
+	    BEGIN(VALUE);
 	
-	    idx = (i-1)*(wcsp->naxis) + j - 1;
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
 	  }
-	  BEGIN(VALUE);
 	}
 
-<CCi_ja>{I1}_{I3}{ALT} |
-<CCi_ja>{I3}_{I1}{ALT} |
-<CCi_ja>{I1}_{I4} |
-<CCi_ja>{I2}_{I3} |
-<CCi_ja>{I3}_{I2} |
-<CCi_ja>{I4}_{I1} {
-	  /* Invalid axis numbers will be caught by <VALUE>. */
-	  sscanf(yytext, "%d_%d", &i, &j);
-	  BEGIN(VALUE);
+<CCi_ja>{Z1}_{Z1}{ALT}"  " |
+<CCi_ja>{Z2}_{Z1}{ALT}" " |
+<CCi_ja>{Z1}_{Z2}{ALT}" " |
+<CCi_ja>{Z3}_{Z1}{ALT} |
+<CCi_ja>{Z2}_{Z2}{ALT} |
+<CCi_ja>{Z1}_{Z3}{ALT} |
+<CCi_ja>{Z4}_{Z1} |
+<CCi_ja>{Z3}_{Z2} |
+<CCi_ja>{Z2}_{Z3} |
+<CCi_ja>{Z1}_{Z4} {
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
 	}
 
-<CCi_ja>{I0}{6} {
+<CCi_ja>{Z1}-{Z1}{ALT}"  " |
+<CCi_ja>{Z2}-{Z1}{ALT}" " |
+<CCi_ja>{Z1}-{Z2}{ALT}" " |
+<CCi_ja>{Z3}-{Z1}{ALT} |
+<CCi_ja>{Z2}-{Z2}{ALT} |
+<CCi_ja>{Z1}-{Z3}{ALT} |
+<CCi_ja>{Z4}-{Z1} |
+<CCi_ja>{Z3}-{Z2} |
+<CCi_ja>{Z2}-{Z3} |
+<CCi_ja>{Z1}-{Z4} {
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
+	}
+
+<CCi_ja>{Z1}{6} {
 	  /* This covers the defunct forms CD00i00j and PC00i00j. */
-	  if (((relax & WCSHDR_PC00i00j) && (altlin == 1)) ||
-	      ((relax & WCSHDR_CD00i00j) && (altlin == 2))) {
+	  if (((altlin == 1) && (relax & WCSHDR_PC00i00j)) ||
+	      ((altlin == 2) && (relax & WCSHDR_CD00i00j))) {
 	    sscanf(yytext, "%3d%3d", &i, &j);
 	    a = ' ';
-	    if (pass == 2) {
-	      idx = (i-1)*((*wcs)->naxis) + j - 1;
-	    }
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = errtxt;
-	    sprintf(errmsg, "Defunct form of %si_ja keyword",
-	                     (altlin==1) ? "PC" : "CD");
+	    sprintf(errmsg,
+	      "this form of the %s keyword is deprecated, use %s",
+	      keyname, keyname);
 	    BEGIN(ERROR);
 	
 	  } else {
+	    /* Pretend we don't recognize it. */
 	    BEGIN(DISCARD);
 	  }
 	}
@@ -617,84 +815,162 @@ jmp_buf wcspih_abort_jmp_env;
 	  BEGIN(DISCARD);
 	}
 
-<CROTAi>{I1}{ALT}" " |
-<CROTAi>{I2}{ALT} {
+<CROTAi>{Z1}{ALT}" " |
+<CROTAi>{Z2}{ALT} |
+<CROTAi>{Z3} {
+	  a = ' ';
 	  sscanf(yytext, "%d%c", &i, &a);
-	  if (a == ' ' || relax & WCSHDR_CROTAia) {
-	    idx = i - 1;
-	    BEGIN(VALUE);
+	
+	  if (relax & WCSHDR_strict) {
+	    errmsg = "the CROTAn keyword is deprecated, use PCi_ja";
+	    BEGIN(ERROR);
+	
+	  } else if (a == ' ' || relax & WCSHDR_CROTAia) {
+	    yyless(0);
+	    BEGIN(CCCCCia);
 	
 	  } else if (relax & WCSHDR_reject) {
 	    errmsg = "CROTAn keyword may not have an alternate version code";
 	    BEGIN(ERROR);
 	
 	  } else {
+	    /* Pretend we don't recognize it. */
 	    BEGIN(DISCARD);
 	  }
 	}
 
-<CROTAi>{I3} {
-	  sscanf(yytext, "%d", &i);
-	  a = ' ';
-	  idx = i - 1;
-	  BEGIN(VALUE);
-	}
-
 <CROTAi>. {
-	  BEGIN(DISCARD);
+	  yyless(0);
+	  BEGIN(CCCCCia);
 	}
 
 <CCCCCCCa>{ALT} |
 <CCCCCCCC>. {
-	  idx = -1;
-	
 	  if (YY_START == CCCCCCCa) {
 	    sscanf(yytext, "%c", &a);
 	  } else {
 	    unput(yytext[0]);
 	    a = 0;
 	  }
+	
 	  BEGIN(VALUE);
 	}
 
 <CCCCCCCa>. {
-	  BEGIN(DISCARD);
+	  if (relax & WCSHDR_reject) {
+	    /* Looks too much like a FITS WCS keyword not to flag it. */
+	    errmsg = errtxt;
+	    sprintf(errmsg, "invalid alternate code, keyword resembles %s "
+	      "but isn't", keyname);
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
 	}
 
-<CCi_ma>{I1}_{I0}{ALT}"  " |
+<CCi_ma>{I1}_{Z1}{ALT}"  " |
 <CCi_ma>{I1}_{I2}{ALT}" " |
-<CCi_ma>{I2}_{I0}{ALT}" " |
+<CCi_ma>{I2}_{Z1}{ALT}" " |
 <CCi_ma>{I2}_{I2}{ALT} {
 	  sscanf(yytext, "%d_%d%c", &i, &m, &a);
-	  idx = -1;
 	  BEGIN(VALUE);
 	}
 
-<CCi_ma>{I1}_{I3}{ALT} |
-<CCi_ma>{I3}_{I0}{ALT} |
-<CCi_ma>{I1}_{I4} |
-<CCi_ma>{I2}_{I3} |
-<CCi_ma>{I3}_{I2} |
-<CCi_ma>{I4}_{I0} {
-	  /* Invalid parameters will be caught by <VALUE>. */
-	  sscanf(yytext, "%d_%d", &i, &m);
-	  BEGIN(VALUE);
+<CCi_ma>0{I1}_{Z1}{ALT}" " |
+<CCi_ma>{I1}_0{Z1}{ALT}" " |
+<CCi_ma>00{I1}_{Z1}{ALT} |
+<CCi_ma>0{I1}_0{Z1}{ALT} |
+<CCi_ma>{I1}_00{Z1}{ALT} |
+<CCi_ma>000{I1}_{Z1} |
+<CCi_ma>00{I1}_0{Z1} |
+<CCi_ma>0{I1}_00{Z1} |
+<CCi_ma>{I1}_000{Z1} |
+<CCi_ma>0{I1}_{I2}{ALT} |
+<CCi_ma>{I1}_0{I2}{ALT} |
+<CCi_ma>00{I1}_{I2} |
+<CCi_ma>0{I1}_0{I2} |
+<CCi_ma>{I1}_00{I2} |
+<CCi_ma>0{I2}_{Z1}{ALT} |
+<CCi_ma>{I2}_0{Z1}{ALT} |
+<CCi_ma>00{I2}_{Z1} |
+<CCi_ma>0{I2}_0{Z1} |
+<CCi_ma>{I2}_00{Z1} |
+<CCi_ma>0{I2}_{I2} |
+<CCi_ma>{I2}_0{I2} {
+	  if (((valtype == FLOAT)  && (relax & WCSHDR_PV0i_0ma)) ||
+	      ((valtype == STRING) && (relax & WCSHDR_PS0i_0ma))) {
+	    sscanf(yytext, "%d_%d%c", &i, &m, &a);
+	    BEGIN(VALUE);
+	
+	  } else if (relax & WCSHDR_reject) {
+	    errmsg = "indices in parameterized keywords must not have "
+	             "leading zeroes";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    /* Pretend we don't recognize it. */
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<CCi_ma>{Z1}_{Z1}{ALT}"  " |
+<CCi_ma>{Z2}_{Z1}{ALT}" " |
+<CCi_ma>{Z1}_{Z2}{ALT}" " |
+<CCi_ma>{Z3}_{Z1}{ALT} |
+<CCi_ma>{Z2}_{Z2}{ALT} |
+<CCi_ma>{Z1}_{Z3}{ALT} |
+<CCi_ma>{Z4}_{Z1} |
+<CCi_ma>{Z3}_{Z2} |
+<CCi_ma>{Z2}_{Z3} |
+<CCi_ma>{Z1}_{Z4} {
+	  /* Anything that has fallen through to this point must contain */
+	  /* an invalid axis number. */
+	  errmsg = "axis number must exceed 0";
+	  BEGIN(ERROR);
+	}
+
+<CCi_ma>{Z1}-{Z1}{ALT}"  " |
+<CCi_ma>{Z2}-{Z1}{ALT}" " |
+<CCi_ma>{Z1}-{Z2}{ALT}" " |
+<CCi_ma>{Z3}-{Z1}{ALT} |
+<CCi_ma>{Z2}-{Z2}{ALT} |
+<CCi_ma>{Z1}-{Z3}{ALT} |
+<CCi_ma>{Z4}-{Z1} |
+<CCi_ma>{Z3}-{Z2} |
+<CCi_ma>{Z2}-{Z3} |
+<CCi_ma>{Z1}-{Z4} {
+	  errmsg = errtxt;
+	  sprintf(errmsg, "%s keyword must use an underscore, not a dash",
+	    keyname);
+	  BEGIN(ERROR);
 	}
 
 <CCi_ma>. {
 	  BEGIN(DISCARD);
 	}
 
-<PROJPn>{I0}"  " {
+<PROJPn>{Z1}"  " {
 	  if (relax & WCSHDR_PROJPn) {
 	    sscanf(yytext, "%d", &m);
 	    i = 0;
 	    a = ' ';
-	    idx = -1;
 	    BEGIN(VALUE);
 	
 	  } else if (relax & WCSHDR_reject) {
-	    errmsg = "Defunct PROJPn keyword rejected";
+	    errmsg = "the PROJPn keyword is deprecated, use PVi_ma";
+	    BEGIN(ERROR);
+	
+	  } else {
+	    BEGIN(DISCARD);
+	  }
+	}
+
+<PROJPn>{Z2}" " |
+<PROJPn>{Z3} {
+	  if (relax & (WCSHDR_PROJPn | WCSHDR_reject)) {
+	    errmsg = "invalid PROJPn keyword";
 	    BEGIN(ERROR);
 	
 	  } else {
@@ -708,13 +984,12 @@ jmp_buf wcspih_abort_jmp_env;
 
 <VALUE>=" "+ {
 	  /* Do checks on i, j & m. */
-	  if (i > 99 || j > 99 || m > 99) {
+	  if (99 < i || 99 < j || 99 < m) {
 	    if (relax & WCSHDR_reject) {
-	      errmsg = errtxt;
-	      if (i > 99 || j > 99) {
-	        sprintf(errmsg, "Axis number exceeds 99");
+	      if (99 < i || 99 < j) {
+	        errmsg = "axis number exceeds 99";
 	      } else if (m > 99) {
-	        sprintf(errmsg, "Parameter number exceeds 99");
+	        errmsg = "parameter number exceeds 99";
 	      }
 	      BEGIN(ERROR);
 	
@@ -732,7 +1007,7 @@ jmp_buf wcspih_abort_jmp_env;
 	      BEGIN(STRING_VAL);
 	    } else {
 	      errmsg = errtxt;
-	      sprintf(errmsg, "Internal parser ERROR, bad data type: %d",
+	      sprintf(errmsg, "internal parser ERROR, bad data type: %d",
 	        valtype);
 	      BEGIN(ERROR);
 	    }
@@ -740,250 +1015,264 @@ jmp_buf wcspih_abort_jmp_env;
 	}
 
 <VALUE>. {
-	  errmsg = "Invalid KEYWORD = VALUE syntax";
+	  errmsg = "invalid KEYWORD = VALUE syntax";
 	  BEGIN(ERROR);
 	}
 
 <INTEGER_VAL>{INTEGER} {
-	  if (pass == 1) {
-	    wcspih_naxes(naxis, i, j, a, alts, npptr);
-	    BEGIN(FLUSH);
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords that apply */
-	        /* to every alternate; these have a == 0. */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
-	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
-	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((int **)wptr) + idx;
-	        }
-	
-	        /* Read the keyvalue. */
-	        sscanf(yytext, "%d", (int *)wptr);
+	    /* Read the keyvalue. */
+	    sscanf(yytext, "%d", &inttmp);
 	
-	        if (a) break;
-	      }
-	
-	      BEGIN(COMMENT);
-	
-	    } else {
-	      errmsg = "Internal parser ERROR, null int pointer";
-	      BEGIN(ERROR);
-	    }
+	    BEGIN(COMMENT);
 	  }
 	}
 
 <INTEGER_VAL>. {
-	  errmsg = "An integer value was expected";
+	  errmsg = "an integer value was expected";
 	  BEGIN(ERROR);
 	}
 
 <FLOAT_VAL>{FLOAT} {
-	  if (pass == 1) {
-	    wcspih_naxes(naxis, i, j, a, alts, npptr);
-	    BEGIN(FLUSH);
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
 	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords like MJD-OBS that */
-	        /* apply to every alternate; these have a == 0.  */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
-	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
+	    /* Read the keyvalue. */
+	    wcsutil_str2double(yytext, "%lf", &dbltmp);
 	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((double **)wptr) + idx;
-	
-	        } else if (npptr == npv) {
-	          ipx = (*wcs+ialt)->npv++;
-	          (*wcs+ialt)->pv[ipx].i = i;
-	          (*wcs+ialt)->pv[ipx].m = m;
-	          wptr = &((*wcs+ialt)->pv[ipx].value);
-	        }
-	
-	        /* Read the keyvalue. */
-	        wcsutil_str2double(yytext, "%lf", (double *)wptr);
-	
-	        /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
-	        if (altlin) {
-	          (*wcs+ialt)->altlin |= altlin;
-	          altlin = 0;
-	        }
+	    BEGIN(COMMENT);
+	  }
+	}
+
+<FLOAT_VAL>. {
+	  errmsg = "a floating-point value was expected";
+	  BEGIN(ERROR);
+	}
+
+<STRING_VAL>{STRING} {
+	  if (ipass == 1) {
+	    BEGIN(COMMENT);
 	
-	        if (a) break;
+	  } else {
+	    /* Read the keyvalue. */
+	    strcpy(strtmp, yytext+1);
+	
+	    /* Squeeze out repeated quotes. */
+	    ix = 0;
+	    for (jx = 0; jx < 72; jx++) {
+	      if (ix < jx) {
+	        strtmp[ix] = strtmp[jx];
 	      }
 	
-	      BEGIN(COMMENT);
+	      if (strtmp[jx] == '\0') {
+	        if (ix) strtmp[ix-1] = '\0';
+	        break;
+	      } else if (strtmp[jx] == '\'' && strtmp[jx+1] == '\'') {
+	        jx++;
+	      }
 	
-	    } else {
-	      errmsg = "Internal parser ERROR, null float pointer";
-	      BEGIN(ERROR);
+	      ix++;
 	    }
+	
+	    BEGIN(COMMENT);
 	  }
 	}
 
-<FLOAT_VAL>. {
-	  errmsg = "A floating-point value was expected";
+<STRING_VAL>. {
+	  errmsg = "a string value was expected";
 	  BEGIN(ERROR);
 	}
 
-<STRING_VAL>{STRING} {
-	  if (pass == 1) {
+<COMMENT>{INLINE}$ {
+	  if (ipass == 1) {
+	    /* Do first-pass bookkeeping. */
 	    wcspih_naxes(naxis, i, j, a, alts, npptr);
 	    BEGIN(FLUSH);
 	
-	  } else {
-	    if (vptr) {
-	      /* Determine the coordinate representation. */
-	      for (ialt = 0; ialt < *nwcs; ialt++) {
-	        /* The loop here is for keywords like DATE-OBS that */
-	        /* apply to every alternate; these have a == 0.   */
-	        if (a >= 'A') {
-	          ialt = alts[a-'A'+1];
-	        }
-	
-	        wptr = vptr;
-	        if (ialt) {
-	          voff = (char *)(*wcs+ialt) - (char *)(*wcs);
-	          wptr = (void *)((char *)vptr + voff);
-	        }
+	  } else if (*wcs) {
+	    /* Store the value now that the keyrecord has been validated. */
+	    gotone = 0;
+	    for (ialt = 0; ialt < *nwcs; ialt++) {
+	      /* The loop here is for keywords that apply */
+	      /* to every alternate; these have a == 0. */
+	      if (a >= 'A') {
+	        ialt = alts[a-'A'+1];
+	        if (ialt < 0) break;
+	      }
+	      gotone = 1;
+	
+	      if (vptr) {
+	        wcsp = *wcs + ialt;
+	        voff = (char *)vptr - (char *)(&wcstem);
+	        wptr = (void *)((char *)wcsp + voff);
+	
+	        if (valtype == INTEGER) {
+	          *((int *)wptr) = inttmp;
+	
+	        } else if (valtype == FLOAT) {
+	          /* Apply keyword parameterization. */
+	          if (npptr == npv) {
+	            ipx = (wcsp->npv)++;
+	            wcsp->pv[ipx].i = i;
+	            wcsp->pv[ipx].m = m;
+	            wptr = &(wcsp->pv[ipx].value);
+	
+	          } else if (j) {
+	            wptr = *((double **)wptr) + (i - 1)*(wcsp->naxis)
+	                                      + (j - 1);
+	
+	          } else if (i) {
+	            wptr = *((double **)wptr) + (i - 1);
+	          }
 	
-	        /* Apply keyword parameterization. */
-	        if (idx >= 0) {
-	          wptr = *((char (**)[72])wptr) + idx;
+	          if (special) {
+	            special(wptr, dbltmp);
+	          } else {
+	            *((double *)wptr) = dbltmp;
+	          }
 	
-	        } else if (npptr == nps) {
-	          ipx = (*wcs+ialt)->nps++;
-	          (*wcs+ialt)->ps[ipx].i = i;
-	          (*wcs+ialt)->ps[ipx].m = m;
-	          wptr = (*wcs+ialt)->ps[ipx].value;
-	        }
+	          /* Flag the presence of PCi_ja, or CDi_ja and/or CROTAia. */
+	          if (altlin) {
+	            wcsp->altlin |= altlin;
+	            altlin = 0;
+	          }
 	
-	        /* Read the keyvalue. */
-	        cptr = (char *)wptr;
-	        strcpy(cptr, yytext+1);
+	        } else if (valtype == STRING) {
+	          /* Apply keyword parameterization. */
+	          if (npptr == nps) {
+	            ipx = (wcsp->nps)++;
+	            wcsp->ps[ipx].i = i;
+	            wcsp->ps[ipx].m = m;
+	            wptr = wcsp->ps[ipx].value;
 	
-	        /* Squeeze out repeated quotes. */
-	        ix = 0;
-	        for (jx = 0; jx < 72; jx++) {
-	          if (ix < jx) {
-	            cptr[ix] = cptr[jx];
-	          }
+	          } else if (j) {
+	            wptr = *((char (**)[72])wptr) +
+	                    (i - 1)*(wcsp->naxis) + (j - 1);
 	
-	          if (cptr[jx] == '\0') {
-	            if (ix) cptr[ix-1] = '\0';
-	            break;
-	          } else if (cptr[jx] == '\'' && cptr[jx+1] == '\'') {
-	            jx++;
+	          } else if (i) {
+	            wptr = *((char (**)[72])wptr) + (i - 1);
 	          }
 	
-	          ix++;
+	          cptr = (char *)wptr;
+	          strcpy(cptr, strtmp);
 	        }
+	      }
 	
-	        if (a) break;
+	      if (a) break;
+	    }
+	
+	    if (gotone) {
+	      nvalid++;
+	      if (ctrl == 4) {
+	        wcsfprintf(stderr,
+	          "%.80s\n  Accepted (%d) as a valid WCS keyrecord.\n",
+	          keyrec, nvalid);
 	      }
 	
-	      BEGIN(COMMENT);
+	      BEGIN(FLUSH);
 	
 	    } else {
-	      errmsg = "Internal parser ERROR, null string pointer";
+	      errmsg = "syntactically valid WCS keyrecord has no effect";
 	      BEGIN(ERROR);
 	    }
+	
+	  } else {
+	    BEGIN(FLUSH);
 	  }
 	}
 
-<STRING_VAL>. {
-	  errmsg = "A string value was expected";
+<COMMENT>.*" "*\/.*$ {
+	  errmsg = "invalid keyvalue";
 	  BEGIN(ERROR);
 	}
 
-<COMMENT>" "*\/.* |
-<COMMENT>" "* {
-	  BEGIN(FLUSH);
+<COMMENT>[^ \/\n]*{INLINE}$ {
+	  errmsg = "invalid keyvalue";
+	  BEGIN(ERROR);
+	}
+
+<COMMENT>" "+[^\/\n].*{INLINE}$ {
+	  errmsg = "invalid keyvalue or malformed keycomment";
+	  BEGIN(ERROR);
 	}
 
-<COMMENT>. {
-	  errmsg = "Malformed keycomment";
+<COMMENT>.*$ {
+	  errmsg = "malformed keycomment";
 	  BEGIN(ERROR);
 	}
 
-<DISCARD>.* {
-	  if (pass == 2) {
+<DISCARD>.*$ {
+	  if (ipass == npass) {
 	    if (ctrl < 0) {
 	      /* Preserve discards. */
-	      keep = wcspih_hdr - 80;
+	      keep = keyrec;
 	
-	    } else if (ctrl > 2) {
-	      wcsfprintf(stderr, "%.80s\n  Discarded.\n", wcspih_hdr-80);
+	    } else if (2 < ctrl) {
+	      nother++;
+	      wcsfprintf(stderr, "%.80s\n  Not a recognized WCS keyword.\n",
+	        keyrec);
 	    }
 	  }
 	  BEGIN(FLUSH);
 	}
 
-<ERROR>.* {
-	  (*nreject)++;
-	  if (pass == 2) {
+<ERROR>.*$ {
+	  if (ipass == npass) {
+	    (*nreject)++;
+	
 	    if (ctrl%10 == -1) {
 	      /* Preserve rejects. */
-	      keep = wcspih_hdr - 80;
+	      keep = keyrec;
 	    }
 	
-	    if (abs(ctrl%10) > 1) {
-	      wcsfprintf(stderr, "%.80s\n%4d: %s.\n", wcspih_hdr-80, *nreject,
-	        errmsg);
+	    if (1 < abs(ctrl%10)) {
+	      wcsfprintf(stderr, "%.80s\n  Rejected (%d), %s.\n",
+	        keyrec, *nreject, errmsg);
 	    }
 	  }
 	  BEGIN(FLUSH);
 	}
 
 <FLUSH>.*\n {
-	  if (pass == 2 && keep) {
+	  if (ipass == npass && keep) {
 	    if (hptr < keep) {
 	      strncpy(hptr, keep, 80);
 	    }
 	    hptr += 80;
 	  }
 	
-	  i = j = m = 0;
+	  /* Throw away the rest of the line and reset for the next one. */
+	  i = j = 0;
+	  m = 0;
 	  a = ' ';
+	
+	  keyrec += 80;
+	
 	  valtype = -1;
-	  keep = 0x0;
-	  altlin = 0;
-	  npptr = 0x0;
+	  vptr    = 0x0;
+	  keep    = 0x0;
+	
+	  altlin  = 0;
+	  npptr   = 0x0;
+	  special = 0x0;
+	
 	  BEGIN(INITIAL);
 	}
 
 <<EOF>>	 {
 	  /* End-of-input. */
-	  if (pass == 1) {
+	  if (ipass == 1) {
 	    if ((status = wcspih_inits(naxis, alts, npv, nps, nwcs, wcs)) ||
-	         *nwcs == 0) {
+	        (*nwcs == 0 && ctrl == 0)) {
 	      yylex_destroy();
 	      return status;
 	    }
 	
-	    if (abs(ctrl%10) > 2) {
+	    if (2 < abs(ctrl%10)) {
 	      if (*nwcs == 1) {
 	        if (strcmp(wcs[0]->wcsname, "DEFAULTS") != 0) {
 	          wcsfprintf(stderr, "Found one coordinate representation.\n");
@@ -993,15 +1282,24 @@ jmp_buf wcspih_abort_jmp_env;
 	          *nwcs);
 	      }
 	    }
+	  }
 	
+	  if (ipass++ < npass) {
 	    wcspih_hdr = header;
 	    wcspih_nkeyrec = nkeyrec;
+	    keyrec = header;
 	    *nreject = 0;
 	
-	    pass = 2;
-	    i = j = m = 0;
+	    i = j = 0;
+	    m = 0;
 	    a = ' ';
+	
 	    valtype = -1;
+	    vptr    = 0x0;
+	
+	    altlin  = 0;
+	    npptr   = 0x0;
+	    special = 0x0;
 	
 	    yyrestart(yyin);
 	
@@ -1011,11 +1309,19 @@ jmp_buf wcspih_abort_jmp_env;
 	    if (ctrl < 0) {
 	      *hptr = '\0';
 	    } else if (ctrl == 1) {
-	      wcsfprintf(stderr, "%d WCS keyrecords were rejected.\n",
-	        *nreject);
+	      wcsfprintf(stderr, "%d WCS keyrecord%s rejected.\n",
+	        *nreject, (*nreject==1)?" was":"s were");
+	    } else if (ctrl == 4) {
+	      wcsfprintf(stderr, "\n");
+	      wcsfprintf(stderr, "%5d keyrecord%s rejected for syntax or "
+	        "other errors,\n", *nreject, (*nreject==1)?" was":"s were");
+	      wcsfprintf(stderr, "%5d %s recognized as syntactically valid, "
+	        "and\n", nvalid, (nvalid==1)?"was":"were");
+	      wcsfprintf(stderr, "%5d other%s were not recognized as WCS "
+	        "keyrecords.\n", nother, (nother==1)?"":"s");
 	    }
 	
-	    return wcspih_final(alts, epoch, vsource, nwcs, wcs);
+	    return wcspih_final(alts, nwcs, wcs);
 	  }
 	}
 
@@ -1131,6 +1437,10 @@ int wcspih_inits(
         alts[ialt] = (*nwcs)++;
 
         wcsp++;
+
+      } else {
+        /* Signal that there is no wcsprm for this alt. */
+        alts[ialt] = -1;
       }
     }
 
@@ -1144,34 +1454,54 @@ int wcspih_inits(
 
 
 /*----------------------------------------------------------------------------
+* Interpret EPOCHa keywords.
+*---------------------------------------------------------------------------*/
+
+int wcspih_epoch(double *equinox, double epoch)
+
+{
+  /* If EQUINOXa is currently undefined then set it from EPOCHa. */
+  if (undefined(*equinox)) {
+    *equinox = epoch;
+  }
+
+  return 0;
+}
+
+
+/*----------------------------------------------------------------------------
+* Interpret VSOURCEa keywords.
+*---------------------------------------------------------------------------*/
+
+int wcspih_vsource(double *zsource, double vsource)
+
+{
+  double beta, c = 299792458.0;
+
+  /* If ZSOURCEa is currently undefined then set it from VSOURCEa. */
+  if (undefined(*zsource)) {
+    /* Convert relativistic Doppler velocity to redshift. */
+    beta = vsource/c;
+    *zsource = (1.0 + beta)/sqrt(1.0 - beta*beta) - 1.0;
+  }
+
+  return 0;
+}
+
+
+/*----------------------------------------------------------------------------
 * Interpret special keywords encountered for each coordinate representation.
 *---------------------------------------------------------------------------*/
 
 int wcspih_final(
   int alts[],
-  double epoch[],
-  double vsource[],
   int *nwcs,
   struct wcsprm **wcs)
 
 {
   int ialt, status;
-  double beta, c = 299792458.0;
 
   for (ialt = 0; ialt < *nwcs; ialt++) {
-    /* Check for EPOCH overriding EQUINOXa. */
-    if (undefined((*wcs+ialt)->equinox) && !undefined(epoch[ialt])) {
-      /* Set EQUINOXa. */
-      (*wcs+ialt)->equinox = epoch[ialt];
-    }
-
-    /* Check for VSOURCEa overriding ZSOURCEa. */
-    if (undefined((*wcs+ialt)->zsource) && !undefined(vsource[ialt])) {
-      /* Convert relativistic Doppler velocity to redshift. */
-      beta = vsource[ialt]/c;
-      (*wcs+ialt)->zsource = (1.0+beta)/sqrt(1.0 - beta*beta) - 1.0;
-    }
-
     /* Interpret -TAB header keywords. */
     if ((status = wcstab(*wcs+ialt))) {
        wcsvfree(nwcs, wcs);
diff --git a/C/wcsprintf.c b/C/wcsprintf.c
index 29018b9..70939c3 100644
--- a/C/wcsprintf.c
+++ b/C/wcsprintf.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsprintf.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsprintf.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdarg.h>
@@ -39,6 +39,7 @@ static size_t wcsprintf_size = 0;
 /*--------------------------------------------------------------------------*/
 
 int wcsprintf_set(FILE *wcsout)
+
 {
   if (wcsout != 0x0) {
     /* Output to file. */
@@ -72,6 +73,7 @@ int wcsprintf_set(FILE *wcsout)
 /*--------------------------------------------------------------------------*/
 
 const char *wcsprintf_buf(void)
+
 {
   return wcsprintf_buff;
 }
@@ -79,6 +81,7 @@ const char *wcsprintf_buf(void)
 /*--------------------------------------------------------------------------*/
 
 int wcsprintf(const char *format, ...)
+
 {
   char *realloc_buff;
   int  nbytes;
@@ -124,6 +127,7 @@ int wcsprintf(const char *format, ...)
 /*--------------------------------------------------------------------------*/
 
 int wcsfprintf(FILE *stream, const char *format, ...)
+
 {
   char *realloc_buff;
   int  nbytes;
diff --git a/C/wcsprintf.h b/C/wcsprintf.h
index 43c08c2..484ab98 100644
--- a/C/wcsprintf.h
+++ b/C/wcsprintf.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsprintf.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsprintf.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.
 *
 * Summary of the wcsprintf routines
diff --git a/C/wcstrig.c b/C/wcstrig.c
index 90a9eb8..b8a152e 100644
--- a/C/wcstrig.c
+++ b/C/wcstrig.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcstrig.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcstrig.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/C/wcstrig.h b/C/wcstrig.h
index 4827279..9015891 100644
--- a/C/wcstrig.h
+++ b/C/wcstrig.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcstrig.h,v 4.25.1.3 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcstrig.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * Summary of the wcstrig routines
diff --git a/C/wcsulex.l b/C/wcsulex.l
index ff5307b..a2a68f4 100644
--- a/C/wcsulex.l
+++ b/C/wcsulex.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsulex.l,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsulex.l,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * wcsulex.l is a Flex description file containing the definition of a
diff --git a/C/wcsunits.c b/C/wcsunits.c
index 9e6bdf2..09680b5 100644
--- a/C/wcsunits.c
+++ b/C/wcsunits.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsunits.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsunits.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/C/wcsunits.h b/C/wcsunits.h
index eddfb6f..df8b483 100644
--- a/C/wcsunits.h
+++ b/C/wcsunits.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,10 +22,10 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsunits.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsunits.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
-* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System
+* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System
 * (WCS) standard.  Refer to
 *
 *   "Representations of world coordinates in FITS",
diff --git a/C/wcsutil.c b/C/wcsutil.c
index 0081cf9..9a165dd 100644
--- a/C/wcsutil.c
+++ b/C/wcsutil.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsutil.c,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsutil.c,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *===========================================================================*/
 
 #include <ctype.h>
diff --git a/C/wcsutil.h b/C/wcsutil.h
index bfc059a..d74e509 100644
--- a/C/wcsutil.h
+++ b/C/wcsutil.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsutil.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsutil.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * Summary of the wcsutil routines
diff --git a/C/wcsutrn.l b/C/wcsutrn.l
index 1621ffb..4de60eb 100644
--- a/C/wcsutrn.l
+++ b/C/wcsutrn.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsutrn.l,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $
+  $Id: wcsutrn.l,v 5.0 2015/04/05 09:18:13 mcalabre Exp $
 *=============================================================================
 *
 * wcsutrn.l is a Flex description file containing the definition of a lexical
diff --git a/CHANGES b/CHANGES
index f61e402..886838c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,66 @@
+WCSLIB version 5.0 (2015/04/05)
+--------------------------------
+
+* C library
+
+  - Implemented the framework of WCS Paper IV (the draft distortions
+    proposal) based on a new struct, disprm, and suite of routines with
+    header dis.h: disini(), disalloc(), discpy(), disfree(), disprt(),
+    disset(), disp2x(), and disx2p().  New test program tdis1.
+    
+    Consequent changes to the linprm struct have altered its ABI, thus
+    necessitating an increment in the WCSLIB major verion number.
+
+  - wcsset() now recognises the "TPV" projection proposed in an early
+    draft of WCS Paper II, and translates it into a disprm distortion.
+    Additionally, it recognises "TPU" as equivalent to "TPV" but using
+    a prior distortion (coming before the linear transformation matrix)
+    rather than sequent (coming after it).
+
+  - Added a "lint" function to wcsware to check a FITS header for
+    conformance to the WCS standard.  New test program twcslint.
+
+  - In wcspih() and wcsbth(), added relaxation flags to allow PC0i_0ja,
+    PV0j_0ma, and PS0j_0ma (i.e. with leading zeroes on the index).
+
+  - Added wcslib_version() to return the WCSLIB version number, as
+    suggested by Ole Streicher.
+
+  - Fixed problems uncovered by valgrind in prjbchk() (reported by
+    Ger van Diepen), sphx2s(), sphx2s(), spcspxe(), spcxpse(), tabini(),
+    and wcshdo_util().
+
+  - Tidied up error reporting, particularly relating to translating
+    status returns from lower-level functions.  New functions linperr()
+    and celperr() report error messages from the structs they contain
+    in addition to their own.
+
+  - Changed output formatting of floating point values and addresses in
+    linprt(), celprt(), prjprt(), spcprt(), tabprt(), and wcsprt().
+    Updated the test output reference files for tbth1, tpih1, twcsfix,
+    twcssub, and twcstab to suit.
+
+  - Tidied up several of the test programs, mostly to free memory
+    explicitly before exit so that valgrind doesn't report leaks.
+
+* Fortran wrappers
+
+  - Wrappers for the new distortion functions.  New test programs
+    tdis1.f and tdis2.f.
+
+  - Updates following changes to wcspih() and wcsbth().
+
+  - Added wrappers for linperr() and celperr().  Also added prjperr_(),
+    spcperr_(), and tabperr_() as convenient wrappers on wcserr_prt().
+
+  - Wrapper for wcslib_version().
+
+* PGSBOX
+
+  - In PGCRLB, fixed an incorrect use of the MOD intrinsic reported by
+    'gfortran -std=f95' via Jean-Baptiste Marquette.
+
+
 WCSLIB version 4.25.1 (2015/01/05)
 ----------------------------------
 
@@ -2181,4 +2244,4 @@ WCSLIB version 1.0 (1995/01/31)
   Initial release.
 
 ------------------------------------------------------------------------
-$Id: CHANGES,v 4.25.1.2 2015/01/05 03:28:58 mcalabre Exp mcalabre $
+$Id: CHANGES,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
diff --git a/Fortran/GNUmakefile b/Fortran/GNUmakefile
index a73594a..d8eb0cc 100644
--- a/Fortran/GNUmakefile
+++ b/Fortran/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for building the WCSLIB 4.25 FORTRAN wrappers.
+# GNU makefile for building the WCSLIB 5.0 FORTRAN wrappers.
 #
 # Summary of the main targets
 # ---------------------------
@@ -29,7 +29,7 @@
 #   1) If you need to make changes then preferably modify ../makedefs.in
 #      instead and re-run configure.
 #
-#   2) This makefile assumes that the WCSLIB 4.25 sources reside in ../C
+#   2) This makefile assumes that the WCSLIB 5.0 sources reside in ../C
 #      (as in the distribution kit).
 #
 #   3) twcstab assumes that ../C/wcstab.fits has already been generated by
@@ -37,7 +37,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include ../makedefs
@@ -66,8 +66,8 @@ vpath %.in ..
 # For building and exercising the test suite
 # ------------------------------------------
 # Test programs that don't require CFITSIO or PGPLOT.
-TEST_N := tlin tlog tprj1 tsph tspx ttab1 twcs twcssub tpih1 tfitshdr tunits \
-          twcsfix
+TEST_N := tlin tdis1 tdis2 tlog tprj1 tsph tspx ttab1 twcs twcssub tpih1 \
+          tfitshdr tunits twcsfix
 
 # Test programs that require CFITSIO (they don't need PGPLOT).
 TEST_C := twcstab
@@ -142,6 +142,9 @@ $(PICLIB)(%.o) : %.f
 	-@ echo ''
 	   $(FC) $(FFLAGS) -c $<
 
+%.fits : ../C/test/%.keyrec tofits
+	   ./tofits < $< > $@
+
 run_% : %
 	-@ echo ''
 	-@ $(TIMER)
@@ -252,7 +255,7 @@ cleaner : clean
 	-  $(RM) .gdb_history
 	-  $(RM) $(TEST_N)
 	-  $(RM) $(TEST_P) tpih2 twcstab
-	-  $(RM) tofits pih.fits test_results
+	-  $(RM) tofits fitshdr.fits pih.fits TPV7.fits test_results
 
 cleanest distclean realclean : cleaner
 	-  $(RM) $(WCSLIB) $(PICLIB) $(SHRLIB)
@@ -299,8 +302,7 @@ $(PGSBOXLIB) :
 tofits : ../C/test/tofits.c
 	   $(CC) $(CFLAGS) -o $@ $<
 
-pih.fits : ../C/test/pih.keyrec tofits
-	   sed '/^BADKEYREC/q' $< | ./tofits > $@
+../C/wcstab.fits : ;
 
 GNUmakefile : ../makedefs ;
 
@@ -336,6 +338,8 @@ $(WCSLIB)(wcsunits_f.o) : wcsconfig_f77.h wcserr.h wcsunits.h wcsutil.h
 tcel1   : cel.inc prj.inc
 tfitshdr: fitshdr.inc wcshdr.inc
 tlin    : lin.inc
+tdis1   : wcserr.inc wcshdr.inc lin.inc
+tdis2   : wcserr.inc wcshdr.inc lin.inc dis.inc
 tlog    : log.inc
 tpih1   : wcs.inc wcsfix.inc wcshdr.inc
 tpih2   : wcs.inc wcshdr.inc
@@ -353,5 +357,7 @@ twcsmix : cel.inc lin.inc prj.inc wcs.inc
 twcssub : wcs.inc
 twcstab : getwcstab.inc wcs.inc wcsfix.inc wcshdr.inc
 
-run_tfitshdr run_tpih1 run_tpih2: pih.fits
+run_tdis1 run_tdis2 : TPV7.fits
+run_tfitshdr : fitshdr.fits
+run_tpih1 run_tpih2: pih.fits
 run_twcstab: ../C/wcstab.fits
diff --git a/Fortran/cel.inc b/Fortran/cel.inc
index 7bab5ee..f6b7a90 100644
--- a/Fortran/cel.inc
+++ b/Fortran/cel.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,14 +22,19 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: cel.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: cel.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  CELFREE, CELGET, CELGTC, CELGTD, CELGTI, CELINI, CELPRT,
-     :          CELPTC,  CELPTD, CELPTI, CELPUT, CELS2X, CELSET, CELX2S
-      INTEGER   CELFREE, CELGET, CELGTC, CELGTD, CELGTI, CELINI, CELPRT,
-     :          CELPTC,  CELPTD, CELPTI, CELPUT, CELS2X, CELSET, CELX2S
+      EXTERNAL  CELPUT, CELPTC,  CELPTD, CELPTI,
+     :          CELGET, CELGTC,  CELGTD, CELGTI,
+     :          CELINI, CELFREE, CELPRT, CELPERR,
+     :          CELSET, CELX2S,  CELS2X
+
+      INTEGER   CELPUT, CELPTC,  CELPTD, CELPTI,
+     :          CELGET, CELGTC,  CELGTD, CELGTI,
+     :          CELINI, CELFREE, CELPRT, CELPERR,
+     :          CELSET, CELX2S,  CELS2X
 
 *     Length of the CELPRM data structure (INTEGER array) on 64-bit
 *     machines.  Only needs to be 144 on 32-bit machines.
@@ -37,8 +42,8 @@
       PARAMETER (CELLEN = 150)
 
 *     Codes for CEL data structure elements used by CELPUT and CELGET.
-      INTEGER   CEL_FLAG, CEL_OFFSET, CEL_PHI0, CEL_PRJ, CEL_REF,
-     :          CEL_THETA0
+      INTEGER   CEL_FLAG, CEL_OFFSET, CEL_PHI0, CEL_THETA0, CEL_REF,
+     :          CEL_PRJ
 
       PARAMETER (CEL_FLAG   = 100)
       PARAMETER (CEL_OFFSET = 101)
@@ -48,7 +53,7 @@
       PARAMETER (CEL_PRJ    = 105)
 
 *     Codes for CEL data structure elements used by CELGET (only).
-      INTEGER   CEL_ERR, CEL_EULER, CEL_ISOLAT, CEL_LATPRQ
+      INTEGER   CEL_EULER, CEL_LATPRQ, CEL_ISOLAT, CEL_ERR
 
       PARAMETER (CEL_EULER  = 200)
       PARAMETER (CEL_LATPRQ = 201)
@@ -56,10 +61,9 @@
       PARAMETER (CEL_ERR    = 203)
 
 *     Error codes and messages.
-      INTEGER   CELERR_BAD_COORD_TRANS, CELERR_BAD_PARAM,
-     :          CELERR_BAD_PIX, CELERR_BAD_WORLD,
-     :          CELERR_ILL_COORD_TRANS, CELERR_NULL_POINTER,
-     :          CELERR_SUCCESS
+      INTEGER   CELERR_SUCCESS, CELERR_NULL_POINTER, CELERR_BAD_PARAM,
+     :          CELERR_BAD_COORD_TRANS, CELERR_ILL_COORD_TRANS,
+     :          CELERR_BAD_PIX, CELERR_BAD_WORLD
 
       PARAMETER (CELERR_SUCCESS         = 0)
       PARAMETER (CELERR_NULL_POINTER    = 1)
diff --git a/Fortran/cel_data.f b/Fortran/cel_data.f
index 93cbdd4..8e55f31 100644
--- a/Fortran/cel_data.f
+++ b/Fortran/cel_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: cel_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: cel_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA CEL_BLOCK_DATA
diff --git a/Fortran/cel_f.c b/Fortran/cel_f.c
index 9b9ca9a..24008bc 100644
--- a/Fortran/cel_f.c
+++ b/Fortran/cel_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,31 +22,34 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cel_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: cel_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
+#include <string.h>
 
+#include <wcserr.h>
 #include <cel.h>
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
-#define celini_  F77_FUNC(celini,  CELINI)
 #define celput_  F77_FUNC(celput,  CELPUT)
-#define celget_  F77_FUNC(celget,  CELGET)
-#define celfree_ F77_FUNC(celfree, CELFREE)
-#define celprt_  F77_FUNC(celprt,  CELPRT)
-#define celset_  F77_FUNC(celset,  CELSET)
-#define celx2s_  F77_FUNC(celx2s,  CELX2S)
-#define cels2x_  F77_FUNC(cels2x,  CELS2X)
-
 #define celptc_  F77_FUNC(celptc,  CELPTC)
 #define celptd_  F77_FUNC(celptd,  CELPTD)
 #define celpti_  F77_FUNC(celpti,  CELPTI)
+#define celget_  F77_FUNC(celget,  CELGET)
 #define celgtc_  F77_FUNC(celgtc,  CELGTC)
 #define celgtd_  F77_FUNC(celgtd,  CELGTD)
 #define celgti_  F77_FUNC(celgti,  CELGTI)
 
+#define celini_  F77_FUNC(celini,  CELINI)
+#define celfree_ F77_FUNC(celfree, CELFREE)
+#define celprt_  F77_FUNC(celprt,  CELPRT)
+#define celperr_ F77_FUNC(celperr, CELPERR)
+#define celset_  F77_FUNC(celset,  CELSET)
+#define celx2s_  F77_FUNC(celx2s,  CELX2S)
+#define cels2x_  F77_FUNC(cels2x,  CELS2X)
+
 #define CEL_FLAG   100
 #define CEL_OFFSET 101
 #define CEL_PHI0   102
@@ -61,14 +64,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int celini_(int *cel)
-
-{
-  return celini((struct celprm *)cel);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int celput_(int *cel, const int *what, const void *value, const int *i)
 
 {
@@ -218,6 +213,14 @@ int celgti_(const int *cel, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int celini_(int *cel)
+
+{
+  return celini((struct celprm *)cel);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int celfree_(int *cel)
 
 {
@@ -226,14 +229,42 @@ int celfree_(int *cel)
 
 /*--------------------------------------------------------------------------*/
 
-int celprt_(int *cel)
+int celprt_(const int *cel)
 
 {
   /* This may or may not force the Fortran I/O buffers to be flushed.  If
    * not, try CALL FLUSH(6) before calling CELPRT in the Fortran code. */
   fflush(NULL);
 
-  return celprt((struct celprm *)cel);
+  return celprt((const struct celprm *)cel);
+}
+
+/*--------------------------------------------------------------------------*/
+
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int celperr_(int *cel, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling CELPERR in the Fortran code. */
+  fflush(NULL);
+
+  return celperr((struct celprm *)cel, prefix_);
 }
 
 /*--------------------------------------------------------------------------*/
diff --git a/Fortran/dis.inc b/Fortran/dis.inc
new file mode 100644
index 0000000..5be414c
--- /dev/null
+++ b/Fortran/dis.inc
@@ -0,0 +1,78 @@
+*=======================================================================
+*
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
+* Copyright (C) 1995-2015, Mark Calabretta
+*
+* This file is part of WCSLIB.
+*
+* WCSLIB is free software: you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as published
+* by the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* WCSLIB is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+* License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+*
+* Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+*
+* Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+* http://www.atnf.csiro.au/people/Mark.Calabretta
+* $Id: dis.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+*=======================================================================
+
+*     Functions.
+      EXTERNAL  DISALLOC,
+     :          DISPUT, DISPTC,   DISPTD, DISPTI,
+     :          DISGET, DISGTC,   DISGTD, DISGTI,
+     :          DISINI, DISPARMS, DISCPY, DISFREE, DISPRT, DISPERR,
+     :          DISSET, DISP2X,   DISX2P
+
+      INTEGER   DISALLOC,
+     :          DISPUT, DISPTC,   DISPTD, DISPTI,
+     :          DISGET, DISGTC,   DISGTD, DISGTI,
+     :          DISINI, DISPARMS, DISCPY, DISFREE, DISPRT, DISPERR,
+     :          DISSET, DISP2X,   DISX2P
+
+*     Length of the DISPRM data structure (INTEGER array) on 64-bit
+*     machines.  Only needs to be 28 on 32-bit machines.
+      INTEGER   DISLEN
+      PARAMETER (DISLEN = 48)
+
+*     Codes for DIS data structure elements used by DISPUT and DISGET.
+      INTEGER   DIS_FLAG, DIS_NAXIS, DIS_DTYPE, DIS_AXMAP, DIS_OFFSET,
+     :          DIS_SCALE, DIS_NPARM, DIS_PARMS, DIS_MAXDIS, DIS_TOTDIS
+
+      PARAMETER (DIS_FLAG   = 100)
+      PARAMETER (DIS_NAXIS  = 101)
+      PARAMETER (DIS_DTYPE  = 102)
+      PARAMETER (DIS_AXMAP  = 103)
+      PARAMETER (DIS_OFFSET = 104)
+      PARAMETER (DIS_SCALE  = 105)
+      PARAMETER (DIS_NPARM  = 106)
+      PARAMETER (DIS_PARMS  = 107)
+      PARAMETER (DIS_MAXDIS = 108)
+      PARAMETER (DIS_TOTDIS = 109)
+
+*     Codes for DIS data structure elements used by DISGET (only).
+      INTEGER   DIS_ERR
+
+      PARAMETER (DIS_ERR    = 201)
+
+*     Error codes and messages.
+      INTEGER   DISERR_SUCCESS, DISERR_NULL_POINTER, DISERR_MEMORY,
+     :          DISERR_DISTORT_INIT, DISERR_DISTORT, DISERR_DEDISTORT
+
+      PARAMETER (DISERR_SUCCESS      = 0)
+      PARAMETER (DISERR_NULL_POINTER = 1)
+      PARAMETER (DISERR_MEMORY       = 2)
+      PARAMETER (DISERR_DISTORT_INIT = 3)
+      PARAMETER (DISERR_DISTORT      = 4)
+      PARAMETER (DISERR_DEDISTORT    = 5)
+
+      CHARACTER DIS_ERRMSG(0:5)*80
+      COMMON /DIS_DATA/ DIS_ERRMSG
diff --git a/Fortran/lin_data.f b/Fortran/dis_data.f
similarity index 74%
copy from Fortran/lin_data.f
copy to Fortran/dis_data.f
index 2417224..8f1664e 100644
--- a/Fortran/lin_data.f
+++ b/Fortran/dis_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,19 +22,21 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: lin_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: dis_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
-      BLOCK DATA LIN_BLOCK_DATA
+      BLOCK DATA DIS_BLOCK_DATA
 
-      CHARACTER LIN_ERRMSG(0:3)*80
+      CHARACTER DIS_ERRMSG(0:5)*80
 
-      COMMON /LIN_DATA/ LIN_ERRMSG
+      COMMON /DIS_DATA/ DIS_ERRMSG
 
-      DATA LIN_ERRMSG /
+      DATA DIS_ERRMSG /
      :  'Success',
-     :  'Null linprm pointer passed',
+     :  'Null disprm pointer passed',
      :  'Memory allocation failed',
-     :  'PCi_ja matrix is singular'/
+     :  'Failed to initialize distortion functions',
+     :  'Distort error',
+     :  'De-distort error'/
 
       END
diff --git a/Fortran/dis_f.c b/Fortran/dis_f.c
new file mode 100644
index 0000000..fa172ea
--- /dev/null
+++ b/Fortran/dis_f.c
@@ -0,0 +1,487 @@
+/*============================================================================
+
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
+  Copyright (C) 1995-2015, Mark Calabretta
+
+  This file is part of WCSLIB.
+
+  WCSLIB is free software: you can redistribute it and/or modify it under the
+  terms of the GNU Lesser General Public License as published by the Free
+  Software Foundation, either version 3 of the License, or (at your option)
+  any later version.
+
+  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+  more details.
+
+  You should have received a copy of the GNU Lesser General Public License
+  along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+
+  Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+
+  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+  http://www.atnf.csiro.au/people/Mark.Calabretta
+  $Id: dis_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
+*=============================================================================
+*
+* In these wrappers, if
+*
+*   deref == 0, then dis is the address of a Fortran INTEGER array of length
+*               DISLEN containing a disprm struct.
+*
+*   deref == 1, then dis is the address of a Fortran INTEGER(2) array holding
+*               the address of a disprm struct, such as is returned by
+*               disalloc_(), or linget() with LIN_DISPRE or LIN_DISSEQ.
+*
+*---------------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <wcserr.h>
+#include <wcsutil.h>
+#include <dis.h>
+
+/* Fortran name mangling. */
+#include <wcsconfig_f77.h>
+#define disalloc_ F77_FUNC(disalloc, DISALLOC)
+#define disput_   F77_FUNC(disput,   DISPUT)
+#define disptc_   F77_FUNC(disptc,   DISPTC)
+#define disptd_   F77_FUNC(disptd,   DISPTD)
+#define dispti_   F77_FUNC(dispti,   DISPTI)
+#define disget_   F77_FUNC(disget,   DISGET)
+#define disgtc_   F77_FUNC(disgtc,   DISGTC)
+#define disgtd_   F77_FUNC(disgtd,   DISGTD)
+#define disgti_   F77_FUNC(disgti,   DISGTI)
+
+#define disini_   F77_FUNC(disini,   DISINI)
+#define disparms_ F77_FUNC(disparms, DISPARMS)
+#define discpy_   F77_FUNC(discpy,   DISCPY)
+#define disfree_  F77_FUNC(disfree,  DISFREE)
+#define disprt_   F77_FUNC(disprt,   DISPRT)
+#define disperr_  F77_FUNC(disperr,  DISPERR)
+#define disset_   F77_FUNC(disset,   DISSET)
+#define disp2x_   F77_FUNC(disp2x,   DISP2X)
+#define disx2p_   F77_FUNC(disx2p,   DISX2P)
+
+#define DIS_FLAG   100
+#define DIS_NAXIS  101
+#define DIS_DTYPE  102
+#define DIS_AXMAP  103
+#define DIS_OFFSET 104
+#define DIS_SCALE  105
+#define DIS_NPARM  106
+#define DIS_PARMS  107
+#define DIS_MAXDIS 108
+#define DIS_TOTDIS 109
+
+#define DIS_ERR    201
+
+/*--------------------------------------------------------------------------*/
+
+/* disp should be the address of an INTEGER(2) array.  On return it holds   */
+/* the address of an allocated disprm struct.                               */
+
+int disalloc_(int *disp)
+
+{
+  if ((*(struct disprm **)disp = calloc(1, sizeof(struct disprm))) == 0x0) {
+    return DISERR_MEMORY;
+  }
+
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disput_(
+  const int *deref,
+  int *dis,
+  const int *what,
+  const void *value,
+  const int *j,
+  const int *k)
+
+{
+  int j0, k0;
+  const char *cvalp;
+  const int  *ivalp;
+  const double *dvalp;
+  struct disprm *disp;
+
+  /* Cast pointers. */
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  cvalp = (const char *)value;
+  ivalp = (const int *)value;
+  dvalp = (const double *)value;
+
+  /* Convert 1-relative FITS (and Fortran) axis numbers and parameter */
+  /* indices to 0-relative C array indices.                           */
+  j0 = *j - 1;
+  k0 = *k - 1;
+
+  switch (*what) {
+  case DIS_FLAG:
+    disp->flag = *ivalp;
+    break;
+  case DIS_NAXIS:
+    disp->naxis = *ivalp;
+    disp->flag = 0;
+    break;
+  case DIS_DTYPE:
+    strncpy(disp->dtype[j0], cvalp, 16);
+    wcsutil_null_fill(16, disp->dtype[j0]);
+    disp->flag = 0;
+    break;
+  case DIS_AXMAP:
+    disp->axmap[j0][k0] = *ivalp;
+    disp->flag = 0;
+    break;
+  case DIS_OFFSET:
+    disp->offset[j0][k0] = *dvalp;
+    break;
+  case DIS_SCALE:
+    disp->scale[j0][k0] = *dvalp;
+    break;
+  case DIS_NPARM:
+    disp->nparm[j0] = *ivalp;
+    disp->flag = 0;
+    break;
+  case DIS_PARMS:
+    disp->parms[j0][k0] = *dvalp;
+    disp->flag = 0;
+    break;
+  case DIS_MAXDIS:
+    disp->maxdis[j0] = *dvalp;
+    break;
+  case DIS_TOTDIS:
+    disp->totdis = *dvalp;
+    break;
+  default:
+    return 1;
+  }
+
+  return 0;
+}
+
+int disptc_(const int *deref, int *dis, const int *what, const char *value,
+  const int *j, const int *k)
+{
+  return disput_(deref, dis, what, value, j, k);
+}
+
+int disptd_(const int *deref, int *dis, const int *what, const double *value,
+  const int *j, const int *k)
+{
+  return disput_(deref, dis, what, value, j, k);
+}
+
+int dispti_(const int *deref, int *dis, const int *what, const int *value,
+  const int *j, const int *k)
+{
+  return disput_(deref, dis, what, value, j, k);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disget_(const int *deref, const int *dis, const int *what, void *value)
+
+{
+  int j, k, naxis;
+  char   *cvalp;
+  int    *ivalp;
+  double *dvalp;
+  const int    *idisp;
+  const struct disprm *disp;
+
+  /* Cast pointers. */
+  if (*deref == 0) {
+    disp = (const struct disprm *)dis;
+  } else {
+    disp = *(const struct disprm **)dis;
+  }
+
+  cvalp = (char *)value;
+  ivalp = (int *)value;
+  dvalp = (double *)value;
+
+  naxis = disp->naxis;
+
+  switch (*what) {
+  case DIS_FLAG:
+    *ivalp = disp->flag;
+    break;
+  case DIS_NAXIS:
+    *ivalp = naxis;
+    break;
+  case DIS_DTYPE:
+    for (j = 0; j < naxis; j++) {
+      strncpy(cvalp, disp->dtype[j], 16);
+      wcsutil_blank_fill(16, cvalp);
+      cvalp += 16;
+    }
+    break;
+  case DIS_AXMAP:
+    for (j = 0; j < naxis; j++) {
+      for (k = 0; k < naxis; k++) {
+        *(ivalp++) = disp->axmap[j][k];
+      }
+    }
+    break;
+  case DIS_OFFSET:
+    for (j = 0; j < naxis; j++) {
+      for (k = 0; k < naxis; k++) {
+        *(dvalp++) = disp->offset[j][k];
+      }
+    }
+    break;
+  case DIS_SCALE:
+    for (j = 0; j < naxis; j++) {
+      for (k = 0; k < naxis; k++) {
+        *(dvalp++) = disp->scale[j][k];
+      }
+    }
+    break;
+  case DIS_NPARM:
+    for (j = 0; j < naxis; j++) {
+      *(ivalp++) = disp->nparm[j];
+    }
+    break;
+  case DIS_PARMS:
+    for (j = 0; j < naxis; j++) {
+      for (k = 0; k < disp->nparm[j]; k++) {
+        *(dvalp++) = disp->parms[j][k];
+      }
+    }
+    break;
+  case DIS_MAXDIS:
+    for (j = 0; j < naxis; j++) {
+      *(dvalp++) = disp->maxdis[j];
+    }
+    break;
+  case DIS_TOTDIS:
+    *dvalp = disp->totdis;
+    break;
+  case DIS_ERR:
+    /* Copy the contents of the wcserr struct. */
+    if (disp->err) {
+      idisp = (int *)(disp->err);
+      for (k = 0; k < ERRLEN; k++) {
+        *(ivalp++) = *(idisp++);
+      }
+    } else {
+      for (k = 0; k < ERRLEN; k++) {
+        *(ivalp++) = 0;
+      }
+    }
+    break;
+  default:
+    return 1;
+  }
+
+  return 0;
+}
+
+int disgtc_(const int *deref, const int *dis, const int *what, char *value)
+{
+  return disget_(deref, dis, what, value);
+}
+
+int disgtd_(const int *deref, const int *dis, const int *what, double *value)
+{
+  return disget_(deref, dis, what, value);
+}
+
+int disgti_(const int *deref, const int *dis, const int *what, int *value)
+{
+  return disget_(deref, dis, what, value);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disini_(const int *deref, const int *naxis, int *dis)
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disini(1, *naxis, disp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disparms_(const int *deref, int *dis)
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disparms(disp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int discpy_(const int *deref, const int *dissrc, int *disdst)
+
+{
+  const struct disprm *dissrcp;
+  struct disprm *disdstp;
+
+  if ((*deref&1) == 0) {
+    dissrcp = (const struct disprm *)dissrc;
+  } else {
+    dissrcp = *(const struct disprm **)dissrc;
+  }
+
+  if ((*deref&2) == 0) {
+    disdstp = (struct disprm *)disdst;
+  } else {
+    disdstp = *(struct disprm **)disdst;
+  }
+
+  return discpy(1, dissrcp, disdstp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disfree_(const int *deref, int *dis)
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disfree(disp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disprt_(const int *deref, const int *dis)
+
+{
+  const struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (const struct disprm *)dis;
+  } else {
+    disp = *(const struct disprm **)dis;
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed.  If
+   * not, try CALL FLUSH(6) before calling DISPRT in the Fortran code. */
+  fflush(NULL);
+
+  return disprt(disp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int disperr_(const int *deref, int *dis, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+  const struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (const struct disprm *)dis;
+  } else {
+    disp = *(const struct disprm **)dis;
+  }
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling DISPERR in the Fortran code. */
+  fflush(NULL);
+
+  return wcserr_prt(disp->err, prefix_);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disset_(const int *deref, int *dis)
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disset(disp);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disp2x_(
+  const int *deref,
+  int *dis,
+  const double rawcrd[],
+  double discrd[])
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disp2x(disp, rawcrd, discrd);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int disx2p_(
+  const int *deref,
+  int *dis,
+  const double discrd[],
+  double rawcrd[])
+
+{
+  struct disprm *disp;
+
+  if (*deref == 0) {
+    disp = (struct disprm *)dis;
+  } else {
+    disp = *(struct disprm **)dis;
+  }
+
+  return disx2p(disp, discrd, rawcrd);
+}
diff --git a/Fortran/fitshdr.inc b/Fortran/fitshdr.inc
index 956fe00..996ed8a 100644
--- a/Fortran/fitshdr.inc
+++ b/Fortran/fitshdr.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,14 +22,15 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: fitshdr.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: fitshdr.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  FITSHDR, FREEKEYS, KEYGET, KEYIDGET, KEYIDGTC, KEYIDGTI,
-     :          KEYIDPTC, KEYIDPUT
-      INTEGER   FITSHDR, FREEKEYS, KEYGET, KEYIDGET, KEYIDGTC, KEYIDGTI,
-     :          KEYIDPTC, KEYIDPUT
+      EXTERNAL  KEYIDPUT, KEYIDPTC, KEYIDGET, KEYIDGTC, KEYIDGTI,
+     :          KEYGET,   FREEKEYS, FITSHDR
+
+      INTEGER   KEYIDPUT, KEYIDPTC, KEYIDGET, KEYIDGTC, KEYIDGTI,
+     :          KEYGET,   FREEKEYS, FITSHDR
 
 *     Length of FITSKEY and FITSKEYID data structures (INTEGER arrays)
 *     on 64-bit machines.  These are the same for 32-bit machines.
@@ -38,15 +39,15 @@
       PARAMETER (KEYIDLEN = 6)
 
 *     Codes for KEYID data structure elements used by KEYIDPUT/GET.
-      INTEGER   KEYID_COUNT, KEYID_IDX, KEYID_NAME
+      INTEGER   KEYID_NAME, KEYID_COUNT, KEYID_IDX
 
       PARAMETER (KEYID_NAME    = 100)
       PARAMETER (KEYID_COUNT   = 101)
       PARAMETER (KEYID_IDX     = 102)
 
 *     Codes for KEY data structure elements used by KEYGET.
-      INTEGER   KEY_COMMENT, KEY_KEYID, KEY_KEYNO, KEY_KEYVALUE,
-     :          KEY_KEYWORD, KEY_STATUS, KEY_TYPE, KEY_ULEN
+      INTEGER   KEY_KEYNO, KEY_KEYID, KEY_STATUS, KEY_KEYWORD, KEY_TYPE,
+     :          KEY_KEYVALUE, KEY_ULEN, KEY_COMMENT
 
       PARAMETER (KEY_KEYNO     = 200)
       PARAMETER (KEY_KEYID     = 201)
@@ -57,5 +58,5 @@
       PARAMETER (KEY_ULEN      = 206)
       PARAMETER (KEY_COMMENT   = 207)
 
-      CHARACTER FITSHDR_ERRMSG(0:2)*80
+      CHARACTER FITSHDR_ERRMSG(0:3)*80
       COMMON /FITSHDR_DATA/ FITSHDR_ERRMSG
diff --git a/Fortran/fitshdr_data.f b/Fortran/fitshdr_data.f
index acbd4d8..55a77c8 100644
--- a/Fortran/fitshdr_data.f
+++ b/Fortran/fitshdr_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,18 +22,19 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: fitshdr_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: fitshdr_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA FITSHDR_BLOCK_DATA
 
-      CHARACTER FITSHDR_ERRMSG(0:2)*80
+      CHARACTER FITSHDR_ERRMSG(0:3)*80
 
       COMMON /FITSHDR_DATA/ FITSHDR_ERRMSG
 
       DATA FITSHDR_ERRMSG /
      :  'Success',
      :  'Null fitskey pointer-pointer passed',
-     :  'Memory allocation failed'/
+     :  'Memory allocation failed',
+     :  'Fatal error returned by Flex parser'/
 
       END
diff --git a/Fortran/fitshdr_f.c b/Fortran/fitshdr_f.c
index 2bda09c..3f93f26 100644
--- a/Fortran/fitshdr_f.c
+++ b/Fortran/fitshdr_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: fitshdr_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: fitshdr_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
@@ -35,14 +35,14 @@
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
 #define keyidput_ F77_FUNC(keyidput, KEYIDPUT)
+#define keyidptc_ F77_FUNC(keyidptc, KEYIDPTC)
 #define keyidget_ F77_FUNC(keyidget, KEYIDGET)
+#define keyidgtc_ F77_FUNC(keyidgtc, KEYIDGTC)
+#define keyidgti_ F77_FUNC(keyidgti, KEYIDGTI)
 #define keyget_   F77_FUNC(keyget,   KEYGET)
-#define fitshdr_  F77_FUNC(fitshdr,  FITSHDR)
 #define freekeys_ F77_FUNC(freekeys, FREEKEYS)
 
-#define keyidptc_ F77_FUNC(keyidptc, KEYIDPTC)
-#define keyidgtc_ F77_FUNC(keyidgtc, KEYIDGTC)
-#define keyidgti_ F77_FUNC(keyidgti, KEYIDGTI)
+#define fitshdr_  F77_FUNC(fitshdr,  FITSHDR)
 
 #define KEYID_NAME   100
 #define KEYID_COUNT  101
@@ -240,6 +240,16 @@ int keyget_(
 
 /*--------------------------------------------------------------------------*/
 
+int freekeys_(int *keys)
+
+{
+  free(*((struct fitskey **)keys));
+  *keys = 0;
+  return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+
 int fitshdr_(
   const char header[],
   const int *nkeyrec,
@@ -252,13 +262,3 @@ int fitshdr_(
   return fitshdr(header, *nkeyrec, *nkeyids, (struct fitskeyid *)keyids,
                  nreject, (struct fitskey **)keys);
 }
-
-/*--------------------------------------------------------------------------*/
-
-int freekeys_(int *keys)
-
-{
-  free(*((struct fitskey **)keys));
-  *keys = 0;
-  return 0;
-}
diff --git a/Fortran/getwcstab.inc b/Fortran/getwcstab.inc
index d9690ab..9399d9c 100644
--- a/Fortran/getwcstab.inc
+++ b/Fortran/getwcstab.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: getwcstab.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: getwcstab.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
diff --git a/Fortran/getwcstab_f.c b/Fortran/getwcstab_f.c
index 22821d4..b7d1d97 100644
--- a/Fortran/getwcstab_f.c
+++ b/Fortran/getwcstab_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: getwcstab_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: getwcstab_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <getwcstab.h>
diff --git a/Fortran/lin.inc b/Fortran/lin.inc
index 03a4c52..09a4d03 100644
--- a/Fortran/lin.inc
+++ b/Fortran/lin.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,45 +22,60 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: lin.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: lin.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  LINCPY, LINFREE, LINGET, LINGTD, LINGTI, LININI, LINP2X,
-     :          LINPRT, LINPTD, LINPTI, LINPUT, LINSET, LINX2P
-      INTEGER   LINCPY, LINFREE, LINGET, LINGTD, LINGTI, LININI, LINP2X,
-     :          LINPRT, LINPTD, LINPTI, LINPUT, LINSET, LINX2P
+      EXTERNAL  LINPUT, LINPTD, LINPTI, LINGET, LINGTD, LINGTI,
+     :          LININI, LINDIS, LINCPY, LINFREE, LINPRT, LINPERR,
+     :          LINSET, LINP2X, LINX2P
+
+      INTEGER   LINPUT, LINPTD, LINPTI, LINGET, LINGTD, LINGTI,
+     :          LININI, LINDIS, LINCPY, LINFREE, LINPRT, LINPERR,
+     :          LINSET, LINP2X, LINX2P
 
 *     Length of the LINPRM data structure (INTEGER array) on 64-bit
-*     machines.  Only needs to be 18 on 32-bit machines.
+*     machines.  Only needs to be 22 on 32-bit machines.
       INTEGER   LINLEN
-      PARAMETER (LINLEN = 28)
+      PARAMETER (LINLEN = 36)
 
 *     Codes for LIN data structure elements used by LINPUT and LINGET.
-      INTEGER   LIN_CDELT, LIN_CRPIX, LIN_FLAG, LIN_NAXIS, LIN_PC
+      INTEGER   LIN_FLAG, LIN_NAXIS, LIN_CRPIX, LIN_PC, LIN_CDELT,
+     :          LIN_DISPRE, LIN_DISSEQ
 
       PARAMETER (LIN_FLAG   = 100)
       PARAMETER (LIN_NAXIS  = 101)
       PARAMETER (LIN_CRPIX  = 102)
       PARAMETER (LIN_PC     = 103)
       PARAMETER (LIN_CDELT  = 104)
+      PARAMETER (LIN_DISPRE = 105)
+      PARAMETER (LIN_DISSEQ = 106)
 
 *     Codes for LIN data structure elements used by LINGET (only).
-      INTEGER   LIN_ERR, LIN_IMGPIX, LIN_PIXIMG, LIN_UNITY
+      INTEGER   LIN_PIXIMG, LIN_IMGPIX, LIN_INAXIS, LIN_UNITY,
+     :          LIN_AFFINE, LIN_SIMPLE, LIN_ERR
 
       PARAMETER (LIN_PIXIMG = 200)
       PARAMETER (LIN_IMGPIX = 201)
-      PARAMETER (LIN_UNITY  = 202)
-      PARAMETER (LIN_ERR    = 203)
+      PARAMETER (LIN_INAXIS = 202)
+      PARAMETER (LIN_UNITY  = 203)
+      PARAMETER (LIN_AFFINE = 204)
+      PARAMETER (LIN_SIMPLE = 205)
+
+      PARAMETER (LIN_ERR    = 206)
 
 *     Error codes and messages.
-      INTEGER   LINERR_MEMORY, LINERR_NULL_POINTER, LINERR_SINGULAR_MTX,
-     :          LINERR_SUCCESS
+      INTEGER   LINERR_SUCCESS, LINERR_NULL_POINTER, LINERR_MEMORY,
+     :          LINERR_SINGULAR_MTX, LINERR_DISTORT_INIT,
+     :          LINERR_DISTORT, LINERR_DEDISTORT
 
       PARAMETER (LINERR_SUCCESS      = 0)
       PARAMETER (LINERR_NULL_POINTER = 1)
       PARAMETER (LINERR_MEMORY       = 2)
       PARAMETER (LINERR_SINGULAR_MTX = 3)
+      PARAMETER (LINERR_DISTORT_INIT = 4)
+      PARAMETER (LINERR_DISTORT      = 5)
+      PARAMETER (LINERR_DEDISTORT    = 6)
 
-      CHARACTER LIN_ERRMSG(0:3)*80
+      CHARACTER LIN_ERRMSG(0:6)*80
       COMMON /LIN_DATA/ LIN_ERRMSG
diff --git a/Fortran/lin_data.f b/Fortran/lin_data.f
index 2417224..5a17d85 100644
--- a/Fortran/lin_data.f
+++ b/Fortran/lin_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,12 +22,12 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: lin_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: lin_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA LIN_BLOCK_DATA
 
-      CHARACTER LIN_ERRMSG(0:3)*80
+      CHARACTER LIN_ERRMSG(0:6)*80
 
       COMMON /LIN_DATA/ LIN_ERRMSG
 
@@ -35,6 +35,9 @@
      :  'Success',
      :  'Null linprm pointer passed',
      :  'Memory allocation failed',
-     :  'PCi_ja matrix is singular'/
+     :  'PCi_ja matrix is singular',
+     :  'Failed to initialize distortion functions',
+     :  'Distort error',
+     :  'De-distort error'/
 
       END
diff --git a/Fortran/lin_f.c b/Fortran/lin_f.c
index 4b837cb..dbb86f1 100644
--- a/Fortran/lin_f.c
+++ b/Fortran/lin_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,56 +22,50 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: lin_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: lin_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
+#include <string.h>
 
+#include <wcserr.h>
+#include <dis.h>
 #include <lin.h>
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
-#define linini_  F77_FUNC(linini,  LININI)
-#define lincpy_  F77_FUNC(lincpy,  LINCPY)
 #define linput_  F77_FUNC(linput,  LINPUT)
+#define linptd_  F77_FUNC(linptd,  LINPTD)
+#define linpti_  F77_FUNC(linpti,  LINPTI)
 #define linget_  F77_FUNC(linget,  LINGET)
+#define lingtd_  F77_FUNC(lingtd,  LINGTD)
+#define lingti_  F77_FUNC(lingti,  LINGTI)
+
+#define linini_  F77_FUNC(linini,  LININI)
+#define lindis_  F77_FUNC(lindis,  LINDIS)
+#define lincpy_  F77_FUNC(lincpy,  LINCPY)
 #define linfree_ F77_FUNC(linfree, LINFREE)
 #define linprt_  F77_FUNC(linprt,  LINPRT)
+#define linperr_ F77_FUNC(linperr, LINPERR)
 #define linset_  F77_FUNC(linset,  LINSET)
 #define linp2x_  F77_FUNC(linp2x,  LINP2X)
 #define linx2p_  F77_FUNC(linx2p,  LINX2P)
 
-#define linptd_  F77_FUNC(linptd,  LINPTD)
-#define linpti_  F77_FUNC(linpti,  LINPTI)
-#define lingtd_  F77_FUNC(lingtd,  LINGTD)
-#define lingti_  F77_FUNC(lingti,  LINGTI)
-
 #define LIN_FLAG   100
 #define LIN_NAXIS  101
 #define LIN_CRPIX  102
 #define LIN_PC     103
 #define LIN_CDELT  104
+#define LIN_DISPRE 105
+#define LIN_DISSEQ 106
 
 #define LIN_PIXIMG 200
 #define LIN_IMGPIX 201
-#define LIN_UNITY  202
-#define LIN_ERR    203
-
-/*--------------------------------------------------------------------------*/
-
-int linini_(const int *naxis, int *lin)
-
-{
-  return linini(1, *naxis, (struct linprm *)lin);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int lincpy_(const int *linsrc, int *lindst)
-
-{
-  return lincpy(1, (const struct linprm *)linsrc, (struct linprm *)lindst);
-}
+#define LIN_INAXIS 202
+#define LIN_UNITY  203
+#define LIN_AFFINE 204
+#define LIN_SIMPLE 205
+#define LIN_ERR    206
 
 /*--------------------------------------------------------------------------*/
 
@@ -83,7 +77,7 @@ int linput_(
   const int *j)
 
 {
-  int i0, j0, k;
+  int i0, j0, k, status = 0;
   const int *ivalp;
   const double *dvalp;
   struct linprm *linp;
@@ -97,14 +91,13 @@ int linput_(
   i0 = *i - 1;
   j0 = *j - 1;
 
-  linp->flag = 0;
-
   switch (*what) {
   case LIN_FLAG:
     linp->flag = *ivalp;
     break;
   case LIN_NAXIS:
     linp->naxis = *ivalp;
+    linp->flag = 0;
     break;
   case LIN_CRPIX:
     linp->crpix[i0] = *dvalp;
@@ -112,24 +105,36 @@ int linput_(
   case LIN_PC:
     k = (i0)*(linp->naxis) + (j0);
     *(linp->pc+k) = *dvalp;
+    linp->flag = 0;
     break;
   case LIN_CDELT:
     linp->cdelt[i0] = *dvalp;
+    linp->flag = 0;
+    break;
+  case LIN_DISPRE:
+    /* N.B. value is the address of an allocated disprm struct. */
+    status = lindis(1, linp, (struct disprm *)value);
+    linp->flag = 0;
+    break;
+  case LIN_DISSEQ:
+    /* N.B. value is the address of an allocated disprm struct. */
+    status = lindis(2, linp, (struct disprm *)value);
+    linp->flag = 0;
     break;
   default:
     return 1;
   }
 
-  return 0;
+  return status;
 }
 
-int linptd_( int *lin, const int *what, const double *value,
+int linptd_(int *lin, const int *what, const double *value,
   const int *i, const int *j)
 {
   return linput_(lin, what, value, i, j);
 }
 
-int linpti_( int *lin, const int *what, const int *value,
+int linpti_(int *lin, const int *what, const int *value,
   const int *i, const int *j)
 {
   return linput_(lin, what, value, i, j);
@@ -143,6 +148,7 @@ int linget_(const int *lin, const int *what, void *value)
   int i, j, k, naxis;
   int *ivalp;
   double *dvalp;
+  struct disprm **disvalp;
   const int *ilinp;
   const double *dlinp;
   const struct linprm *linp;
@@ -151,6 +157,7 @@ int linget_(const int *lin, const int *what, void *value)
   linp  = (const struct linprm *)lin;
   ivalp = (int *)value;
   dvalp = (double *)value;
+  disvalp = (struct disprm **)value;
 
   naxis = linp->naxis;
 
@@ -181,6 +188,14 @@ int linget_(const int *lin, const int *what, void *value)
       *(dvalp++) = linp->cdelt[i];
     }
     break;
+  case LIN_DISPRE:
+    /* N.B. the value returned is the address of a disprm struct. */
+    *disvalp = linp->dispre;
+    break;
+  case LIN_DISSEQ:
+    /* N.B. the value returned is the address of a disprm struct. */
+    *disvalp = linp->disseq;
+    break;
   case LIN_PIXIMG:
     /* C row-major to FORTRAN column-major. */
     for (j = 0; j < naxis; j++) {
@@ -201,9 +216,18 @@ int linget_(const int *lin, const int *what, void *value)
       }
     }
     break;
+  case LIN_INAXIS:
+    *ivalp = linp->i_naxis;
+    break;
   case LIN_UNITY:
     *ivalp = linp->unity;
     break;
+  case LIN_AFFINE:
+    *ivalp = linp->affine;
+    break;
+  case LIN_SIMPLE:
+    *ivalp = linp->simple;
+    break;
   case LIN_ERR:
     /* Copy the contents of the wcserr struct. */
     if (linp->err) {
@@ -236,6 +260,30 @@ int lingti_(const int *lin, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int linini_(const int *naxis, int *lin)
+
+{
+  return linini(1, *naxis, (struct linprm *)lin);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int lindis_(const int *sequence, int *lin, int *dis)
+
+{
+  return lindis(*sequence, (struct linprm *)lin, (struct disprm *)dis);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int lincpy_(const int *linsrc, int *lindst)
+
+{
+  return lincpy(1, (const struct linprm *)linsrc, (struct linprm *)lindst);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int linfree_(int *lin)
 
 {
@@ -244,14 +292,42 @@ int linfree_(int *lin)
 
 /*--------------------------------------------------------------------------*/
 
-int linprt_(int *lin)
+int linprt_(const int *lin)
 
 {
   /* This may or may not force the Fortran I/O buffers to be flushed.  If
    * not, try CALL FLUSH(6) before calling LINPRT in the Fortran code. */
   fflush(NULL);
 
-  return linprt((struct linprm *)lin);
+  return linprt((const struct linprm *)lin);
+}
+
+/*--------------------------------------------------------------------------*/
+
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int linperr_(int *lin, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling LINPERR in the Fortran code. */
+  fflush(NULL);
+
+  return linperr((struct linprm *)lin, prefix_);
 }
 
 /*--------------------------------------------------------------------------*/
diff --git a/Fortran/log.inc b/Fortran/log.inc
index cb35d54..4387780 100644
--- a/Fortran/log.inc
+++ b/Fortran/log.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: log.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: log.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
@@ -30,8 +30,8 @@
       INTEGER   LOGS2X, LOGX2S
 
 *     Error codes and messages.
-      INTEGER   LOGERR_BAD_LOG_REF_VAL, LOGERR_BAD_WORLD, LOGERR_BAD_X,
-     :          LOGERR_NULL_POINTER, LOGERR_SUCCESS
+      INTEGER   LOGERR_SUCCESS, LOGERR_NULL_POINTER,
+     :          LOGERR_BAD_LOG_REF_VAL, LOGERR_BAD_X, LOGERR_BAD_WORLD
 
       PARAMETER (LOGERR_SUCCESS         = 0)
       PARAMETER (LOGERR_NULL_POINTER    = 1)
@@ -39,5 +39,5 @@
       PARAMETER (LOGERR_BAD_X           = 3)
       PARAMETER (LOGERR_BAD_WORLD       = 4)
 
-      CHARACTER LOG_ERRMSG(0:3)*80
+      CHARACTER LOG_ERRMSG(0:4)*80
       COMMON /LOG_DATA/ LOG_ERRMSG
diff --git a/Fortran/log_data.f b/Fortran/log_data.f
index c77c434..b0635f9 100644
--- a/Fortran/log_data.f
+++ b/Fortran/log_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,12 +22,12 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: log_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: log_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA LOG_BLOCK_DATA
 
-      CHARACTER LOG_ERRMSG(0:3)*80
+      CHARACTER LOG_ERRMSG(0:4)*80
 
       COMMON /LOG_DATA/ LOG_ERRMSG
 
@@ -35,6 +35,7 @@
      :  'Success',
      :  ' ',
      :  'Invalid log-coordinate reference value',
-     :  'One or more of x coordinates were invalid'/
+     :  'One or more of the x coordinates were invalid',
+     :  'One or more of the world coordinates were invalid'/
 
       END
diff --git a/Fortran/log_f.c b/Fortran/log_f.c
index 6cad2e5..97f7a5e 100644
--- a/Fortran/log_f.c
+++ b/Fortran/log_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: log_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: log_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <log.h>
diff --git a/Fortran/prj.inc b/Fortran/prj.inc
index fe1d252..58b9bac 100644
--- a/Fortran/prj.inc
+++ b/Fortran/prj.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,16 +22,19 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: prj.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: prj.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  PRJBCHK, PRJFREE, PRJGET, PRJGTC, PRJGTD, PRJGTI,
-     :          PRJINI,  PRJPRT,  PRJPTC, PRJPTD, PRJPTI, PRJPUT,
-     :          PRJS2X,  PRJSET,  PRJX2S
-      INTEGER   PRJBCHK, PRJFREE, PRJGET, PRJGTC, PRJGTD, PRJGTI,
-     :          PRJINI,  PRJPRT,  PRJPTC, PRJPTD, PRJPTI, PRJPUT,
-     :          PRJS2X,  PRJSET,  PRJX2S
+      EXTERNAL  PRJPUT, PRJPTC, PRJPTD, PRJPTI,
+     :          PRJGET, PRJGTC, PRJGTD, PRJGTI,
+     :          PRJINI, PRJFREE, PRJPRT, PRJPERR, PRJBCHK,
+     :          PRJSET, PRJX2S,  PRJS2X
+
+      INTEGER   PRJPUT, PRJPTC, PRJPTD, PRJPTI,
+     :          PRJGET, PRJGTC, PRJGTD, PRJGTI,
+     :          PRJINI, PRJFREE, PRJPRT, PRJPERR, PRJBCHK,
+     :          PRJSET, PRJX2S,  PRJS2X
 
       EXTERNAL  AZPSET, AZPX2S, AZPS2X,    PARSET, PARX2S, PARS2X,
      :          SZPSET, SZPX2S, SZPS2X,    MOLSET, MOLX2S, MOLS2X,
@@ -44,8 +47,8 @@
      :          AIRSET, AIRX2S, AIRS2X,    PCOSET, PCOX2S, PCOS2X,
      :          CYPSET, CYPX2S, CYPS2X,    TSCSET, TSCX2S, TSCS2X,
      :          CEASET, CEAX2S, CEAS2X,    CSCSET, CSCX2S, CSCS2X,
-     :          CARSET, CARX2S, CARS2X,    QSCSET, QSCX2S, QSCS2X
-     :          MERSET, MERX2S, MERS2X,    HPXSET, HPXX2S, HPXS2X
+     :          CARSET, CARX2S, CARS2X,    QSCSET, QSCX2S, QSCS2X,
+     :          MERSET, MERX2S, MERS2X,    HPXSET, HPXX2S, HPXS2X,
      :          SFLSET, SFLX2S, SFLS2X,    XPHSET, XPHX2S, XPHS2X
 
       INTEGER   AZPSET, AZPX2S, AZPS2X,    PARSET, PARX2S, PARS2X,
@@ -59,8 +62,8 @@
      :          AIRSET, AIRX2S, AIRS2X,    PCOSET, PCOX2S, PCOS2X,
      :          CYPSET, CYPX2S, CYPS2X,    TSCSET, TSCX2S, TSCS2X,
      :          CEASET, CEAX2S, CEAS2X,    CSCSET, CSCX2S, CSCS2X,
-     :          CARSET, CARX2S, CARS2X,    QSCSET, QSCX2S, QSCS2X
-     :          MERSET, MERX2S, MERS2X,    HPXSET, HPXX2S, HPXS2X
+     :          CARSET, CARX2S, CARS2X,    QSCSET, QSCX2S, QSCS2X,
+     :          MERSET, MERX2S, MERS2X,    HPXSET, HPXX2S, HPXS2X,
      :          SFLSET, SFLX2S, SFLS2X,    XPHSET, XPHX2S, XPHS2X
 
 *     Length of the PRJPRM data structure (INTEGER array) on 64-bit
@@ -73,8 +76,8 @@
       PARAMETER (PRJ_PVN = 30)
 
 *     Codes for PRJ data structure elements used by PRJPUT and PRJGET.
-      INTEGER   PRJ_BOUNDS, PRJ_CODE, PRJ_FLAG, PRJ_PHI0, PRJ_PV,
-     :          PRJ_R0, PRJ_THETA0
+      INTEGER   PRJ_FLAG, PRJ_CODE, PRJ_R0, PRJ_PV, PRJ_PHI0,
+     :          PRJ_THETA0, PRJ_BOUNDS
 
       PARAMETER (PRJ_FLAG      = 100)
       PARAMETER (PRJ_CODE      = 101)
@@ -85,9 +88,9 @@
       PARAMETER (PRJ_BOUNDS    = 106)
 
 *     Codes for PRJ data structure elements used by PRJGET (only).
-      INTEGER   PRJ_CATEGORY, PRJ_CONFORMAL, PRJ_ERR, PRJ_GLOBAL,
-     :          PRJ_DIVERGENT, PRJ_EQUIAREAL, PRJ_N, PRJ_NAME,
-     :          PRJ_PVRANGE, PRJ_SIMPLEZEN, PRJ_W, PRJ_X0, PRJ_Y0
+      INTEGER   PRJ_NAME, PRJ_CATEGORY, PRJ_PVRANGE, PRJ_SIMPLEZEN,
+     :          PRJ_EQUIAREAL, PRJ_CONFORMAL, PRJ_GLOBAL, PRJ_DIVERGENT,
+     :          PRJ_X0, PRJ_Y0, PRJ_ERR, PRJ_W, PRJ_N
 
       PARAMETER (PRJ_NAME      = 200)
       PARAMETER (PRJ_CATEGORY  = 201)
@@ -104,9 +107,9 @@
       PARAMETER (PRJ_N         = 212)
 
 *     Projection categories.
-      INTEGER   PRJ_CONIC, PRJ_CONVENTIONAL, PRJ_CYLINDRICAL,
-     :          PRJ_HEALPIX, PRJ_POLYCONIC, PRJ_PSEUDOCYLINDRICAL,
-     :          PRJ_QUADCUBE, PRJ_ZENITHAL
+      INTEGER   PRJ_ZENITHAL, PRJ_CYLINDRICAL, PRJ_PSEUDOCYLINDRICAL,
+     :          PRJ_CONVENTIONAL, PRJ_CONIC, PRJ_POLYCONIC,
+     :          PRJ_QUADCUBE, PRJ_HEALPIX
 
       PARAMETER (PRJ_ZENITHAL          = 1)
       PARAMETER (PRJ_CYLINDRICAL       = 2)
@@ -118,8 +121,8 @@
       PARAMETER (PRJ_HEALPIX           = 8)
 
 *     Error codes and messages.
-      INTEGER   PRJERR_BAD_PARAM, PRJERR_BAD_PIX, PRJERR_BAD_WORLD,
-     :          PRJERR_NULL_POINTER, PRJERR_SUCCESS
+      INTEGER   PRJERR_SUCCESS, PRJERR_NULL_POINTER, PRJERR_BAD_PARAM,
+     :          PRJERR_BAD_PIX, PRJERR_BAD_WORLD
 
       PARAMETER (PRJERR_SUCCESS      = 0)
       PARAMETER (PRJERR_NULL_POINTER = 1)
diff --git a/Fortran/prj_data.f b/Fortran/prj_data.f
index 92f63a4..891c3c2 100644
--- a/Fortran/prj_data.f
+++ b/Fortran/prj_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: prj_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: prj_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA PRJ_BLOCK_DATA
diff --git a/Fortran/prj_f.c b/Fortran/prj_f.c
index 699429a..02c8a9e 100644
--- a/Fortran/prj_f.c
+++ b/Fortran/prj_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,30 +22,32 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: prj_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: prj_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
 #include <string.h>
 
+#include <wcserr.h>
 #include <prj.h>
 
-/* Fortran name mangling. */
+/* Fortran name mangling (see below for the remainder). */
 #include <wcsconfig_f77.h>
-#define prjini_  F77_FUNC(prjini,  PRJINI)
 #define prjput_  F77_FUNC(prjput,  PRJPUT)
-#define prjget_  F77_FUNC(prjget,  PRJGET)
-#define prjfree_ F77_FUNC(prjfree, PRJFREE)
-#define prjprt_  F77_FUNC(prjprt,  PRJPRT)
-#define prjbchk_ F77_FUNC(prjbchk, PRJBCHK)
-
 #define prjptc_  F77_FUNC(prjptc,  PRJPTC)
 #define prjptd_  F77_FUNC(prjptd,  PRJPTD)
 #define prjpti_  F77_FUNC(prjpti,  PRJPTI)
+#define prjget_  F77_FUNC(prjget,  PRJGET)
 #define prjgtc_  F77_FUNC(prjgtc,  PRJGTC)
 #define prjgtd_  F77_FUNC(prjgtd,  PRJGTD)
 #define prjgti_  F77_FUNC(prjgti,  PRJGTI)
 
+#define prjini_  F77_FUNC(prjini,  PRJINI)
+#define prjfree_ F77_FUNC(prjfree, PRJFREE)
+#define prjprt_  F77_FUNC(prjprt,  PRJPRT)
+#define prjperr_ F77_FUNC(prjperr, PRJPERR)
+#define prjbchk_ F77_FUNC(prjbchk, PRJBCHK)
+
 #define PRJ_FLAG      100
 #define PRJ_CODE      101
 #define PRJ_R0        102
@@ -70,14 +72,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int prjini_(int *prj)
-
-{
-  return prjini((struct prjprm *)prj);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int prjput_(int *prj, const int *what, const void *value, const int *m)
 
 {
@@ -92,8 +86,6 @@ int prjput_(int *prj, const int *what, const void *value, const int *m)
   ivalp = (const int *)value;
   dvalp = (const double *)value;
 
-  prjp->flag = 0;
-
   switch (*what) {
   case PRJ_FLAG:
     prjp->flag = *ivalp;
@@ -101,18 +93,23 @@ int prjput_(int *prj, const int *what, const void *value, const int *m)
   case PRJ_CODE:
     strncpy(prjp->code, cvalp, 3);
     prjp->code[3] = '\0';
+    prjp->flag = 0;
     break;
   case PRJ_R0:
     prjp->r0 = *dvalp;
+    prjp->flag = 0;
     break;
   case PRJ_PV:
     prjp->pv[*m] = *dvalp;
+    prjp->flag = 0;
     break;
   case PRJ_PHI0:
     prjp->phi0 = *dvalp;
+    prjp->flag = 0;
     break;
   case PRJ_THETA0:
     prjp->theta0 = *dvalp;
+    prjp->flag = 0;
     break;
   case PRJ_BOUNDS:
     prjp->bounds = *ivalp;
@@ -256,6 +253,14 @@ int prjgti_(const int *prj, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int prjini_(int *prj)
+
+{
+  return prjini((struct prjprm *)prj);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int prjfree_(int *prj)
 
 {
@@ -264,14 +269,42 @@ int prjfree_(int *prj)
 
 /*--------------------------------------------------------------------------*/
 
-int prjprt_(int *prj)
+int prjprt_(const int *prj)
 
 {
   /* This may or may not force the Fortran I/O buffers to be flushed.  If
    * not, try CALL FLUSH(6) before calling PRJPRT in the Fortran code. */
   fflush(NULL);
 
-  return prjprt((struct prjprm *)prj);
+  return prjprt((const struct prjprm *)prj);
+}
+
+/*--------------------------------------------------------------------------*/
+
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int prjperr_(int *prj, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling PRJPERR in the Fortran code. */
+  fflush(NULL);
+
+  return wcserr_prt(((struct prjprm *)prj)->err, prefix_);
 }
 
 /*--------------------------------------------------------------------------*/
diff --git a/Fortran/spc.inc b/Fortran/spc.inc
index a3e4508..74875da 100644
--- a/Fortran/spc.inc
+++ b/Fortran/spc.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,20 +22,25 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: spc.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: spc.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  SPCAIPS, SPCFREE, SPCGET, SPCGTC, SPCGTD, SPCGTI,
-     :          SPCINI, SPCPRT, SPCPTC, SPCPTD, SPCPTI, SPCPUT, SPCS2X,
-     :          SPCSET, SPCSPXE, SPCTRNE, SPCTYPE, SPCX2S, SPCXPSE
-      INTEGER   SPCAIPS, SPCFREE, SPCGET, SPCGTC, SPCGTD, SPCGTI,
-     :          SPCINI, SPCPRT, SPCPTC, SPCPTD, SPCPTI, SPCPUT, SPCS2X,
-     :          SPCSET, SPCSPXE, SPCTRNE, SPCTYPE, SPCX2S, SPCXPSE
+      EXTERNAL  SPCPUT, SPCPTC, SPCPTD, SPCPTI,
+     :          SPCGET, SPCGTC, SPCGTD, SPCGTI,
+     :          SPCINI, SPCFREE, SPCPRT, SPCPERR,
+     :          SPCSET, SPCX2S, SPCS2X,
+     :          SPCTYPE, SPCSPXE, SPCXPSE, SPCTRNE, SPCAIPS
+
+      INTEGER   SPCPUT, SPCPTC, SPCPTD, SPCPTI,
+     :          SPCGET, SPCGTC, SPCGTD, SPCGTI,
+     :          SPCINI, SPCFREE, SPCPRT, SPCPERR,
+     :          SPCSET, SPCX2S, SPCS2X,
+     :          SPCTYPE, SPCSPXE, SPCXPSE, SPCTRNE, SPCAIPS
 
 *     Deprecated functions.
-      EXTERNAL  SPCSPX, SPCTRN, SPCTYP, SPCXPS
-      INTEGER   SPCSPX, SPCTRN, SPCTYP, SPCXPS
+      EXTERNAL  SPCTYP, SPCSPX, SPCXPS, SPCTRN
+      INTEGER   SPCTYP, SPCSPX, SPCXPS, SPCTRN
 
 *     Length of the SPCPRM data structure (INTEGER array) on 64-bit
 *     machines.  Only needs to be 44 on 32-bit machines.
@@ -43,8 +48,8 @@
       PARAMETER (SPCLEN = 50)
 
 *     Codes for SPC data structure elements used by SPCPUT and SPCGET.
-      INTEGER   SPC_CODE, SPC_CRVAL, SPC_FLAG, SPC_PV, SPC_RESTFRQ,
-     :          SPC_RESTWAV, SPC_TYPE
+      INTEGER   SPC_FLAG, SPC_TYPE, SPC_CODE, SPC_CRVAL, SPC_RESTFRQ,
+     :          SPC_RESTWAV, SPC_PV
 
       PARAMETER (SPC_FLAG    = 100)
       PARAMETER (SPC_TYPE    = 101)
@@ -55,21 +60,22 @@
       PARAMETER (SPC_PV      = 106)
 
 *     Codes for SPC data structure elements used by SPCGET (only).
-      INTEGER   SPC_ERR, SPC_ISGRISM, SPC_W
+      INTEGER   SPC_W, SPC_ISGRISM, SPC_ERR
 
       PARAMETER (SPC_W       = 200)
       PARAMETER (SPC_ISGRISM = 201)
       PARAMETER (SPC_ERR     = 202)
 
 *     Error codes and messages.
-      INTEGER   SPCERR_BAD_SPEC, SPCERR_BAD_SPEC_PARAMS, SPCERR_BAD_X,
-     :          SPCERR_NULL_POINTER, SPCERR_SUCCESS
+      INTEGER   SPCERR_NO_CHANGE, SPCERR_SUCCESS, SPCERR_NULL_POINTER,
+     :          SPCERR_BAD_SPEC_PARAMS, SPCERR_BAD_X, SPCERR_BAD_SPEC
 
-      PARAMETER (SPCERR_SUCCESS         = 0)
-      PARAMETER (SPCERR_NULL_POINTER    = 1)
-      PARAMETER (SPCERR_BAD_SPEC_PARAMS = 2)
-      PARAMETER (SPCERR_BAD_X           = 3)
-      PARAMETER (SPCERR_BAD_SPEC        = 4)
+      PARAMETER (SPCERR_NO_CHANGE       = -1)
+      PARAMETER (SPCERR_SUCCESS         =  0)
+      PARAMETER (SPCERR_NULL_POINTER    =  1)
+      PARAMETER (SPCERR_BAD_SPEC_PARAMS =  2)
+      PARAMETER (SPCERR_BAD_X           =  3)
+      PARAMETER (SPCERR_BAD_SPEC        =  4)
 
-      CHARACTER SPC_ERRMSG(0:4)*80
+      CHARACTER SPC_ERRMSG(-1:4)*80
       COMMON /SPC_DATA/ SPC_ERRMSG
diff --git a/Fortran/spc_data.f b/Fortran/spc_data.f
index 38c37be..1086fb8 100644
--- a/Fortran/spc_data.f
+++ b/Fortran/spc_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,16 +22,17 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: spc_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: spc_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA SPC_BLOCK_DATA
 
-      CHARACTER SPC_ERRMSG(0:4)*80
+      CHARACTER SPC_ERRMSG(-1:4)*80
 
       COMMON /SPC_DATA/ SPC_ERRMSG
 
       DATA SPC_ERRMSG /
+     :  'No change (not an error)',
      :  'Success',
      :  'Null spcprm pointer passed',
      :  'Invalid spectral parameters',
diff --git a/Fortran/spc_f.c b/Fortran/spc_f.c
index 0cc53ed..9800ccd 100644
--- a/Fortran/spc_f.c
+++ b/Fortran/spc_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spc_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: spc_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
@@ -34,11 +34,19 @@
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
-#define spcini_  F77_FUNC(spcini,  SPCINI)
 #define spcput_  F77_FUNC(spcput,  SPCPUT)
+#define spcptc_  F77_FUNC(spcptc,  SPCPTC)
+#define spcptd_  F77_FUNC(spcptd,  SPCPTD)
+#define spcpti_  F77_FUNC(spcpti,  SPCPTI)
 #define spcget_  F77_FUNC(spcget,  SPCGET)
+#define spcgtc_  F77_FUNC(spcgtc,  SPCGTC)
+#define spcgtd_  F77_FUNC(spcgtd,  SPCGTD)
+#define spcgti_  F77_FUNC(spcgti,  SPCGTI)
+
+#define spcini_  F77_FUNC(spcini,  SPCINI)
 #define spcfree_ F77_FUNC(spcfree, SPCFREE)
 #define spcprt_  F77_FUNC(spcprt,  SPCPRT)
+#define spcperr_ F77_FUNC(spcperr, SPCPERR)
 #define spcset_  F77_FUNC(spcset,  SPCSET)
 #define spcx2s_  F77_FUNC(spcx2s,  SPCX2S)
 #define spcs2x_  F77_FUNC(spcs2x,  SPCS2X)
@@ -48,13 +56,6 @@
 #define spctrne_ F77_FUNC(spctrne, SPCTRNE)
 #define spcaips_ F77_FUNC(spcaips, SPCAIPS)
 
-#define spcptc_  F77_FUNC(spcptc,  SPCPTC)
-#define spcptd_  F77_FUNC(spcptd,  SPCPTD)
-#define spcpti_  F77_FUNC(spcpti,  SPCPTI)
-#define spcgtc_  F77_FUNC(spcgtc,  SPCGTC)
-#define spcgtd_  F77_FUNC(spcgtd,  SPCGTD)
-#define spcgti_  F77_FUNC(spcgti,  SPCGTI)
-
 /* Deprecated. */
 #define spctyp_  F77_FUNC(spctyp,  SPCTYP)
 #define spcspx_  F77_FUNC(spcspx,  SPCSPX)
@@ -75,14 +76,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int spcini_(int *spc)
-
-{
-  return spcini((struct spcprm *)spc);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int spcput_(int *spc, const int *what, const void *value, const int *m)
 
 {
@@ -232,6 +225,14 @@ int spcgti_(const int *spc, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int spcini_(int *spc)
+
+{
+  return spcini((struct spcprm *)spc);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int spcfree_(int *spc)
 
 {
@@ -240,14 +241,42 @@ int spcfree_(int *spc)
 
 /*--------------------------------------------------------------------------*/
 
-int spcprt_(int *spc)
+int spcprt_(const int *spc)
 
 {
   /* This may or may not force the Fortran I/O buffers to be flushed.  If
    * not, try CALL FLUSH(6) before calling SPCPRT in the Fortran code. */
   fflush(NULL);
 
-  return spcprt((struct spcprm *)spc);
+  return spcprt((const struct spcprm *)spc);
+}
+
+/*--------------------------------------------------------------------------*/
+
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int spcperr_(int *spc, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling SPCPERR in the Fortran code. */
+  fflush(NULL);
+
+  return wcserr_prt(((struct spcprm *)spc)->err, prefix_);
 }
 
 /*--------------------------------------------------------------------------*/
diff --git a/Fortran/sph.inc b/Fortran/sph.inc
index 9201995..fb16220 100644
--- a/Fortran/sph.inc
+++ b/Fortran/sph.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,9 +22,9 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: sph.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: sph.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  SPHDPA, SPHPAD, SPHS2X, SPHX2S
-      INTEGER   SPHDPA, SPHPAD, SPHS2X, SPHX2S
+      EXTERNAL  SPHX2S, SPHS2X, SPHDPA, SPHPAD
+      INTEGER   SPHX2S, SPHS2X, SPHDPA, SPHPAD
diff --git a/Fortran/sph_f.c b/Fortran/sph_f.c
index aa1769b..5456747 100644
--- a/Fortran/sph_f.c
+++ b/Fortran/sph_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: sph_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: sph_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <sph.h>
diff --git a/Fortran/spx.inc b/Fortran/spx.inc
index 3413da2..9fd9359 100644
--- a/Fortran/spx.inc
+++ b/Fortran/spx.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: spx.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: spx.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
@@ -43,6 +43,11 @@
      :         WAVEVELO, VELOWAVE, AWAVVELO, VELOAWAV,
      :         VELOBETA, BETAVELO
 
+*     Length of the SPXPRM data structure (INTEGER array) on 64-bit
+*     machines.  Only needs to be 82 on 32-bit machines.
+      INTEGER   SPXLEN
+      PARAMETER (SPXLEN = 84)
+
 *     Spectral data structure.
       INTEGER   SPX_WAVETYPE,  SPX_VELOTYPE
       DOUBLE PRECISION
@@ -114,8 +119,9 @@
       PARAMETER (SPX_ERR     = 200)
 
 *     Error codes and messages.
-      INTEGER   SPXERR_BAD_INSPEC_COORD, SPXERR_BAD_SPEC_PARAMS,
-     :          SPXERR_BAD_SPEC_VAR, SPXERR_NULL_POINTER, SPXERR_SUCCESS
+      INTEGER   SPXERR_SUCCESS, SPXERR_NULL_POINTER,
+     :          SPXERR_BAD_SPEC_PARAMS, SPXERR_BAD_SPEC_VAR,
+     :          SPXERR_BAD_INSPEC_COORD
 
       PARAMETER (SPXERR_SUCCESS          = 0)
       PARAMETER (SPXERR_NULL_POINTER     = 1)
diff --git a/Fortran/spx_data.f b/Fortran/spx_data.f
index 1d7a71f..90254b7 100644
--- a/Fortran/spx_data.f
+++ b/Fortran/spx_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: spx_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: spx_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA SPX_BLOCK_DATA
diff --git a/Fortran/spx_f.c b/Fortran/spx_f.c
index 012879f..861b50e 100644
--- a/Fortran/spx_f.c
+++ b/Fortran/spx_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,11 +22,12 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: spx_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: spx_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <string.h>
 
+#include <wcserr.h>
 #include <spx.h>
 
 /* Fortran name mangling. */
diff --git a/Fortran/tab.inc b/Fortran/tab.inc
index 2fe5ebf..77a483f 100644
--- a/Fortran/tab.inc
+++ b/Fortran/tab.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,14 +22,17 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tab.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: tab.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  TABCPY, TABFREE, TABGET, TABGTD, TABGTI, TABINI, TABMEM,
-     :          TABPRT, TABPTD, TABPTI, TABPUT, TABS2X, TABSET, TABX2S
-      INTEGER   TABCPY, TABFREE, TABGET, TABGTD, TABGTI, TABINI, TABMEM,
-     :          TABPRT, TABPTD, TABPTI, TABPUT, TABS2X, TABSET, TABX2S
+      EXTERNAL  TABPUT, TABPTD, TABPTI, TABGET, TABGTD, TABGTI,
+     :          TABINI, TABMEM, TABCPY, TABCMP, TABFREE, TABPRT,
+     :          TABPERR, TABSET, TABX2S, TABS2X
+
+      INTEGER   TABPUT, TABPTD, TABPTI, TABGET, TABGTD, TABGTI,
+     :          TABINI, TABMEM, TABCPY, TABCMP, TABFREE, TABPRT,
+     :          TABPERR, TABSET, TABX2S, TABS2X
 
 *     Length of the TABPRM data structure (INTEGER array) on 64-bit
 *     machines.  Only needs to be 24 on 32-bit machines.
@@ -37,8 +40,8 @@
       PARAMETER (TABLEN = 40)
 
 *     Codes for TAB data structure elements used by TABPUT and TABGET.
-      INTEGER   TAB_COORD, TAB_CRVAL, TAB_FLAG, TAB_INDEX, TAB_K, TAB_M,
-     :          TAB_MAP
+      INTEGER   TAB_FLAG, TAB_M, TAB_K, TAB_MAP, TAB_CRVAL, TAB_INDEX,
+     :          TAB_COORD
 
       PARAMETER (TAB_FLAG    = 100)
       PARAMETER (TAB_M       = 101)
@@ -49,8 +52,8 @@
       PARAMETER (TAB_COORD   = 106)
 
 *     Codes for TAB data structure elements used by TABGET (only).
-      INTEGER   TAB_DELTA, TAB_ERR, TAB_EXTREMA, TAB_NC, TAB_P0,
-     :          TAB_SENSE
+      INTEGER   TAB_NC, TAB_SENSE, TAB_P0, TAB_DELTA, TAB_EXTREMA,
+     :          TAB_ERR
 
       PARAMETER (TAB_NC      = 200)
       PARAMETER (TAB_SENSE   = 201)
@@ -60,8 +63,8 @@
       PARAMETER (TAB_ERR     = 205)
 
 *     Error codes and messages.
-      INTEGER   TABERR_BAD_PARAMS, TABERR_BAD_WORLD, TABERR_BAD_X,
-     :          TABERR_MEMORY, TABERR_NULL_POINTER, TABERR_SUCCESS
+      INTEGER   TABERR_SUCCESS, TABERR_NULL_POINTER, TABERR_MEMORY,
+     :          TABERR_BAD_PARAMS, TABERR_BAD_X, TABERR_BAD_WORLD
 
       PARAMETER (TABERR_SUCCESS      = 0)
       PARAMETER (TABERR_NULL_POINTER = 1)
diff --git a/Fortran/tab_data.f b/Fortran/tab_data.f
index 96acec3..8a690c6 100644
--- a/Fortran/tab_data.f
+++ b/Fortran/tab_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tab_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: tab_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA TAB_BLOCK_DATA
diff --git a/Fortran/tab_f.c b/Fortran/tab_f.c
index 70c0732..18fce59 100644
--- a/Fortran/tab_f.c
+++ b/Fortran/tab_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,31 +22,35 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: tab_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: tab_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
+#include <string.h>
 
+#include <wcserr.h>
 #include <tab.h>
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
+#define tabput_  F77_FUNC(tabput,  TABPUT)
+#define tabptd_  F77_FUNC(tabptd,  TABPTD)
+#define tabpti_  F77_FUNC(tabpti,  TABPTI)
+#define tabget_  F77_FUNC(tabget,  TABGET)
+#define tabgtd_  F77_FUNC(tabgtd,  TABGTD)
+#define tabgti_  F77_FUNC(tabgti,  TABGTI)
+
 #define tabini_  F77_FUNC(tabini,  TABINI)
 #define tabmem_  F77_FUNC(tabmem,  TABMEM)
 #define tabcpy_  F77_FUNC(tabcpy,  TABCPY)
-#define tabput_  F77_FUNC(tabput,  TABPUT)
-#define tabget_  F77_FUNC(tabget,  TABGET)
+#define tabcmp_  F77_FUNC(tabcmp,  TABCMP)
 #define tabfree_ F77_FUNC(tabfree, TABFREE)
 #define tabprt_  F77_FUNC(tabprt,  TABPRT)
+#define tabperr_ F77_FUNC(tabperr, TABPERR)
 #define tabset_  F77_FUNC(tabset,  TABSET)
 #define tabx2s_  F77_FUNC(tabx2s,  TABX2S)
 #define tabs2x_  F77_FUNC(tabs2x,  TABS2X)
 
-#define tabptd_ F77_FUNC(tabptd, TABPTD)
-#define tabpti_ F77_FUNC(tabpti, TABPTI)
-#define tabgtd_ F77_FUNC(tabgtd, TABGTD)
-#define tabgti_ F77_FUNC(tabgti, TABGTI)
-
 #define TAB_FLAG     100
 #define TAB_M        101
 #define TAB_K        102
@@ -64,30 +68,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int tabini_(const int *M, const int *K, int *tab)
-
-{
-  return tabini(1, *M, K, (struct tabprm *)tab);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int tabmem_(int *tab)
-
-{
-  return tabmem((struct tabprm *)tab);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int tabcpy_(const int *tabsrc, int *tabdst)
-
-{
-  return tabcpy(1, (const struct tabprm *)tabsrc, (struct tabprm *)tabdst);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int tabput_(
   int *tab,
   const int *what,
@@ -269,6 +249,44 @@ int tabgti_(const int *tab, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int tabini_(const int *M, const int *K, int *tab)
+
+{
+  return tabini(1, *M, K, (struct tabprm *)tab);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tabmem_(int *tab)
+
+{
+  return tabmem((struct tabprm *)tab);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tabcpy_(const int *tabsrc, int *tabdst)
+
+{
+  return tabcpy(1, (const struct tabprm *)tabsrc, (struct tabprm *)tabdst);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int tabcmp_(
+  const int *cmp,
+  const double *tol,
+  const int *tab1,
+  const int *tab2,
+  int *equal)
+
+{
+  return tabcmp(*cmp, *tol, (const struct tabprm *)tab1,
+                (const struct tabprm *)tab2, equal);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int tabfree_(int *tab)
 
 {
@@ -289,6 +307,34 @@ int tabprt_(const int *tab)
 
 /*--------------------------------------------------------------------------*/
 
+/* prefix should be null-terminated, or else of length 72 in which case
+ * trailing blanks are not significant. */
+
+int tabperr_(int *tab, const char prefix[72])
+
+{
+  char prefix_[72];
+  int  i;
+
+  strncpy(prefix_, prefix, 72);
+  if (prefix_[71] == ' ') {
+    for (i = 70; i >= 0; i--) {
+      if (prefix_[i] != ' ') break;
+      prefix_[i] = '\0';
+    }
+  } else {
+    prefix_[71] = '\0';
+  }
+
+  /* This may or may not force the Fortran I/O buffers to be flushed. */
+  /* If not, try CALL FLUSH(6) before calling TABPERR in the Fortran code. */
+  fflush(NULL);
+
+  return wcserr_prt(((struct tabprm *)tab)->err, prefix_);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int tabset_(int *tab)
 
 {
diff --git a/Fortran/test/tcel1.f b/Fortran/test/tcel1.f
index aa42551..09b082f 100644
--- a/Fortran/test/tcel1.f
+++ b/Fortran/test/tcel1.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tcel1.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tcel1.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TCEL1
diff --git a/Fortran/test/tdis1.f b/Fortran/test/tdis1.f
new file mode 100644
index 0000000..dcb6f3c
--- /dev/null
+++ b/Fortran/test/tdis1.f
@@ -0,0 +1,264 @@
+*=======================================================================
+*
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
+* Copyright (C) 1995-2015, Mark Calabretta
+*
+* This file is part of WCSLIB.
+*
+* WCSLIB is free software: you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as published
+* by the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* WCSLIB is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+* License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+*
+* Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+*
+* Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+* http://www.atnf.csiro.au/people/Mark.Calabretta
+* $Id: tdis1.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
+*=======================================================================
+
+      PROGRAM TDIS1
+*-----------------------------------------------------------------------
+*
+* TDIS1 tests the WCSLIB distortion functions for closure.  Input comes
+* from TPV7.fits.  The test is done via LINP2X and LINX2P.
+*
+* WCSP, which is meant to hold an address, is declared as an INTEGER
+* array of length 2 to accomodate 64-bit machines for which
+* sizeof(void *) = 2*sizeof(int).
+*-----------------------------------------------------------------------
+      INTEGER   AXMAX, NMAX
+      PARAMETER (AXMAX = 4)
+      PARAMETER (NMAX  = 4096)
+
+      DOUBLE PRECISION ATOL, FTOL
+      PARAMETER (ATOL = 1E-9)
+      PARAMETER (FTOL = 1E-10)
+
+      LOGICAL   GOTEND
+      INTEGER   IBLOCK, IKEYRC, ILAT, ILNG, INC, J, K, N, NAXIS(AXMAX),
+     :          NAXIS1, NAXIS2, NCLOS, NFAIL, NKEYRC, NREJECT, NTEST,
+     :          NWCS, P1, P2, STATUS, WCSP(2)
+      DOUBLE PRECISION ABSMAX, CRPIX(AXMAX), DP1, DP2, IMG(2,NMAX), PX,
+     :          PX0(2,NMAX), PX1(2,NMAX), RELMAX, RESID
+      CHARACTER KEYREC*80, HEADER*288000, INFILE*9
+
+*     On some systems, such as Sun Sparc, the structs MUST be aligned
+*     on a double precision boundary, done here using an equivalence.
+*     Failure to do this may result in mysterious "bus errors".
+      INCLUDE 'wcserr.inc'
+      INCLUDE 'wcshdr.inc'
+      INCLUDE 'wcs.inc'
+      INCLUDE 'lin.inc'
+      INTEGER   WCS(WCSLEN), LIN(LINLEN)
+      DOUBLE PRECISION DUMMY1, DUMMY2
+      EQUIVALENCE (WCS, DUMMY1)
+      EQUIVALENCE (LIN, DUMMY2)
+
+      DATA INFILE /'TPV7.fits'/
+*-----------------------------------------------------------------------
+      STATUS = WCSERR_ENABLE(1)
+
+      WRITE (*, 10)
+ 10   FORMAT (
+     :  'Testing closure of WCSLIB distortion routines (tdis1.f)',/,
+     :  '-------------------------------------------------------')
+
+*     Open the FITS WCS test header for formatted, direct I/O.
+      OPEN (UNIT=1, FILE=INFILE, FORM='FORMATTED', ACCESS='DIRECT',
+     :      RECL=80, IOSTAT=STATUS)
+      IF (STATUS.NE.0) THEN
+        WRITE (*, 20) STATUS, INFILE
+ 20     FORMAT ('ERROR',I3,' opening ',A)
+        GO TO 999
+      END IF
+
+*     Read in the FITS header, excluding COMMENT and HISTORY keyrecords.
+      K = 1
+      NKEYRC = 0
+      GOTEND = .FALSE.
+      DO 50 IBLOCK = 0, 100
+        DO 40 IKEYRC = 1, 36
+          READ (1, '(A80)', REC=36*IBLOCK+IKEYRC, IOSTAT=STATUS) KEYREC
+          IF (STATUS.NE.0) THEN
+            WRITE (*, 30) STATUS
+ 30         FORMAT ('ERROR',I3,' reading header.')
+            GO TO 999
+          END IF
+
+          IF (KEYREC(:8).EQ.'        ') GO TO 40
+          IF (KEYREC(:8).EQ.'COMMENT ') GO TO 40
+          IF (KEYREC(:8).EQ.'HISTORY ') GO TO 40
+
+          IF (KEYREC(:5).EQ.'NAXIS') THEN
+            READ (KEYREC(6:6), '(I1)') J
+            READ (KEYREC(11:), *) NAXIS(J)
+            GO TO 40
+          END IF
+
+          HEADER(K:) = KEYREC
+          K = K + 80
+          NKEYRC = NKEYRC + 1
+
+          IF (KEYREC(:10).EQ.'END       ') THEN
+*           An END keyrecord was read, but read the rest of the block.
+            GOTEND = .TRUE.
+          END IF
+ 40     CONTINUE
+
+        IF (GOTEND) GO TO 60
+ 50   CONTINUE
+
+ 60   CLOSE (UNIT=1)
+
+
+*     Parse the header.
+      CALL FLUSH(6)
+      STATUS = WCSPIH (HEADER, NKEYRC, WCSHDR_none, 2, NREJECT, NWCS,
+     :                 WCSP)
+      IF (STATUS.NE.0) GO TO 999
+
+*     Copy into our WCSPRM struct.
+      STATUS = WCSVCOPY (WCSP, 0, WCS)
+      IF (STATUS.NE.0) GO TO 999
+
+*     Translate the TPV "projection" into a sequent distortion.
+      STATUS = WCSSET(WCS)
+      IF (STATUS.NE.0) THEN
+        STATUS = WCSPERR(WCS, CHAR(0))
+        GO TO 999
+      END IF
+
+*     Henceforth, we will work with linprm.
+      STATUS = WCSGET (WCS, WCS_LIN, LIN)
+      IF (STATUS.NE.0) THEN
+        STATUS = WCSPERR(WCS, CHAR(0))
+        GO TO 999
+      END IF
+
+
+*     The image size determines the test domain.
+      STATUS = WCSGTI (WCS, WCS_LNG, ILNG)
+      STATUS = WCSGTI (WCS, WCS_LAT, ILAT)
+      NAXIS1 = NAXIS(ILNG)
+      NAXIS2 = NAXIS(ILAT)
+      IF (NAXIS1.EQ.0 .OR. NAXIS2.EQ.0) THEN
+        STATUS = WCSGTD (WCS, WCS_CRPIX, CRPIX)
+        IF (NAXIS1.EQ.0) NAXIS1 = 2*INT(CRPIX(ILNG)) + 1
+        IF (NAXIS2.EQ.0) NAXIS2 = 2*INT(CRPIX(ILAT)) + 1
+      END IF
+
+*     Limit the number of tests.
+      INC = 1
+      DO 100 WHILE ((NAXIS1/INC)*(NAXIS2/INC).GT.800000)
+        INC = 2 * INC
+ 100  CONTINUE
+
+      N = NAXIS1 / INC
+      IF (2*N.GT.NMAX) N = NMAX / 2
+
+      NTEST = 0
+      NFAIL = 0
+      NCLOS = 0
+      ABSMAX = 0D0
+      RELMAX = 0D0
+
+      DO 200 P2 = 1, NAXIS2, INC
+        K = 0
+        DO 110 P1 = 1, NAXIS1, INC
+          K = K + 1
+          PX0(1,K) = DBLE(P1)
+          PX0(2,K) = DBLE(P2)
+ 110    CONTINUE
+
+        STATUS = LINP2X(LIN, N, 2, PX0, IMG)
+        IF (STATUS.NE.0) THEN
+          STATUS = LINPERR(LIN, CHAR(0))
+          NFAIL = 1
+          GO TO 210
+        END IF
+
+        STATUS = LINX2P(LIN, N, 2, IMG, PX1)
+        IF (STATUS.NE.0) THEN
+          STATUS = LINPERR(LIN, CHAR(0))
+          NFAIL = 1
+          GO TO 210
+        END IF
+
+*       Check closure.
+        DO 140 K = 1, N
+          DP1 = ABS(PX1(1,K) - PX0(1,K))
+          DP2 = ABS(PX1(2,K) - PX0(2,K))
+
+          RESID = MAX(DP1, DP2)
+          IF (RESID.GT.ABSMAX) ABSMAX = RESID
+
+          IF (RESID.GT.ATOL) THEN
+            NCLOS = NCLOS + 1
+            WRITE (*, 120) PX0(1,K), PX0(2,K), IMG(1,K), IMG(2,K),
+     :                     PX1(1,K), PX1(2,K)
+ 120        FORMAT ('   Absolute closure error:',/,
+     :              '    pix: ',F18.12,1X,F18.12,/,
+     :              ' -> img: ',F18.12,1X,F18.12,/,
+     :              ' -> pix: ',F18.12,1X,F18.12,/)
+            GO TO 140
+          END IF
+
+          RESID = 0D0
+          PX = ABS(PX0(1,K))
+          IF (PX.GT.1D0) RESID = DP1/PX
+          PX = ABS(PX0(2,K))
+          IF (PX.GT.1D0) RESID = MAX(RESID, DP2/PX)
+          IF (RESID.GT.RELMAX) RELMAX = RESID
+
+          IF (RESID.GT.FTOL) THEN
+            NCLOS = NCLOS + 1
+            WRITE (*, 130) PX0(1,K), PX0(2,K), IMG(1,K), IMG(2,K),
+     :                     PX1(1,K), PX1(2,K)
+ 130        FORMAT ('   Relative closure error:',/,
+     :              '    pix: ',F18.12,1X,F18.12,/,
+     :              ' -> img: ',F18.12,1X,F18.12,/,
+     :              ' -> pix: ',F18.12,1X,F18.12,/)
+          END IF
+ 140    CONTINUE
+
+        NTEST = NTEST + N
+ 200  CONTINUE
+
+ 210  IF (NFAIL.NE.0) THEN
+        WRITE (*, 220)
+ 220    FORMAT (/,'FAIL: The test failed to complete.')
+
+      ELSE
+        WRITE (*, 230) NTEST, ABSMAX, RELMAX
+ 230    FORMAT (
+     :    'LINP2X/LINX2P with distortions:',/,
+     :    '  Completed',I7,' closure tests.',/,
+     :    '  Maximum absolute closure residual =',1P,E8.1,' pixel.',/,
+     :    '  Maximum relative closure residual =',1P,E8.1,'.',/)
+
+        IF (NCLOS.NE.0) THEN
+        WRITE (*, 240) NCLOS
+ 240    FORMAT ('FAIL:',I5,' closure residuals exceed reporting ',
+     :          'tolerance.')
+
+        ELSE
+        WRITE (*, 250)
+ 250    FORMAT ('PASS: All closure residuals are within reporting ',
+     :          'tolerance.')
+        END IF
+      END IF
+
+
+*     Free the memory allocated by WCSPIH.
+ 999  STATUS = WCSVFREE (NWCS, WCSP)
+
+      END
diff --git a/Fortran/test/tdis2.f b/Fortran/test/tdis2.f
new file mode 100644
index 0000000..b50e482
--- /dev/null
+++ b/Fortran/test/tdis2.f
@@ -0,0 +1,288 @@
+*=======================================================================
+*
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
+* Copyright (C) 1995-2015, Mark Calabretta
+*
+* This file is part of WCSLIB.
+*
+* WCSLIB is free software: you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as published
+* by the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* WCSLIB is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+* License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with WCSLIB.  If not, see http://www.gnu.org/licenses.
+*
+* Direct correspondence concerning WCSLIB to mark at calabretta.id.au
+*
+* Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
+* http://www.atnf.csiro.au/people/Mark.Calabretta
+* $Id: tdis2.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
+*=======================================================================
+
+      PROGRAM TDIS2
+*-----------------------------------------------------------------------
+*
+* TDIS2 tests the WCSLIB Fortran routines for manipulating the contents
+* of a disprm struct.  Two disprm structs are used.  One, residing in a
+* linprm struct, is referenced by "address" (DISP), and the other (DISL)
+* resides locally in an INTEGER array.
+*
+* DISP and WCSP, which are meant to hold addresses, are declared as
+* INTEGER arrays of length 2 to accomodate 64-bit machines for which
+* sizeof(void *) = 2*sizeof(int).
+*
+* Test input comes from TPV7.fits.
+*-----------------------------------------------------------------------
+      INTEGER   AXMAX, PMAX
+      PARAMETER (AXMAX = 4)
+      PARAMETER (PMAX  = 40)
+
+      LOGICAL   GOTEND
+      INTEGER   AXMAP(AXMAX*AXMAX), DISP(2), IBLOCK, IKEYRC, J, JK, JN,
+     :          K, NAXIS, NKEYRC, NPARM(AXMAX), NREJECT, NWCS, STATUS,
+     :          WCSP(2)
+      DOUBLE PRECISION MAXDIS(AXMAX), OFFSET(AXMAX*AXMAX),
+     :          PARMS(AXMAX*PMAX), SCALE(AXMAX*AXMAX), TOTDIS
+      CHARACTER DTYPE(AXMAX)*16, KEYREC*80, HEADER*288000, INFILE*9
+
+*     On some systems, such as Sun Sparc, the structs MUST be aligned
+*     on a double precision boundary, done here using an equivalence.
+*     Failure to do this may result in mysterious "bus errors".
+      INCLUDE 'wcserr.inc'
+      INCLUDE 'wcshdr.inc'
+      INCLUDE 'wcs.inc'
+      INCLUDE 'lin.inc'
+      INCLUDE 'dis.inc'
+      INTEGER   WCS(WCSLEN), LIN(LINLEN), DISL(DISLEN)
+      DOUBLE PRECISION DUMMY1, DUMMY2, DUMMY3
+      EQUIVALENCE (WCS, DUMMY1)
+      EQUIVALENCE (LIN, DUMMY2)
+      EQUIVALENCE (DISL, DUMMY3)
+
+      DATA INFILE /'TPV7.fits'/
+*-----------------------------------------------------------------------
+      STATUS = WCSERR_ENABLE(1)
+
+      WRITE (*, 10)
+ 10   FORMAT (
+     :  'Testing WCSLIB Fortran disprm access routines (tdis2.f)',/,
+     :  '-------------------------------------------------------')
+
+*     Open the FITS WCS test header for formatted, direct I/O.
+      OPEN (UNIT=1, FILE=INFILE, FORM='FORMATTED', ACCESS='DIRECT',
+     :      RECL=80, IOSTAT=STATUS)
+      IF (STATUS.NE.0) THEN
+        WRITE (*, 20) STATUS, INFILE
+ 20     FORMAT ('ERROR',I3,' opening ',A)
+        GO TO 999
+      END IF
+
+*     Read in the FITS header, excluding COMMENT and HISTORY keyrecords.
+      K = 1
+      NKEYRC = 0
+      GOTEND = .FALSE.
+      DO 50 IBLOCK = 0, 100
+        DO 40 IKEYRC = 1, 36
+          READ (1, '(A80)', REC=36*IBLOCK+IKEYRC, IOSTAT=STATUS) KEYREC
+          IF (STATUS.NE.0) THEN
+            WRITE (*, 30) STATUS
+ 30         FORMAT ('ERROR',I3,' reading header.')
+            GO TO 999
+          END IF
+
+          IF (KEYREC(:8).EQ.'        ') GO TO 40
+          IF (KEYREC(:8).EQ.'COMMENT ') GO TO 40
+          IF (KEYREC(:8).EQ.'HISTORY ') GO TO 40
+
+          HEADER(K:) = KEYREC
+          K = K + 80
+          NKEYRC = NKEYRC + 1
+
+          IF (KEYREC(:10).EQ.'END       ') THEN
+*           An END keyrecord was read, but read the rest of the block.
+            GOTEND = .TRUE.
+          END IF
+ 40     CONTINUE
+
+        IF (GOTEND) GO TO 60
+ 50   CONTINUE
+
+ 60   CLOSE (UNIT=1)
+
+
+*     Parse the header.
+      CALL FLUSH(6)
+      STATUS = WCSPIH (HEADER, NKEYRC, WCSHDR_none, 2, NREJECT, NWCS,
+     :                 WCSP)
+      IF (STATUS.NE.0) GO TO 999
+
+*     Copy into our WCSPRM struct.
+      STATUS = WCSVCOPY (WCSP, 0, WCS)
+      IF (STATUS.NE.0) GO TO 999
+
+*     Translate the TPV "projection" into a sequent distortion.
+      STATUS = WCSSET(WCS)
+      IF (STATUS.NE.0) THEN
+        STATUS = WCSPERR(WCS, CHAR(0))
+        GO TO 999
+      END IF
+
+*     Extract the linprm struct.
+      STATUS = WCSGET (WCS, WCS_LIN, LIN)
+      IF (STATUS.NE.0) THEN
+        STATUS = WCSPERR(WCS, CHAR(0))
+        GO TO 999
+      END IF
+
+*     Extract a "pointer" to the disprm struct.
+      STATUS = LINGET(LIN, LIN_DISSEQ, DISP)
+      IF (STATUS.NE.0) THEN
+        STATUS = LINPERR(LIN, CHAR(0))
+        GO TO 999
+      END IF
+
+*     Add a little texture.
+      STATUS = DISPTD (1, DISP, DIS_OFFSET, 0.0011D0, 1, 1)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_OFFSET, 0.0012D0, 1, 2)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_OFFSET, 0.0021D0, 2, 1)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_OFFSET, 0.0022D0, 2, 2)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_SCALE,  1.0011D0, 1, 1)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_SCALE,  1.0012D0, 1, 2)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_SCALE,  1.0021D0, 2, 1)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_SCALE,  1.0022D0, 2, 2)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_MAXDIS, 2.0010D0, 1, 0)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_MAXDIS, 2.0020D0, 2, 0)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISPTD (1, DISP, DIS_TOTDIS, 3.0000D0, 0, 0)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Print its contents.
+      CALL FLUSH(6)
+      STATUS = DISPRT(1, DISP)
+      IF (STATUS.NE.0) GO TO 998
+
+      WRITE (*, 70)
+ 70   FORMAT (/,'------------------------------------',
+     :          '------------------------------------')
+
+
+*   Copy it the long way first to test the various PUT and GET routines.
+*     Start by reading everything from the first.
+      STATUS = DISGET (1, DISP, DIS_NAXIS,  NAXIS)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTC (1, DISP, DIS_DTYPE,  DTYPE)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTI (1, DISP, DIS_AXMAP,  AXMAP)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTD (1, DISP, DIS_OFFSET, OFFSET)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTD (1, DISP, DIS_SCALE,  SCALE)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTI (1, DISP, DIS_NPARM,  NPARM)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTD (1, DISP, DIS_PARMS,  PARMS)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTD (1, DISP, DIS_MAXDIS, MAXDIS)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISGTD (1, DISP, DIS_TOTDIS, TOTDIS)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Initialize the destination.
+      STATUS = DISPUT (0, DISL, DIS_FLAG, -1, 0, 0)
+      IF (STATUS.NE.0) GO TO 998
+      STATUS = DISINI (0, NAXIS, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Copy NPARMS in order to allocate memory for the parameters.
+      DO 100 J = 1, NAXIS
+        STATUS = DISPTI (0, DISL, DIS_NPARM, NPARM(J), J, 0)
+        IF (STATUS.NE.0) GO TO 998
+ 100  CONTINUE
+
+      STATUS = DISPARMS (0, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Copy the rest.
+      JK = 0
+      JN = 0
+      DO 130 J = 1, NAXIS
+        STATUS = DISPTD (0, DISL, DIS_DTYPE, DTYPE, J, 0)
+        IF (STATUS.NE.0) GO TO 998
+
+        DO 110 K = 1, NAXIS
+          JK = JK + 1
+          STATUS = DISPTI (0, DISL, DIS_AXMAP,  AXMAP(JK),  J, K)
+          IF (STATUS.NE.0) GO TO 998
+          STATUS = DISPTD (0, DISL, DIS_OFFSET, OFFSET(JK), J, K)
+          IF (STATUS.NE.0) GO TO 998
+          STATUS = DISPTD (0, DISL, DIS_SCALE,  SCALE(JK),  J, K)
+          IF (STATUS.NE.0) GO TO 998
+ 110    CONTINUE
+
+        STATUS = DISPTI (0, DISL, DIS_MAXDIS, MAXDIS(J), J, 0)
+        IF (STATUS.NE.0) GO TO 998
+
+*       The distortion parameters.
+        DO 120 K = 1, NPARM(J)
+          JN = JN + 1
+          STATUS = DISPTD (0, DISL, DIS_PARMS, PARMS(JN), J, K)
+          IF (STATUS.NE.0) GO TO 998
+ 120    CONTINUE
+ 130  CONTINUE
+
+      STATUS = DISSET (0, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Print the second.
+      CALL FLUSH(6)
+      STATUS = DISPRT(0, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+      WRITE (*, 70)
+
+
+*   Now copy it the fast way.
+*     Start with a clean slate.
+      STATUS = DISINI (0, NAXIS, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Here the source is a "pointer", and the destination a local array.
+      STATUS = DISCPY (1, DISP, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     A reset is required before printing.
+      STATUS = DISSET (0, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+*     Print the copy.
+      CALL FLUSH(6)
+      STATUS = DISPRT(0, DISL)
+      IF (STATUS.NE.0) GO TO 998
+
+
+*   Cleanup.
+ 998  IF (STATUS.NE.0) THEN
+        STATUS = DISPERR(1, DISP, CHAR(0))
+      END IF
+      STATUS = DISFREE (0, DISL)
+
+*     Free memory allocated by WCSPIH, WCSINI, etc.
+*     Should free DISP as well.
+ 999  STATUS = WCSVFREE (NWCS, WCSP)
+
+      END
diff --git a/Fortran/test/tdis2.out b/Fortran/test/tdis2.out
new file mode 100644
index 0000000..dc18a89
--- /dev/null
+++ b/Fortran/test/tdis2.out
@@ -0,0 +1,171 @@
+Testing WCSLIB Fortran disprm access routines (tdis2.f)
+-------------------------------------------------------
+       flag: 137
+      naxis: 2
+      dtype: 0x<address>
+             "TPV"
+             "TPV"
+      axmap: 0x<address>
+ axmap[0][]:     1     2
+ axmap[1][]:     2     1
+     offset: 0x<address>
+offset[0][]:   0.0011000    0.0012000 
+offset[1][]:   0.0021000    0.0022000 
+      scale: 0x<address>
+ scale[0][]:   1.0011       1.0012    
+ scale[1][]:   1.0021       1.0022    
+      nparm: 0x<address>
+                40    40
+      parms: 0x<address>
+ parms[0][]:   0.30939      0.98842      0.0000      -0.0021924    2.8381e-06
+               0.0000       3.6848e-06   9.6423e-10   0.0000       6.0581e-10
+               0.0000      -4.0302e-09   1.7927e-12   0.0000       3.5995e-12
+               0.0000       1.7547e-12  -2.0310e-17   0.0000      -2.2639e-17
+               0.0000       3.6913e-18   0.0000      -3.7771e-16   4.0081e-20
+               0.0000       1.1800e-19   0.0000       1.1810e-19   0.0000    
+               4.0114e-20   3.0321e-25   0.0000       6.3743e-25   0.0000    
+               2.0538e-25   0.0000      -1.9849e-25   0.0000      -1.6393e-24
+ parms[1][]:   0.0000       0.99349      0.0000       0.0000       0.0000    
+              -1.8104e-06   0.0000       4.7932e-11   0.0000       6.1848e-10
+               0.0000       0.0000       0.0000       1.4059e-13   0.0000    
+               8.7740e-14   0.0000       2.8940e-17   0.0000       1.5914e-18
+               0.0000      -1.0280e-17   0.0000       0.0000       0.0000    
+              -2.8008e-21   0.0000      -3.2402e-21   0.0000      -7.9356e-22
+               0.0000      -6.7738e-25   0.0000      -3.0173e-25   0.0000    
+               2.8026e-25   0.0000       1.4550e-25   0.0000       0.0000    
+     maxdis: 0x<address>
+               2.0010       2.0020    
+     totdis:   3.0000    
+        err: 0x0
+     disp2x: 0x<address>
+  disp2x[0]: 0x<address>  (= tpv7)
+  disp2x[1]: 0x<address>  (= tpv7)
+     disx2p: 0x<address>
+  disx2p[0]: 0x0
+  disx2p[1]: 0x0
+     tmpmem: 0x<address>
+       iwrk: 0x0
+       dwrk: 0x0
+     m_flag: 137
+    m_naxis: 2
+    m_dtype: 0x<address>  (= dtype)
+    m_axmap: 0x<address>  (= axmap)
+   m_offset: 0x<address>  (= offset)
+    m_scale: 0x<address>  (= scale)
+    m_nparm: 0x<address>  (= nparm)
+    m_parms: 0x<address>  (= parms)
+   m_maxdis: 0x<address>  (= maxdis)
+
+------------------------------------------------------------------------
+       flag: 137
+      naxis: 2
+      dtype: 0x<address>
+             "TPV"
+             "TPV"
+      axmap: 0x<address>
+ axmap[0][]:     1     2
+ axmap[1][]:     2     1
+     offset: 0x<address>
+offset[0][]:   0.0011000    0.0012000 
+offset[1][]:   0.0021000    0.0022000 
+      scale: 0x<address>
+ scale[0][]:   1.0011       1.0012    
+ scale[1][]:   1.0021       1.0022    
+      nparm: 0x<address>
+                40    40
+      parms: 0x<address>
+ parms[0][]:   0.30939      0.98842      0.0000      -0.0021924    2.8381e-06
+               0.0000       3.6848e-06   9.6423e-10   0.0000       6.0581e-10
+               0.0000      -4.0302e-09   1.7927e-12   0.0000       3.5995e-12
+               0.0000       1.7547e-12  -2.0310e-17   0.0000      -2.2639e-17
+               0.0000       3.6913e-18   0.0000      -3.7771e-16   4.0081e-20
+               0.0000       1.1800e-19   0.0000       1.1810e-19   0.0000    
+               4.0114e-20   3.0321e-25   0.0000       6.3743e-25   0.0000    
+               2.0538e-25   0.0000      -1.9849e-25   0.0000      -1.6393e-24
+ parms[1][]:   0.0000       0.99349      0.0000       0.0000       0.0000    
+              -1.8104e-06   0.0000       4.7932e-11   0.0000       6.1848e-10
+               0.0000       0.0000       0.0000       1.4059e-13   0.0000    
+               8.7740e-14   0.0000       2.8940e-17   0.0000       1.5914e-18
+               0.0000      -1.0280e-17   0.0000       0.0000       0.0000    
+              -2.8008e-21   0.0000      -3.2402e-21   0.0000      -7.9356e-22
+               0.0000      -6.7738e-25   0.0000      -3.0173e-25   0.0000    
+               2.8026e-25   0.0000       1.4550e-25   0.0000       0.0000    
+     maxdis: 0x<address>
+               2.0010       2.0020    
+     totdis:   0.0000    
+        err: 0x0
+     disp2x: 0x<address>
+  disp2x[0]: 0x<address>  (= tpv7)
+  disp2x[1]: 0x<address>  (= tpv7)
+     disx2p: 0x<address>
+  disx2p[0]: 0x0
+  disx2p[1]: 0x0
+     tmpmem: 0x<address>
+       iwrk: 0x0
+       dwrk: 0x0
+     m_flag: 137
+    m_naxis: 2
+    m_dtype: 0x<address>  (= dtype)
+    m_axmap: 0x<address>  (= axmap)
+   m_offset: 0x<address>  (= offset)
+    m_scale: 0x<address>  (= scale)
+    m_nparm: 0x<address>  (= nparm)
+    m_parms: 0x<address>  (= parms)
+   m_maxdis: 0x<address>  (= maxdis)
+
+------------------------------------------------------------------------
+       flag: 137
+      naxis: 2
+      dtype: 0x<address>
+             "TPV"
+             "TPV"
+      axmap: 0x<address>
+ axmap[0][]:     1     2
+ axmap[1][]:     2     1
+     offset: 0x<address>
+offset[0][]:   0.0011000    0.0012000 
+offset[1][]:   0.0021000    0.0022000 
+      scale: 0x<address>
+ scale[0][]:   1.0011       1.0012    
+ scale[1][]:   1.0021       1.0022    
+      nparm: 0x<address>
+                40    40
+      parms: 0x<address>
+ parms[0][]:   0.30939      0.98842      0.0000      -0.0021924    2.8381e-06
+               0.0000       3.6848e-06   9.6423e-10   0.0000       6.0581e-10
+               0.0000      -4.0302e-09   1.7927e-12   0.0000       3.5995e-12
+               0.0000       1.7547e-12  -2.0310e-17   0.0000      -2.2639e-17
+               0.0000       3.6913e-18   0.0000      -3.7771e-16   4.0081e-20
+               0.0000       1.1800e-19   0.0000       1.1810e-19   0.0000    
+               4.0114e-20   3.0321e-25   0.0000       6.3743e-25   0.0000    
+               2.0538e-25   0.0000      -1.9849e-25   0.0000      -1.6393e-24
+ parms[1][]:   0.0000       0.99349      0.0000       0.0000       0.0000    
+              -1.8104e-06   0.0000       4.7932e-11   0.0000       6.1848e-10
+               0.0000       0.0000       0.0000       1.4059e-13   0.0000    
+               8.7740e-14   0.0000       2.8940e-17   0.0000       1.5914e-18
+               0.0000      -1.0280e-17   0.0000       0.0000       0.0000    
+              -2.8008e-21   0.0000      -3.2402e-21   0.0000      -7.9356e-22
+               0.0000      -6.7738e-25   0.0000      -3.0173e-25   0.0000    
+               2.8026e-25   0.0000       1.4550e-25   0.0000       0.0000    
+     maxdis: 0x<address>
+               2.0010       2.0020    
+     totdis:   3.0000    
+        err: 0x0
+     disp2x: 0x<address>
+  disp2x[0]: 0x<address>  (= tpv7)
+  disp2x[1]: 0x<address>  (= tpv7)
+     disx2p: 0x<address>
+  disx2p[0]: 0x0
+  disx2p[1]: 0x0
+     tmpmem: 0x<address>
+       iwrk: 0x0
+       dwrk: 0x0
+     m_flag: 137
+    m_naxis: 2
+    m_dtype: 0x<address>  (= dtype)
+    m_axmap: 0x<address>  (= axmap)
+   m_offset: 0x<address>  (= offset)
+    m_scale: 0x<address>  (= scale)
+    m_nparm: 0x<address>  (= nparm)
+    m_parms: 0x<address>  (= parms)
+   m_maxdis: 0x<address>  (= maxdis)
diff --git a/Fortran/test/tfitshdr.f b/Fortran/test/tfitshdr.f
index 07cc71f..0939707 100644
--- a/Fortran/test/tfitshdr.f
+++ b/Fortran/test/tfitshdr.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tfitshdr.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tfitshdr.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TFITSHDR
@@ -31,7 +31,7 @@
 * TFITSHDR tests FITSHDR, the FITS parser for image headers, by reading
 * a test header and printing the resulting fitskey structs.
 *
-* Input comes from file 'pih.fits'.
+* Input comes from file 'fitshdr.fits'.
 *
 * WCSHDR is called first to extract all WCS-related keyrecords from the
 * input header before passing it on to FITSHDR.
@@ -45,14 +45,14 @@
      :          KTYP, NC, NKEYRC, NKEYID, NREJECT, NWCS, RELAX, STATUS,
      :          ULEN, WCSP
       DOUBLE PRECISION FVAL(2)
-      CHARACTER KEYREC*80, CVAL*72, HEADER*288001, KEYWRD*12, INFILE*9,
+      CHARACTER KEYREC*80, CVAL*72, HEADER*288001, KEYWRD*12, INFILE*12,
      :          TEXT*84
 
       INCLUDE 'wcshdr.inc'
       INCLUDE 'fitshdr.inc'
       INTEGER KEYIDS(KEYIDLEN,8)
 
-      DATA INFILE /'pih.fits'/
+      DATA INFILE /'fitshdr.fits'/
 *-----------------------------------------------------------------------
       WRITE (*, 10)
  10   FORMAT ('Testing FITS image header parser (tfitshdr.f)',/,
@@ -84,7 +84,7 @@
           K = K + 80
           NKEYRC = NKEYRC + 1
 
-          IF (KEYREC(:8).EQ.'END     ') THEN
+          IF (KEYREC(:10).EQ.'END       ') THEN
 *           An END keyrecord was read, read the rest of the block.
             GOTEND = .TRUE.
           END IF
diff --git a/Fortran/test/tfitshdr.out b/Fortran/test/tfitshdr.out
index 7ea1061..976a615 100644
--- a/Fortran/test/tfitshdr.out
+++ b/Fortran/test/tfitshdr.out
@@ -1,7 +1,7 @@
 Testing FITS image header parser (tfitshdr.f)
 ---------------------------------------------
 
-Found 360 header keyrecords.
+Found 144 header keyrecords.
 
 The following keyrecords will not be listed:
   "SIMPLE  "
@@ -12,125 +12,125 @@ The following keyrecords will not be listed:
   "        "
   "END     "
 
-210 header keyrecords parsed by FITSHDR, 11 rejected:
+ 74 header keyrecords parsed by FITSHDR, 21 rejected:
 
-  69    0  ALTRPIX   5  +0.000000E+00
-Alternate reference pixel (not handled)
-  70    0  ALTRVAL   5  +0.000000E+00
-Alternate reference value (not handled)
- 136    0  CRPIXELS  5  +0.000000E+00
-Furphy, not CRPIXja
- 137    0  PCATALOG  5  +0.000000E+00
-Furphy, not PCi_ja
- 138    0  CDELTA    5  +0.000000E+00
-Furphy, not CDELTia
- 139    0  CDI_JA    5  +0.000000E+00
-Furphy, not CDi_ja
- 140    0  CUNITARY  5  +0.000000E+00
-Furphy, not CUNITia
- 141    0  CTYPEXY   5  +0.000000E+00
-Furphy, not CTYPEia
- 142    0  CRVALUE   5  +0.000000E+00
-Furphy, not CRVALia
- 143    0  CNAME     5  +0.000000E+00
-Furphy, not CNAMEia
- 144    0  PV1_1AL   5  +0.000000E+00
-Furphy, not PVi_ma
- 145    0  PV02_1    5  +0.000000E+00
-Furphy, not PVi_ma (leading zero on i)
- 146    0  PV2_01    5  +0.000000E+00
-Furphy, not PVi_ma (leading zero on m)
- 147    0  PSEUDO    5  +0.000000E+00
-Furphy, not PSi_ma
- 148    0  EPOCHAL   5  +0.000000E+00
-Furphy, not EPOCH
- 149    0  VELREF1   5  +0.000000E+00
-Furphy, not VELREF
- 157    0  CTYPE1    5  +0.000000E+00
-Illegal, CTYPEia must be string type
- 158    0  PV2_1     8  "0.0"
-Illegal, PVi_ma must be numeric
- 159    0  PV2_1     0
- =                 0.0 / Illegal, "= " not in columns 9-10
- 160    0  EPOCH     8  "2000.0"
-Illegal, EPOCH must be numeric
- 168    0  NOVLSPEC  0
-=1                     / Not a valid value specifier (no " " in col. 10)
- 169    0  INT32     2  12345
+   9    0  UNDEF     0
+Undefined keyvalue
+  10    0  TRUE      1  T
+Logical
+  11    0  FALSE     1  F
+Logical
+  12    0  INT32     2  12345
 Not a 64-bit integer
- 170    0  INT32     2  -123456789
+  13    0  INT32     2  -123456789
 Not a 64-bit integer
- 171    0  INT32     2  -2147483648
+  14    0  INT32     2  -2147483648
 Not a 64-bit integer (INT_MIN)
- 172    0  INT32     2  2147483647
+  15    0  INT32     2  2147483647
 Not a 64-bit integer (INT_MAX)
- 173    0  INT32     2  12345
+  16    0  INT32     2  12345
 Not a very long integer
- 174    0  INT32     2  -123456789
+  17    0  INT32     2  -123456789
 Not a very long integer
- 175    0  INT64     3  -2147483649
+  18    0  INT64     3  -2147483649
 64-bit integer (INT_MIN - 1)
- 176    0  INT64     3  +2147483648
+  19    0  INT64     3  +2147483648
 64-bit integer (INT_MAX + 1)
- 177    0  INT64     3  +100000000000000000
+  20    0  INT64     3  +100000000000000000
 64-bit integer
- 178    0  INT64     3  -876543210987654321
+  21    0  INT64     3  -876543210987654321
 64-bit integer
- 179    0  INT64     3  -9223372036854775808
+  22    0  INT64     3  -9223372036854775808
 Not a very long integer (LONG_MIN)
- 180    0  INT64     3  +9223372036854775807
+  23    0  INT64     3  +9223372036854775807
 Not a very long integer (LONG_MAX)
- 181    0  INT64     3  -876543210987654321
+  24    0  INT64     3  -876543210987654321
 64-bit integer
- 182    0  INTVL     4  -9223372036854775809
+  25    0  INTVL     4  -9223372036854775809
 Very long integer (LONG_MIN - 1)
- 183    0  INTVL     4  +9223372036854775808
+  26    0  INTVL     4  +9223372036854775808
 Very long integer (LONG_MAX + 1)
- 184    0  INTVL     4  -100000000000000000000000000000876543210987654321
+  27    0  INTVL     4  -100000000000000000000000000000876543210987654321
 Very-long integer
- 185    0  INTVL     4  +123456789012345678901234567890123456789012345678901234567890123456789
+  28    0  INTVL     4  +123456789012345678901234567890123456789012345678901234567890123456789
 
- 186    0  INTVL     4  +1234567890123456789012345678901234567890123456789012345678901234567890
+  29    0  INTVL     4  +1234567890123456789012345678901234567890123456789012345678901234567890
 
- 187    0  COMPLEX   6  137         -1
+  30    0  FLOAT     5  +3.141593E+00
+Floating point
+  31    0  FLOAT     5  +1.602177E-19
+Floating point, lower-case exp allowed
+  32    0  FLOAT     5  +2.997925E+08
+Floating point
+  33    0  FLOAT     5  +6.626070E+00
+Floating point, lower-case exp allowed
+  34    0  FLOAT     5  +6.022141E+00
+Floating point
+  35    0  COMPLEX   6  137         -1
 An integer complex keyvalue
- 188    0  COMPLEX   7  +1.000000E+06  -1.000000E-01
+  36    0  COMPLEX   7  +1.000000E+06  -1.000000E-01
 A floating point complex keyvalue
- 189    0  GOODSTR   8  ""G'DAY""
+  37    0  GOODSTR   8  ""G'DAY""
 A valid string keyvalue
- 190    0  BLANKS    8  " "
+  38    0  BLANKS    8  " "
 An all-blank string equals a single blank
- 191    0  LONGSTR   8  "The loooooongest possible non-continued string value, 68 characters."
+  39    0  LONGSTR   8  "The loooooongest possible non-continued string value, 68 characters."
 
- 192    0  CONTSTR  18  "The quick brown "
+  40    0  CONTSTR  18  "The quick brown "
 Continued string, with & (will be stripped off)
- 193    4  CONTINUE 28  "fox jumps over the"
+  41    4  CONTINUE 28  "fox jumps over the"
 CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment         
- 194    0  CONTINUE 38  " lazy dog"
+  42    0  CONTINUE 38  " lazy dog"
 
- 195    0  PI        5  +3.141593E+00
+  43    0  PI        5  +3.141593E+00
 [!?] is not a valid units specification
- 196    0  CONTINUE  0
+  44    0  CONTINUE  0
       'Not a valid string continuation'
- 199    1  BadKey    2  111
+  50    1  BADREC =  0
+                     1 / Illegal, "= " not in columns 9-10
+  51    0  BADREC    0
+ =                   1 / Illegal, "= " not in columns 9-10
+  52    0  BADREC    0
+=1                     / Illegal, "= " not in columns 9-10
+  53    0  BADREC    0
+                     1 / Illegal, "= " not in columns 9-10
+  54    1  BadKey    2  111
 Example of a syntax error, invalid keyword
- 200    1  BADKEY!   2  222
+  55    1  BADKEY!   2  222
 Example of a syntax error, invalid keyword
- 201    1  BAD KEY   2  333
+  56    1  BAD KEY   2  333
 Example of a syntax error, invalid keyword
- 202    2  BADSTR    0
-BADSTR  =                  BAD / Example of a syntax error, invalid keyvalue    
- 203    2  BADSTR    0
-BADSTR  =                "BAD" / Example of a syntax error, invalid keyvalue    
- 204    4  BADSTR   -8  ("BAD")
-BADSTR  =          'BAD' 'STR' / Example syntax error, invalid string keyvalue  
- 205    4  BADFLT   -2  (49)
-BADFLT  =              49 + 94 / Example of a syntax error, invalid keyvalue    
- 206    4  BADFLT    0
-BADFLT  =                 1D99 / Example of a syntax error, invalid keyvalue    
- 207    4  BADCOMM  -2  (999)
-BADCOMM =                  999   Example of a syntax error, invalid keycomment  
--208    8  END       8  "ILLEGAL"
+  57    2  BADVAL    0
+BADVAL  =                  BAD / Example of a syntax error, invalid keyvalue    
+  58    2  BADVAL    0
+BADVAL  =                "BAD" / Example of a syntax error, invalid keyvalue    
+  59    4  BADVAL   -8  ("BAD")
+BADVAL  =          'BAD' 'STR' / Example of a syntax error, invalid keyvalue    
+  60    4  BADVAL   -2  (49)
+BADVAL  =              49 + 94 / Example of a syntax error, invalid keyvalue    
+  61    4  BADVAL    0
+BADVAL  =             1934-638 / Example of a syntax error, invalid keyvalue    
+  62    4  BADVAL    0
+BADVAL  =                1.2.3 / Example of a syntax error, invalid keyvalue    
+  63    4  BADVAL    0
+BADVAL  =            12h34m56s / Example of a syntax error, invalid keyvalue    
+  64    4  BADVAL    0
+BADVAL  =                 0xFF / Example of a syntax error, invalid keyvalue    
+  65    4  BADVAL   -2  (58)
+BADVAL  =              58 - 21 / Example of a syntax error, invalid keyvalue    
+  66    2  BADVAL    0
+BADVAL  =                J2000 / Example of a syntax error, invalid keyvalue    
+  67    2  BADVAL    0
+BADVAL  =              B1950.0 / Example of a syntax error, invalid keyvalue    
+  68    4  BADVAL    0
+BADVAL  =            180:00:00 / Example of a syntax error, invalid keyvalue    
+  69    2  BADVAL    0
+BADVAL  =                $9.99 / Example of a syntax error, invalid keyvalue    
+  70    4  BADCOMM  -2  (1)
+BADCOMM =                    1   Example of a syntax error, invalid keycomment  
+  71    4  BADCOMM  -2  (1)
+BADCOMM =                    1   1/8 = 0.125                                    
+ -73    8  END       8  "ILLEGAL"
 Illegal END keyrecord
 
 
@@ -138,7 +138,7 @@ Indexes of selected keywords:
 SIMPLE      1    0   -1   1    F
 BITPIX      1    1   -1   2  -32
 NAXIS       1    2   -1   2    0
-COMMENT   124    4  197   0
+COMMENT     3   45   47   0
 HISTORY     0   -1   -1
-           23    3  208   0
-END         2  207  209   8
+            8    3   71   0
+END         2   72   73   8
diff --git a/Fortran/test/tlin.f b/Fortran/test/tlin.f
index 56fb6d7..f44e542 100644
--- a/Fortran/test/tlin.f
+++ b/Fortran/test/tlin.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tlin.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tlin.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TLIN
diff --git a/Fortran/test/tlog.f b/Fortran/test/tlog.f
index f55af81..acf2e41 100644
--- a/Fortran/test/tlog.f
+++ b/Fortran/test/tlog.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tlog.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tlog.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TLOG
diff --git a/Fortran/test/tpih1.f b/Fortran/test/tpih1.f
index 28da8bc..fe065df 100644
--- a/Fortran/test/tpih1.f
+++ b/Fortran/test/tpih1.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tpih1.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tpih1.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TPIH1
@@ -108,7 +108,8 @@
 
 *     Cull all WCS keyrecords from the header but report illegal ones.
       WRITE (*, 80)
- 80   FORMAT (/,'Illegal-WCS header keyrecords rejected by wcspih():')
+ 80   FORMAT (/,'Illegal or extraneous WCS header keyrecords ',
+     :          'rejected by WCSPIH:')
       RELAX = WCSHDR_all
       CTRL = -2
 
@@ -123,7 +124,7 @@
 
 *     List keyrecords that were not consumed by WCSPIH.
       WRITE (*, 100)
- 100  FORMAT (//,'Non-WCS header keyrecords not used by WCSPIH:')
+ 100  FORMAT (//,'Non-WCS header keyrecords ignored by WCSPIH:')
       DO 110 I = 1, 288001, 80
         IF (HEADER(I:I).EQ.CHAR(0)) GO TO 120
         WRITE (*, '(A)') HEADER(I:I+79)
diff --git a/Fortran/test/tpih1.out b/Fortran/test/tpih1.out
index f3fb140..bf2ca9d 100644
--- a/Fortran/test/tpih1.out
+++ b/Fortran/test/tpih1.out
@@ -1,81 +1,45 @@
 Testing WCSLIB parser for FITS image headers (tpih1.f)
 ------------------------------------------------------
 
-Found 198 non-comment header keyrecords.
+Found 151 non-comment header keyrecords.
 
 
-Illegal-WCS header keyrecords rejected by wcspih():
-CTYPE1  =                  0.0 / Illegal, CTYPEia must be string type           
-   1: A string value was expected.
-PV2_1   =                '0.0' / Illegal, PVi_ma must be numeric                
-   2: A floating-point value was expected.
-PV2_1    =                 0.0 / Illegal, "= " not in columns 9-10              
-   3: Invalid KEYWORD = VALUE syntax.
-EPOCH   = '2000.0'             / Illegal, EPOCH must be numeric                 
-   4: A floating-point value was expected.
-END                                                                             
-   5: Keyrecords following the END keyrecord were ignored.
+Illegal or extraneous WCS header keyrecords rejected by WCSPIH:
+WCSNAMEX= 'eXtraneous'         / Name of this coordinate system                 
+  Rejected (1), syntactically valid WCS keyrecord has no effect.
+LONPOLEX=                180.0 / [deg] Native longitude of the celestial pole   
+  Rejected (2), syntactically valid WCS keyrecord has no effect.
+LATPOLEX=               -999.0 / [deg] Native latitude of the celestial pole    
+  Rejected (3), syntactically valid WCS keyrecord has no effect.
+RESTFRQX=          1667.3590e6 / [Hz] OH maser line rest frequency              
+  Rejected (4), syntactically valid WCS keyrecord has no effect.
+RESTWAVX=           0.17980079 / [m] OH maser line rest wavelength              
+  Rejected (5), syntactically valid WCS keyrecord has no effect.
+EQUINOXX=               1950.0 / [yr] Equinox of equatorial coordinates         
+  Rejected (6), syntactically valid WCS keyrecord has no effect.
+RADESYSX= 'ICRS'               / Mean equatorial coordinates, IAU 1984 system   
+  Rejected (7), syntactically valid WCS keyrecord has no effect.
+SPECSYSX= 'HELIOCEN'           / Reference frame of spectral coordinates        
+  Rejected (8), syntactically valid WCS keyrecord has no effect.
+SSYSOBSX= 'GEOCENTR'           / Reference frame of observation                 
+  Rejected (9), syntactically valid WCS keyrecord has no effect.
+SSYSSRCX= 'LSRK'               / Reference frame of source redshift             
+  Rejected (10), syntactically valid WCS keyrecord has no effect.
+VELANGLX=                35.25 / Velocity orientation angle                     
+  Rejected (11), syntactically valid WCS keyrecord has no effect.
+VELOSYSX=              30000.0 / [m/s] Bary-topo velocity towards the source    
+  Rejected (12), syntactically valid WCS keyrecord has no effect.
+ZSOURCEX=               0.0456 / Redshift of the source                         
+  Rejected (13), syntactically valid WCS keyrecord has no effect.
 
 
-Non-WCS header keyrecords not used by WCSPIH:
+Non-WCS header keyrecords ignored by WCSPIH:
 SIMPLE  =                    F / Standards-conformant FITS format?  NO!         
 BITPIX  =                  -32 / IEEE single precision floating point           
 NAXIS   =                    0 / No image data                                  
 ALTRPIX =                  0.0 / Alternate reference pixel (not handled)        
 ALTRVAL =                  0.0 / Alternate reference value (not handled)        
-CRPIXELS=                  0.0 / Furphy, not CRPIXja                            
-PCATALOG=                  0.0 / Furphy, not PCi_ja                             
-CDELTA  =                  0.0 / Furphy, not CDELTia                            
-CDI_JA  =                  0.0 / Furphy, not CDi_ja                             
-CUNITARY=                  0.0 / Furphy, not CUNITia                            
-CTYPEXY =                  0.0 / Furphy, not CTYPEia                            
-CRVALUE =                  0.0 / Furphy, not CRVALia                            
-CNAME   =                  0.0 / Furphy, not CNAMEia                            
-PV1_1AL =                  0.0 / Furphy, not PVi_ma                             
-PV02_1  =                  0.0 / Furphy, not PVi_ma (leading zero on i)         
-PV2_01  =                  0.0 / Furphy, not PVi_ma (leading zero on m)         
-PSEUDO  =                  0.0 / Furphy, not PSi_ma                             
-EPOCHAL =                  0.0 / Furphy, not EPOCH                              
-VELREF1 =                  0.0 / Furphy, not VELREF                             
-NOVLSPEC=1                     / Not a valid value specifier (no " " in col. 10)
-INT32   =          00000012345 / Not a 64-bit integer                           
-INT32   =     -000000123456789 / Not a 64-bit integer                           
-INT32   =          -2147483648 / Not a 64-bit integer (INT_MIN)                 
-INT32   =           2147483647 / Not a 64-bit integer (INT_MAX)                 
-INT32   =    0000000000000000000000000000000000012345 / Not a very long integer 
-INT32   =       -000000000000000000000000000123456789 / Not a very long integer 
-INT64   =          -2147483649 / 64-bit integer (INT_MIN - 1)                   
-INT64   =          +2147483648 / 64-bit integer (INT_MAX + 1)                   
-INT64   =  +100000000000000000 / 64-bit integer                                 
-INT64   =  -876543210987654321 / 64-bit integer                                 
-INT64   = -9223372036854775808 / Not a very long integer (LONG_MIN)             
-INT64   = +9223372036854775807 / Not a very long integer (LONG_MAX)             
-INT64   = -000000000000000000000000000000876543210987654321 / 64-bit integer    
-INTVL   = -9223372036854775809 / Very long integer (LONG_MIN - 1)               
-INTVL   = +9223372036854775808 / Very long integer (LONG_MAX + 1)               
-INTVL   = -100000000000000000000000000000876543210987654321 / Very-long integer 
-INTVL   = +123456789012345678901234567890123456789012345678901234567890123456789
-INTVL   = 1234567890123456789012345678901234567890123456789012345678901234567890
-COMPLEX =            (137, -1) / An integer complex keyvalue                    
-COMPLEX =         (10e5, -0.1) / A floating point complex keyvalue              
-GOODSTR =     '"G''DAY"  '     / A valid string keyvalue                        
-BLANKS  =   '              '   / An all-blank string equals a single blank      
-LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
-CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
-CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment         
-CONTINUE      ' lazy dog'                                                       
-PI      =  3.14159265358929323 / [!?] is not a valid units specification        
-CONTINUE      'Not a valid string continuation'                                 
-BadKey  =                  111 / Example of a syntax error, invalid keyword     
-BADKEY! =                  222 / Example of a syntax error, invalid keyword     
-BAD KEY =                  333 / Example of a syntax error, invalid keyword     
-BADSTR  =                  BAD / Example of a syntax error, invalid keyvalue    
-BADSTR  =                "BAD" / Example of a syntax error, invalid keyvalue    
-BADSTR  =          'BAD' 'STR' / Example syntax error, invalid string keyvalue  
-BADFLT  =              49 + 94 / Example of a syntax error, invalid keyvalue    
-BADFLT  =                 1D99 / Example of a syntax error, invalid keyvalue    
-BADCOMM =                  999   Example of a syntax error, invalid keycomment  
-END     =            'ILLEGAL' / Illegal END keyrecord                          
+END                                                                             
 
 
 Index of alternate coordinate descriptions found:
@@ -86,16 +50,16 @@ Index of alternate coordinate descriptions found:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
       crval: 0x<address>
-               150         -30           1.3945e+09   1         
+               150.00      -30.000       1.3945e+09   1.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -113,19 +77,19 @@ Index of alternate coordinate descriptions found:
         npv: 3
      npvmax: 3
          pv: 0x<address>
-               0   0   0         
-               0   1   0         
-               0   2   0         
+               0   0   0.0000    
+               0   1   0.0000    
+               0   2   0.0000    
         nps: 0
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            15           0            0         
+               0.0000       15.000       0.0000       0.0000    
      altlin: 4
      velref: 258
         alt: ' '
@@ -149,7 +113,7 @@ Index of alternate coordinate descriptions found:
     velosys: UNDEFINED
     ssyssrc: UNDEFINED
     zsource: UNDEFINED
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -194,38 +158,46 @@ Index of alternate coordinate descriptions found:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.96593      0.25882      0            0         
-    pc[1][]:  -0.25882      0.96593      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.96593      0.25882      0.0000       0.0000    
+    pc[1][]:  -0.25882      0.96593      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1          62500        1         
+              -0.10000      0.10000      62500.       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.096593    -0.025882    -0.0000      -0.0000    
+piximg[1][]:  -0.025882     0.096593     0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       62500.       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -9.6593      -2.5882      -0.0000      -0.0000    
+imgpix[1][]:  -2.5882       9.6593       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.6000e-05   0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.096593    -0.025882    -0           -0         
-piximg[1][]:  -0.025882     0.096593     0            0         
-piximg[2][]:   0            0            62500        0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -9.6593      -2.5882      -0           -0         
-imgpix[1][]:  -2.5882       9.6593       0            0         
-imgpix[2][]:   0            0            1.6e-05      0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           180         -30        
-       prj: (see below)
-     euler:   150          120          180         -0.5          0.86603   
+        ref:   150.00      -30.000       180.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       180.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -250,8 +222,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -265,7 +237,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
@@ -277,16 +249,16 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
       crval: 0x<address>
-               150         -30           0.21498     -2000      
+               150.00      -30.000       0.21498     -2000.0    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -304,24 +276,24 @@ imgpix[3][]:   0            0            0            1
         npv: 7
      npvmax: 7
          pv: 0x<address>
-               1   1   0         
-               1   2   90        
-               1   3   195       
-               1   4  -30        
-               2   1   0         
-               2   2   180       
-               2   3   45        
+               1   1   0.0000    
+               1   2   90.000    
+               1   3   195.00    
+               1   4  -30.000    
+               2   1   0.0000    
+               2   2   180.00    
+               2   3   45.000    
         nps: 1
      npsmax: 1
          ps: 0x<address>
                4   0  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: 'A'
@@ -335,9 +307,9 @@ imgpix[3][]:   0            0            0            1
              "Wavelength"
              "Time offset"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      1e-11       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-11  UNDEFINED   
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      1e-12       UNDEFINED   
+             UNDEFINED     UNDEFINED      1.0000e-12  UNDEFINED   
     radesys: "FK5"
     equinox: 2000.000000
     specsys: "BARYCENT"
@@ -345,7 +317,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -390,38 +362,46 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          513          1025         1         
+               513.00       513.00       1025.0       1.0000    
          pc: 0x<address>
-    pc[0][]:   0.86603      0.5          0            0         
-    pc[1][]:  -0.5          0.86603      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   0.86603      0.50000      0.0000       0.0000    
+    pc[1][]:  -0.50000      0.86603      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.1          0.1         -9.6353e-06   1         
+              -0.10000      0.10000     -9.6353e-06   1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000    -0.0000      -0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000       0.0000    
+piximg[2][]:  -0.0000      -0.0000      -9.6353e-06  -0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -8.6603      -5.0000      -0.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -1.0379e+05  -0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05        -0           -0         
-piximg[1][]:  -0.05         0.086603     0            0         
-piximg[2][]:  -0           -0           -9.6353e-06  -0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -8.6603      -5           -0           -0         
-imgpix[1][]:  -5            8.6603       0            0         
-imgpix[2][]:  -0           -0           -1.0379e+05  -0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -431,7 +411,7 @@ imgpix[3][]:   0            0            0            1
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              0            180          45        
+              0.0000       180.00       45.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -447,8 +427,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453    -0           -0            1           -0         
-              -0            57.296      -1            0            0         
+        w[]:   0.017453    -0.0000      -0.0000       1.0000      -0.0000    
+              -0.0000       57.296      -1.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -458,11 +438,11 @@ imgpix[3][]:   0            0            0            1
        flag: 110
        type: "WAVE"
        code: "F2W"
-      crval:  0.215     
+      crval:  0.21498   
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0            1.395e+09   -6.487e+09   (remainder unused)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -474,15 +454,15 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
       crval: 0x<address>
-               150         -30           0.018577  
+               150.00      -30.000       0.018577  
       cunit: 0x<address>
              "deg"
              "deg"
@@ -498,7 +478,7 @@ imgpix[3][]:   0            0            0            1
         npv: 10
      npvmax: 10
          pv: 0x<address>
-               2   1   1         
+               2   1   1.0000    
                2   3   0.33333   
                2   5   0.13333   
                2   7   0.053968  
@@ -512,11 +492,11 @@ imgpix[3][]:   0            0            0            1
      npsmax: 0
          ps: 0x0
          cd: 0x<address>
-    cd[0][]:  -0.086603    -0.05         0         
-    cd[1][]:  -0.05         0.086603     0         
-    cd[2][]:   0            0           -4.5652e-05
+    cd[0][]:  -0.086603    -0.050000     0.0000    
+    cd[1][]:  -0.050000     0.086603     0.0000    
+    cd[2][]:   0.0000       0.0000      -4.5652e-05
       crota: 0x<address>
-               0            30           0         
+               0.0000       30.000       0.0000    
      altlin: 6
      velref: 258
         alt: 'I'
@@ -529,9 +509,9 @@ imgpix[3][]:   0            0            0            1
              "Declination (J2000)"
              "Redshift"
       crder: 0x<address>
-             UNDEFINED     UNDEFINED      5e-11     
+             UNDEFINED     UNDEFINED      5.0000e-11
       csyer: 0x<address>
-             UNDEFINED     UNDEFINED      5e-12     
+             UNDEFINED     UNDEFINED      5.0000e-12
     radesys: "FK5"
     equinox: 2000.000000
     specsys: UNDEFINED
@@ -539,7 +519,7 @@ imgpix[3][]:   0            0            0            1
     velosys: 1500.000000
     ssyssrc: "LSRK"
     zsource:  0.002500
-     obsgeo: -4.5542e+06   2.8168e+06  -3.454e+06   
+     obsgeo:   -4.5542e+06   2.8168e+06  -3.4540e+06
     dateobs: "1957-02-14T15:00:00"
     dateavg: "1957-02-14T16:48:00"
      mjdobs: 35883.625000
@@ -584,35 +564,43 @@ imgpix[3][]:   0            0            0            1
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               513          513          1025      
+               513.00       513.00       1025.0    
          pc: 0x<address>
-    pc[0][]:  -0.086603    -0.05         0         
-    pc[1][]:  -0.05         0.086603     0         
-    pc[2][]:   0            0           -4.5652e-05
+    pc[0][]:  -0.086603    -0.050000     0.0000    
+    pc[1][]:  -0.050000     0.086603     0.0000    
+    pc[2][]:   0.0000       0.0000      -4.5652e-05
       cdelt: 0x<address>
-               1            1            1         
+               1.0000       1.0000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -0.086603    -0.050000     0.0000    
+piximg[1][]:  -0.050000     0.086603     0.0000    
+piximg[2][]:   0.0000       0.0000      -4.5652e-05
+imgpix[0][]:  -8.6603      -5.0000      -0.0000    
+imgpix[1][]:  -5.0000       8.6603       0.0000    
+imgpix[2][]:  -0.0000      -0.0000      -21905.    
+    i_naxis: 3
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -0.086603    -0.05         0         
-piximg[1][]:  -0.05         0.086603     0         
-piximg[2][]:   0            0           -4.5652e-05
-imgpix[0][]:  -8.6603      -5           -0         
-imgpix[1][]:  -5            8.6603       0         
-imgpix[2][]:  -0           -0           -21905     
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           195         -30        
-       prj: (see below)
-     euler:   150          120          195         -0.5          0.86603   
+        ref:   150.00      -30.000       195.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       195.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -621,13 +609,13 @@ imgpix[2][]:  -0           -0           -21905
        flag: 107
        code: "ZPN"
          r0: 57.295780
-         pv:  0         
-              1            0            0.33333      0            0.13333   
-              0            0.053968     0            0.021869     0         
-              0.0088632    0            0.0035921    0            0.0014558 
-              0            0.00059003   0            0.00023913   0         
-              0            0            0            0            0         
-              0            0            0            0         
+         pv:   0.0000    
+              1.0000       0.0000       0.33333      0.0000       0.13333   
+              0.0000       0.053968     0.0000       0.021869     0.0000    
+              0.0088632    0.0000       0.0035921    0.0000       0.0014558 
+              0.0000       0.00059003   0.0000       0.00023913   0.0000    
+              0.0000       0.0000       0.0000       0.0000       0.0000    
+              0.0000       0.0000       0.0000       0.0000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -643,8 +631,8 @@ imgpix[2][]:  -0           -0           -21905
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   3.1416       8.9006e+05   0            0            0         
-               0            0            0            0            0         
+        w[]:   3.1416       8.9006e+05   0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 19
      prjx2s: 0x<address>
@@ -654,11 +642,11 @@ imgpix[2][]:  -0           -0           -21905
        flag: 112
        type: "ZOPT"
        code: "F2W"
-      crval:  0.01858   
+      crval:  0.018577  
     restfrq: 1420405750.000000
     restwav: 0.211061
          pv: (not used)
-          w:   0.2111       1.394e+09   -1.369e+09   (remainder unused)
+          w:   0.21106      1.3945e+09  -1.3691e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
diff --git a/Fortran/test/tpih2.f b/Fortran/test/tpih2.f
index 9e42106..ab03e18 100644
--- a/Fortran/test/tpih2.f
+++ b/Fortran/test/tpih2.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tpih2.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tpih2.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TPIH2
diff --git a/Fortran/test/tprj1.f b/Fortran/test/tprj1.f
index 7ce2b2b..3da0253 100644
--- a/Fortran/test/tprj1.f
+++ b/Fortran/test/tprj1.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tprj1.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tprj1.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TPRJ1
diff --git a/Fortran/test/tprj2.f b/Fortran/test/tprj2.f
index ff076f4..57973da 100644
--- a/Fortran/test/tprj2.f
+++ b/Fortran/test/tprj2.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tprj2.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tprj2.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TPRJ2
diff --git a/Fortran/test/tspc.f b/Fortran/test/tspc.f
index 6301172..28613a6 100644
--- a/Fortran/test/tspc.f
+++ b/Fortran/test/tspc.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tspc.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tspc.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TSPC
diff --git a/Fortran/test/tsph.f b/Fortran/test/tsph.f
index ad65c85..9782551 100644
--- a/Fortran/test/tsph.f
+++ b/Fortran/test/tsph.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tsph.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tsph.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TSPH
diff --git a/Fortran/test/tspx.f b/Fortran/test/tspx.f
index fceb37b..4a3f67a 100644
--- a/Fortran/test/tspx.f
+++ b/Fortran/test/tspx.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tspx.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tspx.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TSPX
diff --git a/Fortran/test/ttab1.f b/Fortran/test/ttab1.f
index 83cbd7b..de3304a 100644
--- a/Fortran/test/ttab1.f
+++ b/Fortran/test/ttab1.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: ttab1.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: ttab1.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TTAB1
diff --git a/Fortran/test/ttab2.f b/Fortran/test/ttab2.f
index 4b5d05d..285037a 100644
--- a/Fortran/test/ttab2.f
+++ b/Fortran/test/ttab2.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: ttab2.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: ttab2.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TTAB2
diff --git a/Fortran/test/ttab3.f b/Fortran/test/ttab3.f
index b2d94ee..2ada163 100644
--- a/Fortran/test/ttab3.f
+++ b/Fortran/test/ttab3.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: ttab3.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: ttab3.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TTAB3
diff --git a/Fortran/test/tunits.f b/Fortran/test/tunits.f
index e21ba7b..d7c4f48 100644
--- a/Fortran/test/tunits.f
+++ b/Fortran/test/tunits.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: tunits.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: tunits.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TUNITS
diff --git a/Fortran/test/twcs.f b/Fortran/test/twcs.f
index c7d3939..9cb2ad8 100644
--- a/Fortran/test/twcs.f
+++ b/Fortran/test/twcs.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: twcs.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: twcs.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TWCS
@@ -47,7 +47,7 @@
 
       INTEGER   CHECK_ERROR, ETEST, I, J, K, LAT, LATIDX, LNG, LNGIDX,
      :          NFAIL1, NFAIL2, SPCIDX, STAT(0:360), STATUS,
-     :          TEST_ERRORS
+     :          TEST_ERRORS, VERS(3)
       DOUBLE PRECISION FREQ, IMG(NELEM,0:360), LAT1, LNG1, PHI(0:360),
      :          PIXEL1(NELEM,0:360), PIXEL2(NELEM,0:360), R, RESID,
      :          RESMAX, THETA(0:360), TIME, WORLD1(NELEM,0:360),
@@ -111,8 +111,11 @@
       COMMON /ERRTST/ ETEST
       DATA ETEST /0/
 *-----------------------------------------------------------------------
-      WRITE (*, 10)
- 10   FORMAT ('Testing closure of WCSLIB world coordinate ',
+      WRITE (*, 10) WCSLIB_VERSION(VERS)
+ 10   FORMAT ('WCSLIB version number: ',A,/)
+
+      WRITE (*, 20)
+ 20   FORMAT ('Testing closure of WCSLIB world coordinate ',
      :        'transformation routines (twcs.f)',/,
      :        '-------------------------------------------',
      :        '--------------------------------')
@@ -122,8 +125,8 @@
       STATUS = WCSPUT (WCS, WCS_FLAG, -1, 0, 0)
       CALL PARSER (WCS)
 
-      WRITE (*, 20) TOL
- 20   FORMAT (/,'Reporting tolerance',1PG8.1,' pixel.')
+      WRITE (*, 30) TOL
+ 30   FORMAT (/,'Reporting tolerance',1PG8.1,' pixel.')
 
 
 *     Get indices.
@@ -134,7 +137,7 @@
 *     Initialize non-celestial world coordinates.
       TIME = 1D0
       FREQ = 1.42040595D9 - 180D0 * 62500D0
-      DO 30 K = 0, 360
+      DO 40 K = 0, 360
         WORLD1(1,K) = 0D0
         WORLD1(2,K) = 0D0
         WORLD1(3,K) = 0D0
@@ -145,63 +148,63 @@
 
         WORLD1(SPCIDX,K) = 2.99792458D8 / FREQ
         FREQ = FREQ + 62500D0
- 30   CONTINUE
+ 40   CONTINUE
 
       NFAIL1 = 0
       RESMAX = 0D0
-      DO 110 LAT = 90, -90, -1
+      DO 120 LAT = 90, -90, -1
         LAT1 = DBLE(LAT)
 
         K = 0
-        DO 40 LNG = -180, 180
+        DO 50 LNG = -180, 180
           LNG1 = DBLE(LNG)
 
           WORLD1(LNGIDX,K) = LNG1
           WORLD1(LATIDX,K) = LAT1
           K = K + 1
- 40     CONTINUE
+ 50     CONTINUE
 
         STATUS = WCSS2P (WCS, 361, NELEM, WORLD1, PHI, THETA, IMG,
      :                   PIXEL1, STAT)
         IF (STATUS.NE.0) THEN
-          WRITE (*, 50) STATUS, LAT1
- 50       FORMAT (3X,'WCSS2P(1) ERROR',I3,' (LAT1 =',F20.15, ')')
-          GO TO 110
+          WRITE (*, 60) STATUS, LAT1
+ 60       FORMAT (3X,'WCSS2P(1) ERROR',I3,' (LAT1 =',F20.15, ')')
+          GO TO 120
         END IF
 
         STATUS = WCSP2S (WCS, 361, NELEM, PIXEL1, IMG, PHI, THETA,
      :                   WORLD2, STAT)
         IF (STATUS.NE.0) THEN
-          WRITE (*, 60) STATUS, LAT1
- 60       FORMAT (3X,'WCSP2S ERROR',I3,' (LAT1 =',F20.15, ')')
-          GO TO 110
+          WRITE (*, 70) STATUS, LAT1
+ 70       FORMAT (3X,'WCSP2S ERROR',I3,' (LAT1 =',F20.15, ')')
+          GO TO 120
         END IF
 
         STATUS = WCSS2P (WCS, 361, NELEM, WORLD2, PHI, THETA, IMG,
      :                   PIXEL2, STAT)
         IF (STATUS.NE.0) THEN
-          WRITE (*, 70) STATUS, LAT1
- 70       FORMAT (3X,'WCSS2P(2) ERROR',I3,' (LAT1 =',F20.15, ')')
-          GO TO 110
+          WRITE (*, 80) STATUS, LAT1
+ 80       FORMAT (3X,'WCSS2P(2) ERROR',I3,' (LAT1 =',F20.15, ')')
+          GO TO 120
         END IF
 
-        DO 100 K = 0, 360
+        DO 110 K = 0, 360
           RESID = 0D0
-          DO 80 I = 1, NAXIS
+          DO 90 I = 1, NAXIS
             R = PIXEL2(I,K) - PIXEL1(I,K)
             RESID = RESID + R*R
- 80       CONTINUE
+ 90       CONTINUE
 
           RESID = SQRT(RESID)
           IF (RESID.GT.RESMAX) RESMAX = RESID
 
           IF (RESID.GT.TOL) THEN
             NFAIL1 = NFAIL1 + 1
-            WRITE (*, 90) (WORLD1(I,K), I=1,NAXIS),
-     :                    (PIXEL1(I,K), I=1,NAXIS),
-     :                    (WORLD2(I,K), I=1,NAXIS),
-     :                    (PIXEL2(I,K), I=1,NAXIS)
- 90         FORMAT (/,'Closure error:',/,
+            WRITE (*, 100) (WORLD1(I,K), I=1,NAXIS),
+     :                     (PIXEL1(I,K), I=1,NAXIS),
+     :                     (WORLD2(I,K), I=1,NAXIS),
+     :                     (PIXEL2(I,K), I=1,NAXIS)
+ 100        FORMAT (/,'Closure error:',/,
      :                'world1:',4F18.12,/,
      :                'pixel1:',4F18.12,/,
      :                'world2:',4F18.12,/,
@@ -209,17 +212,17 @@
           END IF
 
           LNG1 = LNG1 + 1D0
- 100    CONTINUE
- 110  CONTINUE
+ 110    CONTINUE
+ 120  CONTINUE
 
-      WRITE (*, 120) RESMAX
- 120  FORMAT ('WCSP2S/WCSS2P: Maximum closure residual =',1P,G8.1,
+      WRITE (*, 130) RESMAX
+ 130  FORMAT ('WCSP2S/WCSS2P: Maximum closure residual =',1P,G8.1,
      :        ' pixel.')
 
 
 *     Test WCSERR.
-      WRITE (*, 130)
- 130  FORMAT (//,'IGNORE messages marked with ''OK'', they test ',
+      WRITE (*, 140)
+ 140  FORMAT (//,'IGNORE messages marked with ''OK'', they test ',
      :           'WCSERR: ')
 
       STATUS = WCSERR_ENABLE(1)
@@ -234,19 +237,19 @@
 
       IF (NFAIL1.NE.0 .OR. NFAIL2.NE.0) THEN
         IF (NFAIL1.NE.0) THEN
-          WRITE (*, 140) NFAIL1
- 140      FORMAT (/,'FAIL:',I5,' closure residuals exceed reporting ',
+          WRITE (*, 150) NFAIL1
+ 150      FORMAT (/,'FAIL:',I5,' closure residuals exceed reporting ',
      :      'tolerance.')
         END IF
 
         IF (NFAIL2.NE.0) THEN
-          WRITE (*, 150) NFAIL2
- 150      FORMAT ('FAIL:',I5,' error messages differ from that ',
+          WRITE (*, 160) NFAIL2
+ 160      FORMAT ('FAIL:',I5,' error messages differ from that ',
      :      'expected.')
         END IF
       ELSE
-        WRITE (*, 160)
- 160    FORMAT (/,'PASS: All closure residuals are within reporting ',
+        WRITE (*, 170)
+ 170    FORMAT (/,'PASS: All closure residuals are within reporting ',
      :    'tolerance.',/,'PASS: All error messages reported as ',
      :    'expected.')
       END IF
diff --git a/Fortran/test/twcsfix.f b/Fortran/test/twcsfix.f
index d16308b..1daf892 100644
--- a/Fortran/test/twcsfix.f
+++ b/Fortran/test/twcsfix.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: twcsfix.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: twcsfix.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TWCSFIX
@@ -109,14 +109,13 @@
 *     Extract information from the FITS header.
       STATUS = WCSSET (WCS)
       IF (STATUS.NE.0) THEN
-        WRITE (*, 40) STATUS
- 40     FORMAT (/,'WCSSET ERROR',I2,'.')
+        STATUS = WCSPERR(WCS, CHAR(0))
       END IF
 
       CALL FLUSH(6)
       STATUS = WCSPRT (WCS)
-      WRITE (*, 50)
- 50   FORMAT (/,'------------------------------------',
+      WRITE (*, 40)
+ 40   FORMAT (/,'------------------------------------',
      :          '------------------------------------')
 
 *     Should now have a 'VOPT-F2W' axis, translate it to frequency.
@@ -124,15 +123,13 @@
       I = -1
       STATUS = WCSSPTR (WCS, I, CTYPES)
       IF (STATUS.NE.0) THEN
-        WRITE (*, 60) STATUS
- 60     FORMAT ('WCSPTR ERROR',I2,'.')
+        STATUS = WCSPERR(WCS, CHAR(0))
         GO TO 999
       END IF
 
       STATUS = WCSSET (WCS)
       IF (STATUS.NE.0) THEN
-        WRITE (*, 70) STATUS
- 70     FORMAT ('WCSSET ERROR',I2,'.')
+        STATUS = WCSPERR(WCS, CHAR(0))
         GO TO 999
       END IF
 
diff --git a/Fortran/test/twcsfix.out b/Fortran/test/twcsfix.out
index e62883e..94ecf76 100644
--- a/Fortran/test/twcsfix.out
+++ b/Fortran/test/twcsfix.out
@@ -6,13 +6,13 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778   19687     
+              -0.00027778   0.00027778   19687.    
       crval: 0x<address>
                265.62      -28.988       5.5693e+06
       cunit: 0x<address>
@@ -30,18 +30,18 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
         npv: 3
      npvmax: 3
          pv: 0x<address>
-              -1  -1  -1         
-               2   1   0         
+              -1  -1  -1.0000    
+               2   1   0.0000    
                2   2  -1.8049    
         nps: 0
      npsmax: 8
          ps: 0x<address>
          cd: 0x<address>
-    cd[0][]:   0            0            0         
-    cd[1][]:   0            0            0         
-    cd[2][]:   0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0         
+               0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -109,31 +109,39 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778   19687     
-      unity: 1
-        err: 0x0
+              -0.00027778   0.00027778   19687.    
+     dispre: 0x0
+     disseq: 0x0
      piximg: (nil)
      imgpix: (nil)
+    i_naxis: 0
+      unity: 1
+     affine: 0
+     simple: 0
+        err: 0x0
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   265.62      -28.988       180         -28.988    
-       prj: (see below)
-     euler:   265.62       118.99       180         -0.48463      0.87472   
+        ref:   265.62      -28.988       180.00      -28.988    
+        prj: (see below)
+      euler:   265.62       118.99       180.00      -0.48463      0.87472   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -143,7 +151,7 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        code: "SIN"
          r0: 57.295780
          pv: (0)
-              0           -1.8049    
+              0.0000      -1.8049    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -159,8 +167,8 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     3.2577       4.2577       2.2577       0         
-               0            0            0            0            0         
+        w[]:   0.017453     3.2577       4.2577       2.2577       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -170,11 +178,11 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        flag: 111
        type: "VOPT"
        code: "F2W"
-      crval:  5.569e+06 
+      crval:  5.5693e+06
     restfrq: 1420405750.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0.2111       1.395e+09   -4.567       (remainder unused)
+          w:   0.21106      1.3945e+09  -4.5667      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -186,13 +194,13 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778  -89906     
+              -0.00027778   0.00027778  -89906.    
       crval: 0x<address>
                265.62      -28.988       1.3945e+09
       cunit: 0x<address>
@@ -210,18 +218,18 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
         npv: 3
      npvmax: 3
          pv: 0x<address>
-              -1  -1  -1         
-               2   1   0         
+              -1  -1  -1.0000    
+               2   1   0.0000    
                2   2  -1.8049    
         nps: 0
      npsmax: 8
          ps: 0x<address>
          cd: 0x<address>
-    cd[0][]:   0            0            0         
-    cd[1][]:   0            0            0         
-    cd[2][]:   0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0         
+               0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -289,31 +297,39 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        flag: 137
       naxis: 3
       crpix: 0x<address>
-               90           90           1         
+               90.000       90.000       1.0000    
          pc: 0x<address>
-    pc[0][]:   1            0            0         
-    pc[1][]:   0            1            0         
-    pc[2][]:   0            0            1         
+    pc[0][]:   1.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -0.00027778   0.00027778  -89906     
-      unity: 1
-        err: 0x0
+              -0.00027778   0.00027778  -89906.    
+     dispre: 0x0
+     disseq: 0x0
      piximg: (nil)
      imgpix: (nil)
+    i_naxis: 0
+      unity: 1
+     affine: 0
+     simple: 0
+        err: 0x0
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   265.62      -28.988       180         -28.988    
-       prj: (see below)
-     euler:   265.62       118.99       180         -0.48463      0.87472   
+        ref:   265.62      -28.988       180.00      -28.988    
+        prj: (see below)
+      euler:   265.62       118.99       180.00      -0.48463      0.87472   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -323,7 +339,7 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
        code: "SIN"
          r0: 57.295780
          pv: (0)
-              0           -1.8049    
+              0.0000      -1.8049    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -339,8 +355,8 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     3.2577       4.2577       2.2577       0         
-               0            0            0            0            0         
+        w[]:   0.017453     3.2577       4.2577       2.2577       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -354,7 +370,7 @@ WCSFIX status returns: (-1, 0, 0, 0, 0,-1)
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/Fortran/test/twcsmix.f b/Fortran/test/twcsmix.f
index 8b8581c..8fe1ffd 100644
--- a/Fortran/test/twcsmix.f
+++ b/Fortran/test/twcsmix.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: twcsmix.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: twcsmix.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TWCS2
diff --git a/Fortran/test/twcssub.f b/Fortran/test/twcssub.f
index e206f8d..b57f0a9 100644
--- a/Fortran/test/twcssub.f
+++ b/Fortran/test/twcssub.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: twcssub.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: twcssub.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TWCSSUB
diff --git a/Fortran/test/twcssub.out b/Fortran/test/twcssub.out
index 82a02bd..8f3d3c8 100644
--- a/Fortran/test/twcssub.out
+++ b/Fortran/test/twcssub.out
@@ -5,16 +5,16 @@ Initial contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               1025         64           512          513       
+               1025.0       64.000       512.00       513.00    
          pc: 0x<address>
-    pc[0][]:   1.1          0            0            0         
-    pc[1][]:   0            1            0            0         
-    pc[2][]:   0            0            1            0.1       
-    pc[3][]:   0            0            0.2          1         
+    pc[0][]:   1.1000       0.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.10000   
+    pc[3][]:   0.0000       0.0000       0.20000      1.0000    
       cdelt: 0x<address>
-              -9.2e-06      10           1           -1         
+              -9.2000e-06   10.000       1.0000      -1.0000    
       crval: 0x<address>
-               0.21498     -2000        -30           150       
+               0.21498     -2000.0      -30.000       150.00    
       cunit: 0x<address>
              "m"
              "s"
@@ -32,21 +32,21 @@ Initial contents of wcsprm struct:
         npv: 4
      npvmax: 64
          pv: 0x<address>
-               1   1  -1         
-               3   1   2         
-               3   2   210       
-               3   3   60        
+               1   1  -1.0000    
+               3   1   2.0000    
+               3   2   210.00    
+               3   3   60.000    
         nps: 1
      npsmax: 8
          ps: 0x<address>
                2   1  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -115,38 +115,46 @@ Initial contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               1025         64           512          513       
+               1025.0       64.000       512.00       513.00    
          pc: 0x<address>
-    pc[0][]:   1.1          0            0            0         
-    pc[1][]:   0            1            0            0         
-    pc[2][]:   0            0            1            0.1       
-    pc[3][]:   0            0            0.2          1         
+    pc[0][]:   1.1000       0.0000       0.0000       0.0000    
+    pc[1][]:   0.0000       1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.10000   
+    pc[3][]:   0.0000       0.0000       0.20000      1.0000    
       cdelt: 0x<address>
-              -9.2e-06      10           1           -1         
+              -9.2000e-06   10.000       1.0000      -1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -1.0120e-05  -0.0000      -0.0000      -0.0000    
+piximg[1][]:   0.0000       10.000       0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       1.0000       0.10000   
+piximg[3][]:  -0.0000      -0.0000      -0.20000     -1.0000    
+imgpix[0][]:  -98814.      -0.0000      -0.0000      -0.0000    
+imgpix[1][]:   0.0000       0.10000      0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.0204       0.10204   
+imgpix[3][]:  -0.0000      -0.0000      -0.20408     -1.0204    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -1.012e-05   -0           -0           -0         
-piximg[1][]:   0            10           0            0         
-piximg[2][]:   0            0            1            0.1       
-piximg[3][]:  -0           -0           -0.2         -1         
-imgpix[0][]:  -98814       -0           -0           -0         
-imgpix[1][]:   0            0.1          0            0         
-imgpix[2][]:   0            0            1.0204       0.10204   
-imgpix[3][]:  -0           -0           -0.20408     -1.0204    
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           150         -30        
-       prj: (see below)
-     euler:   150          120          150         -0.5          0.86603   
+        ref:   150.00      -30.000       150.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       150.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -156,7 +164,7 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              2            210          60        
+              2.0000       210.00       60.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -172,8 +180,8 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     0.5         -0.86603      2.7321       28.648    
-              -49.62        156.53       3.7321      -90           0         
+        w[]:   0.017453     0.50000     -0.86603      2.7321       28.648    
+              -49.620       156.53       3.7321      -90.000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -183,11 +191,11 @@ imgpix[3][]:  -0           -0           -0.20408     -1.0204
        flag: 110
        type: "WAVE"
        code: "F2W"
-      crval:  0.215     
+      crval:  0.21498   
     restfrq: 1420405750.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            1.395e+09   -6.487e+09   (remainder unused)
+          w:   0.0000       1.3945e+09  -6.4866e+09  (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x<address>
@@ -200,16 +208,16 @@ Extracted contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          512          64           0         
+               513.00       512.00       64.000       0.0000    
          pc: 0x<address>
-    pc[0][]:   1            0.2          0            0         
-    pc[1][]:   0.1          1            0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   1.0000       0.20000      0.0000       0.0000    
+    pc[1][]:   0.10000      1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -1            1            10           1         
+              -1.0000       1.0000       10.000       1.0000    
       crval: 0x<address>
-               150         -30          -2000         0         
+               150.00      -30.000      -2000.0       0.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -227,20 +235,20 @@ Extracted contents of wcsprm struct:
         npv: 3
      npvmax: 3
          pv: 0x<address>
-               2   1   2         
-               2   2   210       
-               2   3   60        
+               2   1   2.0000    
+               2   2   210.00    
+               2   3   60.000    
         nps: 1
      npsmax: 1
          ps: 0x<address>
                3   1  UTC
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 0
      velref: 0
         alt: ' '
@@ -309,38 +317,46 @@ Extracted contents of wcsprm struct:
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               513          512          64           0         
+               513.00       512.00       64.000       0.0000    
          pc: 0x<address>
-    pc[0][]:   1            0.2          0            0         
-    pc[1][]:   0.1          1            0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            0            1         
+    pc[0][]:   1.0000       0.20000      0.0000       0.0000    
+    pc[1][]:   0.10000      1.0000       0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       0.0000       1.0000    
       cdelt: 0x<address>
-              -1            1            10           1         
+              -1.0000       1.0000       10.000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:  -1.0000      -0.20000     -0.0000      -0.0000    
+piximg[1][]:   0.10000      1.0000       0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       10.000       0.0000    
+piximg[3][]:   0.0000       0.0000       0.0000       1.0000    
+imgpix[0][]:  -1.0204      -0.20408     -0.0000      -0.0000    
+imgpix[1][]:   0.10204      1.0204       0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       0.10000      0.0000    
+imgpix[3][]:   0.0000       0.0000       0.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:  -1           -0.2         -0           -0         
-piximg[1][]:   0.1          1            0            0         
-piximg[2][]:   0            0            10           0         
-piximg[3][]:   0            0            0            1         
-imgpix[0][]:  -1.0204      -0.20408     -0           -0         
-imgpix[1][]:   0.10204      1.0204       0            0         
-imgpix[2][]:   0            0            0.1          0         
-imgpix[3][]:   0            0            0            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 137
      offset: 0
        phi0:  0.000000
      theta0: 90.000000
-       ref:   150         -30           150         -30        
-       prj: (see below)
-     euler:   150          120          150         -0.5          0.86603   
+        ref:   150.00      -30.000       150.00      -30.000    
+        prj: (see below)
+      euler:   150.00       120.00       150.00      -0.50000      0.86603   
     latpreq: 0 (not required)
      isolat: 0
         err: 0x0
@@ -350,7 +366,7 @@ imgpix[3][]:   0            0            0            1
        code: "SZP"
          r0: 57.295780
          pv: (0)
-              2            210          60        
+              2.0000       210.00       60.000    
        phi0:  0.000000
      theta0: 90.000000
      bounds: 7
@@ -366,8 +382,8 @@ imgpix[3][]:   0            0            0            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0.017453     0.5         -0.86603      2.7321       28.648    
-              -49.62        156.53       3.7321      -90           0         
+        w[]:   0.017453     0.50000     -0.86603      2.7321       28.648    
+              -49.620       156.53       3.7321      -90.000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x<address>
@@ -381,7 +397,7 @@ imgpix[3][]:   0            0            0            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/Fortran/test/twcstab.f b/Fortran/test/twcstab.f
index 9fcd7ad..241feea 100644
--- a/Fortran/test/twcstab.f
+++ b/Fortran/test/twcstab.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: twcstab.f,v 4.25.1.2 2015/01/06 01:02:37 mcalabre Exp mcalabre $
+* $Id: twcstab.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 
       PROGRAM TWCSTAB
diff --git a/Fortran/test/twcstab.out b/Fortran/test/twcstab.out
index e02db50..78aad7c 100644
--- a/Fortran/test/twcstab.out
+++ b/Fortran/test/twcstab.out
@@ -4,16 +4,16 @@ Testing WCSTAB and associated routines (twcstab.f)
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               129          65           0.5          1         
+               129.00       65.000       0.50000      1.0000    
          pc: 0x<address>
-    pc[0][]:   0.99619      0.087156     0            0         
-    pc[1][]:  -0.087156     0.99619      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            1            1         
+    pc[0][]:   0.99619      0.087156     0.0000       0.0000    
+    pc[1][]:  -0.087156     0.99619      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       1.0000       1.0000    
       cdelt: 0x<address>
-               1            1            1            1         
+               1.0000       1.0000       1.0000       1.0000    
       crval: 0x<address>
-               136          76           0.5          0         
+               136.00       76.000       0.50000      0.0000    
       cunit: 0x<address>
              "deg"
              "deg"
@@ -31,18 +31,18 @@ Testing WCSTAB and associated routines (twcstab.f)
         npv: 12
      npvmax: 12
          pv: 0x<address>
-               1   1   1         
-               1   2   1         
-               1   3   1         
-               2   1   1         
-               2   2   1         
-               2   3   2         
-               3   1   2         
-               3   2   1         
-               3   3   1         
-               4   1   2         
-               4   2   1         
-               4   3   1         
+               1   1   1.0000    
+               1   2   1.0000    
+               1   3   1.0000    
+               2   1   1.0000    
+               2   2   1.0000    
+               2   3   2.0000    
+               3   1   2.0000    
+               3   2   1.0000    
+               3   3   1.0000    
+               4   1   2.0000    
+               4   2   1.0000    
+               4   3   1.0000    
         nps: 12
      npsmax: 12
          ps: 0x<address>
@@ -59,12 +59,12 @@ Testing WCSTAB and associated routines (twcstab.f)
                4   1  TimeCoord
                4   2  TimeIndex
          cd: 0x<address>
-    cd[0][]:   0            0            0            0         
-    cd[1][]:   0            0            0            0         
-    cd[2][]:   0            0            0            0         
-    cd[3][]:   0            0            0            0         
+    cd[0][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[1][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[2][]:   0.0000       0.0000       0.0000       0.0000    
+    cd[3][]:   0.0000       0.0000       0.0000       0.0000    
       crota: 0x<address>
-               0            0            0            0         
+               0.0000       0.0000       0.0000       0.0000    
      altlin: 1
      velref: 0
         alt: ' '
@@ -228,32 +228,32 @@ tab[0].*
         map: 0x<address>
                  0     1
       crval: 0x<address>
-               136          76        
+               136.00       76.000    
       index: 0x<address>
    index[0]: 0x<address>
-               0            4            8            12           16        
-               20           24           28           32           36        
-               40           44           48           52           56        
-               60           64           68           72           76        
-               80           84           88           92           96        
-               100          104          108          112          116       
-               120          124          128          132          136       
-               140          144          148          152          156       
-               160          164          168          172          176       
-               180          184          188          192          196       
-               200          204          208          212          216       
-               220          224          228          232          236       
-               240          244          248          252          256       
-               260          264          268          272          276       
+               0.0000       4.0000       8.0000       12.000       16.000    
+               20.000       24.000       28.000       32.000       36.000    
+               40.000       44.000       48.000       52.000       56.000    
+               60.000       64.000       68.000       72.000       76.000    
+               80.000       84.000       88.000       92.000       96.000    
+               100.00       104.00       108.00       112.00       116.00    
+               120.00       124.00       128.00       132.00       136.00    
+               140.00       144.00       148.00       152.00       156.00    
+               160.00       164.00       168.00       172.00       176.00    
+               180.00       184.00       188.00       192.00       196.00    
+               200.00       204.00       208.00       212.00       216.00    
+               220.00       224.00       228.00       232.00       236.00    
+               240.00       244.00       248.00       252.00       256.00    
+               260.00       264.00       268.00       272.00       276.00    
    index[1]: 0x<address>
-               0            4            8            12           16        
-               20           24           28           32           36        
-               40           44           48           52           56        
-               60           64           68           72           76        
-               80           84           88           92           96        
-               100          104          108          112          116       
-               120          124          128          132          136       
-               140          144          148          152          156       
+               0.0000       4.0000       8.0000       12.000       16.000    
+               20.000       24.000       28.000       32.000       36.000    
+               40.000       44.000       48.000       52.000       56.000    
+               60.000       64.000       68.000       72.000       76.000    
+               80.000       84.000       88.000       92.000       96.000    
+               100.00       104.00       108.00       112.00       116.00    
+               120.00       124.00       128.00       132.00       136.00    
+               140.00       144.00       148.00       152.00       156.00    
       coord: 0x<address>
              (*, 1, 1)   147.58      -31.516    
              (*, 2, 1)   147.69      -31.445    
@@ -270,21 +270,21 @@ tab[0].*
              (*,13, 1)   148.43      -31.367    
              (*,14, 1)   148.49      -31.495    
              (*,15, 1)   148.56      -31.473    
-             (*,16, 1)   148.7       -31.389    
+             (*,16, 1)   148.70      -31.389    
              (*,17, 1)   148.71      -31.493    
              (*,18, 1)   148.77      -31.394    
              (*,19, 1)   148.84      -31.405    
              (*,20, 1)   148.72      -31.455    
              (*,21, 1)   149.04      -31.488    
-             (*,22, 1)   149         -31.299    
+             (*,22, 1)   149.00      -31.299    
              (*,23, 1)   149.17      -31.359    
              (*,24, 1)   149.15      -31.411    
              (*,25, 1)   149.34      -31.386    
              (*,26, 1)   149.33      -31.444    
-             (*,27, 1)   149.5       -31.366    
+             (*,27, 1)   149.50      -31.366    
              (*,28, 1)   149.47      -31.481    
-             (*,29, 1)   149.5       -31.379    
-             (*,30, 1)   149.5       -31.424    
+             (*,29, 1)   149.50      -31.379    
+             (*,30, 1)   149.50      -31.424    
              (*,31, 1)   149.51      -31.462    
              (*,32, 1)   149.88      -31.451    
              (*,33, 1)   149.85      -31.462    
@@ -296,7 +296,7 @@ tab[0].*
              (*,39, 1)   150.29      -31.463    
              (*,40, 1)   150.29      -31.418    
              (*,41, 1)   150.35      -31.328    
-             (*,42, 1)   150.41      -31.39     
+             (*,42, 1)   150.41      -31.390    
              (*,43, 1)   150.53      -31.388    
              (*,44, 1)   150.72      -31.395    
              (*,45, 1)   150.76      -31.519    
@@ -307,7 +307,7 @@ tab[0].*
              (*,50, 1)   151.06      -31.373    
              (*,51, 1)   150.96      -31.437    
              (*,52, 1)   151.17      -31.366    
-             (*,53, 1)   151.38      -31.35     
+             (*,53, 1)   151.38      -31.350    
              (*,54, 1)   151.36      -31.396    
              (*,55, 1)   151.52      -31.454    
              (*,56, 1)   151.54      -31.438    
@@ -318,9 +318,9 @@ tab[0].*
              (*,61, 1)   151.83      -31.365    
              (*,62, 1)   151.98      -31.475    
              (*,63, 1)   152.08      -31.468    
-             (*,64, 1)   152.14      -31.41     
-             (*,65, 1)   152.19      -31.43     
-             (*,66, 1)   152.4       -31.46     
+             (*,64, 1)   152.14      -31.410    
+             (*,65, 1)   152.19      -31.430    
+             (*,66, 1)   152.40      -31.460    
              (*,67, 1)   152.23      -31.494    
              (*,68, 1)   152.34      -31.461    
              (*,69, 1)   152.26      -31.432    
@@ -339,7 +339,7 @@ tab[0].*
              (*,12, 2)   148.28      -31.337    
              (*,13, 2)   148.46      -31.316    
              (*,14, 2)   148.47      -31.307    
-             (*,15, 2)   148.38      -31.36     
+             (*,15, 2)   148.38      -31.360    
              (*,16, 2)   148.57      -31.387    
              (*,17, 2)   148.67      -31.311    
              (*,18, 2)   148.79      -31.407    
@@ -349,7 +349,7 @@ tab[0].*
              (*,22, 2)   149.05      -31.339    
              (*,23, 2)   148.95      -31.399    
              (*,24, 2)   149.21      -31.388    
-             (*,25, 2)   149.26      -31.34     
+             (*,25, 2)   149.26      -31.340    
              (*,26, 2)   149.29      -31.305    
              (*,27, 2)   149.47      -31.289    
              (*,28, 2)   149.53      -31.302    
@@ -357,18 +357,18 @@ tab[0].*
              (*,30, 2)   149.45      -31.352    
              (*,31, 2)   149.71      -31.372    
              (*,32, 2)   149.82      -31.414    
-             (*,33, 2)   149.68      -31.31     
+             (*,33, 2)   149.68      -31.310    
              (*,34, 2)   149.84      -31.323    
              (*,35, 2)   150.11      -31.284    
              (*,36, 2)   150.12      -31.295    
              (*,37, 2)   150.21      -31.355    
              (*,38, 2)   150.04      -31.432    
-             (*,39, 2)   150.4       -31.449    
-             (*,40, 2)   150.44      -31.23     
+             (*,39, 2)   150.40      -31.449    
+             (*,40, 2)   150.44      -31.230    
              (*,41, 2)   150.44      -31.349    
-             (*,42, 2)   150.49      -31.35     
+             (*,42, 2)   150.49      -31.350    
              (*,43, 2)   150.54      -31.353    
-             (*,44, 2)   150.84      -31.46     
+             (*,44, 2)   150.84      -31.460    
              (*,45, 2)   150.73      -31.394    
              (*,46, 2)   150.87      -31.427    
              (*,47, 2)   150.67      -31.278    
@@ -394,18 +394,18 @@ tab[0].*
              (*,67, 2)   152.26      -31.343    
              (*,68, 2)   152.23      -31.384    
              (*,69, 2)   152.37      -31.289    
-             (*,70, 2)   152.61      -31.38     
+             (*,70, 2)   152.61      -31.380    
              (*, 1, 3)   147.44      -31.323    
              (*, 2, 3)   147.38      -31.229    
              (*, 3, 3)   147.51      -31.286    
              (*, 4, 3)   147.76      -31.179    
-             (*, 5, 3)   147.88      -31.28     
+             (*, 5, 3)   147.88      -31.280    
              (*, 6, 3)   147.82      -31.271    
              (*, 7, 3)   147.92      -31.283    
-             (*, 8, 3)   148.01      -31.33     
+             (*, 8, 3)   148.01      -31.330    
              (*, 9, 3)   148.15      -31.176    
              (*,10, 3)   148.23      -31.316    
-             (*,11, 3)   148.18      -31.27     
+             (*,11, 3)   148.18      -31.270    
              (*,12, 3)   148.51      -31.241    
              (*,13, 3)   148.33      -31.312    
              (*,14, 3)   148.43      -31.283    
@@ -425,12 +425,12 @@ tab[0].*
              (*,28, 3)   149.56      -31.374    
              (*,29, 3)   149.47      -31.311    
              (*,30, 3)   149.74      -31.303    
-             (*,31, 3)   149.63      -31.27     
+             (*,31, 3)   149.63      -31.270    
              (*,32, 3)   149.73      -31.251    
              (*,33, 3)   149.91      -31.321    
-             (*,34, 3)   149.91      -31.32     
+             (*,34, 3)   149.91      -31.320    
              (*,35, 3)   149.87      -31.257    
-             (*,36, 3)   149.9       -31.308    
+             (*,36, 3)   149.90      -31.308    
              (*,37, 3)   150.21      -31.273    
              (*,38, 3)   150.12      -31.255    
              (*,39, 3)   150.35      -31.258    
@@ -439,10 +439,10 @@ tab[0].*
              (*,42, 3)   150.47      -31.314    
              (*,43, 3)   150.47      -31.229    
              (*,44, 3)   150.56      -31.379    
-             (*,45, 3)   150.8       -31.242    
-             (*,46, 3)   150.8       -31.345    
+             (*,45, 3)   150.80      -31.242    
+             (*,46, 3)   150.80      -31.345    
              (*,47, 3)   150.85      -31.265    
-             (*,48, 3)   150.9       -31.282    
+             (*,48, 3)   150.90      -31.282    
              (*,49, 3)   150.86      -31.256    
              (*,50, 3)   151.11      -31.236    
              (*,51, 3)   151.22      -31.236    
@@ -454,7 +454,7 @@ tab[0].*
              (*,57, 3)   151.41      -31.211    
              (*,58, 3)   151.52      -31.362    
              (*,59, 3)   151.81      -31.318    
-             (*,60, 3)   151.93      -31.33     
+             (*,60, 3)   151.93      -31.330    
              (*,61, 3)   151.94      -31.308    
              (*,62, 3)   151.71      -31.307    
              (*,63, 3)   152.25      -31.314    
@@ -462,9 +462,9 @@ tab[0].*
              (*,65, 3)   152.13      -31.346    
              (*,66, 3)   152.13      -31.331    
              (*,67, 3)   152.21      -31.292    
-             (*,68, 3)   152.25      -31.3      
+             (*,68, 3)   152.25      -31.300    
              (*,69, 3)   152.45      -31.376    
-             (*,70, 3)   152.49      -31.23     
+             (*,70, 3)   152.49      -31.230    
              (*, 1, 4)   147.42      -31.165    
              (*, 2, 4)   147.49      -31.209    
              (*, 3, 4)   147.61      -31.202    
@@ -490,34 +490,34 @@ tab[0].*
              (*,23, 4)   149.05      -31.161    
              (*,24, 4)   149.05      -31.223    
              (*,25, 4)   149.16      -31.224    
-             (*,26, 4)   149.3       -31.203    
+             (*,26, 4)   149.30      -31.203    
              (*,27, 4)   149.21      -31.164    
              (*,28, 4)   149.42      -31.171    
              (*,29, 4)   149.45      -31.243    
-             (*,30, 4)   149.5       -31.245    
+             (*,30, 4)   149.50      -31.245    
              (*,31, 4)   149.59      -31.224    
              (*,32, 4)   149.64      -31.215    
              (*,33, 4)   149.81      -31.196    
              (*,34, 4)   149.75      -31.158    
-             (*,35, 4)   149.97      -31.25     
+             (*,35, 4)   149.97      -31.250    
              (*,36, 4)   150.13      -31.214    
              (*,37, 4)   150.17      -31.266    
              (*,38, 4)   149.99      -31.118    
              (*,39, 4)   150.34      -31.229    
-             (*,40, 4)   150.3       -31.218    
+             (*,40, 4)   150.30      -31.218    
              (*,41, 4)   150.24      -31.229    
-             (*,42, 4)   150.54      -31.36     
-             (*,43, 4)   150.5       -31.176    
+             (*,42, 4)   150.54      -31.360    
+             (*,43, 4)   150.50      -31.176    
              (*,44, 4)   150.68      -31.182    
              (*,45, 4)   150.52      -31.188    
              (*,46, 4)   150.75      -31.208    
-             (*,47, 4)   150.73      -31.17     
+             (*,47, 4)   150.73      -31.170    
              (*,48, 4)   151.05      -31.112    
-             (*,49, 4)   151.01      -31.12     
+             (*,49, 4)   151.01      -31.120    
              (*,50, 4)   151.07      -31.202    
              (*,51, 4)   151.09      -31.224    
              (*,52, 4)   151.09      -31.253    
-             (*,53, 4)   151.3       -31.164    
+             (*,53, 4)   151.30      -31.164    
              (*,54, 4)   151.28      -31.222    
              (*,55, 4)   151.47      -31.226    
              (*,56, 4)   151.54      -31.149    
@@ -525,39 +525,39 @@ tab[0].*
              (*,58, 4)   151.54      -31.287    
              (*,59, 4)   151.82      -31.157    
              (*,60, 4)   151.93      -31.042    
-             (*,61, 4)   151.76      -31.18     
+             (*,61, 4)   151.76      -31.180    
              (*,62, 4)   151.95      -31.194    
              (*,63, 4)   151.95      -31.268    
              (*,64, 4)   152.03      -31.229    
-             (*,65, 4)   152.1       -31.307    
+             (*,65, 4)   152.10      -31.307    
              (*,66, 4)   152.16      -31.283    
-             (*,67, 4)   152.3       -31.254    
+             (*,67, 4)   152.30      -31.254    
              (*,68, 4)   152.28      -31.222    
              (*,69, 4)   152.31      -31.169    
-             (*,70, 4)   152.5       -31.219    
+             (*,70, 4)   152.50      -31.219    
              (*, 1, 5)   147.38      -31.115    
              (*, 2, 5)   147.51      -31.154    
              (*, 3, 5)   147.68      -31.037    
-             (*, 4, 5)   147.7       -31.165    
+             (*, 4, 5)   147.70      -31.165    
              (*, 5, 5)   147.84      -31.089    
-             (*, 6, 5)   147.86      -31.14     
+             (*, 6, 5)   147.86      -31.140    
              (*, 7, 5)   147.85      -31.264    
              (*, 8, 5)   147.93      -31.055    
              (*, 9, 5)   147.98      -31.197    
-             (*,10, 5)   148.01      -31.16     
-             (*,11, 5)   148.4       -31.111    
-             (*,12, 5)   148.2       -31.184    
+             (*,10, 5)   148.01      -31.160    
+             (*,11, 5)   148.40      -31.111    
+             (*,12, 5)   148.20      -31.184    
              (*,13, 5)   148.36      -31.164    
-             (*,14, 5)   148.4       -31.083    
+             (*,14, 5)   148.40      -31.083    
              (*,15, 5)   148.52      -31.083    
              (*,16, 5)   148.47      -31.119    
              (*,17, 5)   148.66      -31.211    
-             (*,18, 5)   148.7       -31.173    
+             (*,18, 5)   148.70      -31.173    
              (*,19, 5)   148.65      -31.112    
-             (*,20, 5)   149.02      -31.03     
+             (*,20, 5)   149.02      -31.030    
              (*,21, 5)   149.05      -31.133    
              (*,22, 5)   148.96      -31.148    
-             (*,23, 5)   149         -31.209    
+             (*,23, 5)   149.00      -31.209    
              (*,24, 5)   149.08      -31.137    
              (*,25, 5)   149.18      -31.136    
              (*,26, 5)   149.42      -31.111    
@@ -572,15 +572,15 @@ tab[0].*
              (*,35, 5)   149.88      -31.109    
              (*,36, 5)   150.08      -31.167    
              (*,37, 5)   150.14      -31.107    
-             (*,38, 5)   150.3       -31.15     
-             (*,39, 5)   150.14      -31.22     
+             (*,38, 5)   150.30      -31.150    
+             (*,39, 5)   150.14      -31.220    
              (*,40, 5)   150.08      -31.249    
              (*,41, 5)   150.27      -31.179    
              (*,42, 5)   150.58      -31.179    
-             (*,43, 5)   150.52      -31.14     
+             (*,43, 5)   150.52      -31.140    
              (*,44, 5)   150.62      -31.113    
              (*,45, 5)   150.75      -31.116    
-             (*,46, 5)   150.9       -31.16     
+             (*,46, 5)   150.90      -31.160    
              (*,47, 5)   150.87      -31.029    
              (*,48, 5)   151.11      -31.176    
              (*,49, 5)   151.12      -31.182    
@@ -591,50 +591,50 @@ tab[0].*
              (*,54, 5)   151.38      -31.176    
              (*,55, 5)   151.58      -31.042    
              (*,56, 5)   151.53      -31.089    
-             (*,57, 5)   151.5       -31.047    
-             (*,58, 5)   151.6       -31.092    
+             (*,57, 5)   151.50      -31.047    
+             (*,58, 5)   151.60      -31.092    
              (*,59, 5)   151.52      -31.195    
              (*,60, 5)   151.73      -31.164    
              (*,61, 5)   151.85      -31.162    
-             (*,62, 5)   151.9       -31.144    
+             (*,62, 5)   151.90      -31.144    
              (*,63, 5)   151.99      -31.122    
              (*,64, 5)   152.03      -31.238    
              (*,65, 5)   151.98      -31.146    
-             (*,66, 5)   152.14      -31.07     
+             (*,66, 5)   152.14      -31.070    
              (*,67, 5)   152.31      -31.042    
              (*,68, 5)   152.48      -31.139    
              (*,69, 5)   152.51      -31.123    
-             (*,70, 5)   152.3       -31.209    
+             (*,70, 5)   152.30      -31.209    
              (*, 1, 6)   147.41      -31.091    
              (*, 2, 6)   147.56      -31.023    
              (*, 3, 6)   147.79      -31.031    
              (*, 4, 6)   147.75      -31.041    
-             (*, 5, 6)   147.9       -30.988    
+             (*, 5, 6)   147.90      -30.988    
              (*, 6, 6)   147.99      -31.094    
              (*, 7, 6)   147.82      -31.142    
              (*, 8, 6)   147.85      -31.139    
-             (*, 9, 6)   148         -31.111    
+             (*, 9, 6)   148.00      -31.111    
              (*,10, 6)   148.23      -30.986    
              (*,11, 6)   148.14      -31.045    
              (*,12, 6)   148.31      -31.042    
              (*,13, 6)   148.43      -31.031    
              (*,14, 6)   148.56      -31.102    
-             (*,15, 6)   148.56      -31.02     
+             (*,15, 6)   148.56      -31.020    
              (*,16, 6)   148.46      -30.871    
              (*,17, 6)   148.57      -31.089    
              (*,18, 6)   148.61      -31.086    
              (*,19, 6)   148.75      -31.042    
              (*,20, 6)   148.93      -31.125    
-             (*,21, 6)   149         -31.151    
+             (*,21, 6)   149.00      -31.151    
              (*,22, 6)   148.84      -30.944    
              (*,23, 6)   148.89      -31.112    
-             (*,24, 6)   149.14      -31.01     
+             (*,24, 6)   149.14      -31.010    
              (*,25, 6)   149.05      -31.071    
              (*,26, 6)   149.28      -31.127    
              (*,27, 6)   149.41      -31.007    
-             (*,28, 6)   149.39      -31.07     
+             (*,28, 6)   149.39      -31.070    
              (*,29, 6)   149.61      -31.152    
-             (*,30, 6)   149.69      -31.08     
+             (*,30, 6)   149.69      -31.080    
              (*,31, 6)   149.53      -31.047    
              (*,32, 6)   149.67      -31.063    
              (*,33, 6)   149.81      -31.139    
@@ -642,7 +642,7 @@ tab[0].*
              (*,35, 6)   150.12      -31.137    
              (*,36, 6)   150.01      -30.995    
              (*,37, 6)   150.16      -31.002    
-             (*,38, 6)   150.2       -31.099    
+             (*,38, 6)   150.20      -31.099    
              (*,39, 6)   150.18      -31.007    
              (*,40, 6)   150.31      -31.059    
              (*,41, 6)   150.43      -31.061    
@@ -651,19 +651,19 @@ tab[0].*
              (*,44, 6)   150.54      -31.102    
              (*,45, 6)   150.57      -31.047    
              (*,46, 6)   150.74      -31.148    
-             (*,47, 6)   150.87      -31.1      
+             (*,47, 6)   150.87      -31.100    
              (*,48, 6)   150.82      -31.001    
              (*,49, 6)   150.99      -31.139    
              (*,50, 6)   151.31      -31.026    
              (*,51, 6)   151.37      -30.941    
-             (*,52, 6)   151.25      -31.05     
+             (*,52, 6)   151.25      -31.050    
              (*,53, 6)   151.38      -31.056    
              (*,54, 6)   151.25      -31.099    
              (*,55, 6)   151.53      -31.121    
              (*,56, 6)   151.42      -31.066    
              (*,57, 6)   151.37      -30.949    
              (*,58, 6)   151.59      -31.069    
-             (*,59, 6)   151.7       -31.103    
+             (*,59, 6)   151.70      -31.103    
              (*,60, 6)   151.77      -31.006    
              (*,61, 6)   151.84      -31.046    
              (*,62, 6)   151.89      -31.059    
@@ -675,7 +675,7 @@ tab[0].*
              (*,68, 6)   152.34      -31.009    
              (*,69, 6)   152.55      -31.038    
              (*,70, 6)   152.51      -31.071    
-             (*, 1, 7)   147.7       -30.901    
+             (*, 1, 7)   147.70      -30.901    
              (*, 2, 7)   147.41      -30.985    
              (*, 3, 7)   147.67      -31.015    
              (*, 4, 7)   147.56      -31.006    
@@ -693,13 +693,13 @@ tab[0].*
              (*,16, 7)   148.67      -31.005    
              (*,17, 7)   148.77      -30.952    
              (*,18, 7)   148.84      -31.024    
-             (*,19, 7)   148.83      -31.07     
+             (*,19, 7)   148.83      -31.070    
              (*,20, 7)   148.95      -31.008    
-             (*,21, 7)   148.92      -31.05     
+             (*,21, 7)   148.92      -31.050    
              (*,22, 7)   149.03      -30.967    
-             (*,23, 7)   149.1       -31.001    
+             (*,23, 7)   149.10      -31.001    
              (*,24, 7)   149.02      -30.901    
-             (*,25, 7)   149.24      -31.01     
+             (*,25, 7)   149.24      -31.010    
              (*,26, 7)   149.19      -30.994    
              (*,27, 7)   149.38      -31.011    
              (*,28, 7)   149.32      -31.024    
@@ -710,24 +710,24 @@ tab[0].*
              (*,33, 7)   149.92      -31.025    
              (*,34, 7)   150.03      -31.055    
              (*,35, 7)   149.85      -31.031    
-             (*,36, 7)   150.2       -31        
-             (*,37, 7)   150.23      -30.99     
+             (*,36, 7)   150.20      -31.000    
+             (*,37, 7)   150.23      -30.990    
              (*,38, 7)   150.38      -30.997    
-             (*,39, 7)   150.25      -30.94     
+             (*,39, 7)   150.25      -30.940    
              (*,40, 7)   150.28      -31.086    
              (*,41, 7)   150.43      -30.939    
              (*,42, 7)   150.43      -30.993    
-             (*,43, 7)   150.5       -30.937    
+             (*,43, 7)   150.50      -30.937    
              (*,44, 7)   150.72      -30.998    
              (*,45, 7)   150.65      -31.038    
              (*,46, 7)   150.72      -31.056    
-             (*,47, 7)   150.94      -30.98     
+             (*,47, 7)   150.94      -30.980    
              (*,48, 7)   150.93      -30.998    
              (*,49, 7)   150.93      -31.044    
              (*,50, 7)   151.23      -30.955    
              (*,51, 7)   151.14      -31.033    
              (*,52, 7)   151.13      -30.986    
-             (*,53, 7)   151.2       -31.055    
+             (*,53, 7)   151.20      -31.055    
              (*,54, 7)   151.43      -30.924    
              (*,55, 7)   151.32      -30.975    
              (*,56, 7)   151.41      -30.965    
@@ -740,7 +740,7 @@ tab[0].*
              (*,63, 7)   152.09      -31.107    
              (*,64, 7)   151.99      -31.014    
              (*,65, 7)   152.02      -31.067    
-             (*,66, 7)   152.2       -31.006    
+             (*,66, 7)   152.20      -31.006    
              (*,67, 7)   152.31      -31.013    
              (*,68, 7)   152.37      -31.003    
              (*,69, 7)   152.41      -31.042    
@@ -752,8 +752,8 @@ tab[0].*
              (*, 5, 8)   147.87      -30.804    
              (*, 6, 8)   147.88      -30.824    
              (*, 7, 8)   147.98      -30.871    
-             (*, 8, 8)   148.1       -30.91     
-             (*, 9, 8)   147.99      -30.94     
+             (*, 8, 8)   148.10      -30.910    
+             (*, 9, 8)   147.99      -30.940    
              (*,10, 8)   148.22      -30.922    
              (*,11, 8)   148.34      -30.886    
              (*,12, 8)   148.23      -30.929    
@@ -787,21 +787,21 @@ tab[0].*
              (*,40, 8)   150.53      -30.931    
              (*,41, 8)   150.32      -30.971    
              (*,42, 8)   150.47      -30.973    
-             (*,43, 8)   150.5       -31.006    
+             (*,43, 8)   150.50      -31.006    
              (*,44, 8)   150.64      -30.915    
-             (*,45, 8)   150.47      -30.94     
+             (*,45, 8)   150.47      -30.940    
              (*,46, 8)   150.83      -31.012    
              (*,47, 8)   150.86      -30.944    
              (*,48, 8)   150.94      -30.971    
-             (*,49, 8)   150.96      -30.99     
+             (*,49, 8)   150.96      -30.990    
              (*,50, 8)   151.24      -30.849    
              (*,51, 8)   151.29      -30.838    
              (*,52, 8)   151.19      -30.955    
              (*,53, 8)   151.29      -30.947    
              (*,54, 8)   151.37      -30.922    
-             (*,55, 8)   151.3       -30.938    
+             (*,55, 8)   151.30      -30.938    
              (*,56, 8)   151.49      -30.909    
-             (*,57, 8)   151.4       -30.887    
+             (*,57, 8)   151.40      -30.887    
              (*,58, 8)   151.56      -30.919    
              (*,59, 8)   151.74      -31.009    
              (*,60, 8)   152.04      -30.916    
@@ -812,7 +812,7 @@ tab[0].*
              (*,65, 8)   152.17      -30.881    
              (*,66, 8)   152.27      -30.999    
              (*,67, 8)   152.15      -30.865    
-             (*,68, 8)   152.35      -30.9      
+             (*,68, 8)   152.35      -30.900    
              (*,69, 8)   152.54      -30.936    
              (*,70, 8)   152.48      -30.911    
              (*, 1, 9)   147.55      -30.819    
@@ -822,21 +822,21 @@ tab[0].*
              (*, 5, 9)   147.87      -30.834    
              (*, 6, 9)   147.98      -30.835    
              (*, 7, 9)   147.91      -30.796    
-             (*, 8, 9)   148.1       -30.882    
+             (*, 8, 9)   148.10      -30.882    
              (*, 9, 9)   148.15      -30.804    
              (*,10, 9)   148.36      -30.873    
              (*,11, 9)   148.09      -30.901    
              (*,12, 9)   148.23      -30.759    
              (*,13, 9)   148.35      -30.833    
              (*,14, 9)   148.48      -30.836    
-             (*,15, 9)   148.5       -30.85     
+             (*,15, 9)   148.50      -30.850    
              (*,16, 9)   148.52      -30.896    
              (*,17, 9)   148.57      -30.854    
              (*,18, 9)   148.81      -30.814    
              (*,19, 9)   148.88      -30.788    
              (*,20, 9)   149.12      -30.841    
-             (*,21, 9)   149.08      -30.82     
-             (*,22, 9)   149         -30.871    
+             (*,21, 9)   149.08      -30.820    
+             (*,22, 9)   149.00      -30.871    
              (*,23, 9)   149.06      -30.791    
              (*,24, 9)   149.16      -30.819    
              (*,25, 9)   149.13      -30.821    
@@ -860,43 +860,43 @@ tab[0].*
              (*,43, 9)   150.63      -30.773    
              (*,44, 9)   150.66      -30.895    
              (*,45, 9)   150.88      -30.799    
-             (*,46, 9)   150.6       -30.889    
+             (*,46, 9)   150.60      -30.889    
              (*,47, 9)   150.74      -30.838    
              (*,48, 9)   151.07      -30.831    
              (*,49, 9)   150.87      -30.869    
              (*,50, 9)   150.98      -30.887    
-             (*,51, 9)   151.3       -30.855    
+             (*,51, 9)   151.30      -30.855    
              (*,52, 9)   151.25      -30.869    
-             (*,53, 9)   151.34      -30.83     
+             (*,53, 9)   151.34      -30.830    
              (*,54, 9)   151.38      -30.781    
              (*,55, 9)   151.31      -30.805    
              (*,56, 9)   151.48      -30.832    
              (*,57, 9)   151.47      -30.818    
-             (*,58, 9)   151.6       -30.788    
+             (*,58, 9)   151.60      -30.788    
              (*,59, 9)   151.64      -30.761    
              (*,60, 9)   151.77      -30.807    
              (*,61, 9)   151.88      -30.816    
              (*,62, 9)   151.94      -30.907    
              (*,63, 9)   151.94      -30.914    
              (*,64, 9)   152.09      -30.855    
-             (*,65, 9)   152.23      -30.79     
-             (*,66, 9)   152.14      -30.81     
+             (*,65, 9)   152.23      -30.790    
+             (*,66, 9)   152.14      -30.810    
              (*,67, 9)   152.38      -30.888    
              (*,68, 9)   152.28      -30.844    
              (*,69, 9)   152.42      -30.843    
-             (*,70, 9)   152.6       -30.819    
+             (*,70, 9)   152.60      -30.819    
              (*, 1,10)   147.37      -30.829    
-             (*, 2,10)   147.6       -30.737    
+             (*, 2,10)   147.60      -30.737    
              (*, 3,10)   147.81      -30.705    
              (*, 4,10)   147.69      -30.774    
              (*, 5,10)   147.74      -30.769    
-             (*, 6,10)   147.8       -30.745    
+             (*, 6,10)   147.80      -30.745    
              (*, 7,10)   147.97      -30.806    
              (*, 8,10)   148.08      -30.716    
              (*, 9,10)   148.02      -30.788    
              (*,10,10)   148.23      -30.783    
              (*,11,10)   148.15      -30.762    
-             (*,12,10)   148.38      -30.82     
+             (*,12,10)   148.38      -30.820    
              (*,13,10)   148.33      -30.676    
              (*,14,10)   148.47      -30.733    
              (*,15,10)   148.49      -30.818    
@@ -904,12 +904,12 @@ tab[0].*
              (*,17,10)   148.56      -30.761    
              (*,18,10)   148.62      -30.765    
              (*,19,10)   148.78      -30.757    
-             (*,20,10)   148.9       -30.769    
+             (*,20,10)   148.90      -30.769    
              (*,21,10)   149.09      -30.814    
              (*,22,10)   149.12      -30.825    
              (*,23,10)   149.17      -30.791    
              (*,24,10)   149.28      -30.826    
-             (*,25,10)   149.3       -30.817    
+             (*,25,10)   149.30      -30.817    
              (*,26,10)   149.49      -30.775    
              (*,27,10)   149.42      -30.702    
              (*,28,10)   149.42      -30.784    
@@ -923,47 +923,47 @@ tab[0].*
              (*,36,10)   150.02      -30.766    
              (*,37,10)   150.12      -30.825    
              (*,38,10)   150.25      -30.822    
-             (*,39,10)   150.05      -30.65     
+             (*,39,10)   150.05      -30.650    
              (*,40,10)   150.27      -30.798    
              (*,41,10)   150.44      -30.707    
              (*,42,10)   150.33      -30.659    
              (*,43,10)   150.68      -30.744    
-             (*,44,10)   150.6       -30.797    
+             (*,44,10)   150.60      -30.797    
              (*,45,10)   150.38      -30.719    
              (*,46,10)   150.78      -30.771    
              (*,47,10)   150.95      -30.775    
-             (*,48,10)   151.1       -30.715    
+             (*,48,10)   151.10      -30.715    
              (*,49,10)   151.13      -30.756    
              (*,50,10)   151.25      -30.745    
              (*,51,10)   151.05      -30.731    
              (*,52,10)   151.19      -30.675    
              (*,53,10)   151.16      -30.717    
              (*,54,10)   151.42      -30.743    
-             (*,55,10)   151.5       -30.694    
+             (*,55,10)   151.50      -30.694    
              (*,56,10)   151.43      -30.823    
              (*,57,10)   151.46      -30.766    
              (*,58,10)   151.73      -30.808    
-             (*,59,10)   151.7       -30.776    
-             (*,60,10)   151.8       -30.79     
+             (*,59,10)   151.70      -30.776    
+             (*,60,10)   151.80      -30.790    
              (*,61,10)   151.91      -30.846    
              (*,62,10)   151.81      -30.794    
              (*,63,10)   152.04      -30.764    
-             (*,64,10)   152         -30.767    
+             (*,64,10)   152.00      -30.767    
              (*,65,10)   152.12      -30.758    
-             (*,66,10)   152.3       -30.744    
+             (*,66,10)   152.30      -30.744    
              (*,67,10)   152.14      -30.839    
              (*,68,10)   152.29      -30.727    
-             (*,69,10)   152.52      -30.74     
+             (*,69,10)   152.52      -30.740    
              (*,70,10)   152.63      -30.795    
              (*, 1,11)   147.37      -30.629    
              (*, 2,11)   147.73      -30.808    
-             (*, 3,11)   147.56      -30.72     
-             (*, 4,11)   147.8       -30.663    
+             (*, 3,11)   147.56      -30.720    
+             (*, 4,11)   147.80      -30.663    
              (*, 5,11)   147.94      -30.602    
              (*, 6,11)   147.92      -30.641    
              (*, 7,11)   148.03      -30.752    
              (*, 8,11)   148.01      -30.629    
-             (*, 9,11)   148.1       -30.723    
+             (*, 9,11)   148.10      -30.723    
              (*,10,11)   148.09      -30.736    
              (*,11,11)   148.17      -30.708    
              (*,12,11)   148.43      -30.649    
@@ -982,68 +982,68 @@ tab[0].*
              (*,25,11)   149.17      -30.677    
              (*,26,11)   149.37      -30.593    
              (*,27,11)   149.47      -30.647    
-             (*,28,11)   149.65      -30.77     
+             (*,28,11)   149.65      -30.770    
              (*,29,11)   149.71      -30.783    
              (*,30,11)   149.86      -30.685    
              (*,31,11)   149.55      -30.736    
              (*,32,11)   149.58      -30.677    
-             (*,33,11)   149.7       -30.711    
+             (*,33,11)   149.70      -30.711    
              (*,34,11)   149.81      -30.761    
              (*,35,11)   150.11      -30.706    
              (*,36,11)   150.08      -30.657    
              (*,37,11)   150.03      -30.707    
              (*,38,11)   150.19      -30.667    
-             (*,39,11)   150.3       -30.713    
+             (*,39,11)   150.30      -30.713    
              (*,40,11)   150.37      -30.688    
              (*,41,11)   150.55      -30.632    
              (*,42,11)   150.42      -30.681    
              (*,43,11)   150.44      -30.731    
              (*,44,11)   150.67      -30.742    
              (*,45,11)   150.73      -30.829    
-             (*,46,11)   150.76      -30.61     
+             (*,46,11)   150.76      -30.610    
              (*,47,11)   150.69      -30.654    
              (*,48,11)   150.77      -30.742    
-             (*,49,11)   151.2       -30.755    
+             (*,49,11)   151.20      -30.755    
              (*,50,11)   151.07      -30.814    
              (*,51,11)   151.06      -30.655    
              (*,52,11)   151.19      -30.714    
              (*,53,11)   151.12      -30.705    
-             (*,54,11)   151.4       -30.652    
-             (*,55,11)   151.45      -30.7      
+             (*,54,11)   151.40      -30.652    
+             (*,55,11)   151.45      -30.700    
              (*,56,11)   151.54      -30.615    
-             (*,57,11)   151.7       -30.606    
+             (*,57,11)   151.70      -30.606    
              (*,58,11)   151.81      -30.662    
-             (*,59,11)   151.4       -30.731    
+             (*,59,11)   151.40      -30.731    
              (*,60,11)   151.86      -30.762    
              (*,61,11)   151.87      -30.622    
-             (*,62,11)   151.96      -30.67     
+             (*,62,11)   151.96      -30.670    
              (*,63,11)   151.86      -30.653    
              (*,64,11)   152.09      -30.651    
              (*,65,11)   151.83      -30.756    
-             (*,66,11)   152.3       -30.723    
+             (*,66,11)   152.30      -30.723    
              (*,67,11)   152.23      -30.733    
              (*,68,11)   152.26      -30.674    
              (*,69,11)   152.58      -30.653    
              (*,70,11)   152.54      -30.742    
              (*, 1,12)   147.66      -30.669    
              (*, 2,12)   147.45      -30.599    
-             (*, 3,12)   147.69      -30.65     
+             (*, 3,12)   147.69      -30.650    
              (*, 4,12)   147.52      -30.619    
              (*, 5,12)   147.69      -30.665    
-             (*, 6,12)   147.77      -30.59     
+             (*, 6,12)   147.77      -30.590    
              (*, 7,12)   147.83      -30.495    
              (*, 8,12)   147.95      -30.611    
              (*, 9,12)   148.08      -30.599    
              (*,10,12)   148.11      -30.613    
              (*,11,12)   148.25      -30.656    
              (*,12,12)   148.29      -30.693    
-             (*,13,12)   148.48      -30.6      
+             (*,13,12)   148.48      -30.600    
              (*,14,12)   148.37      -30.624    
              (*,15,12)   148.46      -30.592    
              (*,16,12)   148.62      -30.563    
              (*,17,12)   148.74      -30.636    
-             (*,18,12)   148.72      -30.64     
-             (*,19,12)   148.77      -30.64     
+             (*,18,12)   148.72      -30.640    
+             (*,19,12)   148.77      -30.640    
              (*,20,12)   148.83      -30.654    
              (*,21,12)   148.83      -30.644    
              (*,22,12)   148.89      -30.656    
@@ -1056,14 +1056,14 @@ tab[0].*
              (*,29,12)   149.59      -30.669    
              (*,30,12)   149.63      -30.671    
              (*,31,12)   149.54      -30.655    
-             (*,32,12)   149.87      -30.65     
-             (*,33,12)   149.8       -30.604    
+             (*,32,12)   149.87      -30.650    
+             (*,33,12)   149.80      -30.604    
              (*,34,12)   149.85      -30.614    
-             (*,35,12)   150.12      -30.64     
+             (*,35,12)   150.12      -30.640    
              (*,36,12)   150.13      -30.628    
              (*,37,12)   150.28      -30.527    
              (*,38,12)   150.26      -30.631    
-             (*,39,12)   150.3       -30.583    
+             (*,39,12)   150.30      -30.583    
              (*,40,12)   150.42      -30.604    
              (*,41,12)   150.21      -30.597    
              (*,42,12)   150.81      -30.582    
@@ -1073,29 +1073,29 @@ tab[0].*
              (*,46,12)   150.74      -30.655    
              (*,47,12)   151.11      -30.665    
              (*,48,12)   150.97      -30.578    
-             (*,49,12)   150.9       -30.587    
-             (*,50,12)   151         -30.683    
+             (*,49,12)   150.90      -30.587    
+             (*,50,12)   151.00      -30.683    
              (*,51,12)   151.01      -30.549    
              (*,52,12)   151.09      -30.643    
              (*,53,12)   151.31      -30.569    
              (*,54,12)   151.35      -30.702    
              (*,55,12)   151.28      -30.591    
              (*,56,12)   151.44      -30.671    
-             (*,57,12)   151.4       -30.616    
+             (*,57,12)   151.40      -30.616    
              (*,58,12)   151.58      -30.622    
              (*,59,12)   151.75      -30.636    
              (*,60,12)   152.04      -30.477    
              (*,61,12)   151.96      -30.737    
              (*,62,12)   152.02      -30.503    
-             (*,63,12)   152.01      -30.64     
-             (*,64,12)   152         -30.635    
+             (*,63,12)   152.01      -30.640    
+             (*,64,12)   152.00      -30.635    
              (*,65,12)   152.06      -30.621    
              (*,66,12)   152.36      -30.594    
              (*,67,12)   152.11      -30.553    
              (*,68,12)   152.44      -30.629    
              (*,69,12)   152.36      -30.668    
              (*,70,12)   152.46      -30.664    
-             (*, 1,13)   147.48      -30.54     
+             (*, 1,13)   147.48      -30.540    
              (*, 2,13)   147.51      -30.492    
              (*, 3,13)   147.63      -30.563    
              (*, 4,13)   147.69      -30.587    
@@ -1106,15 +1106,15 @@ tab[0].*
              (*, 9,13)   147.99      -30.576    
              (*,10,13)   148.11      -30.543    
              (*,11,13)   148.28      -30.523    
-             (*,12,13)   148.25      -30.65     
+             (*,12,13)   148.25      -30.650    
              (*,13,13)   148.36      -30.578    
              (*,14,13)   148.32      -30.506    
              (*,15,13)   148.51      -30.549    
              (*,16,13)   148.77      -30.522    
-             (*,17,13)   148.5       -30.512    
+             (*,17,13)   148.50      -30.512    
              (*,18,13)   148.59      -30.572    
-             (*,19,13)   149         -30.544    
-             (*,20,13)   148.7       -30.617    
+             (*,19,13)   149.00      -30.544    
+             (*,20,13)   148.70      -30.617    
              (*,21,13)   148.89      -30.595    
              (*,22,13)   149.08      -30.645    
              (*,23,13)   149.19      -30.631    
@@ -1125,7 +1125,7 @@ tab[0].*
              (*,28,13)   149.37      -30.499    
              (*,29,13)   149.62      -30.527    
              (*,30,13)   149.48      -30.577    
-             (*,31,13)   149.59      -30.63     
+             (*,31,13)   149.59      -30.630    
              (*,32,13)   149.74      -30.566    
              (*,33,13)   150.04      -30.512    
              (*,34,13)   149.71      -30.531    
@@ -1133,22 +1133,22 @@ tab[0].*
              (*,36,13)   149.99      -30.626    
              (*,37,13)   150.16      -30.586    
              (*,38,13)   150.05      -30.593    
-             (*,39,13)   150.1       -30.489    
+             (*,39,13)   150.10      -30.489    
              (*,40,13)   150.44      -30.522    
-             (*,41,13)   150.33      -30.57     
-             (*,42,13)   150.4       -30.57     
+             (*,41,13)   150.33      -30.570    
+             (*,42,13)   150.40      -30.570    
              (*,43,13)   150.67      -30.517    
              (*,44,13)   150.57      -30.489    
-             (*,45,13)   150.7       -30.524    
-             (*,46,13)   150.77      -30.58     
+             (*,45,13)   150.70      -30.524    
+             (*,46,13)   150.77      -30.580    
              (*,47,13)   150.77      -30.514    
              (*,48,13)   150.91      -30.548    
              (*,49,13)   150.99      -30.582    
              (*,50,13)   151.06      -30.583    
              (*,51,13)   151.07      -30.517    
-             (*,52,13)   151.3       -30.525    
+             (*,52,13)   151.30      -30.525    
              (*,53,13)   151.41      -30.551    
-             (*,54,13)   151.3       -30.464    
+             (*,54,13)   151.30      -30.464    
              (*,55,13)   151.44      -30.537    
              (*,56,13)   151.41      -30.609    
              (*,57,13)   151.61      -30.567    
@@ -1159,36 +1159,36 @@ tab[0].*
              (*,62,13)   152.05      -30.625    
              (*,63,13)   151.94      -30.626    
              (*,64,13)   152.11      -30.447    
-             (*,65,13)   152.17      -30.42     
+             (*,65,13)   152.17      -30.420    
              (*,66,13)   152.19      -30.588    
              (*,67,13)   152.24      -30.584    
              (*,68,13)   152.32      -30.522    
              (*,69,13)   152.53      -30.565    
              (*,70,13)   152.54      -30.548    
-             (*, 1,14)   147.49      -30.59     
+             (*, 1,14)   147.49      -30.590    
              (*, 2,14)   147.65      -30.462    
              (*, 3,14)   147.64      -30.443    
              (*, 4,14)   147.96      -30.455    
              (*, 5,14)   147.87      -30.443    
              (*, 6,14)   147.92      -30.476    
              (*, 7,14)   147.96      -30.389    
-             (*, 8,14)   148         -30.442    
+             (*, 8,14)   148.00      -30.442    
              (*, 9,14)   148.21      -30.526    
-             (*,10,14)   148.11      -30.49     
+             (*,10,14)   148.11      -30.490    
              (*,11,14)   148.31      -30.461    
              (*,12,14)   148.42      -30.443    
-             (*,13,14)   148.3       -30.531    
+             (*,13,14)   148.30      -30.531    
              (*,14,14)   148.43      -30.493    
              (*,15,14)   148.45      -30.524    
              (*,16,14)   148.42      -30.455    
-             (*,17,14)   148.8       -30.486    
+             (*,17,14)   148.80      -30.486    
              (*,18,14)   148.69      -30.487    
              (*,19,14)   148.76      -30.449    
-             (*,20,14)   148.9       -30.455    
-             (*,21,14)   148.87      -30.4      
-             (*,22,14)   149.06      -30.45     
+             (*,20,14)   148.90      -30.455    
+             (*,21,14)   148.87      -30.400    
+             (*,22,14)   149.06      -30.450    
              (*,23,14)   149.16      -30.481    
-             (*,24,14)   149.41      -30.51     
+             (*,24,14)   149.41      -30.510    
              (*,25,14)   149.25      -30.361    
              (*,26,14)   149.26      -30.442    
              (*,27,14)   149.42      -30.478    
@@ -1196,7 +1196,7 @@ tab[0].*
              (*,29,14)   149.47      -30.531    
              (*,30,14)   149.68      -30.517    
              (*,31,14)   149.74      -30.458    
-             (*,32,14)   149.8       -30.495    
+             (*,32,14)   149.80      -30.495    
              (*,33,14)   149.66      -30.572    
              (*,34,14)   150.01      -30.424    
              (*,35,14)   150.16      -30.507    
@@ -1205,8 +1205,8 @@ tab[0].*
              (*,38,14)   150.14      -30.442    
              (*,39,14)   150.26      -30.444    
              (*,40,14)   150.29      -30.474    
-             (*,41,14)   150.5       -30.453    
-             (*,42,14)   150.5       -30.45     
+             (*,41,14)   150.50      -30.453    
+             (*,42,14)   150.50      -30.450    
              (*,43,14)   150.59      -30.538    
              (*,44,14)   150.67      -30.412    
              (*,45,14)   150.77      -30.462    
@@ -1222,22 +1222,22 @@ tab[0].*
              (*,55,14)   151.55      -30.441    
              (*,56,14)   151.62      -30.499    
              (*,57,14)   151.58      -30.505    
-             (*,58,14)   151.6       -30.397    
+             (*,58,14)   151.60      -30.397    
              (*,59,14)   151.67      -30.461    
              (*,60,14)   151.71      -30.435    
              (*,61,14)   151.88      -30.402    
              (*,62,14)   151.84      -30.513    
              (*,63,14)   151.98      -30.473    
              (*,64,14)   151.98      -30.519    
-             (*,65,14)   152.19      -30.52     
+             (*,65,14)   152.19      -30.520    
              (*,66,14)   152.07      -30.594    
              (*,67,14)   152.56      -30.521    
              (*,68,14)   152.34      -30.514    
              (*,69,14)   152.58      -30.515    
              (*,70,14)   152.57      -30.523    
              (*, 1,15)   147.45      -30.443    
-             (*, 2,15)   147.83      -30.39     
-             (*, 3,15)   147.76      -30.45     
+             (*, 2,15)   147.83      -30.390    
+             (*, 3,15)   147.76      -30.450    
              (*, 4,15)   147.67      -30.401    
              (*, 5,15)   147.71      -30.437    
              (*, 6,15)   147.94      -30.484    
@@ -1250,8 +1250,8 @@ tab[0].*
              (*,13,15)   148.39      -30.382    
              (*,14,15)   148.46      -30.353    
              (*,15,15)   148.58      -30.413    
-             (*,16,15)   148.7       -30.384    
-             (*,17,15)   148.7       -30.342    
+             (*,16,15)   148.70      -30.384    
+             (*,17,15)   148.70      -30.342    
              (*,18,15)   148.85      -30.433    
              (*,19,15)   148.85      -30.424    
              (*,20,15)   148.95      -30.344    
@@ -1261,11 +1261,11 @@ tab[0].*
              (*,24,15)   149.28      -30.499    
              (*,25,15)   149.25      -30.386    
              (*,26,15)   149.18      -30.409    
-             (*,27,15)   149.53      -30.36     
+             (*,27,15)   149.53      -30.360    
              (*,28,15)   149.52      -30.375    
              (*,29,15)   149.48      -30.418    
              (*,30,15)   149.73      -30.437    
-             (*,31,15)   149.4       -30.374    
+             (*,31,15)   149.40      -30.374    
              (*,32,15)   149.83      -30.382    
              (*,33,15)   149.91      -30.414    
              (*,34,15)   149.83      -30.396    
@@ -1284,7 +1284,7 @@ tab[0].*
              (*,47,15)   150.77      -30.432    
              (*,48,15)   150.89      -30.346    
              (*,49,15)   150.96      -30.353    
-             (*,50,15)   151.2       -30.404    
+             (*,50,15)   151.20      -30.404    
              (*,51,15)   151.26      -30.414    
              (*,52,15)   151.25      -30.358    
              (*,53,15)   151.15      -30.341    
@@ -1296,7 +1296,7 @@ tab[0].*
              (*,59,15)   151.78      -30.357    
              (*,60,15)   151.92      -30.469    
              (*,61,15)   151.87      -30.382    
-             (*,62,15)   151.9       -30.384    
+             (*,62,15)   151.90      -30.384    
              (*,63,15)   151.97      -30.413    
              (*,64,15)   151.96      -30.416    
              (*,65,15)   152.08      -30.416    
@@ -1305,44 +1305,44 @@ tab[0].*
              (*,68,15)   152.44      -30.396    
              (*,69,15)   152.37      -30.442    
              (*,70,15)   152.43      -30.416    
-             (*, 1,16)   147.6       -30.324    
+             (*, 1,16)   147.60      -30.324    
              (*, 2,16)   147.55      -30.276    
-             (*, 3,16)   147.68      -30.28     
+             (*, 3,16)   147.68      -30.280    
              (*, 4,16)   147.86      -30.382    
-             (*, 5,16)   147.89      -30.4      
+             (*, 5,16)   147.89      -30.400    
              (*, 6,16)   148.02      -30.385    
              (*, 7,16)   147.91      -30.355    
              (*, 8,16)   147.94      -30.372    
              (*, 9,16)   148.02      -30.415    
              (*,10,16)   148.12      -30.312    
-             (*,11,16)   148.2       -30.245    
+             (*,11,16)   148.20      -30.245    
              (*,12,16)   148.29      -30.266    
-             (*,13,16)   148.3       -30.357    
-             (*,14,16)   148.32      -30.3      
+             (*,13,16)   148.30      -30.357    
+             (*,14,16)   148.32      -30.300    
              (*,15,16)   148.58      -30.308    
-             (*,16,16)   148.7       -30.287    
+             (*,16,16)   148.70      -30.287    
              (*,17,16)   148.64      -30.271    
              (*,18,16)   148.82      -30.381    
-             (*,19,16)   148.8       -30.359    
+             (*,19,16)   148.80      -30.359    
              (*,20,16)   148.94      -30.213    
              (*,21,16)   148.95      -30.358    
-             (*,22,16)   148.9       -30.255    
+             (*,22,16)   148.90      -30.255    
              (*,23,16)   149.21      -30.327    
              (*,24,16)   149.09      -30.296    
              (*,25,16)   149.28      -30.238    
              (*,26,16)   149.33      -30.378    
              (*,27,16)   149.59      -30.384    
-             (*,28,16)   149.3       -30.334    
+             (*,28,16)   149.30      -30.334    
              (*,29,16)   149.54      -30.254    
              (*,30,16)   149.48      -30.351    
              (*,31,16)   149.77      -30.327    
              (*,32,16)   149.88      -30.275    
              (*,33,16)   149.85      -30.327    
-             (*,34,16)   149.85      -30.31     
+             (*,34,16)   149.85      -30.310    
              (*,35,16)   149.98      -30.389    
              (*,36,16)   150.07      -30.286    
              (*,37,16)   150.15      -30.255    
-             (*,38,16)   150.2       -30.296    
+             (*,38,16)   150.20      -30.296    
              (*,39,16)   150.05      -30.305    
              (*,40,16)   150.32      -30.322    
              (*,41,16)   150.36      -30.337    
@@ -1352,8 +1352,8 @@ tab[0].*
              (*,45,16)   150.67      -30.193    
              (*,46,16)   150.85      -30.278    
              (*,47,16)   150.82      -30.376    
-             (*,48,16)   150.83      -30.35     
-             (*,49,16)   151         -30.292    
+             (*,48,16)   150.83      -30.350    
+             (*,49,16)   151.00      -30.292    
              (*,50,16)   151.06      -30.276    
              (*,51,16)   151.26      -30.384    
              (*,52,16)   151.18      -30.368    
@@ -1368,40 +1368,40 @@ tab[0].*
              (*,61,16)   151.81      -30.363    
              (*,62,16)   151.81      -30.322    
              (*,63,16)   151.94      -30.388    
-             (*,64,16)   152.1       -30.322    
+             (*,64,16)   152.10      -30.322    
              (*,65,16)   152.15      -30.361    
              (*,66,16)   152.09      -30.248    
              (*,67,16)   152.29      -30.339    
-             (*,68,16)   152.36      -30.31     
-             (*,69,16)   152.3       -30.402    
+             (*,68,16)   152.36      -30.310    
+             (*,69,16)   152.30      -30.402    
              (*,70,16)   152.49      -30.385    
-             (*, 1,17)   147.4       -30.197    
-             (*, 2,17)   147.62      -30.21     
+             (*, 1,17)   147.40      -30.197    
+             (*, 2,17)   147.62      -30.210    
              (*, 3,17)   147.56      -30.288    
              (*, 4,17)   147.62      -30.207    
              (*, 5,17)   147.78      -30.286    
              (*, 6,17)   147.83      -30.378    
              (*, 7,17)   147.85      -30.245    
              (*, 8,17)   147.82      -30.217    
-             (*, 9,17)   148.07      -30.25     
-             (*,10,17)   148.14      -30.28     
+             (*, 9,17)   148.07      -30.250    
+             (*,10,17)   148.14      -30.280    
              (*,11,17)   148.26      -30.308    
-             (*,12,17)   148.3       -30.235    
-             (*,13,17)   148.4       -30.155    
+             (*,12,17)   148.30      -30.235    
+             (*,13,17)   148.40      -30.155    
              (*,14,17)   148.46      -30.304    
-             (*,15,17)   148.4       -30.355    
-             (*,16,17)   148.6       -30.251    
+             (*,15,17)   148.40      -30.355    
+             (*,16,17)   148.60      -30.251    
              (*,17,17)   148.66      -30.282    
              (*,18,17)   148.65      -30.235    
              (*,19,17)   148.64      -30.184    
              (*,20,17)   148.88      -30.374    
-             (*,21,17)   148.9       -30.292    
-             (*,22,17)   148.91      -30.21     
+             (*,21,17)   148.90      -30.292    
+             (*,22,17)   148.91      -30.210    
              (*,23,17)   149.09      -30.317    
              (*,24,17)   148.94      -30.217    
              (*,25,17)   149.24      -30.205    
              (*,26,17)   149.38      -30.186    
-             (*,27,17)   149.3       -30.222    
+             (*,27,17)   149.30      -30.222    
              (*,28,17)   149.66      -30.286    
              (*,29,17)   149.69      -30.266    
              (*,30,17)   149.79      -30.328    
@@ -1409,7 +1409,7 @@ tab[0].*
              (*,32,17)   149.69      -30.228    
              (*,33,17)   149.88      -30.181    
              (*,34,17)   149.88      -30.237    
-             (*,35,17)   150         -30.22     
+             (*,35,17)   150.00      -30.220    
              (*,36,17)   149.96      -30.199    
              (*,37,17)   150.18      -30.236    
              (*,38,17)   150.35      -30.159    
@@ -1421,23 +1421,23 @@ tab[0].*
              (*,44,17)   150.67      -30.221    
              (*,45,17)   150.83      -30.289    
              (*,46,17)   150.76      -30.341    
-             (*,47,17)   150.8       -30.255    
+             (*,47,17)   150.80      -30.255    
              (*,48,17)   150.92      -30.193    
              (*,49,17)   150.93      -30.176    
-             (*,50,17)   150.97      -30.19     
+             (*,50,17)   150.97      -30.190    
              (*,51,17)   151.04      -30.363    
              (*,52,17)   151.04      -30.281    
              (*,53,17)   151.29      -30.263    
              (*,54,17)   151.26      -30.221    
              (*,55,17)   151.26      -30.259    
-             (*,56,17)   151.5       -30.251    
+             (*,56,17)   151.50      -30.251    
              (*,57,17)   151.56      -30.212    
              (*,58,17)   151.68      -30.218    
-             (*,59,17)   151.8       -30.263    
+             (*,59,17)   151.80      -30.263    
              (*,60,17)   151.91      -30.263    
              (*,61,17)   151.96      -30.255    
-             (*,62,17)   152.2       -30.239    
-             (*,63,17)   151.95      -30.33     
+             (*,62,17)   152.20      -30.239    
+             (*,63,17)   151.95      -30.330    
              (*,64,17)   152.16      -30.243    
              (*,65,17)   152.14      -30.283    
              (*,66,17)   152.14      -30.289    
@@ -1447,7 +1447,7 @@ tab[0].*
              (*,70,17)   152.64      -30.185    
              (*, 1,18)   147.28      -30.162    
              (*, 2,18)   147.18      -30.138    
-             (*, 3,18)   147.65      -30.26     
+             (*, 3,18)   147.65      -30.260    
              (*, 4,18)   147.81      -30.263    
              (*, 5,18)   147.67      -30.191    
              (*, 6,18)   147.86      -30.174    
@@ -1465,35 +1465,35 @@ tab[0].*
              (*,18,18)   148.79      -30.123    
              (*,19,18)   148.78      -30.105    
              (*,20,18)   148.84      -30.252    
-             (*,21,18)   148.9       -30.248    
+             (*,21,18)   148.90      -30.248    
              (*,22,18)   149.03      -30.148    
              (*,23,18)   149.07      -30.188    
-             (*,24,18)   149.1       -30.173    
-             (*,25,18)   149.3       -30.22     
+             (*,24,18)   149.10      -30.173    
+             (*,25,18)   149.30      -30.220    
              (*,26,18)   149.26      -30.227    
              (*,27,18)   149.42      -30.195    
              (*,28,18)   149.57      -30.134    
              (*,29,18)   149.36      -30.183    
-             (*,30,18)   149.5       -30.149    
+             (*,30,18)   149.50      -30.149    
              (*,31,18)   149.67      -30.211    
              (*,32,18)   149.77      -30.234    
              (*,33,18)   149.78      -30.113    
              (*,34,18)   149.72      -30.188    
-             (*,35,18)   149.91      -30.24     
+             (*,35,18)   149.91      -30.240    
              (*,36,18)   150.01      -30.038    
              (*,37,18)   150.21      -30.222    
              (*,38,18)   150.28      -30.296    
              (*,39,18)   150.29      -30.104    
              (*,40,18)   150.37      -30.233    
              (*,41,18)   150.35      -30.198    
-             (*,42,18)   150.6       -30.208    
+             (*,42,18)   150.60      -30.208    
              (*,43,18)   150.49      -30.056    
              (*,44,18)   150.56      -30.116    
              (*,45,18)   150.72      -30.155    
-             (*,46,18)   150.7       -30.17     
-             (*,47,18)   150.7       -30.138    
+             (*,46,18)   150.70      -30.170    
+             (*,47,18)   150.70      -30.138    
              (*,48,18)   150.89      -30.183    
-             (*,49,18)   151.11      -30.17     
+             (*,49,18)   151.11      -30.170    
              (*,50,18)   151.04      -30.112    
              (*,51,18)   151.13      -30.186    
              (*,52,18)   151.13      -30.198    
@@ -1505,9 +1505,9 @@ tab[0].*
              (*,58,18)   151.67      -30.164    
              (*,59,18)   151.55      -30.147    
              (*,60,18)   151.78      -30.233    
-             (*,61,18)   151.9       -30.184    
+             (*,61,18)   151.90      -30.184    
              (*,62,18)   151.79      -30.212    
-             (*,63,18)   152.2       -30.244    
+             (*,63,18)   152.20      -30.244    
              (*,64,18)   152.08      -30.133    
              (*,65,18)   152.13      -30.188    
              (*,66,18)   152.24      -30.247    
@@ -1523,8 +1523,8 @@ tab[0].*
              (*, 6,19)   147.85      -30.099    
              (*, 7,19)   147.99      -30.096    
              (*, 8,19)   147.99      -30.117    
-             (*, 9,19)   147.9       -30.127    
-             (*,10,19)   148.17      -30.15     
+             (*, 9,19)   147.90      -30.127    
+             (*,10,19)   148.17      -30.150    
              (*,11,19)   148.29      -30.198    
              (*,12,19)   148.34      -30.106    
              (*,13,19)   148.28      -30.163    
@@ -1535,10 +1535,10 @@ tab[0].*
              (*,18,19)   148.68      -30.137    
              (*,19,19)   148.78      -30.128    
              (*,20,19)   148.83      -30.081    
-             (*,21,19)   149         -30.073    
+             (*,21,19)   149.00      -30.073    
              (*,22,19)   148.81      -30.114    
-             (*,23,19)   149         -30.127    
-             (*,24,19)   149.3       -30.183    
+             (*,23,19)   149.00      -30.127    
+             (*,24,19)   149.30      -30.183    
              (*,25,19)   149.21      -30.118    
              (*,26,19)   149.19      -30.125    
              (*,27,19)   149.51      -30.065    
@@ -1551,11 +1551,11 @@ tab[0].*
              (*,34,19)   149.87      -30.164    
              (*,35,19)   150.03      -30.102    
              (*,36,19)   149.99      -30.085    
-             (*,37,19)   150.3       -30.159    
+             (*,37,19)   150.30      -30.159    
              (*,38,19)   150.13      -30.055    
              (*,39,19)   150.12      -30.172    
              (*,40,19)   150.29      -30.035    
-             (*,41,19)   150.36      -30.11     
+             (*,41,19)   150.36      -30.110    
              (*,42,19)   150.41      -30.085    
              (*,43,19)   150.52      -30.007    
              (*,44,19)   150.75      -30.018    
@@ -1566,42 +1566,42 @@ tab[0].*
              (*,49,19)   150.93      -30.064    
              (*,50,19)   151.09      -30.101    
              (*,51,19)   151.14      -30.133    
-             (*,52,19)   151.2       -30.06     
+             (*,52,19)   151.20      -30.060    
              (*,53,19)   151.46      -30.197    
              (*,54,19)   151.26      -30.056    
-             (*,55,19)   151.2       -30.145    
-             (*,56,19)   151.44      -30.07     
+             (*,55,19)   151.20      -30.145    
+             (*,56,19)   151.44      -30.070    
              (*,57,19)   151.56      -30.112    
              (*,58,19)   151.69      -30.175    
              (*,59,19)   151.79      -30.081    
              (*,60,19)   151.75      -30.142    
              (*,61,19)   151.87      -30.083    
-             (*,62,19)   151.9       -30.155    
-             (*,63,19)   151.95      -30.14     
+             (*,62,19)   151.90      -30.155    
+             (*,63,19)   151.95      -30.140    
              (*,64,19)   152.05      -30.047    
              (*,65,19)   152.12      -30.138    
-             (*,66,19)   151.95      -30.08     
+             (*,66,19)   151.95      -30.080    
              (*,67,19)   152.28      -30.086    
-             (*,68,19)   152.15      -30.02     
-             (*,69,19)   152.4       -30.037    
-             (*,70,19)   152.5       -30.115    
+             (*,68,19)   152.15      -30.020    
+             (*,69,19)   152.40      -30.037    
+             (*,70,19)   152.50      -30.115    
              (*, 1,20)   147.31      -30.213    
-             (*, 2,20)   147.74      -30.02     
+             (*, 2,20)   147.74      -30.020    
              (*, 3,20)   147.64      -30.104    
              (*, 4,20)   147.76      -30.057    
              (*, 5,20)   147.52      -29.955    
              (*, 6,20)   147.86      -30.021    
              (*, 7,20)   148.01      -30.076    
-             (*, 8,20)   148.04      -29.91     
+             (*, 8,20)   148.04      -29.910    
              (*, 9,20)   148.07      -29.944    
              (*,10,20)   148.42      -30.043    
              (*,11,20)   148.27      -30.047    
              (*,12,20)   148.31      -30.009    
-             (*,13,20)   148.39      -30.07     
-             (*,14,20)   148.43      -30.08     
+             (*,13,20)   148.39      -30.070    
+             (*,14,20)   148.43      -30.080    
              (*,15,20)   148.34      -30.004    
-             (*,16,20)   148.57      -29.94     
-             (*,17,20)   148.65      -30.03     
+             (*,16,20)   148.57      -29.940    
+             (*,17,20)   148.65      -30.030    
              (*,18,20)   148.78      -30.037    
              (*,19,20)   148.83      -29.993    
              (*,20,20)   148.93      -29.991    
@@ -1611,7 +1611,7 @@ tab[0].*
              (*,24,20)   149.13      -30.066    
              (*,25,20)   149.16      -30.047    
              (*,26,20)   149.18      -30.089    
-             (*,27,20)   149.3       -30.087    
+             (*,27,20)   149.30      -30.087    
              (*,28,20)   149.51      -29.943    
              (*,29,20)   149.56      -30.063    
              (*,30,20)   149.71      -30.171    
@@ -1626,12 +1626,12 @@ tab[0].*
              (*,39,20)   150.14      -30.026    
              (*,40,20)   150.31      -30.039    
              (*,41,20)   150.25      -30.026    
-             (*,42,20)   150.55      -30.02     
+             (*,42,20)   150.55      -30.020    
              (*,43,20)   150.41      -30.042    
              (*,44,20)   150.71      -30.069    
              (*,45,20)   150.77      -30.067    
              (*,46,20)   150.71      -30.112    
-             (*,47,20)   150.81      -30.05     
+             (*,47,20)   150.81      -30.050    
              (*,48,20)   150.92      -30.021    
              (*,49,20)   150.95      -30.024    
              (*,50,20)   151.12      -30.062    
@@ -1639,13 +1639,13 @@ tab[0].*
              (*,52,20)   151.13      -30.105    
              (*,53,20)   151.27      -30.046    
              (*,54,20)   151.23      -30.026    
-             (*,55,20)   151.38      -29.97     
+             (*,55,20)   151.38      -29.970    
              (*,56,20)   151.58      -30.027    
              (*,57,20)   151.66      -29.986    
              (*,58,20)   151.68      -30.072    
              (*,59,20)   151.66      -29.952    
              (*,60,20)   151.73      -29.973    
-             (*,61,20)   151.62      -30.05     
+             (*,61,20)   151.62      -30.050    
              (*,62,20)   152.02      -30.018    
              (*,63,20)   151.95      -30.063    
              (*,64,20)   152.16      -30.075    
@@ -1656,68 +1656,68 @@ tab[0].*
              (*,69,20)   152.44      -30.077    
              (*,70,20)   152.51      -30.022    
              (*, 1,21)   147.38      -29.958    
-             (*, 2,21)   147.6       -30.023    
+             (*, 2,21)   147.60      -30.023    
              (*, 3,21)   147.54      -29.995    
              (*, 4,21)   147.84      -29.942    
              (*, 5,21)   147.82      -30.029    
              (*, 6,21)   147.88      -29.965    
              (*, 7,21)   147.86      -29.907    
              (*, 8,21)   148.08      -29.945    
-             (*, 9,21)   148         -29.875    
+             (*, 9,21)   148.00      -29.875    
              (*,10,21)   148.23      -29.907    
              (*,11,21)   148.33      -29.969    
              (*,12,21)   148.51      -29.905    
-             (*,13,21)   148.46      -29.94     
+             (*,13,21)   148.46      -29.940    
              (*,14,21)   148.38      -29.954    
-             (*,15,21)   148.43      -29.95     
+             (*,15,21)   148.43      -29.950    
              (*,16,21)   148.54      -29.922    
              (*,17,21)   148.59      -30.023    
              (*,18,21)   148.93      -29.917    
              (*,19,21)   148.89      -29.951    
-             (*,20,21)   148.87      -29.94     
-             (*,21,21)   148.97      -29.98     
+             (*,20,21)   148.87      -29.940    
+             (*,21,21)   148.97      -29.980    
              (*,22,21)   149.16      -29.923    
              (*,23,21)   149.27      -29.936    
              (*,24,21)   149.05      -29.977    
              (*,25,21)   149.22      -29.925    
-             (*,26,21)   149.22      -29.97     
+             (*,26,21)   149.22      -29.970    
              (*,27,21)   149.32      -30.004    
-             (*,28,21)   149.5       -29.964    
+             (*,28,21)   149.50      -29.964    
              (*,29,21)   149.49      -29.974    
              (*,30,21)   149.57      -29.991    
              (*,31,21)   149.91      -29.961    
              (*,32,21)   149.64      -29.889    
-             (*,33,21)   149.55      -29.95     
+             (*,33,21)   149.55      -29.950    
              (*,34,21)   149.87      -29.988    
              (*,35,21)   149.92      -30.062    
              (*,36,21)   150.04      -29.986    
              (*,37,21)   149.87      -29.898    
              (*,38,21)   150.11      -29.872    
              (*,39,21)   150.11      -29.906    
-             (*,40,21)   150.34      -30.04     
+             (*,40,21)   150.34      -30.040    
              (*,41,21)   150.39      -29.915    
-             (*,42,21)   150.65      -29.91     
+             (*,42,21)   150.65      -29.910    
              (*,43,21)   150.43      -29.976    
              (*,44,21)   150.57      -29.975    
              (*,45,21)   150.65      -29.937    
              (*,46,21)   150.64      -29.999    
-             (*,47,21)   150.8       -30.032    
+             (*,47,21)   150.80      -30.032    
              (*,48,21)   150.69      -29.867    
              (*,49,21)   150.94      -30.006    
              (*,50,21)   151.06      -29.964    
              (*,51,21)   151.23      -29.994    
              (*,52,21)   151.27      -29.858    
-             (*,53,21)   151.1       -29.96     
+             (*,53,21)   151.10      -29.960    
              (*,54,21)   151.48      -30.008    
-             (*,55,21)   151.45      -29.92     
-             (*,56,21)   151.42      -30.01     
+             (*,55,21)   151.45      -29.920    
+             (*,56,21)   151.42      -30.010    
              (*,57,21)   151.73      -29.964    
              (*,58,21)   151.48      -29.962    
              (*,59,21)   151.61      -29.963    
              (*,60,21)   151.71      -29.911    
              (*,61,21)   151.83      -29.957    
-             (*,62,21)   151.9       -30.019    
-             (*,63,21)   152.11      -29.99     
+             (*,62,21)   151.90      -30.019    
+             (*,63,21)   152.11      -29.990    
              (*,64,21)   152.17      -29.911    
              (*,65,21)   152.21      -29.957    
              (*,66,21)   152.31      -29.989    
@@ -1726,17 +1726,17 @@ tab[0].*
              (*,69,21)   152.51      -29.922    
              (*,70,21)   152.45      -30.085    
              (*, 1,22)   147.49      -29.878    
-             (*, 2,22)   147.5       -29.958    
+             (*, 2,22)   147.50      -29.958    
              (*, 3,22)   147.58      -29.807    
-             (*, 4,22)   147.8       -29.897    
+             (*, 4,22)   147.80      -29.897    
              (*, 5,22)   147.68      -29.861    
              (*, 6,22)   147.67      -29.822    
              (*, 7,22)   147.94      -29.952    
              (*, 8,22)   148.09      -29.804    
              (*, 9,22)   148.21      -29.865    
-             (*,10,22)   148.21      -29.98     
+             (*,10,22)   148.21      -29.980    
              (*,11,22)   148.09      -29.838    
-             (*,12,22)   148.47      -29.89     
+             (*,12,22)   148.47      -29.890    
              (*,13,22)   148.31      -29.863    
              (*,14,22)   148.52      -29.941    
              (*,15,22)   148.48      -29.881    
@@ -1749,7 +1749,7 @@ tab[0].*
              (*,22,22)   148.96      -29.873    
              (*,23,22)   149.03      -29.932    
              (*,24,22)   149.15      -29.901    
-             (*,25,22)   149.15      -29.91     
+             (*,25,22)   149.15      -29.910    
              (*,26,22)   149.34      -29.825    
              (*,27,22)   149.32      -29.967    
              (*,28,22)   149.45      -29.856    
@@ -1762,7 +1762,7 @@ tab[0].*
              (*,35,22)   149.96      -29.849    
              (*,36,22)   150.05      -29.919    
              (*,37,22)   150.38      -29.867    
-             (*,38,22)   150.1       -29.924    
+             (*,38,22)   150.10      -29.924    
              (*,39,22)   150.25      -29.887    
              (*,40,22)   150.27      -29.832    
              (*,41,22)   150.44      -29.892    
@@ -1781,7 +1781,7 @@ tab[0].*
              (*,54,22)   151.36      -29.974    
              (*,55,22)   151.47      -29.926    
              (*,56,22)   151.53      -29.885    
-             (*,57,22)   151.68      -29.93     
+             (*,57,22)   151.68      -29.930    
              (*,58,22)   151.61      -29.829    
              (*,59,22)   151.92      -29.871    
              (*,60,22)   151.57      -29.832    
@@ -1797,27 +1797,27 @@ tab[0].*
              (*,70,22)   152.51      -29.817    
              (*, 1,23)   147.51      -29.841    
              (*, 2,23)   147.67      -29.772    
-             (*, 3,23)   147.8       -29.82     
-             (*, 4,23)   147.6       -29.717    
-             (*, 5,23)   147.8       -29.784    
+             (*, 3,23)   147.80      -29.820    
+             (*, 4,23)   147.60      -29.717    
+             (*, 5,23)   147.80      -29.784    
              (*, 6,23)   147.88      -29.713    
              (*, 7,23)   147.73      -29.869    
              (*, 8,23)   147.88      -29.869    
              (*, 9,23)   148.27      -29.881    
-             (*,10,23)   148.22      -29.79     
+             (*,10,23)   148.22      -29.790    
              (*,11,23)   148.24      -29.884    
              (*,12,23)   148.38      -29.822    
              (*,13,23)   148.29      -29.876    
-             (*,14,23)   148.5       -29.725    
+             (*,14,23)   148.50      -29.725    
              (*,15,23)   148.64      -29.818    
              (*,16,23)   148.73      -29.852    
-             (*,17,23)   148.5       -29.779    
+             (*,17,23)   148.50      -29.779    
              (*,18,23)   148.46      -29.823    
              (*,19,23)   148.93      -29.832    
              (*,20,23)   148.98      -29.829    
-             (*,21,23)   148.9       -29.836    
-             (*,22,23)   149.09      -29.79     
-             (*,23,23)   149.3       -29.819    
+             (*,21,23)   148.90      -29.836    
+             (*,22,23)   149.09      -29.790    
+             (*,23,23)   149.30      -29.819    
              (*,24,23)   149.08      -29.687    
              (*,25,23)   149.02      -29.835    
              (*,26,23)   149.34      -29.819    
@@ -1829,9 +1829,9 @@ tab[0].*
              (*,32,23)   149.68      -29.741    
              (*,33,23)   149.81      -29.765    
              (*,34,23)   149.83      -29.876    
-             (*,35,23)   149.9       -29.838    
+             (*,35,23)   149.90      -29.838    
              (*,36,23)   150.04      -29.838    
-             (*,37,23)   150.07      -29.81     
+             (*,37,23)   150.07      -29.810    
              (*,38,23)   150.28      -29.853    
              (*,39,23)   150.22      -29.824    
              (*,40,23)   150.31      -29.713    
@@ -1840,33 +1840,33 @@ tab[0].*
              (*,43,23)   150.62      -29.859    
              (*,44,23)   150.64      -29.881    
              (*,45,23)   150.71      -29.882    
-             (*,46,23)   150.75      -29.78     
+             (*,46,23)   150.75      -29.780    
              (*,47,23)   150.81      -29.933    
              (*,48,23)   150.77      -29.784    
              (*,49,23)   151.05      -29.902    
-             (*,50,23)   150.94      -29.9      
+             (*,50,23)   150.94      -29.900    
              (*,51,23)   151.11      -29.868    
              (*,52,23)   151.26      -29.829    
-             (*,53,23)   151.48      -29.81     
-             (*,54,23)   151.6       -29.778    
+             (*,53,23)   151.48      -29.810    
+             (*,54,23)   151.60      -29.778    
              (*,55,23)   151.43      -29.803    
              (*,56,23)   151.44      -29.759    
              (*,57,23)   151.36      -29.742    
-             (*,58,23)   151.65      -29.77     
-             (*,59,23)   151.6       -29.852    
+             (*,58,23)   151.65      -29.770    
+             (*,59,23)   151.60      -29.852    
              (*,60,23)   151.77      -29.856    
              (*,61,23)   151.87      -29.908    
              (*,62,23)   151.77      -29.816    
              (*,63,23)   152.03      -29.829    
              (*,64,23)   152.18      -29.874    
              (*,65,23)   152.08      -29.865    
-             (*,66,23)   152.3       -29.795    
+             (*,66,23)   152.30      -29.795    
              (*,67,23)   152.26      -29.766    
-             (*,68,23)   152.37      -29.78     
+             (*,68,23)   152.37      -29.780    
              (*,69,23)   152.38      -29.851    
              (*,70,23)   152.41      -29.832    
              (*, 1,24)   147.47      -29.771    
-             (*, 2,24)   147.6       -29.773    
+             (*, 2,24)   147.60      -29.773    
              (*, 3,24)   147.77      -29.872    
              (*, 4,24)   147.74      -29.776    
              (*, 5,24)   147.73      -29.701    
@@ -1892,42 +1892,42 @@ tab[0].*
              (*,25,24)   149.31      -29.686    
              (*,26,24)   149.46      -29.765    
              (*,27,24)   149.53      -29.791    
-             (*,28,24)   149.3       -29.698    
+             (*,28,24)   149.30      -29.698    
              (*,29,24)   149.31      -29.807    
              (*,30,24)   149.67      -29.837    
-             (*,31,24)   149.8       -29.794    
+             (*,31,24)   149.80      -29.794    
              (*,32,24)   149.63      -29.713    
              (*,33,24)   149.72      -29.742    
              (*,34,24)   149.79      -29.763    
-             (*,35,24)   150         -29.739    
-             (*,36,24)   150.08      -29.7      
+             (*,35,24)   150.00      -29.739    
+             (*,36,24)   150.08      -29.700    
              (*,37,24)   150.29      -29.773    
-             (*,38,24)   150.29      -29.82     
+             (*,38,24)   150.29      -29.820    
              (*,39,24)   150.25      -29.687    
              (*,40,24)   150.52      -29.747    
              (*,41,24)   150.36      -29.709    
-             (*,42,24)   150.3       -29.806    
-             (*,43,24)   150.6       -29.839    
+             (*,42,24)   150.30      -29.806    
+             (*,43,24)   150.60      -29.839    
              (*,44,24)   150.49      -29.677    
              (*,45,24)   150.55      -29.719    
              (*,46,24)   150.68      -29.725    
              (*,47,24)   150.71      -29.748    
              (*,48,24)   150.78      -29.786    
-             (*,49,24)   151.1       -29.758    
+             (*,49,24)   151.10      -29.758    
              (*,50,24)   150.97      -29.696    
              (*,51,24)   151.07      -29.723    
              (*,52,24)   151.17      -29.747    
              (*,53,24)   151.35      -29.744    
              (*,54,24)   151.36      -29.812    
              (*,55,24)   151.38      -29.682    
-             (*,56,24)   151.5       -29.815    
+             (*,56,24)   151.50      -29.815    
              (*,57,24)   151.63      -29.739    
              (*,58,24)   151.49      -29.787    
              (*,59,24)   151.92      -29.781    
              (*,60,24)   151.81      -29.798    
              (*,61,24)   151.98      -29.753    
-             (*,62,24)   151.9       -29.792    
-             (*,63,24)   152         -29.697    
+             (*,62,24)   151.90      -29.792    
+             (*,63,24)   152.00      -29.697    
              (*,64,24)   152.06      -29.785    
              (*,65,24)   152.06      -29.833    
              (*,66,24)   152.22      -29.803    
@@ -1943,16 +1943,16 @@ tab[0].*
              (*, 6,25)   147.93      -29.634    
              (*, 7,25)   147.83      -29.631    
              (*, 8,25)   148.01      -29.611    
-             (*, 9,25)   148.08      -29.71     
+             (*, 9,25)   148.08      -29.710    
              (*,10,25)   148.14      -29.676    
              (*,11,25)   148.25      -29.683    
              (*,12,25)   148.43      -29.682    
              (*,13,25)   148.57      -29.745    
-             (*,14,25)   148.4       -29.625    
+             (*,14,25)   148.40      -29.625    
              (*,15,25)   148.77      -29.647    
              (*,16,25)   148.58      -29.697    
              (*,17,25)   148.82      -29.767    
-             (*,18,25)   148.6       -29.699    
+             (*,18,25)   148.60      -29.699    
              (*,19,25)   148.87      -29.709    
              (*,20,25)   148.96      -29.767    
              (*,21,25)   148.93      -29.724    
@@ -1976,14 +1976,14 @@ tab[0].*
              (*,39,25)   150.33      -29.652    
              (*,40,25)   150.43      -29.671    
              (*,41,25)   150.45      -29.659    
-             (*,42,25)   150.5       -29.695    
+             (*,42,25)   150.50      -29.695    
              (*,43,25)   150.68      -29.681    
              (*,44,25)   150.49      -29.595    
-             (*,45,25)   150.76      -29.67     
+             (*,45,25)   150.76      -29.670    
              (*,46,25)   150.81      -29.676    
-             (*,47,25)   150.94      -29.69     
+             (*,47,25)   150.94      -29.690    
              (*,48,25)   150.98      -29.588    
-             (*,49,25)   151.1       -29.647    
+             (*,49,25)   151.10      -29.647    
              (*,50,25)   151.22      -29.615    
              (*,51,25)   151.22      -29.643    
              (*,52,25)   151.16      -29.704    
@@ -1992,13 +1992,13 @@ tab[0].*
              (*,55,25)   151.45      -29.659    
              (*,56,25)   151.63      -29.581    
              (*,57,25)   151.39      -29.677    
-             (*,58,25)   151.47      -29.7      
-             (*,59,25)   151.6       -29.744    
+             (*,58,25)   151.47      -29.700    
+             (*,59,25)   151.60      -29.744    
              (*,60,25)   151.77      -29.715    
              (*,61,25)   151.87      -29.664    
              (*,62,25)   151.77      -29.683    
-             (*,63,25)   152.03      -29.66     
-             (*,64,25)   152         -29.622    
+             (*,63,25)   152.03      -29.660    
+             (*,64,25)   152.00      -29.622    
              (*,65,25)   152.08      -29.636    
              (*,66,25)   152.12      -29.726    
              (*,67,25)   152.31      -29.605    
@@ -2011,7 +2011,7 @@ tab[0].*
              (*, 4,26)   147.87      -29.644    
              (*, 5,26)   147.68      -29.542    
              (*, 6,26)   147.82      -29.536    
-             (*, 7,26)   147.8       -29.542    
+             (*, 7,26)   147.80      -29.542    
              (*, 8,26)   147.97      -29.564    
              (*, 9,26)   148.27      -29.592    
              (*,10,26)   148.24      -29.583    
@@ -2020,23 +2020,23 @@ tab[0].*
              (*,13,26)   148.52      -29.576    
              (*,14,26)   148.54      -29.499    
              (*,15,26)   148.54      -29.516    
-             (*,16,26)   148.6       -29.575    
-             (*,17,26)   148.7       -29.643    
+             (*,16,26)   148.60      -29.575    
+             (*,17,26)   148.70      -29.643    
              (*,18,26)   148.92      -29.617    
              (*,19,26)   148.72      -29.617    
-             (*,20,26)   148.7       -29.608    
+             (*,20,26)   148.70      -29.608    
              (*,21,26)   148.91      -29.653    
              (*,22,26)   149.17      -29.564    
              (*,23,26)   149.15      -29.537    
-             (*,24,26)   149.3       -29.662    
+             (*,24,26)   149.30      -29.662    
              (*,25,26)   149.24      -29.647    
-             (*,26,26)   149.15      -29.57     
+             (*,26,26)   149.15      -29.570    
              (*,27,26)   149.59      -29.537    
-             (*,28,26)   149.52      -29.59     
+             (*,28,26)   149.52      -29.590    
              (*,29,26)   149.48      -29.627    
-             (*,30,26)   149.5       -29.632    
+             (*,30,26)   149.50      -29.632    
              (*,31,26)   149.87      -29.646    
-             (*,32,26)   149.8       -29.527    
+             (*,32,26)   149.80      -29.527    
              (*,33,26)   149.79      -29.614    
              (*,34,26)   149.94      -29.606    
              (*,35,26)   149.98      -29.572    
@@ -2045,17 +2045,17 @@ tab[0].*
              (*,38,26)   150.14      -29.609    
              (*,39,26)   150.26      -29.647    
              (*,40,26)   150.32      -29.513    
-             (*,41,26)   150         -29.557    
+             (*,41,26)   150.00      -29.557    
              (*,42,26)   150.47      -29.545    
              (*,43,26)   150.48      -29.619    
              (*,44,26)   150.62      -29.539    
              (*,45,26)   150.77      -29.553    
-             (*,46,26)   150.6       -29.525    
+             (*,46,26)   150.60      -29.525    
              (*,47,26)   150.91      -29.656    
-             (*,48,26)   150.9       -29.674    
+             (*,48,26)   150.90      -29.674    
              (*,49,26)   150.89      -29.663    
              (*,50,26)   151.05      -29.654    
-             (*,51,26)   151.31      -29.6      
+             (*,51,26)   151.31      -29.600    
              (*,52,26)   151.27      -29.691    
              (*,53,26)   151.12      -29.661    
              (*,54,26)   151.41      -29.595    
@@ -2069,10 +2069,10 @@ tab[0].*
              (*,62,26)   151.79      -29.586    
              (*,63,26)   151.94      -29.565    
              (*,64,26)   152.08      -29.627    
-             (*,65,26)   152         -29.618    
+             (*,65,26)   152.00      -29.618    
              (*,66,26)   152.03      -29.569    
-             (*,67,26)   152.3       -29.586    
-             (*,68,26)   152.1       -29.636    
+             (*,67,26)   152.30      -29.586    
+             (*,68,26)   152.10      -29.636    
              (*,69,26)   152.38      -29.619    
              (*,70,26)   152.67      -29.592    
              (*, 1,27)   147.55      -29.626    
@@ -2083,14 +2083,14 @@ tab[0].*
              (*, 6,27)   147.91      -29.592    
              (*, 7,27)   147.92      -29.564    
              (*, 8,27)   147.97      -29.483    
-             (*, 9,27)   148.1       -29.527    
-             (*,10,27)   148.19      -29.57     
+             (*, 9,27)   148.10      -29.527    
+             (*,10,27)   148.19      -29.570    
              (*,11,27)   148.36      -29.464    
              (*,12,27)   148.25      -29.555    
              (*,13,27)   148.39      -29.535    
              (*,14,27)   148.41      -29.545    
              (*,15,27)   148.75      -29.498    
-             (*,16,27)   148.66      -29.58     
+             (*,16,27)   148.66      -29.580    
              (*,17,27)   148.74      -29.447    
              (*,18,27)   148.67      -29.529    
              (*,19,27)   148.73      -29.535    
@@ -2107,14 +2107,14 @@ tab[0].*
              (*,30,27)   149.43      -29.558    
              (*,31,27)   149.64      -29.604    
              (*,32,27)   149.64      -29.441    
-             (*,33,27)   149.83      -29.51     
-             (*,34,27)   150         -29.337    
+             (*,33,27)   149.83      -29.510    
+             (*,34,27)   150.00      -29.337    
              (*,35,27)   149.85      -29.565    
              (*,36,27)   150.04      -29.506    
              (*,37,27)   149.91      -29.481    
              (*,38,27)   150.31      -29.525    
              (*,39,27)   150.29      -29.483    
-             (*,40,27)   150.4       -29.517    
+             (*,40,27)   150.40      -29.517    
              (*,41,27)   150.28      -29.526    
              (*,42,27)   150.46      -29.524    
              (*,43,27)   150.52      -29.569    
@@ -2128,25 +2128,25 @@ tab[0].*
              (*,51,27)   151.21      -29.446    
              (*,52,27)   151.13      -29.464    
              (*,53,27)   151.29      -29.555    
-             (*,54,27)   151.3       -29.492    
-             (*,55,27)   151.4       -29.525    
+             (*,54,27)   151.30      -29.492    
+             (*,55,27)   151.40      -29.525    
              (*,56,27)   151.32      -29.622    
              (*,57,27)   151.49      -29.626    
              (*,58,27)   151.81      -29.542    
              (*,59,27)   151.65      -29.543    
              (*,60,27)   151.87      -29.584    
              (*,61,27)   151.74      -29.591    
-             (*,62,27)   151.84      -29.46     
+             (*,62,27)   151.84      -29.460    
              (*,63,27)   151.94      -29.557    
              (*,64,27)   151.96      -29.463    
              (*,65,27)   152.04      -29.577    
              (*,66,27)   152.36      -29.566    
              (*,67,27)   152.29      -29.547    
              (*,68,27)   152.36      -29.529    
-             (*,69,27)   152.5       -29.522    
+             (*,69,27)   152.50      -29.522    
              (*,70,27)   152.53      -29.592    
              (*, 1,28)   147.51      -29.455    
-             (*, 2,28)   147.4       -29.469    
+             (*, 2,28)   147.40      -29.469    
              (*, 3,28)   147.51      -29.425    
              (*, 4,28)   147.79      -29.464    
              (*, 5,28)   147.84      -29.464    
@@ -2159,21 +2159,21 @@ tab[0].*
              (*,12,28)   148.17      -29.412    
              (*,13,28)   148.51      -29.469    
              (*,14,28)   148.37      -29.453    
-             (*,15,28)   148.3       -29.519    
+             (*,15,28)   148.30      -29.519    
              (*,16,28)   148.58      -29.496    
              (*,17,28)   148.75      -29.461    
              (*,18,28)   148.85      -29.452    
              (*,19,28)   148.73      -29.449    
              (*,20,28)   148.86      -29.509    
              (*,21,28)   148.96      -29.523    
-             (*,22,28)   149.17      -29.42     
-             (*,23,28)   149.05      -29.4      
+             (*,22,28)   149.17      -29.420    
+             (*,23,28)   149.05      -29.400    
              (*,24,28)   149.12      -29.468    
              (*,25,28)   149.12      -29.455    
              (*,26,28)   149.43      -29.505    
              (*,27,28)   149.43      -29.507    
              (*,28,28)   149.24      -29.516    
-             (*,29,28)   149.48      -29.42     
+             (*,29,28)   149.48      -29.420    
              (*,30,28)   149.52      -29.441    
              (*,31,28)   149.83      -29.388    
              (*,32,28)   149.79      -29.423    
@@ -2188,10 +2188,10 @@ tab[0].*
              (*,41,28)   150.29      -29.502    
              (*,42,28)   150.36      -29.483    
              (*,43,28)   150.48      -29.449    
-             (*,44,28)   150.5       -29.477    
+             (*,44,28)   150.50      -29.477    
              (*,45,28)   150.64      -29.494    
              (*,46,28)   150.62      -29.447    
-             (*,47,28)   150.85      -29.42     
+             (*,47,28)   150.85      -29.420    
              (*,48,28)   150.83      -29.464    
              (*,49,28)   150.89      -29.487    
              (*,50,28)   150.98      -29.472    
@@ -2201,25 +2201,25 @@ tab[0].*
              (*,54,28)   151.36      -29.473    
              (*,55,28)   151.48      -29.441    
              (*,56,28)   151.72      -29.404    
-             (*,57,28)   151.3       -29.423    
-             (*,58,28)   151.6       -29.473    
-             (*,59,28)   151.6       -29.431    
-             (*,60,28)   151.9       -29.425    
-             (*,61,28)   151.8       -29.472    
+             (*,57,28)   151.30      -29.423    
+             (*,58,28)   151.60      -29.473    
+             (*,59,28)   151.60      -29.431    
+             (*,60,28)   151.90      -29.425    
+             (*,61,28)   151.80      -29.472    
              (*,62,28)   152.05      -29.482    
-             (*,63,28)   151.8       -29.482    
+             (*,63,28)   151.80      -29.482    
              (*,64,28)   152.22      -29.427    
              (*,65,28)   152.07      -29.526    
-             (*,66,28)   152.37      -29.4      
+             (*,66,28)   152.37      -29.400    
              (*,67,28)   152.33      -29.347    
              (*,68,28)   152.24      -29.389    
              (*,69,28)   152.42      -29.414    
              (*,70,28)   152.39      -29.523    
              (*, 1,29)   147.67      -29.379    
-             (*, 2,29)   147.73      -29.38     
+             (*, 2,29)   147.73      -29.380    
              (*, 3,29)   147.54      -29.306    
              (*, 4,29)   147.84      -29.454    
-             (*, 5,29)   147.7       -29.444    
+             (*, 5,29)   147.70      -29.444    
              (*, 6,29)   147.81      -29.325    
              (*, 7,29)   148.04      -29.364    
              (*, 8,29)   147.99      -29.397    
@@ -2227,9 +2227,9 @@ tab[0].*
              (*,10,29)   148.11      -29.263    
              (*,11,29)   148.18      -29.345    
              (*,12,29)   148.32      -29.382    
-             (*,13,29)   148.33      -29.38     
-             (*,14,29)   148.29      -29.44     
-             (*,15,29)   148.49      -29.36     
+             (*,13,29)   148.33      -29.380    
+             (*,14,29)   148.29      -29.440    
+             (*,15,29)   148.49      -29.360    
              (*,16,29)   148.65      -29.463    
              (*,17,29)   148.57      -29.336    
              (*,18,29)   148.59      -29.356    
@@ -2253,7 +2253,7 @@ tab[0].*
              (*,36,29)   149.97      -29.367    
              (*,37,29)   150.18      -29.317    
              (*,38,29)   150.21      -29.375    
-             (*,39,29)   150.3       -29.413    
+             (*,39,29)   150.30      -29.413    
              (*,40,29)   150.16      -29.362    
              (*,41,29)   150.52      -29.334    
              (*,42,29)   150.42      -29.354    
@@ -2263,41 +2263,41 @@ tab[0].*
              (*,46,29)   150.79      -29.388    
              (*,47,29)   150.88      -29.436    
              (*,48,29)   150.81      -29.446    
-             (*,49,29)   151.1       -29.428    
+             (*,49,29)   151.10      -29.428    
              (*,50,29)   150.81      -29.376    
-             (*,51,29)   151.3       -29.279    
+             (*,51,29)   151.30      -29.279    
              (*,52,29)   151.25      -29.324    
              (*,53,29)   151.28      -29.441    
              (*,54,29)   151.37      -29.418    
              (*,55,29)   151.61      -29.241    
              (*,56,29)   151.55      -29.345    
-             (*,57,29)   151.52      -29.47     
+             (*,57,29)   151.52      -29.470    
              (*,58,29)   151.35      -29.233    
              (*,59,29)   151.78      -29.365    
              (*,60,29)   151.77      -29.356    
              (*,61,29)   151.87      -29.406    
-             (*,62,29)   152.2       -29.512    
-             (*,63,29)   152.12      -29.28     
-             (*,64,29)   152.01      -29.38     
+             (*,62,29)   152.20      -29.512    
+             (*,63,29)   152.12      -29.280    
+             (*,64,29)   152.01      -29.380    
              (*,65,29)   152.24      -29.411    
              (*,66,29)   152.22      -29.409    
              (*,67,29)   152.13      -29.309    
-             (*,68,29)   152.3       -29.419    
+             (*,68,29)   152.30      -29.419    
              (*,69,29)   152.44      -29.347    
              (*,70,29)   152.65      -29.359    
              (*, 1,30)   147.54      -29.354    
              (*, 2,30)   147.51      -29.205    
              (*, 3,30)   147.73      -29.297    
-             (*, 4,30)   147.71      -29.3      
-             (*, 5,30)   147.73      -29.32     
+             (*, 4,30)   147.71      -29.300    
+             (*, 5,30)   147.73      -29.320    
              (*, 6,30)   147.96      -29.284    
              (*, 7,30)   147.93      -29.367    
-             (*, 8,30)   147.99      -29.15     
+             (*, 8,30)   147.99      -29.150    
              (*, 9,30)   148.13      -29.299    
              (*,10,30)   148.35      -29.277    
              (*,11,30)   148.27      -29.274    
              (*,12,30)   148.39      -29.329    
-             (*,13,30)   148.5       -29.255    
+             (*,13,30)   148.50      -29.255    
              (*,14,30)   148.38      -29.298    
              (*,15,30)   148.56      -29.344    
              (*,16,30)   148.61      -29.353    
@@ -2314,10 +2314,10 @@ tab[0].*
              (*,27,30)   149.32      -29.379    
              (*,28,30)   149.42      -29.365    
              (*,29,30)   149.57      -29.311    
-             (*,30,30)   149.6       -29.346    
+             (*,30,30)   149.60      -29.346    
              (*,31,30)   149.82      -29.308    
              (*,32,30)   149.66      -29.415    
-             (*,33,30)   149.8       -29.348    
+             (*,33,30)   149.80      -29.348    
              (*,34,30)   149.76      -29.327    
              (*,35,30)   149.98      -29.302    
              (*,36,30)   149.99      -29.325    
@@ -2330,7 +2330,7 @@ tab[0].*
              (*,43,30)   150.51      -29.366    
              (*,44,30)   150.47      -29.272    
              (*,45,30)   150.66      -29.331    
-             (*,46,30)   150.81      -29.25     
+             (*,46,30)   150.81      -29.250    
              (*,47,30)   150.91      -29.273    
              (*,48,30)   151.16      -29.343    
              (*,49,30)   150.89      -29.273    
@@ -2349,16 +2349,16 @@ tab[0].*
              (*,62,30)   152.08      -29.296    
              (*,63,30)   151.96      -29.351    
              (*,64,30)   152.02      -29.265    
-             (*,65,30)   152.1       -29.25     
+             (*,65,30)   152.10      -29.250    
              (*,66,30)   152.18      -29.329    
              (*,67,30)   152.17      -29.274    
-             (*,68,30)   152.3       -29.371    
+             (*,68,30)   152.30      -29.371    
              (*,69,30)   152.41      -29.323    
              (*,70,30)   152.47      -29.338    
              (*, 1,31)   147.44      -29.348    
-             (*, 2,31)   147.3       -29.201    
-             (*, 3,31)   147.69      -29.29     
-             (*, 4,31)   147.83      -29.21     
+             (*, 2,31)   147.30      -29.201    
+             (*, 3,31)   147.69      -29.290    
+             (*, 4,31)   147.83      -29.210    
              (*, 5,31)   147.81      -29.217    
              (*, 6,31)   147.88      -29.288    
              (*, 7,31)   148.13      -29.257    
@@ -2381,14 +2381,14 @@ tab[0].*
              (*,24,31)   149.17      -29.284    
              (*,25,31)   149.09      -29.231    
              (*,26,31)   149.27      -29.188    
-             (*,27,31)   149.34      -29.19     
+             (*,27,31)   149.34      -29.190    
              (*,28,31)   149.62      -29.221    
-             (*,29,31)   149.4       -29.238    
+             (*,29,31)   149.40      -29.238    
              (*,30,31)   149.68      -29.225    
              (*,31,31)   149.96      -29.212    
              (*,32,31)   149.76      -29.238    
              (*,33,31)   149.69      -29.209    
-             (*,34,31)   149.76      -29.24     
+             (*,34,31)   149.76      -29.240    
              (*,35,31)   149.83      -29.154    
              (*,36,31)   150.25      -29.227    
              (*,37,31)   150.17      -29.227    
@@ -2402,19 +2402,19 @@ tab[0].*
              (*,45,31)   150.73      -29.219    
              (*,46,31)   150.69      -29.176    
              (*,47,31)   150.79      -29.268    
-             (*,48,31)   150.82      -29.28     
+             (*,48,31)   150.82      -29.280    
              (*,49,31)   150.93      -29.246    
-             (*,50,31)   151.05      -29.21     
+             (*,50,31)   151.05      -29.210    
              (*,51,31)   151.14      -29.292    
              (*,52,31)   150.94      -29.141    
-             (*,53,31)   151.38      -29.2      
-             (*,54,31)   151.17      -29.18     
+             (*,53,31)   151.38      -29.200    
+             (*,54,31)   151.17      -29.180    
              (*,55,31)   151.31      -29.178    
-             (*,56,31)   151.5       -29.186    
+             (*,56,31)   151.50      -29.186    
              (*,57,31)   151.44      -29.284    
-             (*,58,31)   151.76      -29.23     
-             (*,59,31)   151.6       -29.247    
-             (*,60,31)   151.9       -29.214    
+             (*,58,31)   151.76      -29.230    
+             (*,59,31)   151.60      -29.247    
+             (*,60,31)   151.90      -29.214    
              (*,61,31)   151.75      -29.288    
              (*,62,31)   152.12      -29.154    
              (*,63,31)   151.96      -29.304    
@@ -2422,22 +2422,22 @@ tab[0].*
              (*,65,31)   152.27      -29.256    
              (*,66,31)   152.43      -29.223    
              (*,67,31)   152.26      -29.266    
-             (*,68,31)   152.41      -29.2      
-             (*,69,31)   152.5       -29.252    
+             (*,68,31)   152.41      -29.200    
+             (*,69,31)   152.50      -29.252    
              (*,70,31)   152.58      -29.376    
              (*, 1,32)   147.51      -29.103    
              (*, 2,32)   147.53      -29.177    
              (*, 3,32)   147.77      -29.133    
              (*, 4,32)   147.86      -29.101    
-             (*, 5,32)   147.67      -29.13     
+             (*, 5,32)   147.67      -29.130    
              (*, 6,32)   147.92      -29.121    
-             (*, 7,32)   147.96      -29.24     
+             (*, 7,32)   147.96      -29.240    
              (*, 8,32)   147.99      -29.117    
-             (*, 9,32)   148.14      -29.24     
+             (*, 9,32)   148.14      -29.240    
              (*,10,32)   148.28      -29.184    
              (*,11,32)   148.19      -29.119    
              (*,12,32)   148.22      -29.198    
-             (*,13,32)   148.35      -29.14     
+             (*,13,32)   148.35      -29.140    
              (*,14,32)   148.46      -29.143    
              (*,15,32)   148.62      -29.107    
              (*,16,32)   148.65      -29.153    
@@ -2447,15 +2447,15 @@ tab[0].*
              (*,20,32)   148.85      -29.208    
              (*,21,32)   148.94      -29.189    
              (*,22,32)   149.13      -29.089    
-             (*,23,32)   149.2       -29.117    
+             (*,23,32)   149.20      -29.117    
              (*,24,32)   149.06      -29.117    
              (*,25,32)   149.23      -29.163    
-             (*,26,32)   149.3       -29.183    
+             (*,26,32)   149.30      -29.183    
              (*,27,32)   149.36      -29.171    
              (*,28,32)   149.38      -29.165    
-             (*,29,32)   149.65      -29.24     
-             (*,30,32)   149.72      -29.12     
-             (*,31,32)   149.54      -29.09     
+             (*,29,32)   149.65      -29.240    
+             (*,30,32)   149.72      -29.120    
+             (*,31,32)   149.54      -29.090    
              (*,32,32)   150.02      -29.231    
              (*,33,32)   149.69      -29.147    
              (*,34,32)   149.94      -29.226    
@@ -2464,32 +2464,32 @@ tab[0].*
              (*,37,32)   150.16      -29.112    
              (*,38,32)   150.12      -29.128    
              (*,39,32)   150.23      -29.134    
-             (*,40,32)   150.3       -29.161    
+             (*,40,32)   150.30      -29.161    
              (*,41,32)   150.51      -29.161    
-             (*,42,32)   150.27      -29.07     
+             (*,42,32)   150.27      -29.070    
              (*,43,32)   150.61      -29.208    
-             (*,44,32)   150.6       -29.181    
+             (*,44,32)   150.60      -29.181    
              (*,45,32)   150.64      -29.166    
              (*,46,32)   150.91      -29.164    
-             (*,47,32)   150.74      -29.12     
+             (*,47,32)   150.74      -29.120    
              (*,48,32)   150.96      -29.189    
-             (*,49,32)   150.96      -29.15     
+             (*,49,32)   150.96      -29.150    
              (*,50,32)   150.86      -29.203    
-             (*,51,32)   151         -29.165    
+             (*,51,32)   151.00      -29.165    
              (*,52,32)   151.24      -29.207    
-             (*,53,32)   151.23      -29.17     
+             (*,53,32)   151.23      -29.170    
              (*,54,32)   151.33      -29.226    
              (*,55,32)   151.47      -29.012    
              (*,56,32)   151.47      -29.149    
              (*,57,32)   151.48      -29.246    
-             (*,58,32)   151.5       -29.137    
+             (*,58,32)   151.50      -29.137    
              (*,59,32)   151.94      -29.182    
              (*,60,32)   151.68      -29.255    
              (*,61,32)   151.85      -29.168    
              (*,62,32)   151.73      -29.183    
              (*,63,32)   152.06      -29.163    
              (*,64,32)   152.07      -29.165    
-             (*,65,32)   152.23      -29.17     
+             (*,65,32)   152.23      -29.170    
              (*,66,32)   152.15      -29.109    
              (*,67,32)   152.25      -29.205    
              (*,68,32)   152.23      -29.103    
@@ -2497,37 +2497,37 @@ tab[0].*
              (*,70,32)   152.44      -29.217    
              (*, 1,33)   147.41      -29.112    
              (*, 2,33)   147.62      -29.066    
-             (*, 3,33)   147.53      -29.13     
+             (*, 3,33)   147.53      -29.130    
              (*, 4,33)   147.88      -29.072    
              (*, 5,33)   147.86      -29.058    
-             (*, 6,33)   147.7       -29.122    
+             (*, 6,33)   147.70      -29.122    
              (*, 7,33)   148.03      -29.101    
              (*, 8,33)   148.08      -29.085    
              (*, 9,33)   148.12      -29.088    
              (*,10,33)   148.21      -29.049    
-             (*,11,33)   148.15      -29.11     
+             (*,11,33)   148.15      -29.110    
              (*,12,33)   148.37      -29.083    
-             (*,13,33)   148.3       -29.173    
+             (*,13,33)   148.30      -29.173    
              (*,14,33)   148.41      -29.107    
              (*,15,33)   148.64      -29.126    
-             (*,16,33)   148.6       -29.045    
+             (*,16,33)   148.60      -29.045    
              (*,17,33)   148.62      -29.028    
              (*,18,33)   148.67      -29.086    
-             (*,19,33)   148.8       -29.098    
+             (*,19,33)   148.80      -29.098    
              (*,20,33)   148.88      -29.114    
              (*,21,33)   148.88      -29.055    
              (*,22,33)   149.06      -29.078    
              (*,23,33)   148.88      -29.096    
-             (*,24,33)   149.3       -28.991    
+             (*,24,33)   149.30      -28.991    
              (*,25,33)   149.19      -28.978    
              (*,26,33)   149.46      -29.068    
              (*,27,33)   149.42      -29.134    
              (*,28,33)   149.76      -29.087    
-             (*,29,33)   149.5       -29.127    
+             (*,29,33)   149.50      -29.127    
              (*,30,33)   149.47      -29.095    
              (*,31,33)   149.67      -29.161    
-             (*,32,33)   149.96      -29.12     
-             (*,33,33)   149.71      -29        
+             (*,32,33)   149.96      -29.120    
+             (*,33,33)   149.71      -29.000    
              (*,34,33)   149.93      -29.092    
              (*,35,33)   150.14      -29.066    
              (*,36,33)   150.23      -29.167    
@@ -2543,7 +2543,7 @@ tab[0].*
              (*,46,33)   150.72      -29.091    
              (*,47,33)   150.74      -29.065    
              (*,48,33)   151.16      -29.076    
-             (*,49,33)   150.9       -29.174    
+             (*,49,33)   150.90      -29.174    
              (*,50,33)   151.01      -28.963    
              (*,51,33)   151.05      -29.123    
              (*,52,33)   151.23      -29.042    
@@ -2566,8 +2566,8 @@ tab[0].*
              (*,69,33)   152.24      -29.142    
              (*,70,33)   152.56      -29.059    
              (*, 1,34)   147.48      -28.936    
-             (*, 2,34)   147.57      -28.98     
-             (*, 3,34)   147.6       -28.902    
+             (*, 2,34)   147.57      -28.980    
+             (*, 3,34)   147.60      -28.902    
              (*, 4,34)   147.93      -29.067    
              (*, 5,34)   147.66      -29.049    
              (*, 6,34)   147.87      -29.021    
@@ -2586,24 +2586,24 @@ tab[0].*
              (*,19,34)   148.76      -28.932    
              (*,20,34)   148.89      -29.073    
              (*,21,34)   149.08      -28.934    
-             (*,22,34)   149.05      -29.05     
-             (*,23,34)   149         -29.011    
+             (*,22,34)   149.05      -29.050    
+             (*,23,34)   149.00      -29.011    
              (*,24,34)   149.41      -28.983    
              (*,25,34)   149.35      -28.909    
              (*,26,34)   149.42      -28.986    
              (*,27,34)   149.29      -29.065    
              (*,28,34)   149.41      -28.926    
-             (*,29,34)   149.56      -29.04     
+             (*,29,34)   149.56      -29.040    
              (*,30,34)   149.56      -28.999    
              (*,31,34)   149.62      -29.093    
              (*,32,34)   149.88      -29.023    
              (*,33,34)   149.83      -28.989    
              (*,34,34)   149.94      -29.057    
-             (*,35,34)   149.98      -29        
+             (*,35,34)   149.98      -29.000    
              (*,36,34)   150.15      -29.067    
              (*,37,34)   149.93      -29.085    
              (*,38,34)   150.19      -29.042    
-             (*,39,34)   150.09      -28.95     
+             (*,39,34)   150.09      -28.950    
              (*,40,34)   150.45      -29.011    
              (*,41,34)   150.43      -28.993    
              (*,42,34)   150.51      -28.985    
@@ -2613,11 +2613,11 @@ tab[0].*
              (*,46,34)   150.56      -29.024    
              (*,47,34)   150.65      -29.033    
              (*,48,34)   150.81      -29.008    
-             (*,49,34)   150.9       -29.023    
+             (*,49,34)   150.90      -29.023    
              (*,50,34)   150.91      -29.015    
              (*,51,34)   151.24      -28.951    
              (*,52,34)   151.06      -29.151    
-             (*,53,34)   151.34      -29.05     
+             (*,53,34)   151.34      -29.050    
              (*,54,34)   151.18      -29.028    
              (*,55,34)   151.32      -29.132    
              (*,56,34)   151.59      -28.973    
@@ -2636,9 +2636,9 @@ tab[0].*
              (*,69,34)   152.51      -29.079    
              (*,70,34)   152.42      -29.004    
              (*, 1,35)   147.72      -28.939    
-             (*, 2,35)   147.58      -28.91     
+             (*, 2,35)   147.58      -28.910    
              (*, 3,35)   147.66      -28.955    
-             (*, 4,35)   147.7       -28.916    
+             (*, 4,35)   147.70      -28.916    
              (*, 5,35)   147.77      -28.984    
              (*, 6,35)   147.99      -28.896    
              (*, 7,35)   147.85      -28.899    
@@ -2655,9 +2655,9 @@ tab[0].*
              (*,18,35)   148.82      -29.008    
              (*,19,35)   148.51      -28.907    
              (*,20,35)   149.03      -28.932    
-             (*,21,35)   148.95      -29.03     
+             (*,21,35)   148.95      -29.030    
              (*,22,35)   148.96      -28.915    
-             (*,23,35)   149         -28.902    
+             (*,23,35)   149.00      -28.902    
              (*,24,35)   149.16      -28.926    
              (*,25,35)   149.17      -28.906    
              (*,26,35)   149.26      -28.909    
@@ -2668,40 +2668,40 @@ tab[0].*
              (*,31,35)   149.72      -28.957    
              (*,32,35)   149.76      -28.917    
              (*,33,35)   149.77      -28.927    
-             (*,34,35)   150.15      -28.99     
+             (*,34,35)   150.15      -28.990    
              (*,35,35)   149.96      -28.959    
              (*,36,35)   149.85      -28.903    
-             (*,37,35)   150         -28.903    
+             (*,37,35)   150.00      -28.903    
              (*,38,35)   150.31      -28.887    
              (*,39,35)   150.18      -28.955    
              (*,40,35)   150.31      -29.031    
              (*,41,35)   150.43      -28.919    
              (*,42,35)   150.48      -28.918    
              (*,43,35)   150.51      -28.888    
-             (*,44,35)   150.6       -28.948    
+             (*,44,35)   150.60      -28.948    
              (*,45,35)   150.63      -28.779    
              (*,46,35)   150.78      -28.913    
-             (*,47,35)   150.9       -28.906    
+             (*,47,35)   150.90      -28.906    
              (*,48,35)   150.72      -28.972    
              (*,49,35)   151.06      -28.903    
              (*,50,35)   151.16      -28.898    
-             (*,51,35)   151.14      -28.91     
+             (*,51,35)   151.14      -28.910    
              (*,52,35)   151.27      -29.012    
              (*,53,35)   151.26      -28.903    
              (*,54,35)   151.44      -28.845    
-             (*,55,35)   151.3       -28.955    
-             (*,56,35)   151.5       -29.015    
+             (*,55,35)   151.30      -28.955    
+             (*,56,35)   151.50      -29.015    
              (*,57,35)   151.58      -28.962    
              (*,58,35)   151.67      -28.923    
              (*,59,35)   151.75      -28.904    
              (*,60,35)   151.79      -28.862    
-             (*,61,35)   151.78      -28.92     
+             (*,61,35)   151.78      -28.920    
              (*,62,35)   151.84      -28.997    
              (*,63,35)   151.93      -28.909    
              (*,64,35)   152.08      -28.879    
              (*,65,35)   152.27      -28.992    
              (*,66,35)   152.08      -28.922    
-             (*,67,35)   152.17      -28.98     
+             (*,67,35)   152.17      -28.980    
              (*,68,35)   152.48      -28.972    
              (*,69,35)   152.68      -28.955    
              (*,70,35)   152.63      -28.878    
@@ -2709,16 +2709,16 @@ tab[0].*
              (*, 2,36)   147.59      -28.949    
              (*, 3,36)   147.61      -28.823    
              (*, 4,36)   147.47      -28.847    
-             (*, 5,36)   147.9       -28.897    
-             (*, 6,36)   147.9       -28.861    
+             (*, 5,36)   147.90      -28.897    
+             (*, 6,36)   147.90      -28.861    
              (*, 7,36)   147.93      -28.885    
              (*, 8,36)   148.01      -28.841    
-             (*, 9,36)   148.24      -28.92     
-             (*,10,36)   148.1       -28.849    
+             (*, 9,36)   148.24      -28.920    
+             (*,10,36)   148.10      -28.849    
              (*,11,36)   148.18      -28.966    
              (*,12,36)   148.29      -28.884    
              (*,13,36)   148.29      -28.932    
-             (*,14,36)   148.46      -28.86     
+             (*,14,36)   148.46      -28.860    
              (*,15,36)   148.55      -28.786    
              (*,16,36)   148.72      -28.845    
              (*,17,36)   148.68      -28.926    
@@ -2749,12 +2749,12 @@ tab[0].*
              (*,42,36)   150.56      -28.895    
              (*,43,36)   150.35      -28.873    
              (*,44,36)   150.55      -28.878    
-             (*,45,36)   150.8       -28.818    
+             (*,45,36)   150.80      -28.818    
              (*,46,36)   150.72      -28.897    
              (*,47,36)   150.75      -28.819    
              (*,48,36)   151.09      -28.866    
              (*,49,36)   150.71      -28.841    
-             (*,50,36)   151.2       -28.797    
+             (*,50,36)   151.20      -28.797    
              (*,51,36)   151.05      -28.905    
              (*,52,36)   151.31      -28.816    
              (*,53,36)   151.28      -28.908    
@@ -2777,17 +2777,17 @@ tab[0].*
              (*,70,36)   152.56      -28.919    
              (*, 1,37)   147.52      -28.753    
              (*, 2,37)   147.56      -28.792    
-             (*, 3,37)   147.61      -28.78     
+             (*, 3,37)   147.61      -28.780    
              (*, 4,37)   147.77      -28.913    
              (*, 5,37)   147.81      -28.767    
              (*, 6,37)   147.56      -28.758    
-             (*, 7,37)   148.01      -28.9      
+             (*, 7,37)   148.01      -28.900    
              (*, 8,37)   147.96      -28.793    
              (*, 9,37)   147.93      -28.818    
              (*,10,37)   148.37      -28.791    
-             (*,11,37)   148.29      -28.79     
+             (*,11,37)   148.29      -28.790    
              (*,12,37)   148.42      -28.781    
-             (*,13,37)   148.4       -28.805    
+             (*,13,37)   148.40      -28.805    
              (*,14,37)   148.27      -28.849    
              (*,15,37)   148.39      -28.745    
              (*,16,37)   148.53      -28.796    
@@ -2796,7 +2796,7 @@ tab[0].*
              (*,19,37)   148.88      -28.817    
              (*,20,37)   148.97      -28.765    
              (*,21,37)   148.88      -28.747    
-             (*,22,37)   149         -28.786    
+             (*,22,37)   149.00      -28.786    
              (*,23,37)   149.05      -28.823    
              (*,24,37)   149.16      -28.795    
              (*,25,37)   149.37      -28.763    
@@ -2807,14 +2807,14 @@ tab[0].*
              (*,30,37)   149.72      -28.719    
              (*,31,37)   149.61      -28.958    
              (*,32,37)   149.56      -28.814    
-             (*,33,37)   149.77      -28.77     
+             (*,33,37)   149.77      -28.770    
              (*,34,37)   149.91      -28.758    
              (*,35,37)   149.96      -28.789    
              (*,36,37)   150.06      -28.805    
-             (*,37,37)   150         -28.769    
+             (*,37,37)   150.00      -28.769    
              (*,38,37)   150.16      -28.737    
-             (*,39,37)   150.38      -28.8      
-             (*,40,37)   150.24      -28.8      
+             (*,39,37)   150.38      -28.800    
+             (*,40,37)   150.24      -28.800    
              (*,41,37)   150.29      -28.828    
              (*,42,37)   150.55      -28.785    
              (*,43,37)   150.55      -28.847    
@@ -2823,16 +2823,16 @@ tab[0].*
              (*,46,37)   150.86      -28.857    
              (*,47,37)   150.85      -28.721    
              (*,48,37)   150.85      -28.755    
-             (*,49,37)   151         -28.838    
+             (*,49,37)   151.00      -28.838    
              (*,50,37)   151.02      -28.788    
-             (*,51,37)   151         -28.798    
+             (*,51,37)   151.00      -28.798    
              (*,52,37)   151.21      -28.743    
              (*,53,37)   151.37      -28.881    
-             (*,54,37)   151.28      -28.87     
+             (*,54,37)   151.28      -28.870    
              (*,55,37)   151.58      -28.803    
              (*,56,37)   151.33      -28.846    
              (*,57,37)   151.54      -28.753    
-             (*,58,37)   151.59      -28.8      
+             (*,58,37)   151.59      -28.800    
              (*,59,37)   151.83      -28.742    
              (*,60,37)   151.76      -28.791    
              (*,61,37)   151.93      -28.729    
@@ -2843,7 +2843,7 @@ tab[0].*
              (*,66,37)   152.11      -28.808    
              (*,67,37)   152.36      -28.784    
              (*,68,37)   152.39      -28.803    
-             (*,69,37)   152.6       -28.819    
+             (*,69,37)   152.60      -28.819    
              (*,70,37)   152.58      -28.848    
              (*, 1,38)   147.59      -28.752    
              (*, 2,38)   147.49      -28.764    
@@ -2858,23 +2858,23 @@ tab[0].*
              (*,11,38)   148.26      -28.714    
              (*,12,38)   148.21      -28.653    
              (*,13,38)   148.37      -28.731    
-             (*,14,38)   148.46      -28.71     
+             (*,14,38)   148.46      -28.710    
              (*,15,38)   148.49      -28.683    
-             (*,16,38)   148.4       -28.727    
+             (*,16,38)   148.40      -28.727    
              (*,17,38)   148.71      -28.708    
              (*,18,38)   148.88      -28.711    
-             (*,19,38)   148.9       -28.734    
+             (*,19,38)   148.90      -28.734    
              (*,20,38)   148.78      -28.771    
              (*,21,38)   149.02      -28.698    
-             (*,22,38)   148.98      -28.72     
+             (*,22,38)   148.98      -28.720    
              (*,23,38)   149.03      -28.745    
              (*,24,38)   149.19      -28.724    
-             (*,25,38)   149.2       -28.709    
+             (*,25,38)   149.20      -28.709    
              (*,26,38)   149.39      -28.751    
              (*,27,38)   149.23      -28.663    
              (*,28,38)   149.44      -28.674    
              (*,29,38)   149.42      -28.703    
-             (*,30,38)   149.57      -28.76     
+             (*,30,38)   149.57      -28.760    
              (*,31,38)   149.52      -28.674    
              (*,32,38)   149.86      -28.711    
              (*,33,38)   149.89      -28.791    
@@ -2886,19 +2886,19 @@ tab[0].*
              (*,39,38)   150.24      -28.681    
              (*,40,38)   150.42      -28.688    
              (*,41,38)   150.36      -28.723    
-             (*,42,38)   150.7       -28.693    
+             (*,42,38)   150.70      -28.693    
              (*,43,38)   150.46      -28.679    
              (*,44,38)   150.46      -28.608    
-             (*,45,38)   150.8       -28.632    
+             (*,45,38)   150.80      -28.632    
              (*,46,38)   150.83      -28.712    
-             (*,47,38)   151         -28.754    
+             (*,47,38)   151.00      -28.754    
              (*,48,38)   150.91      -28.638    
              (*,49,38)   150.81      -28.814    
              (*,50,38)   151.05      -28.641    
              (*,51,38)   151.02      -28.669    
              (*,52,38)   151.08      -28.733    
              (*,53,38)   151.18      -28.751    
-             (*,54,38)   151.3       -28.722    
+             (*,54,38)   151.30      -28.722    
              (*,55,38)   151.19      -28.675    
              (*,56,38)   151.46      -28.729    
              (*,57,38)   151.72      -28.683    
@@ -2915,7 +2915,7 @@ tab[0].*
              (*,68,38)   152.52      -28.731    
              (*,69,38)   152.53      -28.677    
              (*,70,38)   152.44      -28.702    
-             (*, 1,39)   147.52      -28.68     
+             (*, 1,39)   147.52      -28.680    
              (*, 2,39)   147.55      -28.552    
              (*, 3,39)   147.67      -28.642    
              (*, 4,39)   147.73      -28.607    
@@ -2925,12 +2925,12 @@ tab[0].*
              (*, 8,39)   148.01      -28.565    
              (*, 9,39)   148.27      -28.683    
              (*,10,39)   148.18      -28.522    
-             (*,11,39)   148.08      -28.63     
+             (*,11,39)   148.08      -28.630    
              (*,12,39)   148.28      -28.672    
-             (*,13,39)   148.5       -28.691    
+             (*,13,39)   148.50      -28.691    
              (*,14,39)   148.44      -28.716    
              (*,15,39)   148.46      -28.651    
-             (*,16,39)   148.7       -28.61     
+             (*,16,39)   148.70      -28.610    
              (*,17,39)   148.78      -28.606    
              (*,18,39)   148.63      -28.516    
              (*,19,39)   148.74      -28.654    
@@ -2945,7 +2945,7 @@ tab[0].*
              (*,28,39)   149.34      -28.641    
              (*,29,39)   149.47      -28.675    
              (*,30,39)   149.61      -28.652    
-             (*,31,39)   149.48      -28.66     
+             (*,31,39)   149.48      -28.660    
              (*,32,39)   149.69      -28.619    
              (*,33,39)   149.85      -28.597    
              (*,34,39)   149.73      -28.713    
@@ -2972,7 +2972,7 @@ tab[0].*
              (*,55,39)   151.42      -28.742    
              (*,56,39)   151.33      -28.641    
              (*,57,39)   151.37      -28.615    
-             (*,58,39)   151.58      -28.68     
+             (*,58,39)   151.58      -28.680    
              (*,59,39)   151.72      -28.635    
              (*,60,39)   151.97      -28.644    
              (*,61,39)   151.91      -28.577    
@@ -2981,31 +2981,31 @@ tab[0].*
              (*,64,39)   152.24      -28.614    
              (*,65,39)   152.05      -28.636    
              (*,66,39)   152.23      -28.594    
-             (*,67,39)   152.3       -28.622    
+             (*,67,39)   152.30      -28.622    
              (*,68,39)   152.41      -28.629    
-             (*,69,39)   152.4       -28.664    
+             (*,69,39)   152.40      -28.664    
              (*,70,39)   152.45      -28.565    
-             (*, 1,40)   147.63      -28.52     
+             (*, 1,40)   147.63      -28.520    
              (*, 2,40)   147.57      -28.594    
              (*, 3,40)   147.71      -28.646    
              (*, 4,40)   147.65      -28.523    
-             (*, 5,40)   147.92      -28.61     
-             (*, 6,40)   147.9       -28.576    
+             (*, 5,40)   147.92      -28.610    
+             (*, 6,40)   147.90      -28.576    
              (*, 7,40)   147.91      -28.569    
              (*, 8,40)   148.06      -28.579    
              (*, 9,40)   148.11      -28.532    
              (*,10,40)   148.26      -28.592    
              (*,11,40)   148.16      -28.603    
              (*,12,40)   148.44      -28.543    
-             (*,13,40)   148.43      -28.56     
+             (*,13,40)   148.43      -28.560    
              (*,14,40)   148.53      -28.687    
-             (*,15,40)   148.73      -28.56     
+             (*,15,40)   148.73      -28.560    
              (*,16,40)   148.52      -28.565    
              (*,17,40)   148.51      -28.649    
              (*,18,40)   148.76      -28.547    
              (*,19,40)   148.73      -28.621    
              (*,20,40)   148.87      -28.591    
-             (*,21,40)   148.88      -28.59     
+             (*,21,40)   148.88      -28.590    
              (*,22,40)   149.13      -28.506    
              (*,23,40)   148.95      -28.566    
              (*,24,40)   149.24      -28.523    
@@ -3024,7 +3024,7 @@ tab[0].*
              (*,37,40)   150.37      -28.538    
              (*,38,40)   149.96      -28.621    
              (*,39,40)   150.34      -28.521    
-             (*,40,40)   150.4       -28.595    
+             (*,40,40)   150.40      -28.595    
              (*,41,40)   150.33      -28.623    
              (*,42,40)   150.46      -28.558    
              (*,43,40)   150.46      -28.533    
@@ -3043,17 +3043,17 @@ tab[0].*
              (*,56,40)   151.38      -28.599    
              (*,57,40)   151.66      -28.584    
              (*,58,40)   151.57      -28.652    
-             (*,59,40)   151.63      -28.52     
+             (*,59,40)   151.63      -28.520    
              (*,60,40)   151.65      -28.647    
              (*,61,40)   151.78      -28.461    
-             (*,62,40)   152.1       -28.577    
+             (*,62,40)   152.10      -28.577    
              (*,63,40)   152.04      -28.595    
              (*,64,40)   152.11      -28.581    
              (*,65,40)   152.13      -28.627    
              (*,66,40)   152.36      -28.606    
              (*,67,40)   152.23      -28.563    
              (*,68,40)   152.27      -28.616    
-             (*,69,40)   152.4       -28.564    
+             (*,69,40)   152.40      -28.564    
              (*,70,40)   152.52      -28.568    
          nc: 2800
       sense: 0x<address>
@@ -3061,45 +3061,45 @@ tab[0].*
          p0: 0x<address>
                  0     0
       delta: 0x<address>
-               0            0         
+               0.0000       0.0000    
     extrema: 0x<address>
              (*,*, 1)   147.57      -31.525    ->     152.52      -31.299    
-             (*,*, 2)   147.32      -31.483    ->     152.64      -31.23     
-             (*,*, 3)   147.38      -31.379    ->     152.5       -31.176    
-             (*,*, 4)   147.41      -31.36     ->     152.52      -31.042    
+             (*,*, 2)   147.32      -31.483    ->     152.64      -31.230    
+             (*,*, 3)   147.38      -31.379    ->     152.50      -31.176    
+             (*,*, 4)   147.41      -31.360    ->     152.52      -31.042    
              (*,*, 5)   147.36      -31.264    ->     152.51      -31.029    
              (*,*, 6)   147.39      -31.152    ->     152.55      -30.871    
              (*,*, 7)   147.41      -31.107    ->     152.47      -30.891    
              (*,*, 8)   147.47      -31.042    ->     152.54      -30.804    
              (*,*, 9)   147.54      -30.914    ->     152.62      -30.754    
-             (*,*,10)   147.34      -30.861    ->     152.64      -30.65     
+             (*,*,10)   147.34      -30.861    ->     152.64      -30.650    
              (*,*,11)   147.33      -30.829    ->     152.58      -30.593    
              (*,*,12)   147.45      -30.748    ->     152.47      -30.477    
-             (*,*,13)   147.47      -30.65     ->     152.55      -30.42     
+             (*,*,13)   147.47      -30.650    ->     152.55      -30.420    
              (*,*,14)   147.47      -30.606    ->     152.58      -30.337    
-             (*,*,15)   147.4       -30.499    ->     152.44      -30.289    
+             (*,*,15)   147.40      -30.499    ->     152.44      -30.289    
              (*,*,16)   147.55      -30.415    ->     152.51      -30.193    
              (*,*,17)   147.37      -30.378    ->     152.66      -30.155    
              (*,*,18)   147.18      -30.296    ->     152.69      -30.038    
              (*,*,19)   147.44      -30.198    ->     152.51      -30.007    
-             (*,*,20)   147.25      -30.237    ->     152.53      -29.91     
+             (*,*,20)   147.25      -30.237    ->     152.53      -29.910    
              (*,*,21)   147.35      -30.105    ->     152.51      -29.858    
              (*,*,22)   147.49      -30.006    ->     152.52      -29.804    
              (*,*,23)   147.49      -29.933    ->     152.41      -29.687    
              (*,*,24)   147.45      -29.872    ->     152.64      -29.668    
              (*,*,25)   147.41      -29.767    ->     152.48      -29.555    
-             (*,*,26)   147.43      -29.691    ->     152.7       -29.489    
+             (*,*,26)   147.43      -29.691    ->     152.70      -29.489    
              (*,*,27)   147.44      -29.633    ->     152.53      -29.337    
-             (*,*,28)   147.4       -29.559    ->     152.42      -29.345    
+             (*,*,28)   147.40      -29.559    ->     152.42      -29.345    
              (*,*,29)   147.54      -29.512    ->     152.67      -29.233    
-             (*,*,30)   147.51      -29.415    ->     152.47      -29.15     
-             (*,*,31)   147.3       -29.392    ->     152.59      -29.141    
+             (*,*,30)   147.51      -29.415    ->     152.47      -29.150    
+             (*,*,31)   147.30      -29.392    ->     152.59      -29.141    
              (*,*,32)   147.51      -29.255    ->     152.54      -29.012    
-             (*,*,33)   147.38      -29.209    ->     152.6       -28.963    
+             (*,*,33)   147.38      -29.209    ->     152.60      -28.963    
              (*,*,34)   147.47      -29.151    ->     152.51      -28.902    
              (*,*,35)   147.58      -29.031    ->     152.68      -28.779    
              (*,*,36)   147.47      -28.966    ->     152.58      -28.756    
-             (*,*,37)   147.51      -28.958    ->     152.6       -28.713    
+             (*,*,37)   147.51      -28.958    ->     152.60      -28.713    
              (*,*,38)   147.49      -28.831    ->     152.53      -28.608    
              (*,*,39)   147.51      -28.774    ->     152.46      -28.516    
              (*,*,40)   147.57      -28.687    ->     152.54      -28.461    
@@ -3123,29 +3123,29 @@ tab[1].*
         map: 0x<address>
                  2
       crval: 0x<address>
-               0.5       
+               0.50000   
       index: 0x<address>
    index[0]: 0x<address>
-               0.5          1.5          1.5          2.5          2.5       
-               3.5          3.5          4.5       
+               0.50000      1.5000       1.5000       2.5000       2.5000    
+               3.5000       3.5000       4.5000    
       coord: 0x<address>
              (*,1)   0.21106   
              (*,2)   0.21076   
-             (*,3)   2e-06     
-             (*,4)   2.2e-06   
-             (*,5)   5e-07     
-             (*,6)   6.5e-07   
-             (*,7)   1.24e-09  
-             (*,8)   2.48e-09  
+             (*,3)   2.0000e-06
+             (*,4)   2.2000e-06
+             (*,5)   5.0000e-07
+             (*,6)   6.5000e-07
+             (*,7)   1.2400e-09
+             (*,8)   2.4800e-09
          nc: 8
       sense: 0x<address>
                  1
          p0: 0x<address>
                  0
       delta: 0x<address>
-               0         
+               0.0000    
     extrema: 0x<address>
-             (*,*)   1.24e-09  ->     0.21121   
+             (*,*)   1.2400e-09->     0.21121   
         err: 0x0
      m_flag: 137
         m_M: 1
@@ -3165,11 +3165,11 @@ tab[2].*
         map: 0x<address>
                  3
       crval: 0x<address>
-               0         
+               0.0000    
       index: 0x<address>
    index[0]: 0x<address>
-               0            1            1            2            2         
-               3            3            4         
+               0.0000       1.0000       1.0000       2.0000       2.0000    
+               3.0000       3.0000       4.0000    
       coord: 0x<address>
              (*,1)   1997.8    
              (*,2)   1997.8    
@@ -3185,7 +3185,7 @@ tab[2].*
          p0: 0x<address>
                  0
       delta: 0x<address>
-               0         
+               0.0000    
     extrema: 0x<address>
              (*,*)   1993.3    ->     2002.2    
         err: 0x0
@@ -3203,38 +3203,46 @@ tab[2].*
        flag: 137
       naxis: 4
       crpix: 0x<address>
-               129          65           0.5          1         
+               129.00       65.000       0.50000      1.0000    
          pc: 0x<address>
-    pc[0][]:   0.99619      0.087156     0            0         
-    pc[1][]:  -0.087156     0.99619      0            0         
-    pc[2][]:   0            0            1            0         
-    pc[3][]:   0            0            1            1         
+    pc[0][]:   0.99619      0.087156     0.0000       0.0000    
+    pc[1][]:  -0.087156     0.99619      0.0000       0.0000    
+    pc[2][]:   0.0000       0.0000       1.0000       0.0000    
+    pc[3][]:   0.0000       0.0000       1.0000       1.0000    
       cdelt: 0x<address>
-               1            1            1            1         
+               1.0000       1.0000       1.0000       1.0000    
+     dispre: 0x0
+     disseq: 0x0
+piximg[0][]:   0.99619      0.087156     0.0000       0.0000    
+piximg[1][]:  -0.087156     0.99619      0.0000       0.0000    
+piximg[2][]:   0.0000       0.0000       1.0000       0.0000    
+piximg[3][]:   0.0000       0.0000       1.0000       1.0000    
+imgpix[0][]:   0.99619     -0.087156     0.0000       0.0000    
+imgpix[1][]:   0.087156     0.99619      0.0000       0.0000    
+imgpix[2][]:   0.0000       0.0000       1.0000       0.0000    
+imgpix[3][]:   0.0000       0.0000      -1.0000       1.0000    
+    i_naxis: 4
       unity: 0
+     affine: 1
+     simple: 0
         err: 0x0
-piximg[0][]:   0.99619      0.087156     0            0         
-piximg[1][]:  -0.087156     0.99619      0            0         
-piximg[2][]:   0            0            1            0         
-piximg[3][]:   0            0            1            1         
-imgpix[0][]:   0.99619     -0.087156     0            0         
-imgpix[1][]:   0.087156     0.99619      0            0         
-imgpix[2][]:   0            0            1            0         
-imgpix[3][]:   0            0           -1            1         
+     tmpcrd: 0x<address>
      m_flag: 0
     m_naxis: 0
     m_crpix: 0x0
        m_pc: 0x0
     m_cdelt: 0x0
+   m_dispre: 0x0
+   m_disseq: 0x0
 
    cel.*
       flag: 0
      offset: 0
        phi0: UNDEFINED
      theta0: UNDEFINED
-       ref:   0            0            9.8765e+107   90        
-       prj: (see below)
-     euler:   0            0            0            0            0         
+        ref:   0.0000       0.0000       9.8765e+107   90.000    
+        prj: (see below)
+      euler:   0.0000       0.0000       0.0000       0.0000       0.0000    
     latpreq: -1 (UNDEFINED)
      isolat: 0
         err: 0x0
@@ -3259,8 +3267,8 @@ imgpix[3][]:   0            0           -1            1
          x0: 0.000000
          y0: 0.000000
         err: 0x0
-        w[]:   0            0            0            0            0         
-               0            0            0            0            0         
+        w[]:   0.0000       0.0000       0.0000       0.0000       0.0000    
+               0.0000       0.0000       0.0000       0.0000       0.0000    
           m: 0
           n: 0
      prjx2s: 0x0
@@ -3274,7 +3282,7 @@ imgpix[3][]:   0            0           -1            1
     restfrq: 0.000000
     restwav: 0.000000
          pv: (not used)
-          w:   0            0            0           (remainder unused)
+          w:   0.0000       0.0000       0.0000      (remainder unused)
     isGrism: 0
         err: 0x0
      spxX2P: 0x0
diff --git a/Fortran/wcs.inc b/Fortran/wcs.inc
index 2a5843c..b249f63 100644
--- a/Fortran/wcs.inc
+++ b/Fortran/wcs.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,34 +22,43 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcs.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcs.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  WCSBCHK, WCSCOMPARE, WCSCOPY, WCSFREE, WCSGET, WCSGTC,
-     :          WCSGTD, WCSGTI, WCSINI, WCSMIX, WCSNPS, WCSNPV, WCSP2S,
-     :          WCSPERR, WCSPRT, WCSSPTR, WCSPTC, WCSPTD, WCSPTI,
-     :          WCSPUT, WCSS2P, WCSSET, WCSSUB
-      INTEGER   WCSBCHK, WCSCOMPARE, WCSCOPY, WCSFREE, WCSGET, WCSGTC,
-     :          WCSGTD, WCSGTI, WCSINI, WCSMIX, WCSNPS, WCSNPV, WCSP2S,
-     :          WCSPERR, WCSPRT, WCSSPTR, WCSPTC, WCSPTD, WCSPTI,
-     :          WCSPUT, WCSS2P, WCSSET, WCSSUB
+      EXTERNAL  WCSPUT, WCSPTC, WCSPTD, WCSPTI,
+     :          WCSGET, WCSGTC, WCSGTD, WCSGTI,
+     :          WCSNPV, WCSNPS, WCSINI, WCSSUB, WCSCOMPARE, WCSFREE,
+     :          WCSPRT, WCSPERR, WCSBCHK, WCSSET, WCSP2S, WCSS2P,
+     :          WCSMIX, WCSSPTR, WCSCOPY
+
+      INTEGER   WCSPUT, WCSPTC, WCSPTD, WCSPTI,
+     :          WCSGET, WCSGTC, WCSGTD, WCSGTI,
+     :          WCSNPV, WCSNPS, WCSINI, WCSSUB, WCSCOMPARE, WCSFREE,
+     :          WCSPRT, WCSPERR, WCSBCHK, WCSSET, WCSP2S, WCSS2P,
+     :          WCSMIX, WCSSPTR, WCSCOPY
+
+*     Note that the Fortran API differs from that of the C function.
+      EXTERNAL  WCSLIB_VERSION
+      CHARACTER WCSLIB_VERSION*8
+
 
 *     Length of the WCSPRM data structure (INTEGER array) on 64-bit
-*     machines.  Only needs to be 416 on 32-bit machines.
+*     machines.  Only needs to be 420 on 32-bit machines.
       INTEGER   WCSLEN
-      PARAMETER (WCSLEN = 474)
+      PARAMETER (WCSLEN = 482)
 
 *     Codes for WCS data structure elements used by WCSPUT and WCSGET.
-      INTEGER   WCS_ALT, WCS_ALTLIN, WCS_CD, WCS_CDELT, WCS_CNAME,
-     :          WCS_COLAX, WCS_COLNUM, WCS_CRDER, WCS_CROTA, WCS_CRPIX,
-     :          WCS_CRVAL, WCS_CSYER, WCS_CTYPE, WCS_CUNIT, WCS_DATEAVG,
-     :          WCS_DATEOBS, WCS_EQUINOX, WCS_FLAG, WCS_LATPOLE,
-     :          WCS_LONPOLE, WCS_MJDAVG, WCS_MJDOBS, WCS_NAXIS, WCS_NPS,
-     :          WCS_NPSMAX, WCS_NPV, WCS_NPVMAX, WCS_OBSGEO, WCS_PC,
-     :          WCS_PS, WCS_PV, WCS_RADESYS, WCS_RESTFRQ, WCS_RESTWAV,
-     :          WCS_SPECSYS, WCS_SSYSOBS, WCS_SSYSSRC, WCS_VELANGL,
-     :          WCS_VELOSYS, WCS_VELREF, WCS_WCSNAME, WCS_ZSOURCE
+      INTEGER   WCS_FLAG,  WCS_NAXIS, WCS_CRPIX, WCS_PC, WCS_CDELT,
+     :          WCS_CRVAL, WCS_CUNIT, WCS_CTYPE, WCS_LONPOLE,
+     :          WCS_LATPOLE, WCS_RESTFRQ, WCS_RESTWAV, WCS_NPV,
+     :          WCS_NPVMAX, WCS_PV, WCS_NPS, WCS_NPSMAX, WCS_PS, WCS_CD,
+     :          WCS_CROTA, WCS_ALTLIN, WCS_VELREF, WCS_ALT, WCS_COLNUM,
+     :          WCS_COLAX, WCS_CNAME, WCS_CRDER, WCS_CSYER, WCS_DATEAVG,
+     :          WCS_DATEOBS, WCS_EQUINOX, WCS_MJDAVG, WCS_MJDOBS,
+     :          WCS_OBSGEO, WCS_RADESYS, WCS_SPECSYS, WCS_SSYSOBS,
+     :          WCS_VELOSYS, WCS_ZSOURCE, WCS_SSYSSRC, WCS_VELANGL,
+     :          WCS_WCSNAME
 
       PARAMETER (WCS_FLAG     = 100)
       PARAMETER (WCS_NAXIS    = 101)
@@ -97,9 +106,9 @@
       PARAMETER (WCS_WCSNAME  = 141)
 
 *     Codes for WCS data structure elements used by WCSGET (only).
-      INTEGER   WCS_CEL, WCS_CUBEFACE, WCS_ERR, WCS_LAT, WCS_LATTYP,
-     :          WCS_LIN, WCS_LNG, WCS_LNGTYP, WCS_NTAB, WCS_NWTB,
-     :          WCS_SPC, WCS_SPEC, WCS_TAB, WCS_TYPES, WCS_WTB
+      INTEGER   WCS_NTAB,   WCS_NWTB, WCS_TAB,   WCS_WTB, WCS_LNGTYP,
+     :          WCS_LATTYP, WCS_LNG,   WCS_LAT, WCS_SPEC, WCS_CUBEFACE,
+     :          WCS_TYPES,   WCS_LIN, WCS_CEL,   WCS_SPC, WCS_ERR
 
       PARAMETER (WCS_NTAB     = 200)
       PARAMETER (WCS_NWTB     = 201)
@@ -118,8 +127,8 @@
       PARAMETER (WCS_ERR      = 214)
 
 *     Flag bits for WCSSUB's AXES argument.
-      INTEGER WCSSUB_CELESTIAL, WCSSUB_CUBEFACE, WCSSUB_LATITUDE,
-     :        WCSSUB_LONGITUDE, WCSSUB_SPECTRAL, WCSSUB_STOKES
+      INTEGER   WCSSUB_LONGITUDE, WCSSUB_LATITUDE, WCSSUB_CUBEFACE,
+     :          WCSSUB_CELESTIAL, WCSSUB_SPECTRAL, WCSSUB_STOKES
 
       PARAMETER (WCSSUB_LONGITUDE = 4096 +  1)
       PARAMETER (WCSSUB_LATITUDE  = 4096 +  2)
@@ -136,12 +145,12 @@
       PARAMETER (WCSCOMPARE_CRPIX     = 4)
 
 *     Error codes and messages.
-      INTEGER   WCSERR_BAD_COORD_TRANS, WCSERR_BAD_CTYPE,
-     :          WCSERR_BAD_PARAM, WCSERR_BAD_PIX, WCSERR_BAD_SUBIMAGE,
-     :          WCSERR_BAD_WORLD, WCSERR_BAD_WORLD_COORD,
-     :          WCSERR_ILL_COORD_TRANS, WCSERR_MEMORY,
-     :          WCSERR_NON_SEPARABLE, WCSERR_NO_SOLUTION,
-     :          WCSERR_NULL_POINTER, WCSERR_SINGULAR_MTX, WCSERR_SUCCESS
+      INTEGER   WCSERR_SUCCESS, WCSERR_NULL_POINTER, WCSERR_MEMORY,
+     :          WCSERR_SINGULAR_MTX, WCSERR_BAD_CTYPE, WCSERR_BAD_PARAM,
+     :          WCSERR_BAD_COORD_TRANS, WCSERR_ILL_COORD_TRANS,
+     :          WCSERR_BAD_PIX, WCSERR_BAD_WORLD,
+     :          WCSERR_BAD_WORLD_COORD, WCSERR_NO_SOLUTION,
+     :          WCSERR_BAD_SUBIMAGE, WCSERR_NON_SEPARABLE
 
       PARAMETER (WCSERR_SUCCESS         =  0)
       PARAMETER (WCSERR_NULL_POINTER    =  1)
diff --git a/Fortran/wcs_data.f b/Fortran/wcs_data.f
index cf0de2f..6b0f5ef 100644
--- a/Fortran/wcs_data.f
+++ b/Fortran/wcs_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcs_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcs_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA WCS_BLOCK_DATA
@@ -36,10 +36,10 @@
      :  'Null wcsprm pointer passed',
      :  'Memory allocation failed',
      :  'Linear transformation matrix is singular',
-     :  'Inconsistent or unrecognized coordinate axis types',
+     :  'Inconsistent or unrecognized coordinate axis type',
      :  'Invalid parameter value',
-     :  'Invalid coordinate transformation parameters',
-     :  'Ill-conditioned coordinate transformation parameters',
+     :  'Unrecognized coordinate transformation parameter',
+     :  'Ill-conditioned coordinate transformation parameter',
      :  'One or more of the pixel coordinates were invalid',
      :  'One or more of the world coordinates were invalid',
      :  'Invalid world coordinate',
diff --git a/Fortran/wcs_f.c b/Fortran/wcs_f.c
index 561780d..1e18c86 100644
--- a/Fortran/wcs_f.c
+++ b/Fortran/wcs_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,25 +22,32 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcs_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: wcs_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
 #include <string.h>
 
+#include <wcserr.h>
 #include <wcsutil.h>
 #include <wcs.h>
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
-#define wcsini_  F77_FUNC(wcsini,  WCSINI)
+#define wcsput_  F77_FUNC(wcsput,  WCSPUT)
+#define wcsptc_  F77_FUNC(wcsptc,  WCSPTC)
+#define wcsptd_  F77_FUNC(wcsptd,  WCSPTD)
+#define wcspti_  F77_FUNC(wcspti,  WCSPTI)
+#define wcsget_  F77_FUNC(wcsget,  WCSGET)
+#define wcsgtc_  F77_FUNC(wcsgtc,  WCSGTC)
+#define wcsgtd_  F77_FUNC(wcsgtd,  WCSGTD)
+#define wcsgti_  F77_FUNC(wcsgti,  WCSGTI)
+
 #define wcsnpv_  F77_FUNC(wcsnpv,  WCSNPV)
 #define wcsnps_  F77_FUNC(wcsnps,  WCSNPS)
+#define wcsini_  F77_FUNC(wcsini,  WCSINI)
 #define wcssub_  F77_FUNC(wcssub,  WCSSUB)
 #define wcscompare_  F77_FUNC(wcscompare,  WCSCOMPARE)
-#define wcscopy_ F77_FUNC(wcscopy, WCSCOPY)
-#define wcsput_  F77_FUNC(wcsput,  WCSPUT)
-#define wcsget_  F77_FUNC(wcsget,  WCSGET)
 #define wcsfree_ F77_FUNC(wcsfree, WCSFREE)
 #define wcsprt_  F77_FUNC(wcsprt,  WCSPRT)
 #define wcsperr_ F77_FUNC(wcsperr, WCSPERR)
@@ -50,13 +57,8 @@
 #define wcss2p_  F77_FUNC(wcss2p,  WCSS2P)
 #define wcsmix_  F77_FUNC(wcsmix,  WCSMIX)
 #define wcssptr_ F77_FUNC(wcssptr, WCSSPTR)
-
-#define wcsptc_  F77_FUNC(wcsptc,  WCSPTC)
-#define wcsptd_  F77_FUNC(wcsptd,  WCSPTD)
-#define wcspti_  F77_FUNC(wcspti,  WCSPTI)
-#define wcsgtc_  F77_FUNC(wcsgtc,  WCSGTC)
-#define wcsgtd_  F77_FUNC(wcsgtd,  WCSGTD)
-#define wcsgti_  F77_FUNC(wcsgti,  WCSGTI)
+#define wcscopy_ F77_FUNC(wcscopy, WCSCOPY)
+#define wcslib_version_ F77_FUNC(wcslib_version, WCSLIB_VERSION)
 
 #define WCS_FLAG     100
 #define WCS_NAXIS    101
@@ -121,50 +123,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int wcsini_(const int *naxis, int *wcs)
-
-{
-  return wcsini(1, *naxis, (struct wcsprm *)wcs);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int wcsnpv_(int *npvmax) { return wcsnpv(*npvmax); }
-int wcsnps_(int *npsmax) { return wcsnps(*npsmax); }
-
-/*--------------------------------------------------------------------------*/
-
-int wcssub_(const int *wcssrc, int *nsub, int axes[], int *wcsdst)
-
-{
-  return wcssub(1, (const struct wcsprm *)wcssrc, nsub, axes,
-                (struct wcsprm *)wcsdst);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int wcscompare_(
-  const int *cmp,
-  const double *tol,
-  const int *wcs1,
-  const int *wcs2,
-  int *equal)
-
-{
-  return wcscompare(*cmp, *tol, (const struct wcsprm *)wcs1,
-                    (const struct wcsprm *)wcs2, equal);
-}
-
-/*--------------------------------------------------------------------------*/
-
-int wcscopy_(const int *wcssrc, int *wcsdst)
-
-{
-  return wcscopy(1, (const struct wcsprm *)wcssrc, (struct wcsprm *)wcsdst);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int wcsput_(
   int *wcs,
   const int *what,
@@ -189,47 +147,56 @@ int wcsput_(
   i0 = *i - 1;
   j0 = *j - 1;
 
-  wcsp->flag = 0;
-
   switch (*what) {
   case WCS_FLAG:
     wcsp->flag = *ivalp;
     break;
   case WCS_NAXIS:
     wcsp->naxis = *ivalp;
+    wcsp->flag = 0;
     break;
   case WCS_CRPIX:
     wcsp->crpix[i0] = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_PC:
     k = (i0)*(wcsp->naxis) + (j0);
     *(wcsp->pc+k) = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_CDELT:
     wcsp->cdelt[i0] = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_CRVAL:
     wcsp->crval[i0] = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_CUNIT:
     strncpy(wcsp->cunit[i0], cvalp, 72);
     wcsutil_null_fill(72, wcsp->cunit[i0]);
+    wcsp->flag = 0;
     break;
   case WCS_CTYPE:
     strncpy(wcsp->ctype[i0], cvalp, 72);
     wcsutil_null_fill(72, wcsp->ctype[i0]);
+    wcsp->flag = 0;
     break;
   case WCS_LONPOLE:
     wcsp->lonpole = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_LATPOLE:
     wcsp->latpole = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_RESTFRQ:
     wcsp->restfrq = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_RESTWAV:
     wcsp->restwav = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_NPV:
   case WCS_NPVMAX:
@@ -240,6 +207,7 @@ int wcsput_(
     (wcsp->pv + wcsp->npv)->m = *j;
     (wcsp->pv + wcsp->npv)->value = *dvalp;
     (wcsp->npv)++;
+    wcsp->flag = 0;
     break;
   case WCS_NPS:
   case WCS_NPSMAX:
@@ -251,16 +219,20 @@ int wcsput_(
     strncpy((wcsp->ps + wcsp->nps)->value, cvalp, 72);
     wcsutil_null_fill(72, (wcsp->ps + wcsp->nps)->value);
     (wcsp->nps)++;
+    wcsp->flag = 0;
     break;
   case WCS_CD:
     k = (i0)*(wcsp->naxis) + (j0);
     *(wcsp->cd+k) = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_CROTA:
     wcsp->crota[i0] = *dvalp;
+    wcsp->flag = 0;
     break;
   case WCS_ALTLIN:
     wcsp->altlin = *ivalp;
+    wcsp->flag = 0;
     break;
   case WCS_VELREF:
     wcsp->velref = *ivalp;
@@ -668,6 +640,42 @@ int wcsgti_(const int *wcs, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int wcsnpv_(int *npvmax) { return wcsnpv(*npvmax); }
+int wcsnps_(int *npsmax) { return wcsnps(*npsmax); }
+
+/*--------------------------------------------------------------------------*/
+
+int wcsini_(const int *naxis, int *wcs)
+
+{
+  return wcsini(1, *naxis, (struct wcsprm *)wcs);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int wcssub_(const int *wcssrc, int *nsub, int axes[], int *wcsdst)
+
+{
+  return wcssub(1, (const struct wcsprm *)wcssrc, nsub, axes,
+                (struct wcsprm *)wcsdst);
+}
+
+/*--------------------------------------------------------------------------*/
+
+int wcscompare_(
+  const int *cmp,
+  const double *tol,
+  const int *wcs1,
+  const int *wcs2,
+  int *equal)
+
+{
+  return wcscompare(*cmp, *tol, (const struct wcsprm *)wcs1,
+                    (const struct wcsprm *)wcs2, equal);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int wcsfree_(int *wcs)
 
 {
@@ -676,14 +684,14 @@ int wcsfree_(int *wcs)
 
 /*--------------------------------------------------------------------------*/
 
-int wcsprt_(int *wcs)
+int wcsprt_(const int *wcs)
 
 {
   /* This may or may not force the Fortran I/O buffers to be flushed.  If
    * not, try CALL FLUSH(6) before calling WCSPRT in the Fortran code. */
   fflush(NULL);
 
-  return wcsprt((struct wcsprm *)wcs);
+  return wcsprt((const struct wcsprm *)wcs);
 }
 
 /*--------------------------------------------------------------------------*/
@@ -796,3 +804,20 @@ int wcssptr_(struct wcsprm *wcs, int *i, char ctype[9])
 
   return status;
 }
+
+/*--------------------------------------------------------------------------*/
+
+int wcscopy_(const int *wcssrc, int *wcsdst)
+
+{
+  return wcscopy(1, (const struct wcsprm *)wcssrc, (struct wcsprm *)wcsdst);
+}
+
+/*--------------------------------------------------------------------------*/
+
+void wcslib_version_(char *wcsver, int nchr)
+
+{
+  strncpy(wcsver, wcslib_version(0x0), nchr);
+  wcsutil_blank_fill(nchr, wcsver);
+}
diff --git a/Fortran/wcserr.inc b/Fortran/wcserr.inc
index 13afd6d..47c66b2 100644
--- a/Fortran/wcserr.inc
+++ b/Fortran/wcserr.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,14 +22,15 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcserr.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcserr.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  WCSERR_ENABLE, WCSERR_GET, WCSERR_GTC, WCSERR_GTI,
-     :          WCSERR_PRT
-      INTEGER   WCSERR_ENABLE, WCSERR_GET, WCSERR_GTC, WCSERR_GTI,
-     :          WCSERR_PRT
+      EXTERNAL  WCSERR_GET, WCSERR_GTC, WCSERR_GTI,
+     :          WCSERR_ENABLE, WCSERR_PRT, WCSERR_CLEAR
+
+      INTEGER   WCSERR_GET, WCSERR_GTC, WCSERR_GTI,
+     :          WCSERR_ENABLE, WCSERR_PRT, WCSERR_CLEAR
 
 *     Length of the WCSERR data structure (INTEGER array) on 64-bit
 *     machines.  Only needs to be 44 on 32-bit machines.
@@ -37,8 +38,8 @@
       PARAMETER (ERRLEN = 46)
 
 *     Codes for WCSERR data structure elements used by WCSERR_GET.
-      INTEGER   WCSERR_FILE, WCSERR_FUNCTION, WCSERR_LINE_NO,
-     :          WCSERR_MSG, WCSERR_STATUS
+      INTEGER   WCSERR_STATUS, WCSERR_LINE_NO, WCSERR_FUNCTION,
+     :          WCSERR_FILE, WCSERR_MSG
 
       PARAMETER (WCSERR_STATUS   = 200)
       PARAMETER (WCSERR_LINE_NO  = 201)
diff --git a/Fortran/wcserr_f.c b/Fortran/wcserr_f.c
index 1166272..8fb34f9 100644
--- a/Fortran/wcserr_f.c
+++ b/Fortran/wcserr_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcserr_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: wcserr_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
@@ -33,9 +33,13 @@
 
 /* Fortran name mangling. */
 #include <wcsconfig_f77.h>
-#define wcserr_enable_  F77_FUNC(wcserr_enable, WCSERR_ENABLE)
 #define wcserr_get_  F77_FUNC(wcserr_get, WCSERR_GET)
-#define wcserr_prt_  F77_FUNC(wcserr_prt, WCSERR_PRT)
+#define wcserr_gtc_  F77_FUNC(wcserr_gtc, WCSERR_GTC)
+#define wcserr_gti_  F77_FUNC(wcserr_gti, WCSERR_GTI)
+
+#define wcserr_enable_  F77_FUNC(wcserr_enable, WCSERR_ENABLE)
+#define wcserr_prt_     F77_FUNC(wcserr_prt, WCSERR_PRT)
+#define wcserr_clear_   F77_FUNC(wcserr_clear, WCSERR_CLEAR)
 
 #define WCSERR_STATUS   200
 #define WCSERR_LINE_NO  201
@@ -45,14 +49,6 @@
 
 /*--------------------------------------------------------------------------*/
 
-int wcserr_enable_(const int *enable)
-
-{
-  return wcserr_enable(*enable);
-}
-
-/*--------------------------------------------------------------------------*/
-
 int wcserr_get_(const int *err, const int *what, void *value)
 
 {
@@ -103,6 +99,14 @@ int wcserr_gti_(const int *wcs, const int *what, int *value)
 
 /*--------------------------------------------------------------------------*/
 
+int wcserr_enable_(const int *enable)
+
+{
+  return wcserr_enable(*enable);
+}
+
+/*--------------------------------------------------------------------------*/
+
 int wcserr_prt_(const int *err, const char prefix[72])
 
 {
@@ -116,3 +120,11 @@ int wcserr_prt_(const int *err, const char prefix[72])
 
   return wcserr_prt((const struct wcserr *)err, prefix_);
 }
+
+/*--------------------------------------------------------------------------*/
+
+int wcserr_clear_(int **errp)
+
+{
+  return wcserr_clear((struct wcserr **)errp);
+}
diff --git a/Fortran/wcsfix.inc b/Fortran/wcsfix.inc
index c68556e..e19e2f5 100644
--- a/Fortran/wcsfix.inc
+++ b/Fortran/wcsfix.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,16 +22,17 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsfix.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcsfix.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  CDFIX, CELFIX, CYLFIX, DATFIX, SPCFIX, UNITFIX, WCSFIX
-      INTEGER   CDFIX, CELFIX, CYLFIX, DATFIX, SPCFIX, UNITFIX, WCSFIX
+      EXTERNAL  WCSFIX, CDFIX, DATFIX, UNITFIX, SPCFIX, CELFIX, CYLFIX
+
+      INTEGER   WCSFIX, CDFIX, DATFIX, UNITFIX, SPCFIX, CELFIX, CYLFIX
 
 *     Flag bits for the RELAX argument.
-      INTEGER   WCSFIX_CD, WCSFIX_CEL, WCSFIX_CYL, WCSFIX_DAT,
-     :          WCSFIX_NWCS, WCSFIX_SPC, WCSFIX_UNIT
+      INTEGER   WCSFIX_CD, WCSFIX_DAT, WCSFIX_UNIT, WCSFIX_CEL,
+     :          WCSFIX_SPC, WCSFIX_CYL, WCSFIX_NWCS
 
       PARAMETER (WCSFIX_CD   = 1)
       PARAMETER (WCSFIX_DAT  = 2)
@@ -42,11 +43,11 @@
       PARAMETER (WCSFIX_NWCS = 6)
 
 *     Error codes and messages.
-      INTEGER   FIXERR_BAD_COORD_TRANS, FIXERR_BAD_CORNER_PIX,
-     :          FIXERR_BAD_CTYPE, FIXERR_BAD_PARAM,
-     :          FIXERR_ILL_COORD_TRANS, FIXERR_MEMORY, FIXERR_NO_CHANGE,
-     :          FIXERR_NO_REF_PIX_COORD, FIXERR_NO_REF_PIX_VAL,
-     :          FIXERR_NULL_POINTER, FIXERR_SINGULAR_MTX, FIXERR_SUCCESS
+      INTEGER   FIXERR_NO_CHANGE, FIXERR_SUCCESS, FIXERR_NULL_POINTER,
+     :          FIXERR_MEMORY, FIXERR_SINGULAR_MTX, FIXERR_BAD_CTYPE,
+     :          FIXERR_BAD_PARAM, FIXERR_BAD_COORD_TRANS,
+     :          FIXERR_ILL_COORD_TRANS, FIXERR_BAD_CORNER_PIX,
+     :          FIXERR_NO_REF_PIX_COORD, FIXERR_NO_REF_PIX_VAL
 
       PARAMETER (FIXERR_NO_CHANGE        = -1)
       PARAMETER (FIXERR_SUCCESS          =  0)
@@ -61,5 +62,5 @@
       PARAMETER (FIXERR_NO_REF_PIX_COORD =  9)
       PARAMETER (FIXERR_NO_REF_PIX_VAL   = 10)
 
-      CHARACTER WCSFIX_ERRMSG(0:10)*80
+      CHARACTER WCSFIX_ERRMSG(-1:10)*80
       COMMON /WCSFIX_DATA/ WCSFIX_ERRMSG
diff --git a/Fortran/wcsfix_data.f b/Fortran/wcsfix_data.f
index 28f61fa..6467f51 100644
--- a/Fortran/wcsfix_data.f
+++ b/Fortran/wcsfix_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,16 +22,17 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsfix_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcsfix_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA WCSFIX_BLOCK_DATA
 
-      CHARACTER WCSFIX_ERRMSG(0:10)*80
+      CHARACTER WCSFIX_ERRMSG(-1:10)*80
 
       COMMON /WCSFIX_DATA/ WCSFIX_ERRMSG
 
       DATA WCSFIX_ERRMSG /
+     :  'No change (not an error)',
      :  'Success',
      :  'Null wcsprm pointer passed',
      :  'Memory allocation failed',
diff --git a/Fortran/wcsfix_f.c b/Fortran/wcsfix_f.c
index 1c97b13..ffe746e 100644
--- a/Fortran/wcsfix_f.c
+++ b/Fortran/wcsfix_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsfix_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: wcsfix_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <wcsfix.h>
diff --git a/Fortran/wcshdr.inc b/Fortran/wcshdr.inc
index f23dba4..097ce1a 100644
--- a/Fortran/wcshdr.inc
+++ b/Fortran/wcshdr.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,27 +22,30 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcshdr.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcshdr.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  WCSBDX, WCSBTH, WCSIDX, WCSPIH, WCSTAB, WCSVCOPY,
-     :          WCSVFREE
-      INTEGER   WCSBDX, WCSBTH, WCSIDX, WCSPIH, WCSTAB, WCSVCOPY,
-     :          WCSVFREE
+      EXTERNAL  WCSPIH, WCSBTH, WCSTAB, WCSIDX, WCSBDX, WCSVFREE,
+     :          WCSVCOPY
+
+      INTEGER   WCSPIH, WCSBTH, WCSTAB, WCSIDX, WCSBDX, WCSVFREE,
+     :          WCSVCOPY
 
 *     Flag bits for the RELAX argument.
-      INTEGER   WCSHDR_all, WCSHDR_ALLIMG, WCSHDR_AUXIMG,
-     :          WCSHDR_BIMGARR, WCSHDR_CD00i00j, WCSHDR_CNAMn,
-     :          WCSHDR_CROTAia, WCSHDR_DOBSn, WCSHDR_EPOCHa,
-     :          WCSHDR_IMGHEAD, WCSHDR_LONGKEY, WCSHDR_none,
-     :          WCSHDR_PC00i00j, WCSHDR_PIXLIST, WCSHDR_PROJPn,
-     :          WCSHDR_RADECSYS, WCSHDR_reject, WCSHDR_VELREFa,
-     :          WCSHDR_VSOURCE
+      INTEGER   WCSHDR_none, WCSHDR_all, WCSHDR_reject, WCSHDR_strict
 
       PARAMETER (WCSHDR_none     = 0)
       PARAMETER (WCSHDR_all      = 2**20 - 1)
       PARAMETER (WCSHDR_reject   = 2**28)
+      PARAMETER (WCSHDR_strict   = 2**29)
+
+      INTEGER   WCSHDR_CROTAia,  WCSHDR_EPOCHa,   WCSHDR_VELREFa,
+     :          WCSHDR_CD00i00j, WCSHDR_PC00i00j, WCSHDR_PROJPn,
+     :          WCSHDR_CD0i_0ja, WCSHDR_PC0i_0ja, WCSHDR_PV0i_0ma,
+     :          WCSHDR_PS0i_0ma, WCSHDR_RADECSYS, WCSHDR_VSOURCE,
+     :          WCSHDR_DOBSn,    WCSHDR_LONGKEY,  WCSHDR_CNAMn,
+     :          WCSHDR_AUXIMG,   WCSHDR_ALLIMG
 
       PARAMETER (WCSHDR_CROTAia  = 2**0)
       PARAMETER (WCSHDR_EPOCHa   = 2**1)
@@ -50,28 +53,35 @@
       PARAMETER (WCSHDR_CD00i00j = 2**3)
       PARAMETER (WCSHDR_PC00i00j = 2**4)
       PARAMETER (WCSHDR_PROJPn   = 2**5)
-      PARAMETER (WCSHDR_RADECSYS = 2**6)
-      PARAMETER (WCSHDR_VSOURCE  = 2**7)
-      PARAMETER (WCSHDR_DOBSn    = 2**8)
-      PARAMETER (WCSHDR_LONGKEY  = 2**9)
-      PARAMETER (WCSHDR_CNAMn    = 2**10)
-      PARAMETER (WCSHDR_AUXIMG   = 2**11)
-      PARAMETER (WCSHDR_ALLIMG   = 2**12)
+      PARAMETER (WCSHDR_CD0i_0ja = 2**6)
+      PARAMETER (WCSHDR_PC0i_0ja = 2**7)
+      PARAMETER (WCSHDR_PV0i_0ma = 2**8)
+      PARAMETER (WCSHDR_PS0i_0ma = 2**9)
+      PARAMETER (WCSHDR_RADECSYS = 2**10)
+      PARAMETER (WCSHDR_VSOURCE  = 2**11)
+      PARAMETER (WCSHDR_DOBSn    = 2**12)
+      PARAMETER (WCSHDR_LONGKEY  = 2**13)
+      PARAMETER (WCSHDR_CNAMn    = 2**14)
+      PARAMETER (WCSHDR_AUXIMG   = 2**15)
+      PARAMETER (WCSHDR_ALLIMG   = 2**16)
+
+      INTEGER   WCSHDR_IMGHEAD, WCSHDR_BIMGARR, WCSHDR_PIXLIST
 
-      PARAMETER (WCSHDR_IMGHEAD  = 2**16)
-      PARAMETER (WCSHDR_BIMGARR  = 2**17)
-      PARAMETER (WCSHDR_PIXLIST  = 2**18)
+      PARAMETER (WCSHDR_IMGHEAD  = 2**21)
+      PARAMETER (WCSHDR_BIMGARR  = 2**22)
+      PARAMETER (WCSHDR_PIXLIST  = 2**23)
 
 *     Error codes and messages.
-      INTEGER   WCSHDRERR_BAD_TABULAR_PARAMS, WCSHDRERR_MEMORY,
-     :          WCSHDRERR_NULL_POINTER, WCSHDRERR_PARSER,
-     :          WCSHDRERR_SUCCESS
+      INTEGER   WCSHDRERR_SUCCESS, WCSHDRERR_NULL_POINTER,
+     :          WCSHDRERR_MEMORY,  WCSHDRERR_BAD_COLUMN,
+     :          WCSHDRERR_PARSER,  WCSHDRERR_BAD_TABULAR_PARAMS
 
       PARAMETER (WCSHDRERR_SUCCESS            = 0)
       PARAMETER (WCSHDRERR_NULL_POINTER       = 1)
       PARAMETER (WCSHDRERR_MEMORY             = 2)
-      PARAMETER (WCSHDRERR_BAD_TABULAR_PARAMS = 3)
+      PARAMETER (WCSHDRERR_BAD_COLUMN         = 3)
       PARAMETER (WCSHDRERR_PARSER             = 4)
+      PARAMETER (WCSHDRERR_BAD_TABULAR_PARAMS = 5)
 
-      CHARACTER WCSHDR_ERRMSG(0:3)*80
+      CHARACTER WCSHDR_ERRMSG(0:5)*80
       COMMON /WCSHDR_DATA/ WCSHDR_ERRMSG
diff --git a/Fortran/wcshdr_data.f b/Fortran/wcshdr_data.f
index e563235..33eb2aa 100644
--- a/Fortran/wcshdr_data.f
+++ b/Fortran/wcshdr_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,12 +22,12 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcshdr_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcshdr_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA WCSHDR_BLOCK_DATA
 
-      CHARACTER WCSHDR_ERRMSG(0:3)*80
+      CHARACTER WCSHDR_ERRMSG(0:5)*80
 
       COMMON /WCSHDR_DATA/ WCSHDR_ERRMSG
 
@@ -35,6 +35,8 @@
      :  'Success',
      :  'Null wcsprm pointer passed',
      :  'Memory allocation failed',
+     :  'Invalid column selection',
+     :  'Fatal error returned by Flex parser',
      :  'Invalid tabular parameters'/
 
       END
diff --git a/Fortran/wcshdr_f.c b/Fortran/wcshdr_f.c
index bedf7fd..7f8fc47 100644
--- a/Fortran/wcshdr_f.c
+++ b/Fortran/wcshdr_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcshdr_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: wcshdr_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
diff --git a/Fortran/wcsmath.inc b/Fortran/wcsmath.inc
index 1eb98a7..9661bf7 100644
--- a/Fortran/wcsmath.inc
+++ b/Fortran/wcsmath.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,9 +22,9 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsmath.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcsmath.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     The value used to represent an undefined parameter.
       DOUBLE PRECISION UNDEFINED
-      PARAMETER (UNDEFINED = 987654321.0D99) 
+      PARAMETER (UNDEFINED = 987654321.0D99)
diff --git a/Fortran/wcsunits.inc b/Fortran/wcsunits.inc
index c6683c8..a9ba49e 100644
--- a/Fortran/wcsunits.inc
+++ b/Fortran/wcsunits.inc
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,25 +22,25 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsunits.inc,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcsunits.inc,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
 *     Functions.
-      EXTERNAL  WCSULEXE, WCSUNITSE, WCSUTRNE
-      INTEGER   WCSULEXE, WCSUNITSE, WCSUTRNE
+      EXTERNAL  WCSUNITSE, WCSUTRNE, WCSULEXE
+      INTEGER   WCSUNITSE, WCSUTRNE, WCSULEXE
 
 *     Deprecated functions.
-      EXTERNAL  WCSULEX, WCSUNITS, WCSUTRN
-      INTEGER   WCSULEX, WCSUNITS, WCSUTRN
+      EXTERNAL  WCSUNITS, WCSUTRN, WCSULEX
+      INTEGER   WCSUNITS, WCSUTRN, WCSULEX
 
 *     Array indices.
-      INTEGER   WCSUNITS_BEAM, WCSUNITS_BIN, WCSUNITS_BIT,
-     :          WCSUNITS_CHARGE, WCSUNITS_COUNT, WCSUNITS_LENGTH,
-     :          WCSUNITS_LUMINTEN, WCSUNITS_MAGNITUDE, WCSUNITS_MASS,
-     :          WCSUNITS_MOLE, WCSUNITS_NTYPE, WCSUNITS_PIXEL,
-     :          WCSUNITS_PLANE_ANGLE, WCSUNITS_SOLID_ANGLE,
-     :          WCSUNITS_SOLRATIO, WCSUNITS_TEMPERATURE, WCSUNITS_TIME,
-     :          WCSUNITS_VOXEL
+      INTEGER   WCSUNITS_PLANE_ANGLE, WCSUNITS_SOLID_ANGLE,
+     :          WCSUNITS_CHARGE, WCSUNITS_MOLE, WCSUNITS_TEMPERATURE,
+     :          WCSUNITS_LUMINTEN, WCSUNITS_MASS, WCSUNITS_LENGTH,
+     :          WCSUNITS_TIME, WCSUNITS_BEAM, WCSUNITS_BIN,
+     :          WCSUNITS_BIT, WCSUNITS_COUNT, WCSUNITS_MAGNITUDE,
+     :          WCSUNITS_PIXEL, WCSUNITS_SOLRATIO, WCSUNITS_VOXEL,
+     :          WCSUNITS_NTYPE
 
       PARAMETER (WCSUNITS_PLANE_ANGLE =  1)
       PARAMETER (WCSUNITS_SOLID_ANGLE =  2)
@@ -66,13 +66,13 @@
      :          WCSUNITS_UNITS(WCSUNITS_NTYPE)*9
 
 *     Error codes and messages.
-      INTEGER   UNITSERR_BAD_EXPON_SYMBOL, UNITSERR_BAD_FUNCS,
-     :          UNITSERR_BAD_INITIAL_SYMBOL,
-     :          UNITSERR_BAD_NUM_MULTIPLIER, UNITSERR_BAD_UNIT_SPEC,
-     :          UNITSERR_CONSEC_BINOPS, UNITSERR_DANGLING_BINOP,
-     :          UNITSERR_FUNCTION_CONTEXT, UNITSERR_PARSER_ERROR,
-     :          UNITSERR_SUCCESS, UNITSERR_UNBAL_BRACKET,
-     :          UNITSERR_UNBAL_PAREN, UNITSERR_UNSAFE_TRANS
+      INTEGER   UNITSERR_SUCCESS, UNITSERR_BAD_NUM_MULTIPLIER,
+     :          UNITSERR_DANGLING_BINOP, UNITSERR_BAD_INITIAL_SYMBOL,
+     :          UNITSERR_FUNCTION_CONTEXT, UNITSERR_BAD_EXPON_SYMBOL,
+     :          UNITSERR_UNBAL_BRACKET, UNITSERR_UNBAL_PAREN,
+     :          UNITSERR_CONSEC_BINOPS, UNITSERR_PARSER_ERROR,
+     :          UNITSERR_BAD_UNIT_SPEC, UNITSERR_BAD_FUNCS,
+     :          UNITSERR_UNSAFE_TRANS
 
       PARAMETER (UNITSERR_SUCCESS            =  0)
       PARAMETER (UNITSERR_BAD_NUM_MULTIPLIER =  1)
diff --git a/Fortran/wcsunits_data.f b/Fortran/wcsunits_data.f
index c9f2e1a..5272aa7 100644
--- a/Fortran/wcsunits_data.f
+++ b/Fortran/wcsunits_data.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* WCSLIB 4.25 - an implementation of the FITS WCS standard.
+* WCSLIB 5.0 - an implementation of the FITS WCS standard.
 * Copyright (C) 1995-2015, Mark Calabretta
 *
 * This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsunits_data.f,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+* $Id: wcsunits_data.f,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *=======================================================================
 
       BLOCK DATA WCSUNITS_BLOCK_DATA
diff --git a/Fortran/wcsunits_f.c b/Fortran/wcsunits_f.c
index 792da15..866c100 100644
--- a/Fortran/wcsunits_f.c
+++ b/Fortran/wcsunits_f.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsunits_f.c,v 4.25.1.2 2015/01/06 01:02:17 mcalabre Exp mcalabre $
+  $Id: wcsunits_f.c,v 5.0 2015/04/05 09:18:15 mcalabre Exp $
 *===========================================================================*/
 
 #include <stdio.h>
diff --git a/GNUmakefile b/GNUmakefile
index a7148ed..263d715 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for building WCSLIB 4.25
+# GNU makefile for building WCSLIB 5.0
 #
 # Summary of the main targets
 # ---------------------------
@@ -32,7 +32,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include makedefs
diff --git a/INSTALL b/INSTALL
index f3e2ff9..0b6e01d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 ------------------------------------------------------------------------------
-WCSLIB 4.25 and PGSBOX 4.25 INSTALLATION
+WCSLIB 5.0 and PGSBOX 5.0 INSTALLATION
 --------------------------------------
 
 WCSLIB requires an ANSI C compiler with standard ANSI C environment, that is,
@@ -10,8 +10,8 @@ Installation of WCSLIB is handled by GNU autoconf; GNU make (referred to here
 as 'gmake') must be used.  The WCSLIB distribution also includes PGSBOX (refer
 to the README file), to unpack it type
 
-  zcat wcslib-4.25.tar.gz | tar pvxf -
-  cd wcslib-4.25
+  zcat wcslib-5.0.tar.gz | tar pvxf -
+  cd wcslib-5.0
 
 then if you do not need to specify any configuration options, simply run
 
@@ -93,7 +93,7 @@ The INSTALL file provided with GNU autoconf 2.53 is appended without change.
 
 Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 http://www.atnf.csiro.au/people/Mark.Calabretta
-$Id: INSTALL,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+$Id: INSTALL,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 
 ==============================================================================
 
diff --git a/README b/README
index a2f3131..e088691 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 ------------------------------------------------------------------------------
-                         WCSLIB 4.25 and PGSBOX 4.25
+                         WCSLIB 5.0 and PGSBOX 5.0
 ------------------------------------------------------------------------------
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -23,7 +23,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: README,v 4.25.1.2 2015/01/06 00:58:14 mcalabre Exp mcalabre $
+  $Id: README,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 ------------------------------------------------------------------------------
 
 Please refer to
diff --git a/THANKS b/THANKS
index 09e791e..91d5b04 100644
--- a/THANKS
+++ b/THANKS
@@ -45,6 +45,7 @@ Lars Kristian Lundin (ESO)
 Robert Lupton (Princeton U.)
 Craig Markwardt (GSFC/NASA)
 Malte Marquarding (ATNF/CSIRO)
+Jean-Baptiste Marquette (IAP)
 Tom Marsh (U. Warwick)
 Sean Mattingly (IPAC/NASA)
 Dave McConnell (ATNF/CSIRO)
@@ -83,4 +84,4 @@ Daren Scot Wilson (NRAO)
 Tony Wong (ATNF/CSIRO)
 
 
-$Id: THANKS,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+$Id: THANKS,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
diff --git a/VALIDATION b/VALIDATION
index d819c57..8912040 100644
--- a/VALIDATION
+++ b/VALIDATION
@@ -1,6 +1,37 @@
 Platforms on which the installation procedures and test suite were exercised
 
 
+WCSLIB version 5.0 (2015/04/05)
+--------------------------------
+
+* Dell Latitude D620 (Intel Centrino, i686)
+  Debian linux 7.0 (wheezy)
+  uname -r (kernel version): 3.2.0-4-686-pae
+  gcc --version: gcc (Debian 4.7.2-5) 4.7.2
+  gfortran --version: GNU Fortran (Debian 4.7.2-5) 4.7.2
+
+* Dell PowerEdge R710 (Intel Xeon E5530, 8 processors, amd64)
+  Debian linux 7.8 (wheezy)
+  uname -r (kernel version): 3.2.0-4-amd64
+  gcc --version: gcc (Debian 4.7.2-5) 4.7.2
+  gfortran --version: GNU Fortran (Debian 4.7.2-5) 4.7.2
+  (Non-graphical tests only.)
+
+* Dell PowerEdge R820 (Intel Xeon E5-4620, 32 processors, amd64)
+  Debian linux 6.0.10 (squeeze)
+  uname -r (kernel version): 3.2.0-0.bpo.4-amd64
+  gcc --version: gcc (Debian 4.4.5-8) 4.4.5
+  gfortran --version: GNU Fortran (Debian 4.4.5-8) 4.4.5
+  (Non-graphical tests only.)
+
+* Mac Mini (Intel Core i7, 4 cores, x86_64)
+  MacOSX 10.9.5 (13F1066)
+  uname -r (kernel version): Darwin 13.4.0
+  gcc --version: gcc (GCC) 4.8.3
+  gfortran --version: GNU Fortran (GCC) 4.8.3
+  (Non-graphical tests only.)
+
+
 WCSLIB version 4.23 (2014/05/11)
 --------------------------------
 
@@ -145,7 +176,7 @@ WCSLIB version 4.8 (2011/08/15)
   gfortran --version: GNU Fortran (Debian 4.3.2-1.1) 4.3.2
 
 
-* Marvell SheevaPlug (Feroceon 88FR131 rev 1 ARM v5L), Debian linux 6.0 
+* Marvell SheevaPlug (Feroceon 88FR131 rev 1 ARM v5L), Debian linux 6.0
   (squeeze)
   uname -r (kernel version): 2.6.32-5-kirkwood
   gcc --version: gcc (Debian 4.4.5-8) 4.4.5
@@ -313,4 +344,4 @@ WCSLIB version 4.4 (2009/08/06)
           2004/04/23
 
 ------------------------------------------------------------------------------
-$Id: VALIDATION,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+$Id: VALIDATION,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
diff --git a/configure b/configure
index 7f6cc00..b6e42d0 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac Revision: 4.25.1.2 .
+# From configure.ac Revision: 5.0 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for WCSLIB 4.25.1.
+# Generated by GNU Autoconf 2.69 for WCSLIB 5.0.
 #
 # Report bugs to <mark at calabretta.id.au>.
 #
@@ -580,9 +580,9 @@ MAKEFLAGS=
 
 # Identity of this package.
 PACKAGE_NAME='WCSLIB'
-PACKAGE_TARNAME='wcslib-4.25.1'
-PACKAGE_VERSION='4.25.1'
-PACKAGE_STRING='WCSLIB 4.25.1'
+PACKAGE_TARNAME='wcslib-5.0'
+PACKAGE_VERSION='5.0'
+PACKAGE_STRING='WCSLIB 5.0'
 PACKAGE_BUGREPORT='mark at calabretta.id.au'
 PACKAGE_URL=''
 
@@ -1274,7 +1274,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures WCSLIB 4.25.1 to adapt to many kinds of systems.
+\`configure' configures WCSLIB 5.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1322,7 +1322,7 @@ Fine tuning of the installation directories:
   --infodir=DIR           info documentation [DATAROOTDIR/info]
   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
   --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/wcslib-4.25.1]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/wcslib-5.0]
   --htmldir=DIR           html documentation [DOCDIR]
   --dvidir=DIR            dvi documentation [DOCDIR]
   --pdfdir=DIR            pdf documentation [DOCDIR]
@@ -1343,7 +1343,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of WCSLIB 4.25.1:";;
+     short | recursive ) echo "Configuration of WCSLIB 5.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1446,7 +1446,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-WCSLIB configure 4.25.1
+WCSLIB configure 5.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2220,7 +2220,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by WCSLIB $as_me 4.25.1, which was
+It was created by WCSLIB $as_me 5.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -8987,7 +8987,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by WCSLIB $as_me 4.25.1, which was
+This file was extended by WCSLIB $as_me 5.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9049,7 +9049,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-WCSLIB config.status 4.25.1
+WCSLIB config.status 5.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index d8346c1..38ed156 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,12 +3,12 @@
 #-----------------------------------------------------------------------------
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: configure.ac,v 4.25.1.2 2015/01/06 00:58:14 mcalabre Exp mcalabre $
+# $Id: configure.ac,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 
-AC_INIT([WCSLIB], [4.25.1], [mark at calabretta.id.au], [wcslib-4.25.1])
+AC_INIT([WCSLIB], [5.0], [mark at calabretta.id.au], [wcslib-5.0])
 AC_PREREQ([2.53])
-AC_REVISION([$Revision: 4.25.1.2 $])
+AC_REVISION([$Revision: 5.0 $])
 AC_SUBST([PACKAGE_VERSION])
 AC_DEFINE_UNQUOTED([WCSLIB_VERSION], [$PACKAGE_VERSION], [Define wcslib version])
 
diff --git a/doxygen/GNUmakefile b/doxygen/GNUmakefile
index 46be99e..a53b2b9 100644
--- a/doxygen/GNUmakefile
+++ b/doxygen/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for building the documentation for WCSLIB 4.25
+# GNU makefile for building the documentation for WCSLIB 5.0
 #
 # Summary of the main targets
 # ---------------------------
@@ -15,7 +15,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.2 2015/01/06 00:56:40 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include ../makedefs
diff --git a/doxygen/README b/doxygen/README
index c8e4210..713870e 100644
--- a/doxygen/README
+++ b/doxygen/README
@@ -26,4 +26,4 @@ generated latex manual.
 
 Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 http://www.atnf.csiro.au/people/Mark.Calabretta
-$Id: README,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+$Id: README,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
diff --git a/doxygen/dis.sed b/doxygen/dis.sed
new file mode 100644
index 0000000..8438c4c
--- /dev/null
+++ b/doxygen/dis.sed
@@ -0,0 +1,3 @@
+/^[^*]/{p;d;}
+
+/^\*/s| disprm| #disprm|g
diff --git a/doxygen/dis_extras.dox b/doxygen/dis_extras.dox
new file mode 100644
index 0000000..c975213
--- /dev/null
+++ b/doxygen/dis_extras.dox
@@ -0,0 +1,56 @@
+/** @fn tpvset(int j, struct disprm *dis)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv1(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv2(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv3(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv4(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv5(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv6(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
+/** @fn tpv7(DISP2X_ARGS)
+*
+* @brief (Internal use only.)
+*
+* For internal use only in the implementation of the TPV "projection".
+*/
+
diff --git a/doxygen/doxextr.l b/doxygen/doxextr.l
index dd69b06..bea4033 100644
--- a/doxygen/doxextr.l
+++ b/doxygen/doxextr.l
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: doxextr.l,v 4.25.1.2 2015/01/06 01:02:55 mcalabre Exp mcalabre $
+  $Id: doxextr.l,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=============================================================================
 *
 * doxextr.l is a Flex description file containing a lexical scanner definition
diff --git a/doxygen/mainpage.dox b/doxygen/mainpage.dox
index 08e7108..960d1d1 100644
--- a/doxygen/mainpage.dox
+++ b/doxygen/mainpage.dox
@@ -1,4 +1,4 @@
-/** @mainpage WCSLIB 4.25.1 and PGSBOX 4.25.1
+/** @mainpage WCSLIB 5.0 and PGSBOX 5.0
 
 @image html Bonne.gif "Bonne's projection"
 
@@ -19,7 +19,7 @@
 @section copyright Copyright
 
 @verbatim
-  WCSLIB 4.25.1 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   WCSLIB is free software: you can redistribute it and/or modify it under the
@@ -39,7 +39,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: mainpage.dox,v 4.25.1.3 2015/01/06 01:02:55 mcalabre Exp mcalabre $
+  $Id: mainpage.dox,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 @endverbatim
 */
 
@@ -704,7 +704,7 @@ may be set to 0.
 
 /** @page threads Thread-safety
 
-With the following exceptions WCSLIB 4.25.1 is thread-safe:
+With the following exceptions WCSLIB 5.0 is thread-safe:
 
 - The C code generated by Flex is not re-entrant.  Flex does have the capacity
   for producing re-entrant scanners but they have a different API.  This may
diff --git a/flavours b/flavours
index 060b815..4de88c8 100644
--- a/flavours
+++ b/flavours
@@ -12,7 +12,7 @@
 #
 # Reminder: add '-d' to FLFLAGS for debugging.
 #
-# $Id: flavours,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+# $Id: flavours,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 
 # The list of FLAVOURs can be set on the command line.
@@ -52,8 +52,9 @@ ifeq "$(FLAVOUR)" "Linux"
   export CC       := gcc -std=c89 -pedantic
   export CPPFLAGS := $(FEATURES)
   export CFLAGS   := -g -O0 -Wall -Wpadded -Wno-long-long
+  export F77      := gfortran
   export FFLAGS   := -g -O0 -fimplicit-none -Wall -I.
-         VALGRIND := valgrind -v --leak-check=yes
+         VALGRIND := valgrind -v --leak-check=yes --track-origins=yes
 endif
 
 ifeq "$(FLAVOUR)" "Linuxp"
diff --git a/html/annotated.html b/html/annotated.html
index 007608a..ab0d3fd 100644
--- a/html/annotated.html
+++ b/html/annotated.html
@@ -50,24 +50,25 @@
 <div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
 <table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcelprm.html" target="_self">celprm</a></td><td class="desc">Celestial transformation parameters </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfitskey.html" target="_self">fitskey</a></td><td class="desc">Keyword/value information </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfitskeyid.html" target="_self">fitskeyid</a></td><td class="desc">Keyword indexing </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlinprm.html" target="_self">linprm</a></td><td class="desc">Linear transformation parameters </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprjprm.html" target="_self">prjprm</a></td><td class="desc">Projection parameters </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpscard.html" target="_self">pscard</a></td><td class="desc">Store for <code><b>PS</b>i<b>_</b>ma</code> keyrecords </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpvcard.html" target="_self">pvcard</a></td><td class="desc">Store for <code><b>PV</b>i<b>_</b>ma</code> keyrecords </td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structspcprm.html" target="_self">spcprm</a></td><td class="desc">Spectral transformation parameters </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structspxprm.html" target="_self">spxprm</a></td><td class="desc">Spectral variables and their derivatives </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtabprm.html" target="_self">tabprm</a></td><td class="desc">Tabular transformation parameters </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwcserr.html" target="_self">wcserr</a></td><td class="desc">Error message handling </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwcsprm.html" target="_self">wcsprm</a></td><td class="desc">Coordinate transformation parameters </td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwtbarr.html" target="_self">wtbarr</a></td><td class="desc">Extraction of coordinate lookup tables from BINTABLE </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structdisprm.html" target="_self">disprm</a></td><td class="desc">Distortion parameters </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfitskey.html" target="_self">fitskey</a></td><td class="desc">Keyword/value information </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structfitskeyid.html" target="_self">fitskeyid</a></td><td class="desc">Keyword indexing </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlinprm.html" target="_self">linprm</a></td><td class="desc">Linear transformation parameters </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprjprm.html" target="_self">prjprm</a></td><td class="desc">Projection parameters </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpscard.html" target="_self">pscard</a></td><td class="desc">Store for <code><b>PS</b>i<b>_</b>ma</code> keyrecords </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structpvcard.html" target="_self">pvcard</a></td><td class="desc">Store for <code><b>PV</b>i<b>_</b>ma</code> keyrecords </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structspcprm.html" target="_self">spcprm</a></td><td class="desc">Spectral transformation parameters </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structspxprm.html" target="_self">spxprm</a></td><td class="desc">Spectral variables and their derivatives </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structtabprm.html" target="_self">tabprm</a></td><td class="desc">Tabular transformation parameters </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwcserr.html" target="_self">wcserr</a></td><td class="desc">Error message handling </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwcsprm.html" target="_self">wcsprm</a></td><td class="desc">Coordinate transformation parameters </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwtbarr.html" target="_self">wtbarr</a></td><td class="desc">Extraction of coordinate lookup tables from BINTABLE </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/cel_8h.html b/html/cel_8h.html
index 50724cb..5a2b307 100644
--- a/html/cel_8h.html
+++ b/html/cel_8h.html
@@ -58,7 +58,6 @@
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include "<a class="el" href="prj_8h_source.html">prj.h</a>"</code><br />
-<code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
 </div>
 <p><a href="cel_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
@@ -115,6 +114,8 @@ Functions</h2></td></tr>
 <tr class="memitem:adb2e4565f61a9de5fe278d9035850dc3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">celprt</a> (const struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
 <tr class="memdesc:adb2e4565f61a9de5fe278d9035850dc3"><td class="mdescLeft"> </td><td class="mdescRight">Print routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct.  <a href="#adb2e4565f61a9de5fe278d9035850dc3">More...</a><br /></td></tr>
 <tr class="separator:adb2e4565f61a9de5fe278d9035850dc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr</a> (const struct <a class="el" href="structcelprm.html">celprm</a> *cel, const char *prefix)</td></tr>
+<tr class="separator:a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:ab0f67d1727750616f71c7bfcb3a037b6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
 <tr class="memdesc:ab0f67d1727750616f71c7bfcb3a037b6"><td class="mdescLeft"> </td><td class="mdescRight">Setup routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct.  <a href="#ab0f67d1727750616f71c7bfcb3a037b6">More...</a><br /></td></tr>
 <tr class="separator:ab0f67d1727750616f71c7bfcb3a037b6"><td class="memSeparator" colspan="2"> </td></tr>
@@ -133,6 +134,7 @@ Variables</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>These routines implement the part of the FITS World Coordinate System (WCS) standard that deals with celestial coordinates. They define methods to be used for computing celestial world coordinates from intermediate world coordinates (a linear transformation of image pixel coordinates), and vice versa. They are based on the <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct which contains all information needed  [...]
 <p>Routine <a class="el" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77" title="Default constructor for the celprm struct. ">celini()</a> is provided to initialize the <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct with default values, <a class="el" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b" title="Destructor for the celprm struct. ">celfree()</a> reclaims any memory that may have been allocated to store an error mess [...]
+<p><a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr()</a> prints the error message(s), if any, stored in a <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct and the prjprm struct that it contains.</p>
 <p>A setup routine, <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct. ">celset()</a>, computes intermediate values in the <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct from parameters in it that were supplied by the user. The struct always needs to be set up by <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct. " [...]
 <p><a class="el" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b" title="Pixel-to-world celestial transformation. ">celx2s()</a> and <a class="el" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1" title="World-to-pixel celestial transformation. ">cels2x()</a> implement the WCS celestial coordinate transformations. In fact, they are high level driver routines for the lower level spherical coordinate rotation and projection routines described in <a class="el" href="sph_8h.html">sph. [...]
 </div><h2 class="groupheader">Macro Definition Documentation</h2>
@@ -322,12 +324,51 @@ Variables</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
 <li>0: Success.</li>
+<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> pointer passed.</li>
+</ul>
+</dd></dl>
+<p><a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr()</a> - Print error messages from a <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct <a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr()</a> prints the error message(s), if any, stored in a <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> struct and the prjprm struct that it contains. If [...]
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">cel</td><td>Coordinate transformation parameters. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>If non-NULL, each output line will be prefixed with this string.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
 <li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters. ">celprm</a> pointer passed. </li>
 </ul>
 </dd></dl>
 
 </div>
 </div>
+<a class="anchor" id="a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int celperr </td>
+          <td>(</td>
+          <td class="paramtype">const struct <a class="el" href="structcelprm.html">celprm</a> * </td>
+          <td class="paramname"><em>cel</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char * </td>
+          <td class="paramname"><em>prefix</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
 <a class="anchor" id="ab0f67d1727750616f71c7bfcb3a037b6"></a>
 <div class="memitem">
 <div class="memproto">
@@ -600,7 +641,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/cel_8h_source.html b/html/cel_8h_source.html
index f18fe6a..0f1bda3 100644
--- a/html/cel_8h_source.html
+++ b/html/cel_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="cel_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: cel.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: cel.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -106,421 +106,444 @@
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">* values, celfree() reclaims any memory that may have been allocated to store</span></div>
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">* an error message, and celprt() prints its contents.</span></div>
 <div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">* A setup routine, celset(), computes intermediate values in the celprm struct</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">* from parameters in it that were supplied by the user.  The struct always</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">* needs to be set up by celset() but it need not be called explicitly - refer</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">* to the explanation of celprm::flag.</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">* celx2s() and cels2x() implement the WCS celestial coordinate</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">* transformations.  In fact, they are high level driver routines for the lower</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">* level spherical coordinate rotation and projection routines described in</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">* sph.h and prj.h.</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">* celini() - Default constructor for the celprm struct</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">* ----------------------------------------------------</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">* celini() sets all members of a celprm struct to default values.  It should</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">* be used to initialize every celprm struct.</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">*   cel       struct celprm*</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">* celfree() - Destructor for the celprm struct</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">* --------------------------------------------</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">* celfree() frees any memory that may have been allocated to store an error</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">* message in the celprm struct.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">*   cel       struct celprm*</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">* celprt() - Print routine for the celprm struct</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">* celprt() prints the contents of a celprm struct using wcsprintf().  Mainly</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">* intended for diagnostic purposes.</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">*   cel       const struct celprm*</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">* celset() - Setup routine for the celprm struct</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* celset() sets up a celprm struct according to information supplied within</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">* it.</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">* celx2s() and cels2x() if celprm::flag is anything other than a predefined</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">* magic value.</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">*   cel       struct celprm*</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">* celperr() prints the error message(s), if any, stored in a celprm struct and</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">* the prjprm struct that it contains.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">* A setup routine, celset(), computes intermediate values in the celprm struct</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">* from parameters in it that were supplied by the user.  The struct always</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">* needs to be set up by celset() but it need not be called explicitly - refer</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">* to the explanation of celprm::flag.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">* celx2s() and cels2x() implement the WCS celestial coordinate</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">* transformations.  In fact, they are high level driver routines for the lower</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">* level spherical coordinate rotation and projection routines described in</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">* sph.h and prj.h.</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">* celini() - Default constructor for the celprm struct</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">* celini() sets all members of a celprm struct to default values.  It should</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">* be used to initialize every celprm struct.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">*   cel       struct celprm*</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">* celfree() - Destructor for the celprm struct</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">* --------------------------------------------</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">* celfree() frees any memory that may have been allocated to store an error</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">* message in the celprm struct.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">*   cel       struct celprm*</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">* celprt() - Print routine for the celprm struct</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">* celprt() prints the contents of a celprm struct using wcsprintf().  Mainly</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">* intended for diagnostic purposes.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">*   cel       const struct celprm*</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* celperr() - Print error messages from a celprm struct</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">* -----------------------------------------------------</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">* celperr() prints the error message(s), if any, stored in a celprm struct and</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* the prjprm struct that it contains.  If there are no errors then nothing is</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">* printed.  It uses wcserr_prt(), q.v.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">*   cel       const struct celprm*</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">*   prefix    const char *</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*                       If non-NULL, each output line will be prefixed with</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*                       this string.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">* celx2s() - Pixel-to-world celestial transformation</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">* --------------------------------------------------</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">* celx2s() transforms (x,y) coordinates in the plane of projection to</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">* celestial coordinates (lng,lat).</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">* celset() - Setup routine for the celprm struct</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">* celset() sets up a celprm struct according to information supplied within</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">* it.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">* celx2s() and cels2x() if celprm::flag is anything other than a predefined</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">* magic value.</span></div>
 <div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">* Given and returned:</span></div>
 <div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">*   cel       struct celprm*</span></div>
 <div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
 <div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">*   nx,ny     int       Vector lengths.</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*   sxy,sll   int       Vector strides.</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*   x,y       const double[]</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*                       Projected coordinates in pseudo "degrees".</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">*   phi,theta double[]  Longitude and latitude (phi,theta) in the native</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*                       coordinate system of the projection [deg].</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
 <div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*   lng,lat   double[]  Celestial longitude and latitude (lng,lat) of the</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">*                       projected point [deg].</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">*   stat      int[]     Status return value for each vector element:</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*                         1: Invalid value of (x,y).</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">*                         5: One or more of the (x,y) coordinates were</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">* celx2s() - Pixel-to-world celestial transformation</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">* --------------------------------------------------</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">* celx2s() transforms (x,y) coordinates in the plane of projection to</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">* celestial coordinates (lng,lat).</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*   cel       struct celprm*</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*   nx,ny     int       Vector lengths.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*   sxy,sll   int       Vector strides.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">*   x,y       const double[]</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">*                       Projected coordinates in pseudo "degrees".</span></div>
 <div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*   phi,theta double[]  Longitude and latitude (phi,theta) in the native</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*                       coordinate system of the projection [deg].</span></div>
 <div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">* cels2x() - World-to-pixel celestial transformation</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">* --------------------------------------------------</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">* cels2x() transforms celestial coordinates (lng,lat) to (x,y) coordinates in</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">* the plane of projection.</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*   cel       struct celprm*</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">*   nlng,nlat int       Vector lengths.</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">*   sll,sxy   int       Vector strides.</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">*   lng,lat   const double[]</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*                       Celestial longitude and latitude (lng,lat) of the</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*                       projected point [deg].</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">*   lng,lat   double[]  Celestial longitude and latitude (lng,lat) of the</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*                       projected point [deg].</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*   stat      int[]     Status return value for each vector element:</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*                         1: Invalid value of (x,y).</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*                         5: One or more of the (x,y) coordinates were</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
 <div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*   phi,theta double[]  Longitude and latitude (phi,theta) in the native</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*                       coordinate system of the projection [deg].</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*   x,y       double[]  Projected coordinates in pseudo "degrees".</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">*   stat      int[]     Status return value for each vector element:</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*                         1: Invalid value of (lng,lat).</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*                         6: One or more of the (lng,lat) coordinates were</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">* celprm struct - Celestial transformation parameters</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">* ---------------------------------------------------</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">* The celprm struct contains information required to transform celestial</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">* coordinates.  It consists of certain members that must be set by the user</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* ("given") and others that are set by the WCSLIB routines ("returned").  Some</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">* of the latter are supplied for informational purposes and others are for</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">* internal use only.</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">* Returned celprm struct members must not be modified by the user.</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*   int flag</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">*     following celprm struct members are set or changed:</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*       - celprm::offset,</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*       - celprm::phi0,</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*       - celprm::theta0,</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*       - celprm::ref[4],</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*       - celprm::prj:</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*         - prjprm::code,</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*         - prjprm::r0,</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*         - prjprm::pv[],</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*         - prjprm::phi0,</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">*         - prjprm::theta0.</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*     This signals the initialization routine, celset(), to recompute the</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*     returned members of the celprm struct.  celset() will reset flag to</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*     indicate that this has been done.</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*   int offset</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*     (Given) If true (non-zero), an offset will be applied to (x,y) to</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*     force (x,y) = (0,0) at the fiducial point, (phi_0,theta_0).</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*     Default is 0 (false).</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*   double phi0</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*     (Given) The native longitude, phi_0 [deg], and ...</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*   double theta0</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*     (Given) ... the native latitude, theta_0 [deg], of the fiducial point,</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*     i.e. the point whose celestial coordinates are given in</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*     celprm::ref[1:2].  If undefined (set to a magic value by prjini()) the</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*     initialization routine, celset(), will set this to a projection-specific</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*     default.</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*   double ref[4]</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*     (Given) The first pair of values should be set to the celestial</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*     longitude and latitude of the fiducial point [deg] - typically right</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*     ascension and declination.  These are given by the CRVALia keywords in</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*     FITS.</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*     (Given and returned) The second pair of values are the native longitude,</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*     phi_p [deg], and latitude, theta_p [deg], of the celestial pole (the</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*     latter is the same as the celestial latitude of the native pole,</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*     delta_p) and these are given by the FITS keywords LONPOLEa and LATPOLEa</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*     (or by PVi_2a and PVi_3a attached to the longitude axis which take</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*     precedence if defined).</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*     LONPOLEa defaults to phi_0 (see above) if the celestial latitude of the</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*     fiducial point of the projection is greater than or equal to the native</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*     latitude, otherwise phi_0 + 180 [deg].  (This is the condition for the</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*     celestial latitude to increase in the same direction as the native</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*     latitude at the fiducial point.)  ref[2] may be set to UNDEFINED (from</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*     wcsmath.h) or 999.0 to indicate that the correct default should be</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*     substituted.</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*     theta_p, the native latitude of the celestial pole (or equally the</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*     celestial latitude of the native pole, delta_p) is often determined</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*     uniquely by CRVALia and LONPOLEa in which case LATPOLEa is ignored.</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*     However, in some circumstances there are two valid solutions for theta_p</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*     and LATPOLEa is used to choose between them.  LATPOLEa is set in ref[3]</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*     and the solution closest to this value is used to reset ref[3].  It is</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*     therefore legitimate, for example, to set ref[3] to +90.0 to choose the</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*     more northerly solution - the default if the LATPOLEa keyword is omitted</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*     from the FITS header.  For the special case where the fiducial point of</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*     the projection is at native latitude zero, its celestial latitude is</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*     zero, and LONPOLEa = +/- 90.0 then the celestial latitude of the native</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*     pole is not determined by the first three reference values and LATPOLEa</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*     specifies it completely.</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">* cels2x() - World-to-pixel celestial transformation</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">* --------------------------------------------------</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">* cels2x() transforms celestial coordinates (lng,lat) to (x,y) coordinates in</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">* the plane of projection.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">*   cel       struct celprm*</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*                       Celestial transformation parameters.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*   nlng,nlat int       Vector lengths.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*   sll,sxy   int       Vector strides.</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*   lng,lat   const double[]</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*                       Celestial longitude and latitude (lng,lat) of the</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*                       projected point [deg].</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*   phi,theta double[]  Longitude and latitude (phi,theta) in the native</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*                       coordinate system of the projection [deg].</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">*   x,y       double[]  Projected coordinates in pseudo "degrees".</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">*   stat      int[]     Status return value for each vector element:</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">*                         1: Invalid value of (lng,lat).</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*                         1: Null celprm pointer passed.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">*                         2: Invalid projection parameters.</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">*                         3: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*                         4: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*                         6: One or more of the (lng,lat) coordinates were</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*                       celprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">* celprm struct - Celestial transformation parameters</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">* ---------------------------------------------------</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">* The celprm struct contains information required to transform celestial</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">* coordinates.  It consists of certain members that must be set by the user</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">* ("given") and others that are set by the WCSLIB routines ("returned").  Some</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">* of the latter are supplied for informational purposes and others are for</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">* internal use only.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">* Returned celprm struct members must not be modified by the user.</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*   int flag</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*     following celprm struct members are set or changed:</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*       - celprm::offset,</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*       - celprm::phi0,</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*       - celprm::theta0,</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*       - celprm::ref[4],</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*       - celprm::prj:</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*         - prjprm::code,</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*         - prjprm::r0,</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*         - prjprm::pv[],</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*         - prjprm::phi0,</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*         - prjprm::theta0.</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*     This signals the initialization routine, celset(), to recompute the</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*     returned members of the celprm struct.  celset() will reset flag to</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*     indicate that this has been done.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*   int offset</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*     (Given) If true (non-zero), an offset will be applied to (x,y) to</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*     force (x,y) = (0,0) at the fiducial point, (phi_0,theta_0).</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*     Default is 0 (false).</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*   double phi0</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*     (Given) The native longitude, phi_0 [deg], and ...</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*   double theta0</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*     (Given) ... the native latitude, theta_0 [deg], of the fiducial point,</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*     i.e. the point whose celestial coordinates are given in</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*     celprm::ref[1:2].  If undefined (set to a magic value by prjini()) the</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*     initialization routine, celset(), will set this to a projection-specific</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*     default.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*   double ref[4]</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*     (Given) The first pair of values should be set to the celestial</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*     longitude and latitude of the fiducial point [deg] - typically right</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*     ascension and declination.  These are given by the CRVALia keywords in</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*     FITS.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*     (Given and returned) The second pair of values are the native longitude,</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*     phi_p [deg], and latitude, theta_p [deg], of the celestial pole (the</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*     latter is the same as the celestial latitude of the native pole,</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*     delta_p) and these are given by the FITS keywords LONPOLEa and LATPOLEa</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*     (or by PVi_2a and PVi_3a attached to the longitude axis which take</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*     precedence if defined).</span></div>
 <div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*     The returned value, celprm::latpreq, specifies how LATPOLEa was actually</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*     used.</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*   struct prjprm prj</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*     (Given and returned) Projection parameters described in the prologue to</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*     prj.h.</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*   double euler[5]</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*     (Returned) Euler angles and associated intermediaries derived from the</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*     coordinate reference values.  The first three values are the Z-, X-, and</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*     Z'-Euler angles [deg], and the remaining two are the cosine and sine of</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*     the X-Euler angle.</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*   int latpreq</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*     (Returned) For informational purposes, this indicates how the LATPOLEa</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*     keyword was used</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*       - 0: Not required, theta_p (== delta_p) was determined uniquely by the</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*            CRVALia and LONPOLEa keywords.</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*       - 1: Required to select between two valid solutions of theta_p.</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*       - 2: theta_p was specified solely by LATPOLEa.</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*   int isolat</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*     (Returned) True if the spherical rotation preserves the magnitude of the</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*     latitude, which occurs iff the axes of the native and celestial</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*     coordinates are coincident.  It signals an opportunity to cache</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*     intermediate calculations common to all elements in a vector</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*     computation.</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*   void *padding</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*     LONPOLEa defaults to phi_0 (see above) if the celestial latitude of the</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*     fiducial point of the projection is greater than or equal to the native</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*     latitude, otherwise phi_0 + 180 [deg].  (This is the condition for the</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*     celestial latitude to increase in the same direction as the native</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*     latitude at the fiducial point.)  ref[2] may be set to UNDEFINED (from</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*     wcsmath.h) or 999.0 to indicate that the correct default should be</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*     substituted.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*     theta_p, the native latitude of the celestial pole (or equally the</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*     celestial latitude of the native pole, delta_p) is often determined</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*     uniquely by CRVALia and LONPOLEa in which case LATPOLEa is ignored.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*     However, in some circumstances there are two valid solutions for theta_p</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*     and LATPOLEa is used to choose between them.  LATPOLEa is set in ref[3]</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*     and the solution closest to this value is used to reset ref[3].  It is</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*     therefore legitimate, for example, to set ref[3] to +90.0 to choose the</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*     more northerly solution - the default if the LATPOLEa keyword is omitted</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*     from the FITS header.  For the special case where the fiducial point of</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*     the projection is at native latitude zero, its celestial latitude is</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*     zero, and LONPOLEa = +/- 90.0 then the celestial latitude of the native</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*     pole is not determined by the first three reference values and LATPOLEa</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*     specifies it completely.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*     The returned value, celprm::latpreq, specifies how LATPOLEa was actually</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*     used.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*   struct prjprm prj</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*     (Given and returned) Projection parameters described in the prologue to</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*     prj.h.</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*   double euler[5]</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*     (Returned) Euler angles and associated intermediaries derived from the</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*     coordinate reference values.  The first three values are the Z-, X-, and</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*     Z'-Euler angles [deg], and the remaining two are the cosine and sine of</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*     the X-Euler angle.</span></div>
 <div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">* Global variable: const char *cel_errmsg[] - Status return messages</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">* ------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">* Status messages to match the status value returned from each function.</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*===========================================================================*/</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="preprocessor">#ifndef WCSLIB_CEL</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="preprocessor">#define WCSLIB_CEL</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="preprocessor">#include "<a class="code" href="prj_8h.html">prj.h</a>"</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a>[];</div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
-<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">  357</a></span> <span class="keyword">enum</span> <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a> {</div>
-<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">  358</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a>         = 0,   <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">  359</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a>    = 1,   <span class="comment">/* Null celprm pointer passed. */</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">  360</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a>       = 2,   <span class="comment">/* Invalid projection parameters. */</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">  361</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a> = 3,   <span class="comment">/* Invalid coordinate transformation</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">                                   parameters. */</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">  363</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a> = 4,   <span class="comment">/* Ill-conditioned coordinated transformation</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">                                   parameters. */</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">  365</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a>         = 5,   <span class="comment">/* One or more of the (x,y) coordinates were</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">  367</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a>       = 6    <span class="comment">/* One or more of the (lng,lat) coordinates</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">                                   were invalid. */</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span> };</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*   int latpreq</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*     (Returned) For informational purposes, this indicates how the LATPOLEa</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*     keyword was used</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*       - 0: Not required, theta_p (== delta_p) was determined uniquely by the</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*            CRVALia and LONPOLEa keywords.</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*       - 1: Required to select between two valid solutions of theta_p.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*       - 2: theta_p was specified solely by LATPOLEa.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*   int isolat</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*     (Returned) True if the spherical rotation preserves the magnitude of the</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*     latitude, which occurs iff the axes of the native and celestial</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*     coordinates are coincident.  It signals an opportunity to cache</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*     intermediate calculations common to all elements in a vector</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*     computation.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*   struct wcserr *err</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*   void *padding</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">* Global variable: const char *cel_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">* ------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">* Status messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">*===========================================================================*/</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="preprocessor">#ifndef WCSLIB_CEL</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="preprocessor">#define WCSLIB_CEL</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="preprocessor">#include "<a class="code" href="prj_8h.html">prj.h</a>"</span></div>
 <div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="structcelprm.html">  371</a></span> <span class="keyword">struct </span><a class="code" href="structcelprm.html">celprm</a> {</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">  374</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
 <div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">  378</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">offset</a>;                <span class="comment">/* Force (x,y) = (0,0) at (phi_0,theta_0).  */</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">  379</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#ab034f85dc785113c396c9864cdddfe52">phi0</a>, <a class="code" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">theta0</a>;          <span class="comment">/* Native coordinates of fiducial point.    */</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">  380</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">ref</a>[4];                <span class="comment">/* Celestial coordinates of fiducial        */</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                                 <span class="comment">/* point and native coordinates of          */</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>                                 <span class="comment">/* celestial pole.                          */</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span> </div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">  384</a></span>   <span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> <a class="code" href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">prj</a>;            <span class="comment">/* Projection parameters (see prj.h).       */</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span> </div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">  388</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">euler</a>[5];              <span class="comment">/* Euler angles and functions thereof.      */</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">  389</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">latpreq</a>;               <span class="comment">/* LATPOLEa requirement.                    */</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">  390</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">isolat</a>;                <span class="comment">/* True if |latitude| is preserved.         */</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a>[];</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">  378</a></span> <span class="keyword">enum</span> <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a> {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">  379</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a>         = 0,   <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">  380</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a>    = 1,   <span class="comment">/* Null celprm pointer passed. */</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">  381</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a>       = 2,   <span class="comment">/* Invalid projection parameters. */</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">  382</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a> = 3,   <span class="comment">/* Invalid coordinate transformation</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">                                   parameters. */</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">  384</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a> = 4,   <span class="comment">/* Ill-conditioned coordinated transformation</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">                                   parameters. */</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">  386</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a>         = 5,   <span class="comment">/* One or more of the (x,y) coordinates were</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">  388</a></span>   <a class="code" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a>       = 6    <span class="comment">/* One or more of the (lng,lat) coordinates</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">                                   were invalid. */</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> };</div>
 <div class="line"><a name="l00391"></a><span class="lineno">  391</span> </div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">  394</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">err</a>;</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span> </div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   <span class="comment">/* Private                                                                */</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">  398</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span> };</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">/* Size of the celprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="cel_8h.html#a055ad88aa219a0207e221d62e03d2e23">  402</a></span> <span class="preprocessor">#define CELLEN (sizeof(struct celprm)/sizeof(int))</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="structcelprm.html">  392</a></span> <span class="keyword">struct </span><a class="code" href="structcelprm.html">celprm</a> {</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">  395</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">  399</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">offset</a>;                <span class="comment">/* Force (x,y) = (0,0) at (phi_0,theta_0).  */</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">  400</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#ab034f85dc785113c396c9864cdddfe52">phi0</a>, <a class="code" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">theta0</a>;          <span class="comment">/* Native coordinates of fiducial point.    */</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">  401</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">ref</a>[4];                <span class="comment">/* Celestial coordinates of fiducial        */</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>                                 <span class="comment">/* point and native coordinates of          */</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>                                 <span class="comment">/* celestial pole.                          */</span></div>
 <div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77">celini</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">  405</a></span>   <span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> <a class="code" href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">prj</a>;            <span class="comment">/* Projection parameters (see prj.h).       */</span></div>
 <div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">celprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">  409</a></span>   <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">euler</a>[5];              <span class="comment">/* Euler angles and functions thereof.      */</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">  410</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">latpreq</a>;               <span class="comment">/* LATPOLEa requirement.                    */</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">  411</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">isolat</a>;                <span class="comment">/* True if |latitude| is preserved.         */</span></div>
 <div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b">celx2s</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> sxy, <span class="keywordtype">int</span> sll,</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> x[], <span class="keyword">const</span> <span class="keywordtype">double</span> y[],</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> lng[], <span class="keywordtype">double</span> lat[],</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>            <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1">cels2x</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel, <span class="keywordtype">int</span> nlng, <span class="keywordtype">int</span> nlat, <span class="keywordtype">int</span> sll, <span class="keywordtype">int</span> sxy,</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> lng[], <span class="keyword">const</span> <span class="keywordtype">double</span> lat[],</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> y[],</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>            <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="cel_8h.html#a0474e3e2d6c39249acbe58cedd573e84">  425</a></span> <span class="preprocessor">#define celini_errmsg cel_errmsg</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="cel_8h.html#a9e188b582ee4eb815466e86bb684fc82">  426</a></span> <span class="preprocessor">#define celprt_errmsg cel_errmsg</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="cel_8h.html#a2fe5a30084717036a54e7f0a920da105">  427</a></span> <span class="preprocessor">#define celset_errmsg cel_errmsg</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="cel_8h.html#af72e24d2f169c3c343c55c880a74050f">  428</a></span> <span class="preprocessor">#define celx2s_errmsg cel_errmsg</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="cel_8h.html#ac398f2bea2deac6d86c10a7b3efca966">  429</a></span> <span class="preprocessor">#define cels2x_errmsg cel_errmsg</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span> }</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_CEL */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>   <span class="comment">/* Error handling                                                         */</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">  415</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">err</a>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>   <span class="comment">/* Private                                                                */</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">  419</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> };</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">/* Size of the celprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="cel_8h.html#a055ad88aa219a0207e221d62e03d2e23">  423</a></span> <span class="preprocessor">#define CELLEN (sizeof(struct celprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77">celini</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">celprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel, <span class="keyword">const</span> <span class="keywordtype">char</span> *prefix);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel);</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b">celx2s</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> sxy, <span class="keywordtype">int</span> sll,</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> x[], <span class="keyword">const</span> <span class="keywordtype">double</span> y[],</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> lng[], <span class="keywordtype">double</span> lat[],</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>            <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1">cels2x</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html">celprm</a> *cel, <span class="keywordtype">int</span> nlng, <span class="keywordtype">int</span> nlat, <span class="keywordtype">int</span> sll, <span class="keywordtype">int</span> sxy,</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> lng[], <span class="keyword">const</span> <span class="keywordtype">double</span> lat[],</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> y[],</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>            <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="cel_8h.html#a0474e3e2d6c39249acbe58cedd573e84">  448</a></span> <span class="preprocessor">#define celini_errmsg cel_errmsg</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="cel_8h.html#a9e188b582ee4eb815466e86bb684fc82">  449</a></span> <span class="preprocessor">#define celprt_errmsg cel_errmsg</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="cel_8h.html#a2fe5a30084717036a54e7f0a920da105">  450</a></span> <span class="preprocessor">#define celset_errmsg cel_errmsg</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="cel_8h.html#af72e24d2f169c3c343c55c880a74050f">  451</a></span> <span class="preprocessor">#define celx2s_errmsg cel_errmsg</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="cel_8h.html#ac398f2bea2deac6d86c10a7b3efca966">  452</a></span> <span class="preprocessor">#define cels2x_errmsg cel_errmsg</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> }</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_CEL */</span><span class="preprocessor"></span></div>
 <div class="ttc" id="cel_8h_html_a2ac33dbe3aa2efff60543213b0a691f5"><div class="ttname"><a href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></div><div class="ttdeci">const char * cel_errmsg[]</div></div>
 <div class="ttc" id="cel_8h_html_adb2e4565f61a9de5fe278d9035850dc3"><div class="ttname"><a href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">celprt</a></div><div class="ttdeci">int celprt(const struct celprm *cel)</div><div class="ttdoc">Print routine for the celprm struct. </div></div>
-<div class="ttc" id="structcelprm_html_a3f9ae993e97f0e73e3f59117929eeda6"><div class="ttname"><a href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">celprm::ref</a></div><div class="ttdeci">double ref[4]</div><div class="ttdef"><b>Definition:</b> cel.h:380</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> cel.h:359</div></div>
+<div class="ttc" id="structcelprm_html_a3f9ae993e97f0e73e3f59117929eeda6"><div class="ttname"><a href="structcelprm.html#a3f9ae993e97f0e73e3f59117929eeda6">celprm::ref</a></div><div class="ttdeci">double ref[4]</div><div class="ttdef"><b>Definition:</b> cel.h:401</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> cel.h:380</div></div>
 <div class="ttc" id="cel_8h_html_a6661c05703158b0808038b7d551f1ea1"><div class="ttname"><a href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1">cels2x</a></div><div class="ttdeci">int cels2x(struct celprm *cel, int nlng, int nlat, int sll, int sxy, const double lng[], const double lat[], double phi[], double theta[], double x[], double y[], int stat[])</div><div class="ttdoc">World-to-pixel celestial transformation. </div></div>
 <div class="ttc" id="prj_8h_html"><div class="ttname"><a href="prj_8h.html">prj.h</a></div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
-<div class="ttc" id="structcelprm_html"><div class="ttname"><a href="structcelprm.html">celprm</a></div><div class="ttdoc">Celestial transformation parameters. </div><div class="ttdef"><b>Definition:</b> cel.h:371</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a></div><div class="ttdeci">cel_errmsg_enum</div><div class="ttdef"><b>Definition:</b> cel.h:357</div></div>
-<div class="ttc" id="structcelprm_html_a74585275b64c292b394b74f2f19a8048"><div class="ttname"><a href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">celprm::offset</a></div><div class="ttdeci">int offset</div><div class="ttdef"><b>Definition:</b> cel.h:378</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> cel.h:363</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> cel.h:365</div></div>
-<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:638</div></div>
+<div class="ttc" id="structcelprm_html"><div class="ttname"><a href="structcelprm.html">celprm</a></div><div class="ttdoc">Celestial transformation parameters. </div><div class="ttdef"><b>Definition:</b> cel.h:392</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a></div><div class="ttdeci">cel_errmsg_enum</div><div class="ttdef"><b>Definition:</b> cel.h:378</div></div>
+<div class="ttc" id="structcelprm_html_a74585275b64c292b394b74f2f19a8048"><div class="ttname"><a href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">celprm::offset</a></div><div class="ttdeci">int offset</div><div class="ttdef"><b>Definition:</b> cel.h:399</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> cel.h:384</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> cel.h:386</div></div>
+<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:639</div></div>
+<div class="ttc" id="cel_8h_html_a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><div class="ttname"><a href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr</a></div><div class="ttdeci">int celperr(const struct celprm *cel, const char *prefix)</div></div>
 <div class="ttc" id="cel_8h_html_a39bb7bf8e545c200191d51884ecfb89b"><div class="ttname"><a href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a></div><div class="ttdeci">int celfree(struct celprm *cel)</div><div class="ttdoc">Destructor for the celprm struct. </div></div>
-<div class="ttc" id="structcelprm_html_a756c8f0991a748ab47361b0215c4577b"><div class="ttname"><a href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">celprm::latpreq</a></div><div class="ttdeci">int latpreq</div><div class="ttdef"><b>Definition:</b> cel.h:389</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> cel.h:361</div></div>
-<div class="ttc" id="structcelprm_html_a408a39c1d060d5b32f884f8a8c60aaa2"><div class="ttname"><a href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> cel.h:374</div></div>
-<div class="ttc" id="structcelprm_html_a011e38b3a5505fdc13855348571bfad1"><div class="ttname"><a href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">celprm::theta0</a></div><div class="ttdeci">double theta0</div><div class="ttdef"><b>Definition:</b> cel.h:379</div></div>
+<div class="ttc" id="structcelprm_html_a756c8f0991a748ab47361b0215c4577b"><div class="ttname"><a href="structcelprm.html#a756c8f0991a748ab47361b0215c4577b">celprm::latpreq</a></div><div class="ttdeci">int latpreq</div><div class="ttdef"><b>Definition:</b> cel.h:410</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> cel.h:382</div></div>
+<div class="ttc" id="structcelprm_html_a408a39c1d060d5b32f884f8a8c60aaa2"><div class="ttname"><a href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> cel.h:395</div></div>
+<div class="ttc" id="structcelprm_html_a011e38b3a5505fdc13855348571bfad1"><div class="ttname"><a href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">celprm::theta0</a></div><div class="ttdeci">double theta0</div><div class="ttdef"><b>Definition:</b> cel.h:400</div></div>
 <div class="ttc" id="cel_8h_html_a1fe1b137ade45ea28e61f44d4708fb77"><div class="ttname"><a href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77">celini</a></div><div class="ttdeci">int celini(struct celprm *cel)</div><div class="ttdoc">Default constructor for the celprm struct. </div></div>
-<div class="ttc" id="structcelprm_html_acab5a98c001b85a565b7976499c1739c"><div class="ttname"><a href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">celprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> cel.h:398</div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> cel.h:367</div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> cel.h:358</div></div>
-<div class="ttc" id="structcelprm_html_a7bb5e1ff4d73c884d73eeb0f8f2677d7"><div class="ttname"><a href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">celprm::isolat</a></div><div class="ttdeci">int isolat</div><div class="ttdef"><b>Definition:</b> cel.h:390</div></div>
-<div class="ttc" id="structcelprm_html_ab034f85dc785113c396c9864cdddfe52"><div class="ttname"><a href="structcelprm.html#ab034f85dc785113c396c9864cdddfe52">celprm::phi0</a></div><div class="ttdeci">double phi0</div><div class="ttdef"><b>Definition:</b> cel.h:379</div></div>
-<div class="ttc" id="structcelprm_html_a1b9cbfd7cfa2306464d57dc4acd03b06"><div class="ttname"><a href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> cel.h:394</div></div>
+<div class="ttc" id="structcelprm_html_acab5a98c001b85a565b7976499c1739c"><div class="ttname"><a href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">celprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> cel.h:419</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> cel.h:388</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> cel.h:379</div></div>
+<div class="ttc" id="structcelprm_html_a7bb5e1ff4d73c884d73eeb0f8f2677d7"><div class="ttname"><a href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">celprm::isolat</a></div><div class="ttdeci">int isolat</div><div class="ttdef"><b>Definition:</b> cel.h:411</div></div>
+<div class="ttc" id="structcelprm_html_ab034f85dc785113c396c9864cdddfe52"><div class="ttname"><a href="structcelprm.html#ab034f85dc785113c396c9864cdddfe52">celprm::phi0</a></div><div class="ttdeci">double phi0</div><div class="ttdef"><b>Definition:</b> cel.h:400</div></div>
+<div class="ttc" id="structcelprm_html_a1b9cbfd7cfa2306464d57dc4acd03b06"><div class="ttname"><a href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> cel.h:415</div></div>
 <div class="ttc" id="cel_8h_html_a1fe7f134670262eb54b6049c0275a27b"><div class="ttname"><a href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b">celx2s</a></div><div class="ttdeci">int celx2s(struct celprm *cel, int nx, int ny, int sxy, int sll, const double x[], const double y[], double phi[], double theta[], double lng[], double lat[], int stat[])</div><div class="ttdoc">Pixel-to-world celestial transformation. </div></div>
-<div class="ttc" id="structcelprm_html_a80ea2023638ededd2760cc9a260c456b"><div class="ttname"><a href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">celprm::euler</a></div><div class="ttdeci">double euler[5]</div><div class="ttdef"><b>Definition:</b> cel.h:388</div></div>
-<div class="ttc" id="structcelprm_html_abe1991f17c0ecb857d5bd30a6a689b84"><div class="ttname"><a href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">celprm::prj</a></div><div class="ttdeci">struct prjprm prj</div><div class="ttdef"><b>Definition:</b> cel.h:384</div></div>
+<div class="ttc" id="structcelprm_html_a80ea2023638ededd2760cc9a260c456b"><div class="ttname"><a href="structcelprm.html#a80ea2023638ededd2760cc9a260c456b">celprm::euler</a></div><div class="ttdeci">double euler[5]</div><div class="ttdef"><b>Definition:</b> cel.h:409</div></div>
+<div class="ttc" id="structcelprm_html_abe1991f17c0ecb857d5bd30a6a689b84"><div class="ttname"><a href="structcelprm.html#abe1991f17c0ecb857d5bd30a6a689b84">celprm::prj</a></div><div class="ttdeci">struct prjprm prj</div><div class="ttdef"><b>Definition:</b> cel.h:405</div></div>
 <div class="ttc" id="cel_8h_html_ab0f67d1727750616f71c7bfcb3a037b6"><div class="ttname"><a href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a></div><div class="ttdeci">int celset(struct celprm *cel)</div><div class="ttdoc">Setup routine for the celprm struct. </div></div>
-<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> cel.h:360</div></div>
+<div class="ttc" id="cel_8h_html_ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642"><div class="ttname"><a href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> cel.h:381</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/classes.html b/html/classes.html
index 375574e..ac60fcc 100644
--- a/html/classes.html
+++ b/html/classes.html
@@ -47,29 +47,31 @@
 <div class="title">Data Structure Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a> | <a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a> | <a class="qindex" href="#letter_W">W</a></div>
 <table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
 <tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  c  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structfitskeyid.html">fitskeyid</a>   </td><td valign="top"><a class="el" href="structpscard.html">pscard</a>   </td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  t  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structwcsprm.html">wcsprm</a>   </td></tr>
+</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  f  </div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  p  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structspxprm.html">spxprm</a>   </td><td valign="top"><a class="el" href="structwcsprm.html">wcsprm</a>   </td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  t  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structwtbarr.html">wtbarr</a>   </td></tr>
+<tr><td valign="top"><a class="el" href="structcelprm.html">celprm</a>   </td><td valign="top"><a class="el" href="structfitskey.html">fitskey</a>   </td><td valign="top"><a class="el" href="structprjprm.html">prjprm</a>   </td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  d  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structfitskeyid.html">fitskeyid</a>   </td><td valign="top"><a class="el" href="structpscard.html">pscard</a>   </td><td valign="top"><a class="el" href="structtabprm.html">tabprm</a>   </td><td></td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  l  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structpvcard.html">pvcard</a>   </td><td valign="top"><a class="el" href="structwtbarr.html">wtbarr</a>   </td></tr>
-<tr><td valign="top"><a class="el" href="structcelprm.html">celprm</a>   </td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  s  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtabprm.html">tabprm</a>   </td><td></td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  f  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structlinprm.html">linprm</a>   </td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  w  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structpvcard.html">pvcard</a>   </td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  w  </div></td></tr></table>
 </td><td></td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  p  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structspcprm.html">spcprm</a>   </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structfitskey.html">fitskey</a>   </td><td valign="top"><a class="el" href="structspxprm.html">spxprm</a>   </td><td valign="top"><a class="el" href="structwcserr.html">wcserr</a>   </td><td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="structprjprm.html">prjprm</a>   </td><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structdisprm.html">disprm</a>   </td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  s  </div></td></tr></table>
+</td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="structlinprm.html">linprm</a>   </td><td valign="top"><a class="el" href="structwcserr.html">wcserr</a>   </td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="structspcprm.html">spcprm</a>   </td><td></td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
-<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a> | <a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a> | <a class="qindex" href="#letter_W">W</a></div>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/deprecated.html b/html/deprecated.html
index 8d2c083..fde23d2 100644
--- a/html/deprecated.html
+++ b/html/deprecated.html
@@ -126,7 +126,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/diagnostics.html b/html/diagnostics.html
index 8a4496e..e4eed98 100644
--- a/html/diagnostics.html
+++ b/html/diagnostics.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -79,7 +79,7 @@ ERROR 2 in bonset() at line 5727 of file prj.c:
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/dir_af99bb3c152a306abd27951285ad1127.html b/html/dir_af99bb3c152a306abd27951285ad1127.html
index bde8445..85c76dc 100644
--- a/html/dir_af99bb3c152a306abd27951285ad1127.html
+++ b/html/dir_af99bb3c152a306abd27951285ad1127.html
@@ -50,6 +50,8 @@
 Files</h2></td></tr>
 <tr class="memitem:cel_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html">cel.h</a> <a href="cel_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:dis_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html">dis.h</a> <a href="dis_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:fitshdr_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="fitshdr_8h.html">fitshdr.h</a> <a href="fitshdr_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:getwcstab_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="getwcstab_8h.html">getwcstab.h</a> <a href="getwcstab_8h_source.html">[code]</a></td></tr>
@@ -90,7 +92,7 @@ Files</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:32 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/dis_8h.html b/html/dis_8h.html
new file mode 100644
index 0000000..c7f2a10
--- /dev/null
+++ b/html/dis_8h.html
@@ -0,0 +1,690 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<title>WCSLIB: dis.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">WCSLIB
+    <span id="projectnumber">4.25.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="annotated.html"><span>Data Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_af99bb3c152a306abd27951285ad1127.html">C</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> |
+<a href="#define-members">Macros</a> |
+<a href="#enum-members">Enumerations</a> |
+<a href="#func-members">Functions</a> |
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">dis.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="dis_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html">disprm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Distortion parameters.  <a href="structdisprm.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a23068602f42552a4257462b2875d8c51"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a></td></tr>
+<tr class="separator:a23068602f42552a4257462b2875d8c51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac593cd79fb7f89b1c7395d0ecf2f7876"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">DISX2P_ARGS</a></td></tr>
+<tr class="separator:ac593cd79fb7f89b1c7395d0ecf2f7876"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5df41117cb392fc0c5d051002b441aa9"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a5df41117cb392fc0c5d051002b441aa9">DISLEN</a>   (sizeof(struct <a class="el" href="structdisprm.html">disprm</a>)/sizeof(int))</td></tr>
+<tr class="separator:a5df41117cb392fc0c5d051002b441aa9"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a27ab258e601dcfa4d184a35edbc590fd"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis_errmsg_enum</a> { <br />
+  <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">DISERR_SUCCESS</a> = 0, 
+<a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">DISERR_NULL_POINTER</a> = 1, 
+<a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">DISERR_MEMORY</a> = 2, 
+<a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">DISERR_BAD_PARAM</a> = 3, 
+<br />
+  <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">DISERR_DISTORT</a> = 4, 
+<a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">DISERR_DEDISTORT</a> = 5
+<br />
+ }</td></tr>
+<tr class="separator:a27ab258e601dcfa4d184a35edbc590fd"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a8896e2a5330e55cd85da4a28ed6ee463"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463">disini</a> (int alloc, int naxis, struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:a8896e2a5330e55cd85da4a28ed6ee463"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#a8896e2a5330e55cd85da4a28ed6ee463">More...</a><br /></td></tr>
+<tr class="separator:a8896e2a5330e55cd85da4a28ed6ee463"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acb2f2341971a191fdbea544602405723"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723">disparms</a> (struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:acb2f2341971a191fdbea544602405723"><td class="mdescLeft"> </td><td class="mdescRight">Allocate memory for parameters in a <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#acb2f2341971a191fdbea544602405723">More...</a><br /></td></tr>
+<tr class="separator:acb2f2341971a191fdbea544602405723"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a42e03676a3def43ef6b936cd7beb4dd5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5">discpy</a> (int alloc, const struct <a class="el" href="structdisprm.html">disprm</a> *dissrc, struct <a class="el" href="structdisprm.html">disprm</a> *disdst)</td></tr>
+<tr class="memdesc:a42e03676a3def43ef6b936cd7beb4dd5"><td class="mdescLeft"> </td><td class="mdescRight">Copy routine for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#a42e03676a3def43ef6b936cd7beb4dd5">More...</a><br /></td></tr>
+<tr class="separator:a42e03676a3def43ef6b936cd7beb4dd5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a83b98d0f6429f4f19024675645026187"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a83b98d0f6429f4f19024675645026187">disfree</a> (struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:a83b98d0f6429f4f19024675645026187"><td class="mdescLeft"> </td><td class="mdescRight">Destructor for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#a83b98d0f6429f4f19024675645026187">More...</a><br /></td></tr>
+<tr class="separator:a83b98d0f6429f4f19024675645026187"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aeee35e0d5183e74f20c64526d908886b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#aeee35e0d5183e74f20c64526d908886b">disprt</a> (const struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:aeee35e0d5183e74f20c64526d908886b"><td class="mdescLeft"> </td><td class="mdescRight">Print routine for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#aeee35e0d5183e74f20c64526d908886b">More...</a><br /></td></tr>
+<tr class="separator:aeee35e0d5183e74f20c64526d908886b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad1bdf4497eb4513ca8431e1baa419041"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041">disset</a> (struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:ad1bdf4497eb4513ca8431e1baa419041"><td class="mdescLeft"> </td><td class="mdescRight">Setup routine for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct.  <a href="#ad1bdf4497eb4513ca8431e1baa419041">More...</a><br /></td></tr>
+<tr class="separator:ad1bdf4497eb4513ca8431e1baa419041"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a135726e4c4c5bc00e2eba865ab202201"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201">disp2x</a> (struct <a class="el" href="structdisprm.html">disprm</a> *dis, const double rawcrd[], double discrd[])</td></tr>
+<tr class="memdesc:a135726e4c4c5bc00e2eba865ab202201"><td class="mdescLeft"> </td><td class="mdescRight">Apply distortion function.  <a href="#a135726e4c4c5bc00e2eba865ab202201">More...</a><br /></td></tr>
+<tr class="separator:a135726e4c4c5bc00e2eba865ab202201"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac589d5e85afe3d775cba4c06734ce653"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653">disx2p</a> (struct <a class="el" href="structdisprm.html">disprm</a> *dis, const double discrd[], double rawcrd[])</td></tr>
+<tr class="memdesc:ac589d5e85afe3d775cba4c06734ce653"><td class="mdescLeft"> </td><td class="mdescRight">Apply de-distortion function.  <a href="#ac589d5e85afe3d775cba4c06734ce653">More...</a><br /></td></tr>
+<tr class="separator:ac589d5e85afe3d775cba4c06734ce653"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a402a8a2a75907d0849cee87a0d72b5f5"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a402a8a2a75907d0849cee87a0d72b5f5">tpvset</a> (int j, struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:a402a8a2a75907d0849cee87a0d72b5f5"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a402a8a2a75907d0849cee87a0d72b5f5">More...</a><br /></td></tr>
+<tr class="separator:a402a8a2a75907d0849cee87a0d72b5f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4182d3cd45a022e930c44c4f933c0639"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a4182d3cd45a022e930c44c4f933c0639">tpv1</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a4182d3cd45a022e930c44c4f933c0639"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a4182d3cd45a022e930c44c4f933c0639">More...</a><br /></td></tr>
+<tr class="separator:a4182d3cd45a022e930c44c4f933c0639"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a961d359c77ef6d9e4d2f2f14a53d0b39"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a961d359c77ef6d9e4d2f2f14a53d0b39">tpv2</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a961d359c77ef6d9e4d2f2f14a53d0b39"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a961d359c77ef6d9e4d2f2f14a53d0b39">More...</a><br /></td></tr>
+<tr class="separator:a961d359c77ef6d9e4d2f2f14a53d0b39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5d5f35665cd05c17322147bf483ec914"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a5d5f35665cd05c17322147bf483ec914">tpv3</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a5d5f35665cd05c17322147bf483ec914"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a5d5f35665cd05c17322147bf483ec914">More...</a><br /></td></tr>
+<tr class="separator:a5d5f35665cd05c17322147bf483ec914"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afca391dcab0909f05654f99505f2a4fb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#afca391dcab0909f05654f99505f2a4fb">tpv4</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:afca391dcab0909f05654f99505f2a4fb"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#afca391dcab0909f05654f99505f2a4fb">More...</a><br /></td></tr>
+<tr class="separator:afca391dcab0909f05654f99505f2a4fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a393642b85f8a7da45a0447c81a20202d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a393642b85f8a7da45a0447c81a20202d">tpv5</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a393642b85f8a7da45a0447c81a20202d"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a393642b85f8a7da45a0447c81a20202d">More...</a><br /></td></tr>
+<tr class="separator:a393642b85f8a7da45a0447c81a20202d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4c12eaf2bad14222de4213f69206c7a8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a4c12eaf2bad14222de4213f69206c7a8">tpv6</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a4c12eaf2bad14222de4213f69206c7a8"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a4c12eaf2bad14222de4213f69206c7a8">More...</a><br /></td></tr>
+<tr class="separator:a4c12eaf2bad14222de4213f69206c7a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a952910ebfd260e7d9b59e134674f8f26"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a952910ebfd260e7d9b59e134674f8f26">tpv7</a> (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="memdesc:a952910ebfd260e7d9b59e134674f8f26"><td class="mdescLeft"> </td><td class="mdescRight">(Internal use only.)  <a href="#a952910ebfd260e7d9b59e134674f8f26">More...</a><br /></td></tr>
+<tr class="separator:a952910ebfd260e7d9b59e134674f8f26"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a6f125a402553f5dab46435299f0742a3"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="dis_8h.html#a6f125a402553f5dab46435299f0742a3">dis_errmsg</a> []</td></tr>
+<tr class="memdesc:a6f125a402553f5dab46435299f0742a3"><td class="mdescLeft"> </td><td class="mdescRight">Status return messages.  <a href="#a6f125a402553f5dab46435299f0742a3">More...</a><br /></td></tr>
+<tr class="separator:a6f125a402553f5dab46435299f0742a3"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>These routines apply the distortion functions defined by the extension to the FITS WCS standard proposed in Paper IV. They are based on the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct which contains all information needed for the computations. The struct contains some members that must be set by the user, and others that are maintained by these routines, somewhat like a C++ class but with no encapsulation.</p>
+<p>Four routines, <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a>, <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723" title="Allocate memory for parameters in a disprm struct. ">disparms()</a>, <a class="el" href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5" title="Copy routine for the disprm struct. ">discpy()</a>, and <a class="el" href="dis_8h.html#a83b98d0f6429f4f19024675645026187" t [...]
+<p>A setup routine, <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>, computes intermediate values in the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct from parameters in it that were supplied by the user. The struct always needs to be set up by <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>, [...]
+<p><a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201" title="Apply distortion function. ">disp2x()</a> and <a class="el" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653" title="Apply de-distortion function. ">disx2p()</a> implement the WCS distortion functions, <a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201" title="Apply distortion function. ">disp2x()</a> using separate functions, such as <a class="el" href="dis_8h.html#a4182d3cd45a022e930c44c4f933 [...]
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a23068602f42552a4257462b2875d8c51"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DISP2X_ARGS</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">int</span> nparm, <span class="keyword">const</span> <span class="keywordtype">double</span> parms[], <span class="keywordtype">int</span> ncrd, \</div>
+<div class="line">const <span class="keywordtype">double</span> rawcrd[], <span class="keywordtype">double</span> *discrd</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ac593cd79fb7f89b1c7395d0ecf2f7876"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DISX2P_ARGS</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">int</span> nparm, <span class="keyword">const</span> <span class="keywordtype">double</span> parms[], <span class="keywordtype">int</span> ncrd, \</div>
+<div class="line">const <span class="keywordtype">double</span> discrd[], <span class="keywordtype">double</span> rawcrd[]</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a5df41117cb392fc0c5d051002b441aa9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define DISLEN   (sizeof(struct <a class="el" href="structdisprm.html">disprm</a>)/sizeof(int))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis_errmsg_enum</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8"></a>DISERR_SUCCESS </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46"></a>DISERR_NULL_POINTER </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80"></a>DISERR_MEMORY </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0"></a>DISERR_BAD_PARAM </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579"></a>DISERR_DISTORT </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a"></a>DISERR_DEDISTORT </td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8896e2a5330e55cd85da4a28ed6ee463"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disini </td>
+          <td>(</td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>alloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>naxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disini</b>() allocates memory for arrays in a <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct and sets all members of the struct to default values.</p>
+<p>In general, different distortion functions may be associated with each axis, and at the point where <b>disini</b>() is invoked, it is usually not known how many distortion parameters may be required for each. Hence a separate routine, <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723" title="Allocate memory for parameters in a disprm struct. ">disparms()</a>, is provided to allocate memory for the parameter arrays if desired. One way or the other, after invoking <b>dis [...]
+<p><b>PLEASE NOTE:</b> every <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct must be initialized by <b>disini</b>(), possibly repeatedly. On the first invokation, and only the first invokation, <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a> must be set to -1 to initialize memory management, regardless of whether <b>disini</b>() will actually be used to allocate memory.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>If true, allocate memory unconditionally for arrays in the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct. <br />
+ If false, it is assumed that pointers to these arrays have been set by the user except if they are null pointers in which case memory will be allocated for them regardless. (In other words, setting alloc true saves having to initalize these pointers to zero.) </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">naxis</td><td>The number of world coordinate axes, used to determine array sizes.</td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">dis</td><td>Distortion function parameters. Note that, in order to initialize memory management <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a> must be set to -1 when dis is initialized for the first time (memory leaks may result if it had already been initialized).</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed.</li>
+<li>2: Memory allocation failed.</li>
+</ul>
+For returns > 1, a detailed error message is set in <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="acb2f2341971a191fdbea544602405723"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disparms </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disparms</b>() allocates memory for the arrays of distortion function parameters in a <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct. It relies on <a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm::nparm</a>[] having been set to determine the number of parameters for each distortion function. The allocated memory will be freed by <a class="el" href="dis_8h.html#a83b98d0f6429f4f19024675645026187" title="Destruct [...]
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">dis</td><td><a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm::nparm</a>[] is used to determine the number of parameters in each distortion function. Memory is allocated for the distortion function parameters, <a class="el" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">disprm::parms</a>[][], and it is initialized to zero.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed.</li>
+<li>2: Memory allocation failed.</li>
+</ul>
+For returns > 1, a detailed error message is set in <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a42e03676a3def43ef6b936cd7beb4dd5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int discpy </td>
+          <td>(</td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>alloc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dissrc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>disdst</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>discpy</b>() does a deep copy of one <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct to another, using <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a> to allocate memory unconditionally for its arrays if required. Only the "information to be provided" part of the struct is copied; a call to <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa [...]
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>If true, allocate memory unconditionally for arrays in the destination, including the parameter array via a call to <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723" title="Allocate memory for parameters in a disprm struct. ">disparms()</a>. Otherwise, it is assumed that pointers to these arrays have been set by the user except if they are null pointers in which case memory will be allocated for th [...]
+    <tr><td class="paramdir">[in]</td><td class="paramname">dissrc</td><td>Struct to copy from.</td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">disdst</td><td>Struct to copy to. <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a> should be set to -1 if disdst was not previously initialized (memory leaks may result if it was previously initialized).</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed.</li>
+<li>2: Memory allocation failed.</li>
+</ul>
+For returns > 1, a detailed error message is set in <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a83b98d0f6429f4f19024675645026187"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disfree </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disfree</b>() frees memory allocated for the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> arrays by <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a> and/or <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723" title="Allocate memory for parameters in a disprm struct. ">disparms()</a>. <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463"  [...]
+<p><b>PLEASE NOTE:</b> <b>disfree</b>() must not be invoked on a <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct that was not initialized by <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">dis</td><td>Distortion function parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aeee35e0d5183e74f20c64526d908886b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprt </td>
+          <td>(</td>
+          <td class="paramtype">const struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disprt</b>() prints the contents of a <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct using <a class="el" href="wcsprintf_8h.html#a46950abaf5a27347da8160741f98f973" title="Print function used by WCSLIB diagnostic routines. ">wcsprintf()</a>. Mainly intended for diagnostic purposes.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">dis</td><td>Distortion function parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad1bdf4497eb4513ca8431e1baa419041"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disset </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disset</b>(), sets up the <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> struct according to information supplied within it - refer to the explanation of <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a>.</p>
+<p>Note that this routine need not be called directly; it will be invoked by <a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201" title="Apply distortion function. ">disp2x()</a> and <a class="el" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653" title="Apply de-distortion function. ">disx2p()</a> if the <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a> is anything other than a predefined magic value.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">dis</td><td>Distortion function parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed.</li>
+<li>2: Memory allocation failed.</li>
+<li>3: Invalid parameter.</li>
+</ul>
+For returns > 1, a detailed error message is set in <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a135726e4c4c5bc00e2eba865ab202201"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disp2x </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const double </td>
+          <td class="paramname"><em>rawcrd</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double </td>
+          <td class="paramname"><em>discrd</em>[] </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disp2x</b>() applies the distortion functions. By definition, the distortion is in the pixel-to-world direction.</p>
+<p>Depending on the point in the algorithm chain at which it is invoked, <b>disp2x</b>() may transform pixel coordinates to corrected pixel coordinates, or intermediate pixel coordinates to corrected intermediate pixel coordinates, or image coordinates to corrected image coordinates. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac589d5e85afe3d775cba4c06734ce653"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disx2p </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const double </td>
+          <td class="paramname"><em>discrd</em>[], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double </td>
+          <td class="paramname"><em>rawcrd</em>[] </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>disx2p</b>() applies the inverse of the distortion functions. By definition, the de-distortion is in the world-to-pixel direction.</p>
+<p>Depending on the point in the algorithm chain at which it is invoked, <b>disx2p</b>() may transform corrected pixel coordinates to pixel coordinates, or corrected intermediate pixel coordinates to intermediate pixel coordinates, or corrected image coordinates to image coordinates.</p>
+<p><b>disx2p</b>() iteratively solves for the inverse using <a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201" title="Apply distortion function. ">disp2x()</a>. It assumes that the distortion is small and the functions are well-behaved, being continuous and with continuous derivatives. Also that, to first order in the neighbourhood of the solution, discrd[j] ~= a + b*rawcrd[j], i.e. independent of rawcrd[i], where i != j. This is effectively equivalent to assuming that th [...]
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">dis</td><td>Distortion function parameters.</td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">discrd</td><td>Array of coordinates.</td></tr>
+    <tr><td class="paramdir">[out]</td><td class="paramname">rawcrd</td><td>Array of coordinates to which the inverse distortion functions have been applied.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structdisprm.html" title="Distortion parameters. ">disprm</a> pointer passed.</li>
+<li>2: Memory allocation failed.</li>
+<li>3: Invalid parameter.</li>
+<li>5: De-distort error.</li>
+</ul>
+For returns > 1, a detailed error message is set in <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a402a8a2a75907d0849cee87a0d72b5f5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpvset </td>
+          <td>(</td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>j</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a4182d3cd45a022e930c44c4f933c0639"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv1 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a961d359c77ef6d9e4d2f2f14a53d0b39"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv2 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a5d5f35665cd05c17322147bf483ec914"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv3 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="afca391dcab0909f05654f99505f2a4fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv4 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a393642b85f8a7da45a0447c81a20202d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv5 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a4c12eaf2bad14222de4213f69206c7a8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv6 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<a class="anchor" id="a952910ebfd260e7d9b59e134674f8f26"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">tpv7 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a> </td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For internal use only in the implementation of the TPV "projection". </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="a6f125a402553f5dab46435299f0742a3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char * dis_errmsg[]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Error messages to match the status value returned from each function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/html/dis_8h_source.html b/html/dis_8h_source.html
new file mode 100644
index 0000000..bc8b5c8
--- /dev/null
+++ b/html/dis_8h_source.html
@@ -0,0 +1,689 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<title>WCSLIB: dis.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">WCSLIB
+    <span id="projectnumber">4.25.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="annotated.html"><span>Data Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_af99bb3c152a306abd27951285ad1127.html">C</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">dis.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="dis_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment"></span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">  WCSLIB is free software: you can redistribute it and/or modify it under the</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">  terms of the GNU Lesser General Public License as published by the Free</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">  Software Foundation, either version 3 of the License, or (at your option)</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">  any later version.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment"></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">  more details.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">  You should have received a copy of the GNU Lesser General Public License</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">  along with WCSLIB.  If not, see http://www.gnu.org/licenses.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment"></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">  Direct correspondence concerning WCSLIB to mark at calabretta.id.au</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: dis.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - experimental C routines that implement proposed extensions to</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of distortions in FITS world coordinate systems",</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">*   Calabretta, M.R. et al. (Paper IV), draft dated 2004/04/22 available from</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">*   http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">* Refer to the README file provided with WCSLIB for an overview of the</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">* library.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">* Summary of the dis routines</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">* ---------------------------</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">* These routines apply the distortion functions defined by the extension to</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">* the FITS WCS standard proposed in Paper IV.  They are based on the disprm</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">* struct which contains all information needed for the computations.  The</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">* struct contains some members that must be set by the user, and others that</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">* are maintained by these routines, somewhat like a C++ class but with no</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">* encapsulation.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">* Four routines, disini(), disparms(), discpy(), and disfree() are provided to</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">* manage the disprm struct, and another, disprt(), prints its contents.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">* A setup routine, disset(), computes intermediate values in the disprm struct</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">* from parameters in it that were supplied by the user.  The struct always</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">* needs to be set up by disset(), though disset() need not be called</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">* explicitly - refer to the explanation of disprm::flag.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">* disp2x() and disx2p() implement the WCS distortion functions, disp2x() using</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">* separate functions, such as tpv1(), to do the computation.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">* disini() - Default constructor for the disprm struct</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">* disini() allocates memory for arrays in a disprm struct and sets all members</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">* of the struct to default values.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">* In general, different distortion functions may be associated with each axis,</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">* and at the point where disini() is invoked, it is usually not known how many</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">* distortion parameters may be required for each.  Hence a separate routine,</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">* disparms(), is provided to allocate memory for the parameter arrays if</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">* desired.  One way or the other, after invoking disini(), it is the caller's</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">* responsibility to allocate memory (if necessary) for the distortion</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">* parameters.  If disparms() is used for this purpose, then disfree() will</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">* free it and subsequent calls to disini() will manage it, e.g. if naxis</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">* changes.  Of course, if there is no distortion function on an axis then</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">* there is no need to allocate memory for any parameters.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">* PLEASE NOTE: every disprm struct must be initialized by disini(), possibly</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">* repeatedly.  On the first invokation, and only the first invokation,</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">* disprm::flag must be set to -1 to initialize memory management, regardless</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">* of whether disini() will actually be used to allocate memory.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for arrays in</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">*                       the disprm struct.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">*                       If false, it is assumed that pointers to these arrays</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">*                       have been set by the user except if they are null</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">*                       pointers in which case memory will be allocated for</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">*                       them regardless.  (In other words, setting alloc true</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*                       saves having to initalize these pointers to zero.)</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">*   naxis     int       The number of world coordinate axes, used to determine</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">*                       array sizes.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*                       Distortion function parameters.  Note that, in order</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*                       to initialize memory management disprm::flag must be</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*                       set to -1 when dis is initialized for the first time</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">*                       (memory leaks may result if it had already been</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">*                       initialized).</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">* disparms() - Allocate memory for parameters in a disprm struct</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">* --------------------------------------------------------------</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* disparms() allocates memory for the arrays of distortion function parameters</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">* in a disprm struct.  It relies on disprm::nparm[] having been set to</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">* determine the number of parameters for each distortion function.  The</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* allocated memory will be freed by disfree().</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">*                       disprm::nparm[] is used to determine the number of</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">*                       parameters in each distortion function.  Memory is</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*                       allocated for the distortion function parameters,</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">*                       disprm::parms[][], and it is initialized to zero.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">* discpy() - Copy routine for the disprm struct</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">* ---------------------------------------------</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">* discpy() does a deep copy of one disprm struct to another, using disini() to</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">* allocate memory unconditionally for its arrays if required.  Only the</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">* "information to be provided" part of the struct is copied; a call to</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">* disset() is required to initialize the remainder.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for arrays in</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">*                       the destination, including the parameter array via a</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">*                       call to disparms().  Otherwise, it is assumed that</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">*                       pointers to these arrays have been set by the user</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">*                       except if they are null pointers in which case memory</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*                       will be allocated for them regardless.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*   dissrc    const struct disprm*</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*                       Struct to copy from.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">*   disdst    struct disprm*</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">*                       Struct to copy to.  disprm::flag should be set to -1</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*                       if disdst was not previously initialized (memory leaks</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">*                       may result if it was previously initialized).</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">* disfree() - Destructor for the disprm struct</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">* --------------------------------------------</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">* disfree() frees memory allocated for the disprm arrays by disini() and/or</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">* disparms().  disini() and disparms() keep a record of the memory they</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">* allocate and disfree() will only attempt to free this.</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">* PLEASE NOTE: disfree() must not be invoked on a disprm struct that was not</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">* initialized by disini().</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">*                       Distortion function parameters.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">* disprt() - Print routine for the disprm struct</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">* disprt() prints the contents of a disprm struct using wcsprintf().  Mainly</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">* intended for diagnostic purposes.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">*   dis       const struct disprm*</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*                       Distortion function parameters.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">* disset() - Setup routine for the disprm struct</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">* disset(), sets up the disprm struct according to information supplied within</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">* it - refer to the explanation of disprm::flag.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">* disp2x() and disx2p() if the disprm::flag is anything other than a</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">* predefined magic value.</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*                       Distortion function parameters.</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*                         3: Invalid parameter.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* disp2x() - Apply distortion function</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">* ------------------------------------</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">* disp2x() applies the distortion functions.  By definition, the distortion</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">* is in the pixel-to-world direction.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">* Depending on the point in the algorithm chain at which it is invoked,</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">* disp2x() may transform pixel coordinates to corrected pixel coordinates, or</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">* intermediate pixel coordinates to corrected intermediate pixel coordinates,</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">* or image coordinates to corrected image coordinates.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*                       Distortion function parameters.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*   rawcrd    const double[]</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*                       Array of coordinates.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*   discrd    double[]  Array of coordinates to which the distortion functions</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*                       have been applied.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*                         3: Invalid parameter.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*                         4: Distort error.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">* disx2p() - Apply de-distortion function</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">* ---------------------------------------</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">* disx2p() applies the inverse of the distortion functions.  By definition,</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">* the de-distortion is in the world-to-pixel direction.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">* Depending on the point in the algorithm chain at which it is invoked,</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">* disx2p() may transform corrected pixel coordinates to pixel coordinates, or</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">* corrected intermediate pixel coordinates to intermediate pixel coordinates,</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">* or corrected image coordinates to image coordinates.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">* disx2p() iteratively solves for the inverse using disp2x().  It assumes</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">* that the distortion is small and the functions are well-behaved, being</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">* continuous and with continuous derivatives.  Also that, to first order</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">* in the neighbourhood of the solution, discrd[j] ~= a + b*rawcrd[j], i.e.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">* independent of rawcrd[i], where i != j.  This is effectively equivalent to</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">* assuming that the distortion functions are separable to first order.</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">* Furthermore, a is assumed to be small, and b close to unity.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*                       Distortion function parameters.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*   discrd    const double[]</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*                       Array of coordinates.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*   rawcrd    double[]  Array of coordinates to which the inverse distortion</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*                       functions have been applied.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*                         1: Null disprm pointer passed.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*                         3: Invalid parameter.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*                         5: De-distort error.</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*                       disprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">* disprm struct - Distortion parameters</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">* -------------------------------------</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">* The disprm struct contains all of the information required to apply a set of</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">* distortion functions.  It consists of certain members that must be set by</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">* the user ("given") and others that are set by the WCSLIB routines</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">* ("returned").</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*   int flag</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*     following members of the disprm struct are set or modified:</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*       - disprm::naxis,</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*       - disprm::dtype,</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*       - disprm::axmap,</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*       - disprm::nparm,</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*       - disprm::parms.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*     This signals the initialization routine, disset(), to recompute the</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*     returned members of the disprm struct.  disset() will reset flag to</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*     indicate that this has been done.</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*     PLEASE NOTE: flag must be set to -1 when disini() is called for the</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*     first time for a particular disprm struct in order to initialize memory</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*     management.  It must ONLY be used on the first initialization otherwise</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*     memory leaks may result.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*   int naxis</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*     (Given or returned) Number of pixel and world coordinate elements.</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*     If disini() is used to initialize the disprm struct (as would normally</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*     be the case) then it will set naxis from the value passed to it as a</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*     function argument.  The user should not subsequently modify it.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*   char (*dtype)[16]</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*     (Given) Pointer to the first element of an array of char[16] containing</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*     the name of the distortion function for each axis.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*   int **axmap</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*     (Given) Pointer to the first element of an array of int* containing</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*     pointers to the first elements of the axis mapping arrays for each axis.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*     An axis mapping associates the independent variables of a distortion</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*     function with the 1-relative image axis number.  For example, consider</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*     an image with a spectrum on the first axis, followed by RA, Dec, and</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*     time axes.  For a distortion in (RA,Dec) and no distortion on the</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*     spectral or time axes, the axis mapping arrays, axmap[j][], would be</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">=       j=0: [0, 0, 0, 0]   ...no  distortion on spectral axis,</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">=         1: [2, 3, 0, 0]   ...RA  distortion depends on RA and Dec,</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">=         2: [3, 2, 0, 0]   ...Dec distortion depends on Dec and RA,</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">=         3: [0, 0, 0, 0]   ...no  distortion on time axis,</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*     where zero indicates that there is no corresponding independent</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">*     variable.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">*   double **offset</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">*     (Given) Pointer to the first element of an array of double* containing</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">*     an offset used to renormalize the independent variables of the</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">*     distortion function for each axis.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">*     The offsets are subtracted from the independent variables before</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">*     scaling.</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">*     It is not necessary to reset the disprm struct (via disset()) when</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">*     disprm::offset is changed.</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">*   double **scale</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">*     (Given) Pointer to the first element of an array of double* containing</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">*     a scale used to renormalize the independent variables of the distortion</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*     function for each axis.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*     The scale is applied to the independent variables after the offsets are</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">*     subtracted.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">*     It is not necessary to reset the disprm struct (via disset()) when</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*     disprm::scale is changed.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*   int *nparm</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">*     (Given) Pointer to the first element of an array of int containing the</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">*     number of distortion parameters for each axis.</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">*     The number of parameters specified must satisfy the requirements of the</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">*     particular distortion function.  For example, the polynomial distortion</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">*     associated with the TPV "projection" must have a number that corresponds</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*     to the degree of the polynomial:</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">=       Degree 1:   4</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">=              2:   7</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">=              3:  12</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">=              4:  17</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">=              5:  24</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">=              6:  31</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">=              7:  40</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">*   double **parms</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">*     (Given) Pointer to the first element of an array of double* containing</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">*     pointers to the first elements of the arrays of distortion parameters</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">*     for each axis.</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">*     disparms() may be used to allocate memory for these arrays.</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*   double *maxdis</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*     (Given) Pointer to the first element of an array of double specifying</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*     the maximum absolute value of the distortion for each axis computed over</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*     the whole image.</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*     It is not necessary to reset the disprm struct (via disset()) when</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">*     disprm::maxdis is changed.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">*   double totdis</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">*     (Given) The maximum absolute value of the combination of all distortion</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">*     functions specified as an offset in pixel coordinates computed over the</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">*     whole image.</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">*     It is not necessary to reset the disprm struct (via disset()) when</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">*     disprm::totdis is changed.</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">*   struct wcserr *err</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">*   int (**disp2x)(DISP2X_ARGS)</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">*   int (**disx2p)(DISX2P_ARGS)</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">*   double *tmpmem</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*   int **iwrk</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*   double **dwrk</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*   int m_flag</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*   int m_naxis</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*   char (*m_dtype)[16]</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">*   int **m_axmap</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*   double **m_offset</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*   double **m_scale</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*   int *m_nparm</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">*   double **m_parms</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">*   double *m_maxdis</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">*   int m_alloc</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">*   int m_padding</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">* Global variable: const char *dis_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">* ------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*===========================================================================*/</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="preprocessor">#ifndef WCSLIB_DIS</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="preprocessor">#define WCSLIB_DIS</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="dis_8h.html#a6f125a402553f5dab46435299f0742a3">dis_errmsg</a>[];</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">  476</a></span> <span class="keyword">enum</span> <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis_errmsg_enum</a> {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">  477</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">DISERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">  478</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">DISERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null disprm pointer passed. */</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">  479</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">DISERR_MEMORY</a>       = 2,      <span class="comment">/* Memory allocation failed. */</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">  480</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">DISERR_BAD_PARAM</a>    = 3,      <span class="comment">/* Invalid parameter value. */</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">  481</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">DISERR_DISTORT</a>      = 4,      <span class="comment">/* Distortion error. */</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">  482</a></span>   <a class="code" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">DISERR_DEDISTORT</a>    = 5       <span class="comment">/* De-distortion error. */</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> };</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">/* For use in declaring distortion function prototypes. */</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">  486</a></span> <span class="preprocessor">#define DISP2X_ARGS int nparm, const double parms[], int ncrd, \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="preprocessor">const double rawcrd[], double *discrd</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">/* For use in declaring de-distortion function prototypes. */</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">  490</a></span> <span class="preprocessor">#define DISX2P_ARGS int nparm, const double parms[], int ncrd, \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="preprocessor">const double discrd[], double rawcrd[]</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="structdisprm.html">  494</a></span> <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> {</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">  497</a></span>   <span class="keywordtype">int</span> <a class="code" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">flag</a>;                     <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">  501</a></span>   <span class="keywordtype">int</span> <a class="code" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">naxis</a>;                    <span class="comment">/* The number of pixel coordinate elements, */</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>                                 <span class="comment">/* given by NAXIS.                          */</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">  503</a></span>   char   (*<a class="code" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">dtype</a>)[16];          <span class="comment">/* For each axis, the distortion type.      */</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">  504</a></span>   <span class="keywordtype">int</span>    **<a class="code" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">axmap</a>;               <span class="comment">/* For each axis, the axis mapping array.   */</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">  505</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">offset</a>;              <span class="comment">/* For each axis, renormalization offset.   */</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">  506</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">scale</a>;               <span class="comment">/* For each axis, renormalization scale.    */</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">  507</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">nparm</a>;                <span class="comment">/* For each axis, the number of distortion  */</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>                                 <span class="comment">/* parameters.                              */</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">  509</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">parms</a>;               <span class="comment">/* For each axis, the array of distortion   */</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>                                 <span class="comment">/* parameters.                              */</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">  511</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">maxdis</a>;               <span class="comment">/* For each axis, the maximum distortion.   */</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">  512</a></span>   <span class="keywordtype">double</span> <a class="code" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">totdis</a>;                <span class="comment">/* The maximum combined distortion.         */</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   <span class="comment">/* Error handling, if enabled.                                            */</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">  516</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">err</a>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>   <span class="comment">/* Private - the remainder are for internal use.                          */</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">  520</a></span>   int (**<a class="code" href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">disp2x</a>)(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);  <span class="comment">/* For each axis, pointers to the           */</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">  521</a></span>   int (**<a class="code" href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">disx2p</a>)(<a class="code" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">DISX2P_ARGS</a>);  <span class="comment">/* distortion function and its inverse.     */</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> </div>
+<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">  523</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">tmpmem</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">  524</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">iwrk</a>;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">  525</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">dwrk</a>;</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">  527</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structdisprm.html#afb5079136a7ec5ae4effef9790e31439">m_flag</a>, <a class="code" href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">m_naxis</a>;       <span class="comment">/* The remainder are for memory management. */</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">  528</a></span>   char   (*<a class="code" href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">m_dtype</a>)[16];</div>
+<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">  529</a></span>   <span class="keywordtype">int</span>    **<a class="code" href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">m_axmap</a>;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">  530</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a11c48b7be30b22236cdae89cb47a6317">m_offset</a>, **<a class="code" href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">m_scale</a>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">  531</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">m_nparm</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">  532</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">m_parms</a>;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">  533</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">m_maxdis</a>;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">  534</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structdisprm.html#a9d200cabe1a6a192f44a17535917cd3c">m_alloc</a>, <a class="code" href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">m_padding</a>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> };</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> </div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">/* Size of the disprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="dis_8h.html#a5df41117cb392fc0c5d051002b441aa9">  538</a></span> <span class="preprocessor">#define DISLEN (sizeof(struct disprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463">disini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> naxis, <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> </div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#acb2f2341971a191fdbea544602405723">disparms</a>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5">discpy</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dissrc, <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *disdst);</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a83b98d0f6429f4f19024675645026187">disfree</a>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#aeee35e0d5183e74f20c64526d908886b">disprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041">disset</a>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201">disp2x</a>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis, <span class="keyword">const</span> <span class="keywordtype">double</span> rawcrd[], <span class="keywordtype">double</span> discrd[]);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> </div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653">disx2p</a>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis, <span class="keyword">const</span> <span class="keywordtype">double</span> discrd[], <span class="keywordtype">double</span> rawcrd[]);</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">/* Specialist distortion functions (internal use only). */</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a402a8a2a75907d0849cee87a0d72b5f5">tpvset</a>(<span class="keywordtype">int</span> j, <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a4182d3cd45a022e930c44c4f933c0639">tpv1</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a961d359c77ef6d9e4d2f2f14a53d0b39">tpv2</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a5d5f35665cd05c17322147bf483ec914">tpv3</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#afca391dcab0909f05654f99505f2a4fb">tpv4</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a393642b85f8a7da45a0447c81a20202d">tpv5</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a4c12eaf2bad14222de4213f69206c7a8">tpv6</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="keywordtype">int</span> <a class="code" href="dis_8h.html#a952910ebfd260e7d9b59e134674f8f26">tpv7</a>(<a class="code" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> }</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_DIS */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="structdisprm_html_a4d6ba28bee2fc636f4b2b9ca4b50b0a4"><div class="ttname"><a href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> dis.h:497</div></div>
+<div class="ttc" id="dis_8h_html_a42e03676a3def43ef6b936cd7beb4dd5"><div class="ttname"><a href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5">discpy</a></div><div class="ttdeci">int discpy(int alloc, const struct disprm *dissrc, struct disprm *disdst)</div><div class="ttdoc">Copy routine for the disprm struct. </div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">DISERR_DISTORT</a></div><div class="ttdef"><b>Definition:</b> dis.h:481</div></div>
+<div class="ttc" id="dis_8h_html_a6f125a402553f5dab46435299f0742a3"><div class="ttname"><a href="dis_8h.html#a6f125a402553f5dab46435299f0742a3">dis_errmsg</a></div><div class="ttdeci">const char * dis_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
+<div class="ttc" id="structdisprm_html_ab62d14319c82c93c70d290728cab78c4"><div class="ttname"><a href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">disprm::axmap</a></div><div class="ttdeci">int ** axmap</div><div class="ttdef"><b>Definition:</b> dis.h:504</div></div>
+<div class="ttc" id="dis_8h_html_a135726e4c4c5bc00e2eba865ab202201"><div class="ttname"><a href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201">disp2x</a></div><div class="ttdeci">int disp2x(struct disprm *dis, const double rawcrd[], double discrd[])</div><div class="ttdoc">Apply distortion function. </div></div>
+<div class="ttc" id="structdisprm_html_a1f7b541d7130698acc6781b7ca83dab8"><div class="ttname"><a href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">disprm::scale</a></div><div class="ttdeci">double ** scale</div><div class="ttdef"><b>Definition:</b> dis.h:506</div></div>
+<div class="ttc" id="structdisprm_html_a66547c34ec789c7efe10dc8f78295602"><div class="ttname"><a href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">disprm::m_axmap</a></div><div class="ttdeci">int ** m_axmap</div><div class="ttdef"><b>Definition:</b> dis.h:529</div></div>
+<div class="ttc" id="structdisprm_html_ad86b9715da25195e7a345ccf631ff87a"><div class="ttname"><a href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">disprm::m_scale</a></div><div class="ttdeci">double ** m_scale</div><div class="ttdef"><b>Definition:</b> dis.h:530</div></div>
+<div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
+<div class="ttc" id="dis_8h_html_ac589d5e85afe3d775cba4c06734ce653"><div class="ttname"><a href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653">disx2p</a></div><div class="ttdeci">int disx2p(struct disprm *dis, const double discrd[], double rawcrd[])</div><div class="ttdoc">Apply de-distortion function. </div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">DISERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> dis.h:480</div></div>
+<div class="ttc" id="dis_8h_html_ad1bdf4497eb4513ca8431e1baa419041"><div class="ttname"><a href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041">disset</a></div><div class="ttdeci">int disset(struct disprm *dis)</div><div class="ttdoc">Setup routine for the disprm struct. </div></div>
+<div class="ttc" id="structdisprm_html_a201bc2948f326bbed9a0e1f818720ef9"><div class="ttname"><a href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">disprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> dis.h:501</div></div>
+<div class="ttc" id="structdisprm_html_a11c48b7be30b22236cdae89cb47a6317"><div class="ttname"><a href="structdisprm.html#a11c48b7be30b22236cdae89cb47a6317">disprm::m_offset</a></div><div class="ttdeci">double ** m_offset</div><div class="ttdef"><b>Definition:</b> dis.h:530</div></div>
+<div class="ttc" id="dis_8h_html_a393642b85f8a7da45a0447c81a20202d"><div class="ttname"><a href="dis_8h.html#a393642b85f8a7da45a0447c81a20202d">tpv5</a></div><div class="ttdeci">int tpv5(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="dis_8h_html_a4182d3cd45a022e930c44c4f933c0639"><div class="ttname"><a href="dis_8h.html#a4182d3cd45a022e930c44c4f933c0639">tpv1</a></div><div class="ttdeci">int tpv1(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="structdisprm_html_afb5079136a7ec5ae4effef9790e31439"><div class="ttname"><a href="structdisprm.html#afb5079136a7ec5ae4effef9790e31439">disprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> dis.h:527</div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">DISERR_DEDISTORT</a></div><div class="ttdef"><b>Definition:</b> dis.h:482</div></div>
+<div class="ttc" id="structdisprm_html_afd6bd50c561b27d0a1223e9c6c4f8baa"><div class="ttname"><a href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm::nparm</a></div><div class="ttdeci">int * nparm</div><div class="ttdef"><b>Definition:</b> dis.h:507</div></div>
+<div class="ttc" id="structdisprm_html"><div class="ttname"><a href="structdisprm.html">disprm</a></div><div class="ttdoc">Distortion parameters. </div><div class="ttdef"><b>Definition:</b> dis.h:494</div></div>
+<div class="ttc" id="dis_8h_html_a5d5f35665cd05c17322147bf483ec914"><div class="ttname"><a href="dis_8h.html#a5d5f35665cd05c17322147bf483ec914">tpv3</a></div><div class="ttdeci">int tpv3(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="structdisprm_html_a0d3386f4226b13c77deb97610ffeecb1"><div class="ttname"><a href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">disprm::dtype</a></div><div class="ttdeci">char(* dtype)[16]</div><div class="ttdef"><b>Definition:</b> dis.h:503</div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">DISERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> dis.h:478</div></div>
+<div class="ttc" id="dis_8h_html_a83b98d0f6429f4f19024675645026187"><div class="ttname"><a href="dis_8h.html#a83b98d0f6429f4f19024675645026187">disfree</a></div><div class="ttdeci">int disfree(struct disprm *dis)</div><div class="ttdoc">Destructor for the disprm struct. </div></div>
+<div class="ttc" id="structdisprm_html_a64b9a5952a1a87ccd6b2533757c5ae36"><div class="ttname"><a href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">disprm::m_parms</a></div><div class="ttdeci">double ** m_parms</div><div class="ttdef"><b>Definition:</b> dis.h:532</div></div>
+<div class="ttc" id="dis_8h_html_afca391dcab0909f05654f99505f2a4fb"><div class="ttname"><a href="dis_8h.html#afca391dcab0909f05654f99505f2a4fb">tpv4</a></div><div class="ttdeci">int tpv4(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fd"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis_errmsg_enum</a></div><div class="ttdeci">dis_errmsg_enum</div><div class="ttdef"><b>Definition:</b> dis.h:476</div></div>
+<div class="ttc" id="structdisprm_html_a6a8b2e3fc58d8f21668a82a93b199712"><div class="ttname"><a href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">disprm::m_naxis</a></div><div class="ttdeci">int m_naxis</div><div class="ttdef"><b>Definition:</b> dis.h:527</div></div>
+<div class="ttc" id="dis_8h_html_aeee35e0d5183e74f20c64526d908886b"><div class="ttname"><a href="dis_8h.html#aeee35e0d5183e74f20c64526d908886b">disprt</a></div><div class="ttdeci">int disprt(const struct disprm *dis)</div><div class="ttdoc">Print routine for the disprm struct. </div></div>
+<div class="ttc" id="structdisprm_html_a7f80d2d542c266d14a336c13d2ebeab2"><div class="ttname"><a href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">disprm::tmpmem</a></div><div class="ttdeci">double * tmpmem</div><div class="ttdef"><b>Definition:</b> dis.h:523</div></div>
+<div class="ttc" id="structdisprm_html_a01ec67e521b93c377aa76248b955bebc"><div class="ttname"><a href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">disprm::m_padding</a></div><div class="ttdeci">int m_padding</div><div class="ttdef"><b>Definition:</b> dis.h:534</div></div>
+<div class="ttc" id="structdisprm_html_ac107b9b4c645a461036476290a87ab22"><div class="ttname"><a href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">disprm::maxdis</a></div><div class="ttdeci">double * maxdis</div><div class="ttdef"><b>Definition:</b> dis.h:511</div></div>
+<div class="ttc" id="structdisprm_html_a9d200cabe1a6a192f44a17535917cd3c"><div class="ttname"><a href="structdisprm.html#a9d200cabe1a6a192f44a17535917cd3c">disprm::m_alloc</a></div><div class="ttdeci">int m_alloc</div><div class="ttdef"><b>Definition:</b> dis.h:534</div></div>
+<div class="ttc" id="structdisprm_html_a5002d95480beaa900deae051ec7e45b1"><div class="ttname"><a href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">disprm::dwrk</a></div><div class="ttdeci">double ** dwrk</div><div class="ttdef"><b>Definition:</b> dis.h:525</div></div>
+<div class="ttc" id="structdisprm_html_a10a16217368a5cdd34d802fff442f383"><div class="ttname"><a href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">disprm::totdis</a></div><div class="ttdeci">double totdis</div><div class="ttdef"><b>Definition:</b> dis.h:512</div></div>
+<div class="ttc" id="structdisprm_html_ae627d5f290ed7ad85d3665cf28c5dbf4"><div class="ttname"><a href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">disprm::disx2p</a></div><div class="ttdeci">int(** disx2p)(DISX2P_ARGS)</div><div class="ttdef"><b>Definition:</b> dis.h:521</div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">DISERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> dis.h:477</div></div>
+<div class="ttc" id="dis_8h_html_a402a8a2a75907d0849cee87a0d72b5f5"><div class="ttname"><a href="dis_8h.html#a402a8a2a75907d0849cee87a0d72b5f5">tpvset</a></div><div class="ttdeci">int tpvset(int j, struct disprm *dis)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="structdisprm_html_a40a81085335f9d9aa617eb9605ae9421"><div class="ttname"><a href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> dis.h:516</div></div>
+<div class="ttc" id="dis_8h_html_a8896e2a5330e55cd85da4a28ed6ee463"><div class="ttname"><a href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463">disini</a></div><div class="ttdeci">int disini(int alloc, int naxis, struct disprm *dis)</div><div class="ttdoc">Default constructor for the disprm struct. </div></div>
+<div class="ttc" id="dis_8h_html_a4c12eaf2bad14222de4213f69206c7a8"><div class="ttname"><a href="dis_8h.html#a4c12eaf2bad14222de4213f69206c7a8">tpv6</a></div><div class="ttdeci">int tpv6(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="structdisprm_html_a25efb5ab856ffa06135a5d429e1c6b02"><div class="ttname"><a href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">disprm::parms</a></div><div class="ttdeci">double ** parms</div><div class="ttdef"><b>Definition:</b> dis.h:509</div></div>
+<div class="ttc" id="dis_8h_html_a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80"><div class="ttname"><a href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">DISERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> dis.h:479</div></div>
+<div class="ttc" id="structdisprm_html_ac54a69ee59f8c525309df6761ffadfed"><div class="ttname"><a href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">disprm::m_nparm</a></div><div class="ttdeci">int * m_nparm</div><div class="ttdef"><b>Definition:</b> dis.h:531</div></div>
+<div class="ttc" id="dis_8h_html_a961d359c77ef6d9e4d2f2f14a53d0b39"><div class="ttname"><a href="dis_8h.html#a961d359c77ef6d9e4d2f2f14a53d0b39">tpv2</a></div><div class="ttdeci">int tpv2(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="structdisprm_html_a4f692b3bb436ceab5861ec9566d127e4"><div class="ttname"><a href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">disprm::m_maxdis</a></div><div class="ttdeci">double * m_maxdis</div><div class="ttdef"><b>Definition:</b> dis.h:533</div></div>
+<div class="ttc" id="structdisprm_html_a8b0ac30436d7bb3e12e0ca1c64fda337"><div class="ttname"><a href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">disprm::offset</a></div><div class="ttdeci">double ** offset</div><div class="ttdef"><b>Definition:</b> dis.h:505</div></div>
+<div class="ttc" id="dis_8h_html_ac593cd79fb7f89b1c7395d0ecf2f7876"><div class="ttname"><a href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">DISX2P_ARGS</a></div><div class="ttdeci">#define DISX2P_ARGS</div><div class="ttdef"><b>Definition:</b> dis.h:490</div></div>
+<div class="ttc" id="structdisprm_html_a43a6e8d5c70b82c5eb573de7e0d2fbfa"><div class="ttname"><a href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">disprm::disp2x</a></div><div class="ttdeci">int(** disp2x)(DISP2X_ARGS)</div><div class="ttdef"><b>Definition:</b> dis.h:520</div></div>
+<div class="ttc" id="structdisprm_html_a711121ef59301a0eaf3b6025d8259bd7"><div class="ttname"><a href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">disprm::iwrk</a></div><div class="ttdeci">double ** iwrk</div><div class="ttdef"><b>Definition:</b> dis.h:524</div></div>
+<div class="ttc" id="structdisprm_html_a5f720fe9e047c9bfc3118ea43fcb193a"><div class="ttname"><a href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">disprm::m_dtype</a></div><div class="ttdeci">char(* m_dtype)[16]</div><div class="ttdef"><b>Definition:</b> dis.h:528</div></div>
+<div class="ttc" id="dis_8h_html_a952910ebfd260e7d9b59e134674f8f26"><div class="ttname"><a href="dis_8h.html#a952910ebfd260e7d9b59e134674f8f26">tpv7</a></div><div class="ttdeci">int tpv7(DISP2X_ARGS)</div><div class="ttdoc">(Internal use only.) </div></div>
+<div class="ttc" id="dis_8h_html_acb2f2341971a191fdbea544602405723"><div class="ttname"><a href="dis_8h.html#acb2f2341971a191fdbea544602405723">disparms</a></div><div class="ttdeci">int disparms(struct disprm *dis)</div><div class="ttdoc">Allocate memory for parameters in a disprm struct. </div></div>
+<div class="ttc" id="dis_8h_html_a23068602f42552a4257462b2875d8c51"><div class="ttname"><a href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a></div><div class="ttdeci">#define DISP2X_ARGS</div><div class="ttdef"><b>Definition:</b> dis.h:486</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/html/files.html b/html/files.html
index 3ed8cc2..c29e7ec 100644
--- a/html/files.html
+++ b/html/files.html
@@ -50,31 +50,32 @@
 <div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
 <table class="directory">
 <tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="cel_8h_source.html"><span class="icondoc"></span></a><a class="el" href="cel_8h.html" target="_self">cel.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fitshdr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fitshdr_8h.html" target="_self">fitshdr.h</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="getwcstab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="getwcstab_8h.html" target="_self">getwcstab.h</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lin_8h.html" target="_self">lin.h</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="log_8h_source.html"><span class="icondoc"></span></a><a class="el" href="log_8h.html" target="_self">log.h</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="prj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="prj_8h.html" target="_self">prj.h</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="spc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="spc_8h.html" target="_self">spc.h</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="sph_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sph_8h.html" target="_self">sph.h</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="spx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="spx_8h.html" target="_self">spx.h</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="tab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="tab_8h.html" target="_self">tab.h</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcs_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcs_8h.html" target="_self">wcs.h</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcserr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcserr_8h.html" target="_self">wcserr.h</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsfix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsfix_8h.html" target="_self">wcsfix.h</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcshdr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcshdr_8h.html" target="_self">wcshdr.h</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcslib_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcslib_8h.html" target="_self">wcslib.h</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsmath_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsmath_8h.html" target="_self">wcsmath.h</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsprintf_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsprintf_8h.html" target="_self">wcsprintf.h</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcstrig_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcstrig_8h.html" target="_self">wcstrig.h</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsunits_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsunits_8h.html" target="_self">wcsunits.h</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsutil_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsutil_8h.html" target="_self">wcsutil.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="dis_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dis_8h.html" target="_self">dis.h</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="fitshdr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fitshdr_8h.html" target="_self">fitshdr.h</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="getwcstab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="getwcstab_8h.html" target="_self">getwcstab.h</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="lin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lin_8h.html" target="_self">lin.h</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="log_8h_source.html"><span class="icondoc"></span></a><a class="el" href="log_8h.html" target="_self">log.h</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="prj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="prj_8h.html" target="_self">prj.h</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="spc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="spc_8h.html" target="_self">spc.h</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="sph_8h_source.html"><span class="icondoc"></span></a><a class="el" href="sph_8h.html" target="_self">sph.h</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="spx_8h_source.html"><span class="icondoc"></span></a><a class="el" href="spx_8h.html" target="_self">spx.h</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="tab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="tab_8h.html" target="_self">tab.h</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcs_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcs_8h.html" target="_self">wcs.h</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcserr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcserr_8h.html" target="_self">wcserr.h</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsfix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsfix_8h.html" target="_self">wcsfix.h</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcshdr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcshdr_8h.html" target="_self">wcshdr.h</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcslib_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcslib_8h.html" target="_self">wcslib.h</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsmath_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsmath_8h.html" target="_self">wcsmath.h</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsprintf_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsprintf_8h.html" target="_self">wcsprintf.h</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcstrig_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcstrig_8h.html" target="_self">wcstrig.h</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsunits_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsunits_8h.html" target="_self">wcsunits.h</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="wcsutil_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wcsutil_8h.html" target="_self">wcsutil.h</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/fitshdr_8h.html b/html/fitshdr_8h.html
index 500464a..799b759 100644
--- a/html/fitshdr_8h.html
+++ b/html/fitshdr_8h.html
@@ -389,7 +389,7 @@ the previous keyrecord contained either a valid string keyvalue or a valid <code
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/fitshdr_8h_source.html b/html/fitshdr_8h_source.html
index 0ede63f..2c88725 100644
--- a/html/fitshdr_8h_source.html
+++ b/html/fitshdr_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="fitshdr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,7 +75,7 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: fitshdr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: fitshdr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* The Flexible Image Transport System (FITS), a data format widely used in</span></div>
@@ -302,7 +302,7 @@
 <div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*   int type</span></div>
 <div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*     (Returned) Keyvalue data type:</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*       - 0: No keyvalue.</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*       - 0: No keyvalue (both the value and type are undefined).</span></div>
 <div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*       - 1: Logical, represented as int.</span></div>
 <div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*       - 2: 32-bit signed integer.</span></div>
 <div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*       - 3: 64-bit signed integer (see below).</span></div>
@@ -520,7 +520,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/fortran.html b/html/fortran.html
index 4cf4376..c6401b3 100644
--- a/html/fortran.html
+++ b/html/fortran.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -103,7 +103,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions.html b/html/functions.html
index c3f19e7..18962f7 100644
--- a/html/functions.html
+++ b/html/functions.html
@@ -79,6 +79,9 @@
 <div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>affine
+: <a class="el" href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">linprm</a>
+</li>
 <li>afrq
 : <a class="el" href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">spxprm</a>
 </li>
@@ -94,11 +97,14 @@
 <li>awav
 : <a class="el" href="structspxprm.html#aef53f8244101a4229518b25b08143d18">spxprm</a>
 </li>
+<li>axmap
+: <a class="el" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">disprm</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_b.html b/html/functions_b.html
index dba0969..ae66cc5 100644
--- a/html/functions_b.html
+++ b/html/functions_b.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_c.html b/html/functions_c.html
index 84ff1bb..633e2c8 100644
--- a/html/functions_c.html
+++ b/html/functions_c.html
@@ -151,7 +151,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_d.html b/html/functions_d.html
index dd490be..b0f884c 100644
--- a/html/functions_d.html
+++ b/html/functions_d.html
@@ -130,9 +130,24 @@
 <li>dimlen
 : <a class="el" href="structwtbarr.html#a901403d05f985d4a1fbd2fdc9585bd50">wtbarr</a>
 </li>
+<li>disp2x
+: <a class="el" href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">disprm</a>
+</li>
+<li>dispre
+: <a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm</a>
+</li>
+<li>disseq
+: <a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm</a>
+</li>
+<li>disx2p
+: <a class="el" href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">disprm</a>
+</li>
 <li>divergent
 : <a class="el" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">prjprm</a>
 </li>
+<li>dtype
+: <a class="el" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">disprm</a>
+</li>
 <li>dveloawav
 : <a class="el" href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">spxprm</a>
 </li>
@@ -169,6 +184,9 @@
 <li>dwavnfreq
 : <a class="el" href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">spxprm</a>
 </li>
+<li>dwrk
+: <a class="el" href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">disprm</a>
+</li>
 <li>dzoptwave
 : <a class="el" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">spxprm</a>
 </li>
@@ -176,7 +194,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_e.html b/html/functions_e.html
index 7f2f8af..0f063c3 100644
--- a/html/functions_e.html
+++ b/html/functions_e.html
@@ -90,6 +90,7 @@
 </li>
 <li>err
 : <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm</a>
+, <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm</a>
 , <a class="el" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">linprm</a>
 , <a class="el" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">prjprm</a>
 , <a class="el" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">spcprm</a>
@@ -116,7 +117,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_f.html b/html/functions_f.html
index 689b9bc..9175af6 100644
--- a/html/functions_f.html
+++ b/html/functions_f.html
@@ -87,6 +87,7 @@
 </li>
 <li>flag
 : <a class="el" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm</a>
+, <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm</a>
 , <a class="el" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm</a>
 , <a class="el" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">prjprm</a>
 , <a class="el" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">spcprm</a>
@@ -103,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_g.html b/html/functions_g.html
index dea832c..c0b5dcf 100644
--- a/html/functions_g.html
+++ b/html/functions_g.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_i.html b/html/functions_i.html
index 7e9f9ef..067c90b 100644
--- a/html/functions_i.html
+++ b/html/functions_i.html
@@ -103,11 +103,14 @@
 <li>isolat
 : <a class="el" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">celprm</a>
 </li>
+<li>iwrk
+: <a class="el" href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">disprm</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_k.html b/html/functions_k.html
index b27e1fe..7f5a161 100644
--- a/html/functions_k.html
+++ b/html/functions_k.html
@@ -104,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_l.html b/html/functions_l.html
index 1b28e86..a7bd1d8 100644
--- a/html/functions_l.html
+++ b/html/functions_l.html
@@ -113,7 +113,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_m.html b/html/functions_m.html
index d25ce89..2d96a9b 100644
--- a/html/functions_m.html
+++ b/html/functions_m.html
@@ -90,6 +90,12 @@
 <li>m
 : <a class="el" href="structwtbarr.html#a1e88ad32570534a006e96cba721489b5">wtbarr</a>
 </li>
+<li>m_alloc
+: <a class="el" href="structdisprm.html#a9d200cabe1a6a192f44a17535917cd3c">disprm</a>
+</li>
+<li>m_axmap
+: <a class="el" href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">disprm</a>
+</li>
 <li>m_cd
 : <a class="el" href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">wcsprm</a>
 </li>
@@ -129,8 +135,18 @@
 <li>m_cunit
 : <a class="el" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">wcsprm</a>
 </li>
+<li>m_dispre
+: <a class="el" href="structlinprm.html#a9c5dae1285df5adbc684bb650a84b74a">linprm</a>
+</li>
+<li>m_disseq
+: <a class="el" href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">linprm</a>
+</li>
+<li>m_dtype
+: <a class="el" href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">disprm</a>
+</li>
 <li>m_flag
-: <a class="el" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm</a>
+: <a class="el" href="structdisprm.html#afb5079136a7ec5ae4effef9790e31439">disprm</a>
+, <a class="el" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm</a>
 , <a class="el" href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">tabprm</a>
 , <a class="el" href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">wcsprm</a>
 </li>
@@ -149,17 +165,30 @@
 <li>m_map
 : <a class="el" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">tabprm</a>
 </li>
+<li>m_maxdis
+: <a class="el" href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">disprm</a>
+</li>
 <li>m_N
 : <a class="el" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">tabprm</a>
 </li>
 <li>m_naxis
-: <a class="el" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm</a>
+: <a class="el" href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">disprm</a>
+, <a class="el" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm</a>
 , <a class="el" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">wcsprm</a>
 </li>
+<li>m_nparm
+: <a class="el" href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">disprm</a>
+</li>
+<li>m_offset
+: <a class="el" href="structdisprm.html#a11c48b7be30b22236cdae89cb47a6317">disprm</a>
+</li>
 <li>m_padding
-: <a class="el" href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">linprm</a>
+: <a class="el" href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">disprm</a>
 , <a class="el" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">wcsprm</a>
 </li>
+<li>m_parms
+: <a class="el" href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">disprm</a>
+</li>
 <li>m_pc
 : <a class="el" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">linprm</a>
 , <a class="el" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">wcsprm</a>
@@ -170,6 +199,9 @@
 <li>m_pv
 : <a class="el" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">wcsprm</a>
 </li>
+<li>m_scale
+: <a class="el" href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">disprm</a>
+</li>
 <li>m_tab
 : <a class="el" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">wcsprm</a>
 </li>
@@ -179,6 +211,9 @@
 <li>map
 : <a class="el" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">tabprm</a>
 </li>
+<li>maxdis
+: <a class="el" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">disprm</a>
+</li>
 <li>mjdavg
 : <a class="el" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">wcsprm</a>
 </li>
@@ -192,7 +227,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_n.html b/html/functions_n.html
index 3ba0df4..2bd4d3b 100644
--- a/html/functions_n.html
+++ b/html/functions_n.html
@@ -87,7 +87,8 @@
 , <a class="el" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">prjprm</a>
 </li>
 <li>naxis
-: <a class="el" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm</a>
+: <a class="el" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">disprm</a>
+, <a class="el" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm</a>
 , <a class="el" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">wcsprm</a>
 </li>
 <li>nc
@@ -96,6 +97,9 @@
 <li>ndim
 : <a class="el" href="structwtbarr.html#af862b4f90b0406ed8dd0c240768d4bd3">wtbarr</a>
 </li>
+<li>nparm
+: <a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm</a>
+</li>
 <li>nps
 : <a class="el" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">wcsprm</a>
 </li>
@@ -118,7 +122,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_o.html b/html/functions_o.html
index 972684b..0448b24 100644
--- a/html/functions_o.html
+++ b/html/functions_o.html
@@ -84,12 +84,13 @@
 </li>
 <li>offset
 : <a class="el" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">celprm</a>
+, <a class="el" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">disprm</a>
 </li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_p.html b/html/functions_p.html
index c361bce..e98f781 100644
--- a/html/functions_p.html
+++ b/html/functions_p.html
@@ -85,7 +85,6 @@
 <li>padding
 : <a class="el" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">celprm</a>
 , <a class="el" href="structfitskey.html#a42413fd1f1f3117a4bc4c0599c2c3889">fitskey</a>
-, <a class="el" href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">linprm</a>
 , <a class="el" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">prjprm</a>
 , <a class="el" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">spxprm</a>
 , <a class="el" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">tabprm</a>
@@ -95,8 +94,10 @@
 : <a class="el" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">spcprm</a>
 </li>
 <li>padding2
-: <a class="el" href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">linprm</a>
-, <a class="el" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm</a>
+: <a class="el" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm</a>
+</li>
+<li>parms
+: <a class="el" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">disprm</a>
 </li>
 <li>pc
 : <a class="el" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">linprm</a>
@@ -133,7 +134,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_r.html b/html/functions_r.html
index cd56122..e92fd43 100644
--- a/html/functions_r.html
+++ b/html/functions_r.html
@@ -105,7 +105,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_s.html b/html/functions_s.html
index 29aaeb3..727abe3 100644
--- a/html/functions_s.html
+++ b/html/functions_s.html
@@ -82,12 +82,18 @@
 <li>s
 : <a class="el" href="structfitskey.html#aaa0b63820fb73086d2f55ea9687d8126">fitskey</a>
 </li>
+<li>scale
+: <a class="el" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">disprm</a>
+</li>
 <li>sense
 : <a class="el" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">tabprm</a>
 </li>
 <li>set_M
 : <a class="el" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">tabprm</a>
 </li>
+<li>simple
+: <a class="el" href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">linprm</a>
+</li>
 <li>simplezen
 : <a class="el" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">prjprm</a>
 </li>
@@ -126,7 +132,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_t.html b/html/functions_t.html
index 4326c52..3c21293 100644
--- a/html/functions_t.html
+++ b/html/functions_t.html
@@ -86,6 +86,15 @@
 : <a class="el" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">celprm</a>
 , <a class="el" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">prjprm</a>
 </li>
+<li>tmpcrd
+: <a class="el" href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">linprm</a>
+</li>
+<li>tmpmem
+: <a class="el" href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">disprm</a>
+</li>
+<li>totdis
+: <a class="el" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">disprm</a>
+</li>
 <li>ttype
 : <a class="el" href="structwtbarr.html#a750832793167bbeebd1074e29844415d">wtbarr</a>
 </li>
@@ -100,7 +109,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_u.html b/html/functions_u.html
index eec1863..db23307 100644
--- a/html/functions_u.html
+++ b/html/functions_u.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_v.html b/html/functions_v.html
index 2fe4745..389a366 100644
--- a/html/functions_v.html
+++ b/html/functions_v.html
@@ -108,7 +108,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars.html b/html/functions_vars.html
index 3ce3ea9..b5c1f6d 100644
--- a/html/functions_vars.html
+++ b/html/functions_vars.html
@@ -79,6 +79,9 @@
  
 
 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>affine
+: <a class="el" href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">linprm</a>
+</li>
 <li>afrq
 : <a class="el" href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">spxprm</a>
 </li>
@@ -94,11 +97,14 @@
 <li>awav
 : <a class="el" href="structspxprm.html#aef53f8244101a4229518b25b08143d18">spxprm</a>
 </li>
+<li>axmap
+: <a class="el" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">disprm</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_b.html b/html/functions_vars_b.html
index 6e32457..857d8ad 100644
--- a/html/functions_vars_b.html
+++ b/html/functions_vars_b.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_c.html b/html/functions_vars_c.html
index bf81044..7975cb7 100644
--- a/html/functions_vars_c.html
+++ b/html/functions_vars_c.html
@@ -151,7 +151,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_d.html b/html/functions_vars_d.html
index ebf5555..f957f28 100644
--- a/html/functions_vars_d.html
+++ b/html/functions_vars_d.html
@@ -130,9 +130,24 @@
 <li>dimlen
 : <a class="el" href="structwtbarr.html#a901403d05f985d4a1fbd2fdc9585bd50">wtbarr</a>
 </li>
+<li>disp2x
+: <a class="el" href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">disprm</a>
+</li>
+<li>dispre
+: <a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm</a>
+</li>
+<li>disseq
+: <a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm</a>
+</li>
+<li>disx2p
+: <a class="el" href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">disprm</a>
+</li>
 <li>divergent
 : <a class="el" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">prjprm</a>
 </li>
+<li>dtype
+: <a class="el" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">disprm</a>
+</li>
 <li>dveloawav
 : <a class="el" href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">spxprm</a>
 </li>
@@ -169,6 +184,9 @@
 <li>dwavnfreq
 : <a class="el" href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">spxprm</a>
 </li>
+<li>dwrk
+: <a class="el" href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">disprm</a>
+</li>
 <li>dzoptwave
 : <a class="el" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">spxprm</a>
 </li>
@@ -176,7 +194,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_e.html b/html/functions_vars_e.html
index 75ece38..68a84e7 100644
--- a/html/functions_vars_e.html
+++ b/html/functions_vars_e.html
@@ -90,6 +90,7 @@
 </li>
 <li>err
 : <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm</a>
+, <a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">disprm</a>
 , <a class="el" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">linprm</a>
 , <a class="el" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">prjprm</a>
 , <a class="el" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">spcprm</a>
@@ -116,7 +117,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_f.html b/html/functions_vars_f.html
index ab7bbb4..8429b6e 100644
--- a/html/functions_vars_f.html
+++ b/html/functions_vars_f.html
@@ -87,6 +87,7 @@
 </li>
 <li>flag
 : <a class="el" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm</a>
+, <a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">disprm</a>
 , <a class="el" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm</a>
 , <a class="el" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">prjprm</a>
 , <a class="el" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">spcprm</a>
@@ -103,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_g.html b/html/functions_vars_g.html
index 059b28f..67f3bbc 100644
--- a/html/functions_vars_g.html
+++ b/html/functions_vars_g.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_i.html b/html/functions_vars_i.html
index ec6d72b..f279651 100644
--- a/html/functions_vars_i.html
+++ b/html/functions_vars_i.html
@@ -103,11 +103,14 @@
 <li>isolat
 : <a class="el" href="structcelprm.html#a7bb5e1ff4d73c884d73eeb0f8f2677d7">celprm</a>
 </li>
+<li>iwrk
+: <a class="el" href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">disprm</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_k.html b/html/functions_vars_k.html
index 5e8c54f..275ca77 100644
--- a/html/functions_vars_k.html
+++ b/html/functions_vars_k.html
@@ -104,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_l.html b/html/functions_vars_l.html
index d6d941e..1d3ee3d 100644
--- a/html/functions_vars_l.html
+++ b/html/functions_vars_l.html
@@ -113,7 +113,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_m.html b/html/functions_vars_m.html
index 2141c63..e7957a8 100644
--- a/html/functions_vars_m.html
+++ b/html/functions_vars_m.html
@@ -90,6 +90,12 @@
 <li>m
 : <a class="el" href="structwtbarr.html#a1e88ad32570534a006e96cba721489b5">wtbarr</a>
 </li>
+<li>m_alloc
+: <a class="el" href="structdisprm.html#a9d200cabe1a6a192f44a17535917cd3c">disprm</a>
+</li>
+<li>m_axmap
+: <a class="el" href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">disprm</a>
+</li>
 <li>m_cd
 : <a class="el" href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">wcsprm</a>
 </li>
@@ -129,8 +135,18 @@
 <li>m_cunit
 : <a class="el" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">wcsprm</a>
 </li>
+<li>m_dispre
+: <a class="el" href="structlinprm.html#a9c5dae1285df5adbc684bb650a84b74a">linprm</a>
+</li>
+<li>m_disseq
+: <a class="el" href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">linprm</a>
+</li>
+<li>m_dtype
+: <a class="el" href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">disprm</a>
+</li>
 <li>m_flag
-: <a class="el" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm</a>
+: <a class="el" href="structdisprm.html#afb5079136a7ec5ae4effef9790e31439">disprm</a>
+, <a class="el" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm</a>
 , <a class="el" href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">tabprm</a>
 , <a class="el" href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">wcsprm</a>
 </li>
@@ -149,17 +165,30 @@
 <li>m_map
 : <a class="el" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">tabprm</a>
 </li>
+<li>m_maxdis
+: <a class="el" href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">disprm</a>
+</li>
 <li>m_N
 : <a class="el" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">tabprm</a>
 </li>
 <li>m_naxis
-: <a class="el" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm</a>
+: <a class="el" href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">disprm</a>
+, <a class="el" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm</a>
 , <a class="el" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">wcsprm</a>
 </li>
+<li>m_nparm
+: <a class="el" href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">disprm</a>
+</li>
+<li>m_offset
+: <a class="el" href="structdisprm.html#a11c48b7be30b22236cdae89cb47a6317">disprm</a>
+</li>
 <li>m_padding
-: <a class="el" href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">linprm</a>
+: <a class="el" href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">disprm</a>
 , <a class="el" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">wcsprm</a>
 </li>
+<li>m_parms
+: <a class="el" href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">disprm</a>
+</li>
 <li>m_pc
 : <a class="el" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">linprm</a>
 , <a class="el" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">wcsprm</a>
@@ -170,6 +199,9 @@
 <li>m_pv
 : <a class="el" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">wcsprm</a>
 </li>
+<li>m_scale
+: <a class="el" href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">disprm</a>
+</li>
 <li>m_tab
 : <a class="el" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">wcsprm</a>
 </li>
@@ -179,6 +211,9 @@
 <li>map
 : <a class="el" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">tabprm</a>
 </li>
+<li>maxdis
+: <a class="el" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">disprm</a>
+</li>
 <li>mjdavg
 : <a class="el" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">wcsprm</a>
 </li>
@@ -192,7 +227,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_n.html b/html/functions_vars_n.html
index bdd397d..d5336e5 100644
--- a/html/functions_vars_n.html
+++ b/html/functions_vars_n.html
@@ -87,7 +87,8 @@
 , <a class="el" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">prjprm</a>
 </li>
 <li>naxis
-: <a class="el" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm</a>
+: <a class="el" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">disprm</a>
+, <a class="el" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm</a>
 , <a class="el" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">wcsprm</a>
 </li>
 <li>nc
@@ -96,6 +97,9 @@
 <li>ndim
 : <a class="el" href="structwtbarr.html#af862b4f90b0406ed8dd0c240768d4bd3">wtbarr</a>
 </li>
+<li>nparm
+: <a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm</a>
+</li>
 <li>nps
 : <a class="el" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">wcsprm</a>
 </li>
@@ -118,7 +122,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_o.html b/html/functions_vars_o.html
index e639b51..958f3fc 100644
--- a/html/functions_vars_o.html
+++ b/html/functions_vars_o.html
@@ -84,12 +84,13 @@
 </li>
 <li>offset
 : <a class="el" href="structcelprm.html#a74585275b64c292b394b74f2f19a8048">celprm</a>
+, <a class="el" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">disprm</a>
 </li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_p.html b/html/functions_vars_p.html
index 4bd4973..8d3a099 100644
--- a/html/functions_vars_p.html
+++ b/html/functions_vars_p.html
@@ -85,7 +85,6 @@
 <li>padding
 : <a class="el" href="structcelprm.html#acab5a98c001b85a565b7976499c1739c">celprm</a>
 , <a class="el" href="structfitskey.html#a42413fd1f1f3117a4bc4c0599c2c3889">fitskey</a>
-, <a class="el" href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">linprm</a>
 , <a class="el" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">prjprm</a>
 , <a class="el" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">spxprm</a>
 , <a class="el" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">tabprm</a>
@@ -95,8 +94,10 @@
 : <a class="el" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">spcprm</a>
 </li>
 <li>padding2
-: <a class="el" href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">linprm</a>
-, <a class="el" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm</a>
+: <a class="el" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm</a>
+</li>
+<li>parms
+: <a class="el" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">disprm</a>
 </li>
 <li>pc
 : <a class="el" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">linprm</a>
@@ -133,7 +134,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_r.html b/html/functions_vars_r.html
index 2918f46..9866885 100644
--- a/html/functions_vars_r.html
+++ b/html/functions_vars_r.html
@@ -105,7 +105,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_s.html b/html/functions_vars_s.html
index a9c1a8b..c9d5d56 100644
--- a/html/functions_vars_s.html
+++ b/html/functions_vars_s.html
@@ -82,12 +82,18 @@
 <li>s
 : <a class="el" href="structfitskey.html#aaa0b63820fb73086d2f55ea9687d8126">fitskey</a>
 </li>
+<li>scale
+: <a class="el" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">disprm</a>
+</li>
 <li>sense
 : <a class="el" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">tabprm</a>
 </li>
 <li>set_M
 : <a class="el" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">tabprm</a>
 </li>
+<li>simple
+: <a class="el" href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">linprm</a>
+</li>
 <li>simplezen
 : <a class="el" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">prjprm</a>
 </li>
@@ -126,7 +132,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_t.html b/html/functions_vars_t.html
index 87e91d5..69edefc 100644
--- a/html/functions_vars_t.html
+++ b/html/functions_vars_t.html
@@ -86,6 +86,15 @@
 : <a class="el" href="structcelprm.html#a011e38b3a5505fdc13855348571bfad1">celprm</a>
 , <a class="el" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">prjprm</a>
 </li>
+<li>tmpcrd
+: <a class="el" href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">linprm</a>
+</li>
+<li>tmpmem
+: <a class="el" href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">disprm</a>
+</li>
+<li>totdis
+: <a class="el" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">disprm</a>
+</li>
 <li>ttype
 : <a class="el" href="structwtbarr.html#a750832793167bbeebd1074e29844415d">wtbarr</a>
 </li>
@@ -100,7 +109,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_u.html b/html/functions_vars_u.html
index d8db39d..02b6814 100644
--- a/html/functions_vars_u.html
+++ b/html/functions_vars_u.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_v.html b/html/functions_vars_v.html
index 12deeed..debd830 100644
--- a/html/functions_vars_v.html
+++ b/html/functions_vars_v.html
@@ -108,7 +108,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_w.html b/html/functions_vars_w.html
index ee71527..26eea23 100644
--- a/html/functions_vars_w.html
+++ b/html/functions_vars_w.html
@@ -102,7 +102,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_x.html b/html/functions_vars_x.html
index e6b71c5..f3110df 100644
--- a/html/functions_vars_x.html
+++ b/html/functions_vars_x.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_y.html b/html/functions_vars_y.html
index b992ddf..caf802b 100644
--- a/html/functions_vars_y.html
+++ b/html/functions_vars_y.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_vars_z.html b/html/functions_vars_z.html
index 5691556..9e7976c 100644
--- a/html/functions_vars_z.html
+++ b/html/functions_vars_z.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_w.html b/html/functions_w.html
index 9bf5b9e..f7f5a61 100644
--- a/html/functions_w.html
+++ b/html/functions_w.html
@@ -102,7 +102,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_x.html b/html/functions_x.html
index a9b45cb..5dfcf7f 100644
--- a/html/functions_x.html
+++ b/html/functions_x.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_y.html b/html/functions_y.html
index 7959f83..3de6b52 100644
--- a/html/functions_y.html
+++ b/html/functions_y.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/functions_z.html b/html/functions_z.html
index 5b00e6d..962e87c 100644
--- a/html/functions_z.html
+++ b/html/functions_z.html
@@ -89,7 +89,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/getwcstab_8h.html b/html/getwcstab_8h.html
index 01c743e..8af9d7a 100644
--- a/html/getwcstab_8h.html
+++ b/html/getwcstab_8h.html
@@ -135,7 +135,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/getwcstab_8h_source.html b/html/getwcstab_8h_source.html
index 3343308..31c2b3c 100644
--- a/html/getwcstab_8h_source.html
+++ b/html/getwcstab_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="getwcstab_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,7 +75,7 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: getwcstab.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: getwcstab.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* Summary of the getwcstab routines</span></div>
@@ -254,7 +254,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals.html b/html/globals.html
index eeb0414..1ae5691 100644
--- a/html/globals.html
+++ b/html/globals.html
@@ -147,7 +147,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_b.html b/html/globals_b.html
index cf5de2b..bce7e7d 100644
--- a/html/globals_b.html
+++ b/html/globals_b.html
@@ -99,7 +99,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_c.html b/html/globals_c.html
index fa7af58..ea03882 100644
--- a/html/globals_c.html
+++ b/html/globals_c.html
@@ -152,6 +152,9 @@
 <li>CELLEN
 : <a class="el" href="cel_8h.html#a055ad88aa219a0207e221d62e03d2e23">cel.h</a>
 </li>
+<li>celperr()
+: <a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">cel.h</a>
+</li>
 <li>celprt()
 : <a class="el" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">cel.h</a>
 </li>
@@ -230,12 +233,12 @@
 <li>cscx2s()
 : <a class="el" href="prj_8h.html#afcefcb885b7d1c33e0458345cdc9f4a4">prj.h</a>
 </li>
-<li>CYLFIX
-: <a class="el" href="wcsfix_8h.html#a4d37e0274dff84649cba075b8761b3fa">wcsfix.h</a>
-</li>
 <li>cylfix()
 : <a class="el" href="wcsfix_8h.html#a07281faacbec1df800a417bf157751d7">wcsfix.h</a>
 </li>
+<li>CYLFIX
+: <a class="el" href="wcsfix_8h.html#a4d37e0274dff84649cba075b8761b3fa">wcsfix.h</a>
+</li>
 <li>cylfix_errmsg
 : <a class="el" href="wcsfix_8h.html#a3229b126ed844da0a2d4f7abff1de7d0">wcsfix.h</a>
 </li>
@@ -255,7 +258,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_d.html b/html/globals_d.html
index 4d766eb..9a4ce9b 100644
--- a/html/globals_d.html
+++ b/html/globals_d.html
@@ -86,17 +86,74 @@
 <li>D2R
 : <a class="el" href="wcsmath_8h.html#a0a3cc1d5cde549e408f825ddd7f5853d">wcsmath.h</a>
 </li>
+<li>DATFIX
+: <a class="el" href="wcsfix_8h.html#a7181ebe5e9f0a4058642c56dc848bd5c">wcsfix.h</a>
+</li>
 <li>datfix()
 : <a class="el" href="wcsfix_8h.html#a77b614a15de67b42040c2be46cbfca1a">wcsfix.h</a>
 </li>
-<li>DATFIX
-: <a class="el" href="wcsfix_8h.html#a7181ebe5e9f0a4058642c56dc848bd5c">wcsfix.h</a>
+<li>dis_errmsg
+: <a class="el" href="dis_8h.html#a6f125a402553f5dab46435299f0742a3">dis.h</a>
+</li>
+<li>dis_errmsg_enum
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis.h</a>
+</li>
+<li>discpy()
+: <a class="el" href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5">dis.h</a>
+</li>
+<li>DISERR_BAD_PARAM
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">dis.h</a>
+</li>
+<li>DISERR_DEDISTORT
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">dis.h</a>
+</li>
+<li>DISERR_DISTORT
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">dis.h</a>
+</li>
+<li>DISERR_MEMORY
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">dis.h</a>
+</li>
+<li>DISERR_NULL_POINTER
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">dis.h</a>
+</li>
+<li>DISERR_SUCCESS
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">dis.h</a>
+</li>
+<li>disfree()
+: <a class="el" href="dis_8h.html#a83b98d0f6429f4f19024675645026187">dis.h</a>
+</li>
+<li>disini()
+: <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463">dis.h</a>
+</li>
+<li>DISLEN
+: <a class="el" href="dis_8h.html#a5df41117cb392fc0c5d051002b441aa9">dis.h</a>
+</li>
+<li>disp2x()
+: <a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201">dis.h</a>
+</li>
+<li>DISP2X_ARGS
+: <a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">dis.h</a>
+</li>
+<li>disparms()
+: <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723">dis.h</a>
+</li>
+<li>disprt()
+: <a class="el" href="dis_8h.html#aeee35e0d5183e74f20c64526d908886b">dis.h</a>
+</li>
+<li>disset()
+: <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041">dis.h</a>
+</li>
+<li>disx2p()
+: <a class="el" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653">dis.h</a>
+</li>
+<li>DISX2P_ARGS
+: <a class="el" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">dis.h</a>
 </li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_defs.html b/html/globals_defs.html
index 8d0ec84..36483ce 100644
--- a/html/globals_defs.html
+++ b/html/globals_defs.html
@@ -114,6 +114,15 @@
 <li>DATFIX
 : <a class="el" href="wcsfix_8h.html#a7181ebe5e9f0a4058642c56dc848bd5c">wcsfix.h</a>
 </li>
+<li>DISLEN
+: <a class="el" href="dis_8h.html#a5df41117cb392fc0c5d051002b441aa9">dis.h</a>
+</li>
+<li>DISP2X_ARGS
+: <a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">dis.h</a>
+</li>
+<li>DISX2P_ARGS
+: <a class="el" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">dis.h</a>
+</li>
 </ul>
 
 
@@ -377,6 +386,9 @@
 <li>WCSHDR_CD00i00j
 : <a class="el" href="wcshdr_8h.html#a63eb554461f3df5dc64a25f71891b9f1">wcshdr.h</a>
 </li>
+<li>WCSHDR_CD0i_0ja
+: <a class="el" href="wcshdr_8h.html#a859baeb46a09ce21b6dbff40fe6c8f4a">wcshdr.h</a>
+</li>
 <li>WCSHDR_CNAMn
 : <a class="el" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e">wcshdr.h</a>
 </li>
@@ -401,18 +413,30 @@
 <li>WCSHDR_PC00i00j
 : <a class="el" href="wcshdr_8h.html#a3dea9d7548bdbc9a7cc8d0a04cdd46fb">wcshdr.h</a>
 </li>
+<li>WCSHDR_PC0i_0ja
+: <a class="el" href="wcshdr_8h.html#aa2e6d72be227da4c8c7d6d47a7274e59">wcshdr.h</a>
+</li>
 <li>WCSHDR_PIXLIST
 : <a class="el" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070">wcshdr.h</a>
 </li>
 <li>WCSHDR_PROJPn
 : <a class="el" href="wcshdr_8h.html#aee4fe41274945f9e34009d2eb309c922">wcshdr.h</a>
 </li>
+<li>WCSHDR_PS0i_0ma
+: <a class="el" href="wcshdr_8h.html#ae695c1dc3fb7785cdaa24e2fcc906074">wcshdr.h</a>
+</li>
+<li>WCSHDR_PV0i_0ma
+: <a class="el" href="wcshdr_8h.html#af84f778ea111ae655505a1899a06b063">wcshdr.h</a>
+</li>
 <li>WCSHDR_RADECSYS
 : <a class="el" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca">wcshdr.h</a>
 </li>
 <li>WCSHDR_reject
 : <a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6">wcshdr.h</a>
 </li>
+<li>WCSHDR_strict
+: <a class="el" href="wcshdr_8h.html#a7b0e2f1a88e02909ea6366d3a18d6a84">wcshdr.h</a>
+</li>
 <li>WCSHDR_VELREFa
 : <a class="el" href="wcshdr_8h.html#afc0a5a6b475a8e50b77d4be099790985">wcshdr.h</a>
 </li>
@@ -525,7 +549,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:01 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_e.html b/html/globals_e.html
index 010486a..f8d07d1 100644
--- a/html/globals_e.html
+++ b/html/globals_e.html
@@ -93,7 +93,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_enum.html b/html/globals_enum.html
index 979ba1c..daa528d 100644
--- a/html/globals_enum.html
+++ b/html/globals_enum.html
@@ -58,6 +58,9 @@
 <li>cel_errmsg_enum
 : <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel.h</a>
 </li>
+<li>dis_errmsg_enum
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fd">dis.h</a>
+</li>
 <li>lin_errmsg_enum
 : <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin.h</a>
 </li>
@@ -92,7 +95,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:01 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_eval.html b/html/globals_eval.html
index 55fdd9b..135f332 100644
--- a/html/globals_eval.html
+++ b/html/globals_eval.html
@@ -55,6 +55,7 @@
   <div id="navrow4" class="tabs3">
     <ul class="tablist">
       <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
       <li><a href="#index_f"><span>f</span></a></li>
       <li><a href="#index_l"><span>l</span></a></li>
       <li><a href="#index_p"><span>p</span></a></li>
@@ -93,6 +94,28 @@
 </ul>
 
 
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>DISERR_BAD_PARAM
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdace3a5f769a3b8966f980f1279e2f08b0">dis.h</a>
+</li>
+<li>DISERR_DEDISTORT
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdabe0645cb8d4bfc0f496aa84336ca492a">dis.h</a>
+</li>
+<li>DISERR_DISTORT
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdadbabbc4a9fe6441177efcd050b4cc579">dis.h</a>
+</li>
+<li>DISERR_MEMORY
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda7298d8c404456ac8c3a5365f2f266d80">dis.h</a>
+</li>
+<li>DISERR_NULL_POINTER
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fda8c5a7d847d62520f972e51435d4d0d46">dis.h</a>
+</li>
+<li>DISERR_SUCCESS
+: <a class="el" href="dis_8h.html#a27ab258e601dcfa4d184a35edbc590fdaeaef8bb1725ea601f43900897ee144a8">dis.h</a>
+</li>
+</ul>
+
+
 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
 <li>FIXERR_BAD_COORD_TRANS
 : <a class="el" href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183a5dd410d6f1a55543c4f7d0f82435eb40">wcsfix.h</a>
@@ -143,6 +166,15 @@
 
 
 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>LINERR_DEDISTORT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">lin.h</a>
+</li>
+<li>LINERR_DISTORT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">lin.h</a>
+</li>
+<li>LINERR_DISTORT_INIT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">lin.h</a>
+</li>
 <li>LINERR_MEMORY
 : <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">lin.h</a>
 </li>
@@ -359,7 +391,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:01 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_f.html b/html/globals_f.html
index a78ec77..21b6213 100644
--- a/html/globals_f.html
+++ b/html/globals_f.html
@@ -180,7 +180,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func.html b/html/globals_func.html
index 3d9cf72..e37cc29 100644
--- a/html/globals_func.html
+++ b/html/globals_func.html
@@ -143,7 +143,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_b.html b/html/globals_func_b.html
index 27ef29f..29f305c 100644
--- a/html/globals_func_b.html
+++ b/html/globals_func_b.html
@@ -95,7 +95,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_c.html b/html/globals_func_c.html
index 2f28f77..9a3479d 100644
--- a/html/globals_func_c.html
+++ b/html/globals_func_c.html
@@ -109,6 +109,9 @@
 <li>celini()
 : <a class="el" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77">cel.h</a>
 </li>
+<li>celperr()
+: <a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">cel.h</a>
+</li>
 <li>celprt()
 : <a class="el" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">cel.h</a>
 </li>
@@ -185,7 +188,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_d.html b/html/globals_func_d.html
index e33c639..216cdbf 100644
--- a/html/globals_func_d.html
+++ b/html/globals_func_d.html
@@ -82,11 +82,35 @@
 <li>datfix()
 : <a class="el" href="wcsfix_8h.html#a77b614a15de67b42040c2be46cbfca1a">wcsfix.h</a>
 </li>
+<li>discpy()
+: <a class="el" href="dis_8h.html#a42e03676a3def43ef6b936cd7beb4dd5">dis.h</a>
+</li>
+<li>disfree()
+: <a class="el" href="dis_8h.html#a83b98d0f6429f4f19024675645026187">dis.h</a>
+</li>
+<li>disini()
+: <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463">dis.h</a>
+</li>
+<li>disp2x()
+: <a class="el" href="dis_8h.html#a135726e4c4c5bc00e2eba865ab202201">dis.h</a>
+</li>
+<li>disparms()
+: <a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723">dis.h</a>
+</li>
+<li>disprt()
+: <a class="el" href="dis_8h.html#aeee35e0d5183e74f20c64526d908886b">dis.h</a>
+</li>
+<li>disset()
+: <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041">dis.h</a>
+</li>
+<li>disx2p()
+: <a class="el" href="dis_8h.html#ac589d5e85afe3d775cba4c06734ce653">dis.h</a>
+</li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_e.html b/html/globals_func_e.html
index 226b604..e2e76bf 100644
--- a/html/globals_func_e.html
+++ b/html/globals_func_e.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_f.html b/html/globals_func_f.html
index 78b1754..88fc3f9 100644
--- a/html/globals_func_f.html
+++ b/html/globals_func_f.html
@@ -110,7 +110,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_h.html b/html/globals_func_h.html
index 4aaec01..79087ae 100644
--- a/html/globals_func_h.html
+++ b/html/globals_func_h.html
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_l.html b/html/globals_func_l.html
index 7d806ca..548631a 100644
--- a/html/globals_func_l.html
+++ b/html/globals_func_l.html
@@ -82,6 +82,9 @@
 <li>lincpy()
 : <a class="el" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1">lin.h</a>
 </li>
+<li>lindis()
+: <a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lin.h</a>
+</li>
 <li>linfree()
 : <a class="el" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303">lin.h</a>
 </li>
@@ -91,6 +94,9 @@
 <li>linp2x()
 : <a class="el" href="lin_8h.html#ae4947608476c198ad27759d1e562d655">lin.h</a>
 </li>
+<li>linperr()
+: <a class="el" href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7">lin.h</a>
+</li>
 <li>linprt()
 : <a class="el" href="lin_8h.html#a946005b038f5c584691630b5d39369e3">lin.h</a>
 </li>
@@ -110,7 +116,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_m.html b/html/globals_func_m.html
index e180e95..dc10b9f 100644
--- a/html/globals_func_m.html
+++ b/html/globals_func_m.html
@@ -104,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_p.html b/html/globals_func_p.html
index 374acf4..f44734e 100644
--- a/html/globals_func_p.html
+++ b/html/globals_func_p.html
@@ -122,7 +122,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_q.html b/html/globals_func_q.html
index 8b69839..6335079 100644
--- a/html/globals_func_q.html
+++ b/html/globals_func_q.html
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_s.html b/html/globals_func_s.html
index b961664..8fcb28c 100644
--- a/html/globals_func_s.html
+++ b/html/globals_func_s.html
@@ -188,7 +188,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_t.html b/html/globals_func_t.html
index e268819..e015b43 100644
--- a/html/globals_func_t.html
+++ b/html/globals_func_t.html
@@ -118,6 +118,30 @@
 <li>tanx2s()
 : <a class="el" href="prj_8h.html#acd4f54c072b6219242daeb6d4b9a74cb">prj.h</a>
 </li>
+<li>tpv1()
+: <a class="el" href="dis_8h.html#a4182d3cd45a022e930c44c4f933c0639">dis.h</a>
+</li>
+<li>tpv2()
+: <a class="el" href="dis_8h.html#a961d359c77ef6d9e4d2f2f14a53d0b39">dis.h</a>
+</li>
+<li>tpv3()
+: <a class="el" href="dis_8h.html#a5d5f35665cd05c17322147bf483ec914">dis.h</a>
+</li>
+<li>tpv4()
+: <a class="el" href="dis_8h.html#afca391dcab0909f05654f99505f2a4fb">dis.h</a>
+</li>
+<li>tpv5()
+: <a class="el" href="dis_8h.html#a393642b85f8a7da45a0447c81a20202d">dis.h</a>
+</li>
+<li>tpv6()
+: <a class="el" href="dis_8h.html#a4c12eaf2bad14222de4213f69206c7a8">dis.h</a>
+</li>
+<li>tpv7()
+: <a class="el" href="dis_8h.html#a952910ebfd260e7d9b59e134674f8f26">dis.h</a>
+</li>
+<li>tpvset()
+: <a class="el" href="dis_8h.html#a402a8a2a75907d0849cee87a0d72b5f5">dis.h</a>
+</li>
 <li>tscs2x()
 : <a class="el" href="prj_8h.html#a167a49d730bca43483aef311f7114ae4">prj.h</a>
 </li>
@@ -131,7 +155,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_u.html b/html/globals_func_u.html
index 86e21d8..e6fbdef 100644
--- a/html/globals_func_u.html
+++ b/html/globals_func_u.html
@@ -86,7 +86,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_v.html b/html/globals_func_v.html
index 01ef271..240c45f 100644
--- a/html/globals_func_v.html
+++ b/html/globals_func_v.html
@@ -101,7 +101,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_w.html b/html/globals_func_w.html
index 925cc35..cb66ec1 100644
--- a/html/globals_func_w.html
+++ b/html/globals_func_w.html
@@ -145,6 +145,9 @@
 <li>wcsini()
 : <a class="el" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcs.h</a>
 </li>
+<li>wcslib_version()
+: <a class="el" href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcs.h</a>
+</li>
 <li>wcsmix()
 : <a class="el" href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81">wcs.h</a>
 </li>
@@ -251,7 +254,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_x.html b/html/globals_func_x.html
index 4278e88..b715463 100644
--- a/html/globals_func_x.html
+++ b/html/globals_func_x.html
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_func_z.html b/html/globals_func_z.html
index 746d98e..624dbb2 100644
--- a/html/globals_func_z.html
+++ b/html/globals_func_z.html
@@ -104,7 +104,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_h.html b/html/globals_h.html
index 9f6472f..371fc3a 100644
--- a/html/globals_h.html
+++ b/html/globals_h.html
@@ -99,7 +99,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_i.html b/html/globals_i.html
index 8b6a1b6..35558db 100644
--- a/html/globals_i.html
+++ b/html/globals_i.html
@@ -90,7 +90,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_k.html b/html/globals_k.html
index 7888038..376bba4 100644
--- a/html/globals_k.html
+++ b/html/globals_k.html
@@ -93,7 +93,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_l.html b/html/globals_l.html
index 207109d..78eb1cf 100644
--- a/html/globals_l.html
+++ b/html/globals_l.html
@@ -95,6 +95,18 @@
 <li>lincpy_errmsg
 : <a class="el" href="lin_8h.html#a58c2822debf5b36daa18fe8711d724f2">lin.h</a>
 </li>
+<li>lindis()
+: <a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lin.h</a>
+</li>
+<li>LINERR_DEDISTORT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">lin.h</a>
+</li>
+<li>LINERR_DISTORT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">lin.h</a>
+</li>
+<li>LINERR_DISTORT_INIT
+: <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">lin.h</a>
+</li>
 <li>LINERR_MEMORY
 : <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">lin.h</a>
 </li>
@@ -128,6 +140,9 @@
 <li>linp2x_errmsg
 : <a class="el" href="lin_8h.html#acb8c02645d7cc3d42e3db6ebf74de192">lin.h</a>
 </li>
+<li>linperr()
+: <a class="el" href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7">lin.h</a>
+</li>
 <li>linprt()
 : <a class="el" href="lin_8h.html#a946005b038f5c584691630b5d39369e3">lin.h</a>
 </li>
@@ -177,7 +192,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_m.html b/html/globals_m.html
index 2f6be25..e40a10c 100644
--- a/html/globals_m.html
+++ b/html/globals_m.html
@@ -108,7 +108,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_n.html b/html/globals_n.html
index db9ebc9..0178633 100644
--- a/html/globals_n.html
+++ b/html/globals_n.html
@@ -90,7 +90,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_p.html b/html/globals_p.html
index 3409ac7..2948830 100644
--- a/html/globals_p.html
+++ b/html/globals_p.html
@@ -192,7 +192,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_q.html b/html/globals_q.html
index ae0d593..7838bac 100644
--- a/html/globals_q.html
+++ b/html/globals_q.html
@@ -99,7 +99,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_r.html b/html/globals_r.html
index 37933b2..5b72942 100644
--- a/html/globals_r.html
+++ b/html/globals_r.html
@@ -90,7 +90,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_s.html b/html/globals_s.html
index 50844b2..4d6db17 100644
--- a/html/globals_s.html
+++ b/html/globals_s.html
@@ -267,7 +267,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_t.html b/html/globals_t.html
index 6ee9202..b4e132c 100644
--- a/html/globals_t.html
+++ b/html/globals_t.html
@@ -170,6 +170,30 @@
 <li>tanx2s()
 : <a class="el" href="prj_8h.html#acd4f54c072b6219242daeb6d4b9a74cb">prj.h</a>
 </li>
+<li>tpv1()
+: <a class="el" href="dis_8h.html#a4182d3cd45a022e930c44c4f933c0639">dis.h</a>
+</li>
+<li>tpv2()
+: <a class="el" href="dis_8h.html#a961d359c77ef6d9e4d2f2f14a53d0b39">dis.h</a>
+</li>
+<li>tpv3()
+: <a class="el" href="dis_8h.html#a5d5f35665cd05c17322147bf483ec914">dis.h</a>
+</li>
+<li>tpv4()
+: <a class="el" href="dis_8h.html#afca391dcab0909f05654f99505f2a4fb">dis.h</a>
+</li>
+<li>tpv5()
+: <a class="el" href="dis_8h.html#a393642b85f8a7da45a0447c81a20202d">dis.h</a>
+</li>
+<li>tpv6()
+: <a class="el" href="dis_8h.html#a4c12eaf2bad14222de4213f69206c7a8">dis.h</a>
+</li>
+<li>tpv7()
+: <a class="el" href="dis_8h.html#a952910ebfd260e7d9b59e134674f8f26">dis.h</a>
+</li>
+<li>tpvset()
+: <a class="el" href="dis_8h.html#a402a8a2a75907d0849cee87a0d72b5f5">dis.h</a>
+</li>
 <li>tscs2x()
 : <a class="el" href="prj_8h.html#a167a49d730bca43483aef311f7114ae4">prj.h</a>
 </li>
@@ -183,7 +207,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_type.html b/html/globals_type.html
index 953ba0e..787c03f 100644
--- a/html/globals_type.html
+++ b/html/globals_type.html
@@ -62,7 +62,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_u.html b/html/globals_u.html
index 1395ea7..ccd7e4a 100644
--- a/html/globals_u.html
+++ b/html/globals_u.html
@@ -138,7 +138,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_v.html b/html/globals_v.html
index db72176..7690c5b 100644
--- a/html/globals_v.html
+++ b/html/globals_v.html
@@ -105,7 +105,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_vars.html b/html/globals_vars.html
index ac51f53..ad0c97d 100644
--- a/html/globals_vars.html
+++ b/html/globals_vars.html
@@ -67,6 +67,9 @@
 <li>CYLINDRICAL
 : <a class="el" href="prj_8h.html#a86e25219d2169702c7db6508750097cf">prj.h</a>
 </li>
+<li>dis_errmsg
+: <a class="el" href="dis_8h.html#a6f125a402553f5dab46435299f0742a3">dis.h</a>
+</li>
 <li>fitshdr_errmsg
 : <a class="el" href="fitshdr_8h.html#ad966ed3fefd26c9546ec078171e3940b">fitshdr.h</a>
 </li>
@@ -134,7 +137,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_w.html b/html/globals_w.html
index df3a315..1766b2e 100644
--- a/html/globals_w.html
+++ b/html/globals_w.html
@@ -185,12 +185,12 @@
 <li>wcserr_prt()
 : <a class="el" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9">wcserr.h</a>
 </li>
-<li>wcserr_set()
-: <a class="el" href="wcserr_8h.html#ab0945d3588b604205b9c1b3d661a794f">wcserr.h</a>
-</li>
 <li>WCSERR_SET
 : <a class="el" href="wcserr_8h.html#acfa8a447539633296d50e67c7ab466c2">wcserr.h</a>
 </li>
+<li>wcserr_set()
+: <a class="el" href="wcserr_8h.html#ab0945d3588b604205b9c1b3d661a794f">wcserr.h</a>
+</li>
 <li>WCSERR_SINGULAR_MTX
 : <a class="el" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0">wcs.h</a>
 </li>
@@ -263,6 +263,9 @@
 <li>WCSHDR_CD00i00j
 : <a class="el" href="wcshdr_8h.html#a63eb554461f3df5dc64a25f71891b9f1">wcshdr.h</a>
 </li>
+<li>WCSHDR_CD0i_0ja
+: <a class="el" href="wcshdr_8h.html#a859baeb46a09ce21b6dbff40fe6c8f4a">wcshdr.h</a>
+</li>
 <li>WCSHDR_CNAMn
 : <a class="el" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e">wcshdr.h</a>
 </li>
@@ -293,18 +296,30 @@
 <li>WCSHDR_PC00i00j
 : <a class="el" href="wcshdr_8h.html#a3dea9d7548bdbc9a7cc8d0a04cdd46fb">wcshdr.h</a>
 </li>
+<li>WCSHDR_PC0i_0ja
+: <a class="el" href="wcshdr_8h.html#aa2e6d72be227da4c8c7d6d47a7274e59">wcshdr.h</a>
+</li>
 <li>WCSHDR_PIXLIST
 : <a class="el" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070">wcshdr.h</a>
 </li>
 <li>WCSHDR_PROJPn
 : <a class="el" href="wcshdr_8h.html#aee4fe41274945f9e34009d2eb309c922">wcshdr.h</a>
 </li>
+<li>WCSHDR_PS0i_0ma
+: <a class="el" href="wcshdr_8h.html#ae695c1dc3fb7785cdaa24e2fcc906074">wcshdr.h</a>
+</li>
+<li>WCSHDR_PV0i_0ma
+: <a class="el" href="wcshdr_8h.html#af84f778ea111ae655505a1899a06b063">wcshdr.h</a>
+</li>
 <li>WCSHDR_RADECSYS
 : <a class="el" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca">wcshdr.h</a>
 </li>
 <li>WCSHDR_reject
 : <a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6">wcshdr.h</a>
 </li>
+<li>WCSHDR_strict
+: <a class="el" href="wcshdr_8h.html#a7b0e2f1a88e02909ea6366d3a18d6a84">wcshdr.h</a>
+</li>
 <li>WCSHDR_VELREFa
 : <a class="el" href="wcshdr_8h.html#afc0a5a6b475a8e50b77d4be099790985">wcshdr.h</a>
 </li>
@@ -341,6 +356,9 @@
 <li>WCSLEN
 : <a class="el" href="wcs_8h.html#a6852f6dd2883c82296f1108b897d337e">wcs.h</a>
 </li>
+<li>wcslib_version()
+: <a class="el" href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcs.h</a>
+</li>
 <li>wcsmix()
 : <a class="el" href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81">wcs.h</a>
 </li>
@@ -555,7 +573,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_x.html b/html/globals_x.html
index 0d85796..4af7985 100644
--- a/html/globals_x.html
+++ b/html/globals_x.html
@@ -96,7 +96,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/globals_z.html b/html/globals_z.html
index 4c13e06..2f48cf2 100644
--- a/html/globals_z.html
+++ b/html/globals_z.html
@@ -111,7 +111,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/index.html b/html/index.html
index 1f0aa66..dc26a91 100644
--- a/html/index.html
+++ b/html/index.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.9.1"/>
-<title>WCSLIB: WCSLIB 4.25.1 and PGSBOX 4.25.1</title>
+<title>WCSLIB: WCSLIB 5.0 and PGSBOX 5.0</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">WCSLIB 4.25.1 and PGSBOX 4.25.1 </div>  </div>
+<div class="title">WCSLIB 5.0 and PGSBOX 5.0 </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><div class="image">
@@ -62,7 +62,7 @@ Contents</h1>
 </ul>
 <h1><a class="anchor" id="copyright"></a>
 Copyright</h1>
-<pre class="fragment">  WCSLIB 4.25.1 - an implementation of the FITS WCS standard.
+<pre class="fragment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   WCSLIB is free software: you can redistribute it and/or modify it under the
@@ -82,11 +82,11 @@ Copyright</h1>
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: mainpage.dox,v 4.25.1.3 2015/01/06 01:02:55 mcalabre Exp mcalabre $
+  $Id: mainpage.dox,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 </pre> </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/intro.html b/html/intro.html
index 39a96a4..b6f3d0c 100644
--- a/html/intro.html
+++ b/html/intro.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -63,7 +63,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/lin_8h.html b/html/lin_8h.html
index e707099..7285962 100644
--- a/html/lin_8h.html
+++ b/html/lin_8h.html
@@ -57,8 +57,7 @@
 <div class="title">lin.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
-</div>
+
 <p><a href="lin_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -96,10 +95,16 @@ Macros</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
 Enumerations</h2></td></tr>
-<tr class="memitem:a6690044d47c6784a4cc0ccf6f52bfc1f"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a> { <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a> = 0, 
+<tr class="memitem:a6690044d47c6784a4cc0ccf6f52bfc1f"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a> { <br />
+  <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a> = 0, 
 <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">LINERR_NULL_POINTER</a> = 1, 
 <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">LINERR_MEMORY</a> = 2, 
-<a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a> = 3
+<a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a> = 3, 
+<br />
+  <a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">LINERR_DISTORT_INIT</a> = 4, 
+<a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">LINERR_DISTORT</a> = 5, 
+<a class="el" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">LINERR_DEDISTORT</a> = 6
+<br />
  }</td></tr>
 <tr class="separator:a6690044d47c6784a4cc0ccf6f52bfc1f"><td class="memSeparator" colspan="2"> </td></tr>
 </table><table class="memberdecls">
@@ -108,6 +113,9 @@ Functions</h2></td></tr>
 <tr class="memitem:a7ddea28768d99f01c6be1c71a4d8fe58"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58">linini</a> (int alloc, int naxis, struct <a class="el" href="structlinprm.html">linprm</a> *lin)</td></tr>
 <tr class="memdesc:a7ddea28768d99f01c6be1c71a4d8fe58"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor for the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#a7ddea28768d99f01c6be1c71a4d8fe58">More...</a><br /></td></tr>
 <tr class="separator:a7ddea28768d99f01c6be1c71a4d8fe58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad68df60cc9fa6f86e2c6e6943dc74cdb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lindis</a> (int sequence, struct <a class="el" href="structlinprm.html">linprm</a> *lin, struct <a class="el" href="structdisprm.html">disprm</a> *dis)</td></tr>
+<tr class="memdesc:ad68df60cc9fa6f86e2c6e6943dc74cdb"><td class="mdescLeft"> </td><td class="mdescRight">Assign a distortion to a <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#ad68df60cc9fa6f86e2c6e6943dc74cdb">More...</a><br /></td></tr>
+<tr class="separator:ad68df60cc9fa6f86e2c6e6943dc74cdb"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:ab8fc0ef6b34eb3327b13a00de78232b1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1">lincpy</a> (int alloc, const struct <a class="el" href="structlinprm.html">linprm</a> *linsrc, struct <a class="el" href="structlinprm.html">linprm</a> *lindst)</td></tr>
 <tr class="memdesc:ab8fc0ef6b34eb3327b13a00de78232b1"><td class="mdescLeft"> </td><td class="mdescRight">Copy routine for the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#ab8fc0ef6b34eb3327b13a00de78232b1">More...</a><br /></td></tr>
 <tr class="separator:ab8fc0ef6b34eb3327b13a00de78232b1"><td class="memSeparator" colspan="2"> </td></tr>
@@ -117,6 +125,9 @@ Functions</h2></td></tr>
 <tr class="memitem:a946005b038f5c584691630b5d39369e3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a946005b038f5c584691630b5d39369e3">linprt</a> (const struct <a class="el" href="structlinprm.html">linprm</a> *lin)</td></tr>
 <tr class="memdesc:a946005b038f5c584691630b5d39369e3"><td class="mdescLeft"> </td><td class="mdescRight">Print routine for the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#a946005b038f5c584691630b5d39369e3">More...</a><br /></td></tr>
 <tr class="separator:a946005b038f5c584691630b5d39369e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7bdde709fac889f1c386e9c8993d74f7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7">linperr</a> (const struct <a class="el" href="structlinprm.html">linprm</a> *lin, const char *prefix)</td></tr>
+<tr class="memdesc:a7bdde709fac889f1c386e9c8993d74f7"><td class="mdescLeft"> </td><td class="mdescRight">Print error messages from a <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#a7bdde709fac889f1c386e9c8993d74f7">More...</a><br /></td></tr>
+<tr class="separator:a7bdde709fac889f1c386e9c8993d74f7"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a5c01c0991c8d0c4437581a7c1453b09a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a">linset</a> (struct <a class="el" href="structlinprm.html">linprm</a> *lin)</td></tr>
 <tr class="memdesc:a5c01c0991c8d0c4437581a7c1453b09a"><td class="mdescLeft"> </td><td class="mdescRight">Setup routine for the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct.  <a href="#a5c01c0991c8d0c4437581a7c1453b09a">More...</a><br /></td></tr>
 <tr class="separator:a5c01c0991c8d0c4437581a7c1453b09a"><td class="memSeparator" colspan="2"> </td></tr>
@@ -138,7 +149,8 @@ Variables</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>These routines apply the linear transformation defined by the FITS WCS standard. They are based on the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct which contains all information needed for the computations. The struct contains some members that must be set by the user, and others that are maintained by these routines, somewhat like a C++ class but with no encapsulation.</p>
-<p>Three routines, <a class="el" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58" title="Default constructor for the linprm struct. ">linini()</a>, <a class="el" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1" title="Copy routine for the linprm struct. ">lincpy()</a>, and <a class="el" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303" title="Destructor for the linprm struct. ">linfree()</a> are provided to manage the <a class="el" href="structlinprm.html" title="Linear transf [...]
+<p>Four routines, <a class="el" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58" title="Default constructor for the linprm struct. ">linini()</a>, <a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb" title="Assign a distortion to a linprm struct. ">lindis()</a>, <a class="el" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1" title="Copy routine for the linprm struct. ">lincpy()</a>, and <a class="el" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303" title="Destruc [...]
+<p><a class="el" href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7" title="Print error messages from a linprm struct. ">linperr()</a> prints the error message(s) (if any) stored in a <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct, and the disprm structs that it may contain.</p>
 <p>A setup routine, <a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a" title="Setup routine for the linprm struct. ">linset()</a>, computes intermediate values in the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct from parameters in it that were supplied by the user. The struct always needs to be set up by <a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a" title="Setup routine for the linprm struct. ">li [...]
 <p><a class="el" href="lin_8h.html#ae4947608476c198ad27759d1e562d655" title="Pixel-to-world linear transformation. ">linp2x()</a> and <a class="el" href="lin_8h.html#a5490027e9699680dfefe370c28691243" title="World-to-pixel linear transformation. ">linx2p()</a> implement the WCS linear transformations.</p>
 <p>An auxiliary matrix inversion routine, <a class="el" href="lin_8h.html#acc7d26efba3ca08d36047253a9315dcc" title="Matrix inversion. ">matinv()</a>, is included. It uses LU-triangular factorization with scaled partial pivoting. </p>
@@ -266,6 +278,12 @@ Variables</h2></td></tr>
 </td></tr>
 <tr><td class="fieldname"><a class="anchor" id="a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8"></a>LINERR_SINGULAR_MTX </td><td class="fielddoc">
 </td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7"></a>LINERR_DISTORT_INIT </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2"></a>LINERR_DISTORT </td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><a class="anchor" id="a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9"></a>LINERR_DEDISTORT </td><td class="fielddoc">
+</td></tr>
 </table>
 
 </div>
@@ -301,7 +319,7 @@ Variables</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <p><b>linini</b>() allocates memory for arrays in a <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct and sets all members of the struct to default values.</p>
-<p><b>PLEASE NOTE:</b> every <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct should be initialized by <b>linini</b>(), possibly repeatedly. On the first invokation, and only the first invokation, <a class="el" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm::flag</a> must be set to -1 to initialize memory management, regardless of whether <b>linini</b>() will actually be used to allocate memory.</p>
+<p><b>PLEASE NOTE:</b> every <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct must be initialized by <b>linini</b>(), possibly repeatedly. On the first invokation, and only the first invokation, <a class="el" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm::flag</a> must be set to -1 to initialize memory management, regardless of whether <b>linini</b>() will actually be used to allocate memory.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">alloc</td><td>If true, allocate memory unconditionally for arrays in the <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct. <br />
@@ -320,6 +338,59 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 
 </div>
 </div>
+<a class="anchor" id="ad68df60cc9fa6f86e2c6e6943dc74cdb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int lindis </td>
+          <td>(</td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>sequence</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct <a class="el" href="structlinprm.html">linprm</a> * </td>
+          <td class="paramname"><em>lin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct <a class="el" href="structdisprm.html">disprm</a> * </td>
+          <td class="paramname"><em>dis</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>lindis</b>() may be used to assign the address of a disprm struct to <a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm::dispre</a> or <a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm::disseq</a>. The <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct must already have been initialized by <a class="el" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58" title="Default const [...]
+<p>The disprm struct must have been allocated from the heap (e.g. using malloc(), calloc(), etc.). <b>lindis</b>() will immediately initialize it via a call to <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a> using the value of <a class="el" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm::naxis</a>. Subsequently, it will be reinitialized by calls to <a class="el" href="lin_8h.html#a7ddea [...]
+<p>If the disprm struct had previously been assigned via <b>lindis</b>(), it will be freed before reassignment. It is also permissable for a null disprm pointer to be assigned to disable the distortion correction.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">sequence</td><td>Is it a prior or sequent distortion?<ul>
+<li>1: Prior, the assignment is to <a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm::dispre</a>.</li>
+<li>2: Sequent, the assignment is to <a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm::disseq</a>.</li>
+</ul>
+Anything else is an error.</td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">lin</td><td>Linear transformation parameters. </td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">dis</td><td>Distortion function parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> pointer passed.</li>
+<li>4: Invalid sequence. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
 <a class="anchor" id="ab8fc0ef6b34eb3327b13a00de78232b1"></a>
 <div class="memitem">
 <div class="memproto">
@@ -424,6 +495,45 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 
 </div>
 </div>
+<a class="anchor" id="a7bdde709fac889f1c386e9c8993d74f7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int linperr </td>
+          <td>(</td>
+          <td class="paramtype">const struct <a class="el" href="structlinprm.html">linprm</a> * </td>
+          <td class="paramname"><em>lin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char * </td>
+          <td class="paramname"><em>prefix</em> </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><b>linperr</b>() prints the error message(s) (if any) stored in a <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> struct, and the disprm structs that it may contain. If there are no errors then nothing is printed. It uses <a class="el" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9" title="Print a wcserr struct. ">wcserr_prt()</a>, q.v.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">lin</td><td>Coordinate transformation parameters. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>If non-NULL, each output line will be prefixed with this string.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
+<li>0: Success.</li>
+<li>1: Null <a class="el" href="structlinprm.html" title="Linear transformation parameters. ">linprm</a> pointer passed. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
 <a class="anchor" id="a5c01c0991c8d0c4437581a7c1453b09a"></a>
 <div class="memitem">
 <div class="memproto">
@@ -640,7 +750,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/lin_8h_source.html b/html/lin_8h_source.html
index ca7d4e6..249eb78 100644
--- a/html/lin_8h_source.html
+++ b/html/lin_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="lin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: lin.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: lin.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -96,448 +96,591 @@
 <div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">* that must be set by the user, and others that are maintained by these</span></div>
 <div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">* routines, somewhat like a C++ class but with no encapsulation.</span></div>
 <div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">* Three routines, linini(), lincpy(), and linfree() are provided to manage the</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">* linprm struct, and another, linprt(), prints its contents.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">* Four routines, linini(), lindis(), lincpy(), and linfree() are provided to</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">* manage the linprm struct, and another, linprt(), prints its contents.</span></div>
 <div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">* A setup routine, linset(), computes intermediate values in the linprm struct</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">* from parameters in it that were supplied by the user.  The struct always</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">* needs to be set up by linset() but need not be called explicitly - refer to</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">* the explanation of linprm::flag.</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">* linp2x() and linx2p() implement the WCS linear transformations.</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">* An auxiliary matrix inversion routine, matinv(), is included.  It uses</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">* LU-triangular factorization with scaled partial pivoting.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">* linperr() prints the error message(s) (if any) stored in a linprm struct,</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">* and the disprm structs that it may contain.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">* A setup routine, linset(), computes intermediate values in the linprm struct</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">* from parameters in it that were supplied by the user.  The struct always</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">* needs to be set up by linset() but need not be called explicitly - refer to</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">* the explanation of linprm::flag.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">* linp2x() and linx2p() implement the WCS linear transformations.</span></div>
 <div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">* linini() - Default constructor for the linprm struct</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">* ----------------------------------------------------</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">* linini() allocates memory for arrays in a linprm struct and sets all members</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">* of the struct to default values.</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">* PLEASE NOTE: every linprm struct should be initialized by linini(), possibly</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">* repeatedly.  On the first invokation, and only the first invokation,</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">* linprm::flag must be set to -1 to initialize memory management, regardless</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">* of whether linini() will actually be used to allocate memory.</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for arrays in</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">*                       the linprm struct.</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">*                       If false, it is assumed that pointers to these arrays</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">*                       have been set by the user except if they are null</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">*                       pointers in which case memory will be allocated for</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">*                       them regardless.  (In other words, setting alloc true</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">*                       saves having to initalize these pointers to zero.)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">*   naxis     int       The number of world coordinate axes, used to determine</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">*                       array sizes.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">* An auxiliary matrix inversion routine, matinv(), is included.  It uses</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">* LU-triangular factorization with scaled partial pivoting.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">* linini() - Default constructor for the linprm struct</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">* linini() allocates memory for arrays in a linprm struct and sets all members</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">* of the struct to default values.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">* PLEASE NOTE: every linprm struct must be initialized by linini(), possibly</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">* repeatedly.  On the first invokation, and only the first invokation,</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">* linprm::flag must be set to -1 to initialize memory management, regardless</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">* of whether linini() will actually be used to allocate memory.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for arrays in</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">*                       the linprm struct.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">*                       If false, it is assumed that pointers to these arrays</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">*                       have been set by the user except if they are null</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">*                       pointers in which case memory will be allocated for</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">*                       them regardless.  (In other words, setting alloc true</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">*                       saves having to initalize these pointers to zero.)</span></div>
 <div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">*   lin       struct linprm*</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">*                       Linear transformation parameters.  Note that, in order</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">*                       to initialize memory management linprm::flag should be</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">*                       set to -1 when lin is initialized for the first time</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">*                       (memory leaks may result if it had already been</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*                       initialized).</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">*   naxis     int       The number of world coordinate axes, used to determine</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">*                       array sizes.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">*                       Linear transformation parameters.  Note that, in order</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*                       to initialize memory management linprm::flag should be</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">*                       set to -1 when lin is initialized for the first time</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">*                       (memory leaks may result if it had already been</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">*                       initialized).</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
 <div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">* lincpy() - Copy routine for the linprm struct</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">* ---------------------------------------------</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">* lincpy() does a deep copy of one linprm struct to another, using linini() to</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">* allocate memory for its arrays if required.  Only the "information to be</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">* provided" part of the struct is copied; a call to linset() is required to</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">* initialize the remainder.</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*   alloc     int       If true, allocate memory for the crpix, pc, and cdelt</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">*                       arrays in the destination.  Otherwise, it is assumed</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">*                       that pointers to these arrays have been set by the</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">*                       user except if they are null pointers in which case</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">*                       memory will be allocated for them regardless.</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">*   linsrc    const struct linprm*</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">*                       Struct to copy from.</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">*   lindst    struct linprm*</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">*                       Struct to copy to.  linprm::flag should be set to -1</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">*                       if lindst was not previously initialized (memory leaks</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">*                       may result if it was previously initialized).</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">* lindis() - Assign a distortion to a linprm struct</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">* -------------------------------------------------</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">* lindis() may be used to assign the address of a disprm struct to</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">* linprm::dispre or linprm::disseq.  The linprm struct must already have been</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">* initialized by linini().</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">* The disprm struct must have been allocated from the heap (e.g. using</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">* malloc(), calloc(), etc.).  lindis() will immediately initialize it via a</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">* call to disini() using the value of linprm::naxis.  Subsequently, it will be</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">* reinitialized by calls to linini(), and freed by linfree(), neither of which</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* would happen if the disprm struct was assigned directly.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">* If the disprm struct had previously been assigned via lindis(), it will be</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* freed before reassignment.  It is also permissable for a null disprm pointer</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">* to be assigned to disable the distortion correction.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">*   sequence  int       Is it a prior or sequent distortion?</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">*                         1: Prior,   the assignment is to linprm::dispre.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*                         2: Sequent, the assignment is to linprm::disseq.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*                       Anything else is an error.</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*                       Linear transformation parameters.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*   dis       struct disprm*</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*                       Distortion function parameters.</span></div>
 <div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">* linfree() - Destructor for the linprm struct</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">* --------------------------------------------</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">* linfree() frees memory allocated for the linprm arrays by linini() and/or</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">* linset().  linini() keeps a record of the memory it allocates and linfree()</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">* will only attempt to free this.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">*                         4: Invalid sequence.</span></div>
 <div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">* PLEASE NOTE: linfree() must not be invoked on a linprm struct that was not</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">* initialized by linini().</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">*   lin       struct linprm*</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">*                       Linear transformation parameters.</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">* linprt() - Print routine for the linprm struct</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">* linprt() prints the contents of a linprm struct using wcsprintf().  Mainly</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">* intended for diagnostic purposes.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">* lincpy() - Copy routine for the linprm struct</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">* ---------------------------------------------</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">* lincpy() does a deep copy of one linprm struct to another, using linini() to</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">* allocate memory for its arrays if required.  Only the "information to be</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">* provided" part of the struct is copied; a call to linset() is required to</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">* initialize the remainder.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*   alloc     int       If true, allocate memory for the crpix, pc, and cdelt</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*                       arrays in the destination.  Otherwise, it is assumed</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*                       that pointers to these arrays have been set by the</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*                       user except if they are null pointers in which case</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*                       memory will be allocated for them regardless.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">*   linsrc    const struct linprm*</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">*                       Struct to copy from.</span></div>
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*   lin       const struct linprm*</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">*                       Linear transformation parameters.</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">* linset() - Setup routine for the linprm struct</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">* linset(), if necessary, allocates memory for the linprm::piximg and</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">* linprm::imgpix arrays and sets up the linprm struct according to information</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">* supplied within it - refer to the explanation of linprm::flag.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*   lindst    struct linprm*</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">*                       Struct to copy to.  linprm::flag should be set to -1</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*                       if lindst was not previously initialized (memory leaks</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">*                       may result if it was previously initialized).</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">* linp2x() and linx2p() if the linprm::flag is anything other than a</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">* predefined magic value.</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*   lin       struct linprm*</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*                       Linear transformation parameters.</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">* linfree() - Destructor for the linprm struct</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">* --------------------------------------------</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">* linfree() frees memory allocated for the linprm arrays by linini() and/or</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">* linset().  linini() keeps a record of the memory it allocates and linfree()</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">* will only attempt to free this.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">* PLEASE NOTE: linfree() must not be invoked on a linprm struct that was not</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">* initialized by linini().</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*                       Linear transformation parameters.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
 <div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">* linp2x() - Pixel-to-world linear transformation</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">* -----------------------------------------------</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">* linp2x() transforms pixel coordinates to intermediate world coordinates.</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">*   lin       struct linprm*</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*                       Linear transformation parameters.</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">*   ncoord,</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">*                       but containing lin.naxis coordinate elements.</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">*   pixcrd    const double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*                       Array of intermediate world coordinates.</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">* linx2p() - World-to-pixel linear transformation</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">* -----------------------------------------------</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">* linx2p() transforms intermediate world coordinates to pixel coordinates.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">* linprt() - Print routine for the linprm struct</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">* linprt() prints the contents of a linprm struct using wcsprintf().  Mainly</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">* intended for diagnostic purposes.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*   lin       const struct linprm*</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*                       Linear transformation parameters.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">* linperr() - Print error messages from a linprm struct</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* -----------------------------------------------------</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">* linperr() prints the error message(s) (if any) stored in a linprm struct,</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">* and the disprm structs that it may contain.  If there are no errors then</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">* nothing is printed.  It uses wcserr_prt(), q.v.</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*   lin       const struct linprm*</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*   prefix    const char *</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*                       If non-NULL, each output line will be prefixed with</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*                       this string.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">*   lin       struct linprm*</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">*                       Linear transformation parameters.</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*   ncoord,</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">*                       but containing lin.naxis coordinate elements.</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*   imgcrd   const double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*                       Array of intermediate world coordinates.</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*   pixcrd    double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* linset() - Setup routine for the linprm struct</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">* linset(), if necessary, allocates memory for the linprm::piximg and</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">* linprm::imgpix arrays and sets up the linprm struct according to information</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">* supplied within it - refer to the explanation of linprm::flag.</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">* linp2x() and linx2p() if the linprm::flag is anything other than a</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">* predefined magic value.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*                       Linear transformation parameters.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">* linprm struct - Linear transformation parameters</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">* ------------------------------------------------</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">* The linprm struct contains all of the information required to perform a</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">* linear transformation.  It consists of certain members that must be set by</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">* the user ("given") and others that are set by the WCSLIB routines</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">* ("returned").</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">* linp2x() - Pixel-to-world linear transformation</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">* -----------------------------------------------</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">* linp2x() transforms pixel coordinates to intermediate world coordinates.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       Linear transformation parameters.</span></div>
 <div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*   int flag</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*     following members of the linprm struct are set or modified:</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*       - linprm::naxis (q.v., not normally set by the user),</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*       - linprm::pc,</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*       - linprm::cdelt.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*   ncoord,</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*                       but containing lin.naxis coordinate elements.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*   pixcrd    const double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
 <div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*     This signals the initialization routine, linset(), to recompute the</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*     returned members of the linprm struct.  linset() will reset flag to</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*     indicate that this has been done.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*                       Array of intermediate world coordinates.</span></div>
 <div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*     PLEASE NOTE: flag should be set to -1 when linini() is called for the</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*     first time for a particular linprm struct in order to initialize memory</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*     management.  It must ONLY be used on the first initialization otherwise</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*     memory leaks may result.</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*   int naxis</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*     (Given or returned) Number of pixel and world coordinate elements.</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*     If linini() is used to initialize the linprm struct (as would normally</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*     be the case) then it will set naxis from the value passed to it as a</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*     function argument.  The user should not subsequently modify it.</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*   double *crpix</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*     (Given) Pointer to the first element of an array of double containing</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*     the coordinate reference pixel, CRPIXja.</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*   double *pc</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*     (Given) Pointer to the first element of the PCi_ja (pixel coordinate)</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*     transformation matrix.  The expected order is</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">=       struct linprm lin;</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">=       lin.pc = {PC1_1, PC1_2, PC2_1, PC2_2};</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*     This may be constructed conveniently from a 2-D array via</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">=       double m[2][2] = {{PC1_1, PC1_2},</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">=                         {PC2_1, PC2_2}};</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*     which is equivalent to</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">=       double m[2][2];</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">=       m[0][0] = PC1_1;</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">=       m[0][1] = PC1_2;</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">=       m[1][0] = PC2_1;</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">=       m[1][1] = PC2_2;</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*     The storage order for this 2-D array is the same as for the 1-D array,</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*     whence</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">=       lin.pc = *m;</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">* linx2p() - World-to-pixel linear transformation</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">* -----------------------------------------------</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">* linx2p() transforms intermediate world coordinates to pixel coordinates.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*   lin       struct linprm*</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*                       Linear transformation parameters.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*   ncoord,</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*                       but containing lin.naxis coordinate elements.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*   imgcrd   const double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*                       Array of intermediate world coordinates.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*   pixcrd    double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*                         1: Null linprm pointer passed.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*                         3: PCi_ja matrix is singular.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*                       linprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*     would be legitimate.</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*   double *cdelt</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*     (Given) Pointer to the first element of an array of double containing</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*     the coordinate increments, CDELTia.</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*   int unity</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*     (Returned) True if the linear transformation matrix is unity.</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*   int padding</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*   double *piximg</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*     (Returned) Pointer to the first element of the matrix containing the</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*     product of the CDELTia diagonal matrix and the PCi_ja matrix.</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*   double *imgpix</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*     (Returned) Pointer to the first element of the inverse of the</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*     linprm::piximg matrix.</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*   int i_naxis</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*   int m_flag</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*   int m_naxis</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*   int m_padding</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*   double *m_crpix</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*   double *m_pc</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*   double *m_cdelt</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*   void *padding2</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">* Global variable: const char *lin_errmsg[] - Status return messages</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">* ------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">*===========================================================================*/</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="preprocessor">#ifndef WCSLIB_LIN</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="preprocessor">#define WCSLIB_LIN</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="lin_8h.html#a7bdf034bd750df1e518db9feeebf7a79">lin_errmsg</a>[];</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">  374</a></span> <span class="keyword">enum</span> <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a> {</div>
-<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">  375</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">  376</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">LINERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null linprm pointer passed. */</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">  377</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">LINERR_MEMORY</a>       = 2,      <span class="comment">/* Memory allocation failed. */</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">  378</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a> = 3       <span class="comment">/* PCi_ja matrix is singular. */</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span> };</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
-<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="structlinprm.html">  381</a></span> <span class="keyword">struct </span><a class="code" href="structlinprm.html">linprm</a> {</div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">  384</a></span>   <span class="keywordtype">int</span> <a class="code" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">flag</a>;                     <span class="comment">/* Set to zero to force initialization.     */</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span> </div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">  388</a></span>   <span class="keywordtype">int</span> <a class="code" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">naxis</a>;                    <span class="comment">/* The number of axes, given by NAXIS.      */</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">  389</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">crpix</a>;                <span class="comment">/* CRPIXja keywords for each pixel axis.    */</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">  390</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">pc</a>;                   <span class="comment">/* PCi_ja  linear transformation matrix.    */</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">  391</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">cdelt</a>;                <span class="comment">/* CDELTia keywords for each coord axis.    */</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">  395</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">piximg</a>;               <span class="comment">/* Product of CDELTia and PCi_ja matrices.  */</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">  396</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">imgpix</a>;               <span class="comment">/* Inverse of the piximg matrix.            */</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">  397</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">unity</a>;                 <span class="comment">/* True if the PCi_ja matrix is unity.      */</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">  401</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">padding</a>;               <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">  402</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">err</a>;</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   <span class="comment">/* Private - the remainder are for memory management.                     */</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">  406</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">i_naxis</a>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">  407</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">m_flag</a>, <a class="code" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">m_naxis</a>, <a class="code" href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">m_padding</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">  408</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a091103ceb860eeed1a280effa0df28df">m_crpix</a>, *<a class="code" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">m_pc</a>, *<a class="code" href="structlinprm.html#a5ac85757a7a46247e353a089374eb128">m_cdelt</a>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">  409</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">padding2</a>;</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span> };</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span> </div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">/* Size of the linprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="lin_8h.html#afce62bec193631f6e6b58c5b786cd660">  413</a></span> <span class="preprocessor">#define LINLEN (sizeof(struct linprm)/sizeof(int))</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span> </div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58">linini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> naxis, <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1">lincpy</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *linsrc, <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lindst);</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303">linfree</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a946005b038f5c584691630b5d39369e3">linprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a">linset</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#ae4947608476c198ad27759d1e562d655">linp2x</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> pixcrd[],</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>            <span class="keywordtype">double</span> imgcrd[]);</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a5490027e9699680dfefe370c28691243">linx2p</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> imgcrd[],</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>            <span class="keywordtype">double</span> pixcrd[]);</div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#acc7d26efba3ca08d36047253a9315dcc">matinv</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span> mat[], <span class="keywordtype">double</span> inv[]);</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="lin_8h.html#affec8a2c0650ebd2168d7772b2ecec19">  436</a></span> <span class="preprocessor">#define linini_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="lin_8h.html#a58c2822debf5b36daa18fe8711d724f2">  437</a></span> <span class="preprocessor">#define lincpy_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="lin_8h.html#aa6d3f59059c532b0217f570f2b4f50df">  438</a></span> <span class="preprocessor">#define linfree_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="lin_8h.html#a8970e09d61fde987211f8e64061e1fa1">  439</a></span> <span class="preprocessor">#define linprt_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="lin_8h.html#aa78f202b20674909aab523018106546e">  440</a></span> <span class="preprocessor">#define linset_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="lin_8h.html#acb8c02645d7cc3d42e3db6ebf74de192">  441</a></span> <span class="preprocessor">#define linp2x_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="lin_8h.html#a7232df93295216e063c438671652c2b4">  442</a></span> <span class="preprocessor">#define linx2p_errmsg lin_errmsg</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span> </div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span> }</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span> </div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_LIN */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="structlinprm_html_a7036b8527bc8b220ad8a863442631f48"><div class="ttname"><a href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">linprm::m_pc</a></div><div class="ttdeci">double * m_pc</div><div class="ttdef"><b>Definition:</b> lin.h:408</div></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">* linprm struct - Linear transformation parameters</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">* ------------------------------------------------</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">* The linprm struct contains all of the information required to perform a</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">* linear transformation.  It consists of certain members that must be set by</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">* the user ("given") and others that are set by the WCSLIB routines</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">* ("returned").</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*   int flag</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*     following members of the linprm struct are set or modified:</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*       - linprm::naxis (q.v., not normally set by the user),</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*       - linprm::pc,</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*       - linprm::cdelt,</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*       - linprm::dispre.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*       - linprm::disseq.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*     This signals the initialization routine, linset(), to recompute the</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*     returned members of the linprm struct.  linset() will reset flag to</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*     indicate that this has been done.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*     PLEASE NOTE: flag should be set to -1 when linini() is called for the</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*     first time for a particular linprm struct in order to initialize memory</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*     management.  It must ONLY be used on the first initialization otherwise</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*     memory leaks may result.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*   int naxis</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*     (Given or returned) Number of pixel and world coordinate elements.</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*     If linini() is used to initialize the linprm struct (as would normally</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*     be the case) then it will set naxis from the value passed to it as a</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*     function argument.  The user should not subsequently modify it.</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*   double *crpix</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*     (Given) Pointer to the first element of an array of double containing</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*     the coordinate reference pixel, CRPIXja.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*     It is not necessary to reset the linprm struct (via linset()) when</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*     linprm::crpix is changed.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*   double *pc</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*     (Given) Pointer to the first element of the PCi_ja (pixel coordinate)</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*     transformation matrix.  The expected order is</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">=       struct linprm lin;</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">=       lin.pc = {PC1_1, PC1_2, PC2_1, PC2_2};</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">*     This may be constructed conveniently from a 2-D array via</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">=       double m[2][2] = {{PC1_1, PC1_2},</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">=                         {PC2_1, PC2_2}};</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">*     which is equivalent to</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">=       double m[2][2];</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">=       m[0][0] = PC1_1;</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">=       m[0][1] = PC1_2;</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">=       m[1][0] = PC2_1;</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">=       m[1][1] = PC2_2;</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*     The storage order for this 2-D array is the same as for the 1-D array,</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">*     whence</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">=       lin.pc = *m;</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">*     would be legitimate.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*   double *cdelt</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*     (Given) Pointer to the first element of an array of double containing</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">*     the coordinate increments, CDELTia.</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">*   struct disprm *dispre</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">*     (Given) Pointer to a disprm struct holding parameters for prior</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">*     distortion functions, or a null (0x0) pointer if there are none.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*     Function lindis() may be used to assign a disprm pointer to a linprm</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">*     struct, allowing it to take control of any memory allocated for it, as</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">*     in the following example:</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">=       void add_distortion(struct linprm *lin)</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">=       {</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">=         struct disprm *dispre;</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">=</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">=         dispre = malloc(sizeof(struct disprm);</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">=         dispre->flag = -1;</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">=         lindis(1, lin, dispre);</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">=           :</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">=          (Set up dispre.)</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">=           :</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">=</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">=         return;</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">=       }</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*     Here, after the distortion function parameters etc. are copied into</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*     dispre, dispre is assigned using lindis() which takes control of the</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*     allocated memory.  It will be free'd later when linfree() is invoked on</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*     the linprm struct.</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">*     Consider also the following erroneous code:</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">=       void bad_code(struct linprm *lin)</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">=       {</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">=         struct disprm dispre;</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">=</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">=         dispre.flag = -1;</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">=         lindis(1, lin, &dispre);   // WRONG.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">=           :</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment">=</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">=         return;</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">=       }</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*     Here, dispre is declared as a struct, rather than a pointer.  When the</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">*     function returns, dispre will go out of scope and its memory will most</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">*     likely be reused, thereby trashing its contents.  Later, a segfault will</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">*     occur when linfree() tries to free dispre's stale address.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">*   struct disprm *disseq</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*     (Given) Pointer to a disprm struct holding parameters for sequent</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*     distortion functions, or a null (0x0) pointer if there are none.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*     Refer to the comments and examples given for disprm::dispre.</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*   double *piximg</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*     (Returned) Pointer to the first element of the matrix containing the</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*     product of the CDELTia diagonal matrix and the PCi_ja matrix.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*   double *imgpix</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*     (Returned) Pointer to the first element of the inverse of the</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">*     linprm::piximg matrix.</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*   int i_naxis</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">*     (Returned) The dimension of linprm::piximg and linprm::imgpix (normally</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*     equal to naxis).</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*   int unity</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">*     (Returned) True if the linear transformation matrix is unity.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">*   int affine</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">*     (Returned) True if there are no distortions.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">*   int simple</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">*     (Returned) True if unity and no distortions.</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">*   struct wcserr *err</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">*   double *tmpcrd</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">*   int m_flag</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">*   int m_naxis</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">*   double *m_crpix</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">*   double *m_pc</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*   double *m_cdelt</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*   struct disprm *m_dispre</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*   struct disprm *m_disseq</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">* Global variable: const char *lin_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">* ------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">*===========================================================================*/</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="preprocessor">#ifndef WCSLIB_LIN</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="preprocessor">#define WCSLIB_LIN</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="lin_8h.html#a7bdf034bd750df1e518db9feeebf7a79">lin_errmsg</a>[];</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">  495</a></span> <span class="keyword">enum</span> <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a> {</div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">  496</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">  497</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">LINERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null linprm pointer passed. */</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">  498</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">LINERR_MEMORY</a>       = 2,      <span class="comment">/* Memory allocation failed. */</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">  499</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a> = 3,      <span class="comment">/* PCi_ja matrix is singular. */</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">  500</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">LINERR_DISTORT_INIT</a> = 4,      <span class="comment">/* Failed to initialise distortions. */</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">  501</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">LINERR_DISTORT</a>      = 5,      <span class="comment">/* Distort error. */</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">  502</a></span>   <a class="code" href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">LINERR_DEDISTORT</a>    = 6       <span class="comment">/* De-distort error. */</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> };</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="structlinprm.html">  505</a></span> <span class="keyword">struct </span><a class="code" href="structlinprm.html">linprm</a> {</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">  508</a></span>   <span class="keywordtype">int</span> <a class="code" href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">flag</a>;                     <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">  512</a></span>   <span class="keywordtype">int</span> <a class="code" href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">naxis</a>;                    <span class="comment">/* The number of axes, given by NAXIS.      */</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">  513</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">crpix</a>;                <span class="comment">/* CRPIXja keywords for each pixel axis.    */</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">  514</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">pc</a>;                   <span class="comment">/* PCi_ja  linear transformation matrix.    */</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">  515</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">cdelt</a>;                <span class="comment">/* CDELTia keywords for each coord axis.    */</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">  516</a></span>   <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> *<a class="code" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">dispre</a>;        <span class="comment">/* Prior   distortion parameters, if any.   */</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">  517</a></span>   <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> *<a class="code" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">disseq</a>;        <span class="comment">/* Sequent distortion parameters, if any.   */</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">  521</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">piximg</a>;               <span class="comment">/* Product of CDELTia and PCi_ja matrices.  */</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">  522</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">imgpix</a>;               <span class="comment">/* Inverse of the piximg matrix.            */</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">  523</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">i_naxis</a>;               <span class="comment">/* Dimension of piximg and imgpix.          */</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">  524</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">unity</a>;                 <span class="comment">/* True if the PCi_ja matrix is unity.      */</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">  525</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">affine</a>;                <span class="comment">/* True if there are no distortions.        */</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">  526</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">simple</a>;                <span class="comment">/* True if unity and no distortions.        */</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   <span class="comment">/* Error handling, if enabled.                                            */</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">  530</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">err</a>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   <span class="comment">/* Private - the remainder are for internal use.                          */</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">  534</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">tmpcrd</a>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">  536</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">m_flag</a>, <a class="code" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">m_naxis</a>;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">  537</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structlinprm.html#a091103ceb860eeed1a280effa0df28df">m_crpix</a>, *<a class="code" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">m_pc</a>, *<a class="code" href="structlinprm.html#a5ac85757a7a46247e353a089374eb128">m_cdelt</a>;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">  538</a></span>   <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> *<a class="code" href="structlinprm.html#a9c5dae1285df5adbc684bb650a84b74a">m_dispre</a>, *<a class="code" href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">m_disseq</a>;</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> };</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">/* Size of the linprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="lin_8h.html#afce62bec193631f6e6b58c5b786cd660">  542</a></span> <span class="preprocessor">#define LINLEN (sizeof(struct linprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58">linini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> <a class="code" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">naxis</a>, <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lindis</a>(<span class="keywordtype">int</span> sequence, <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a> *dis);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1">lincpy</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *linsrc, <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lindst);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303">linfree</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a946005b038f5c584691630b5d39369e3">linprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> </div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7">linperr</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keyword">const</span> <span class="keywordtype">char</span> *prefix);</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a">linset</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin);</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> </div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#ae4947608476c198ad27759d1e562d655">linp2x</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> pixcrd[],</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>            <span class="keywordtype">double</span> imgcrd[]);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#a5490027e9699680dfefe370c28691243">linx2p</a>(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> imgcrd[],</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>            <span class="keywordtype">double</span> pixcrd[]);</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="keywordtype">int</span> <a class="code" href="lin_8h.html#acc7d26efba3ca08d36047253a9315dcc">matinv</a>(<span class="keywordtype">int</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span> mat[], <span class="keywordtype">double</span> inv[]);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> </div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="lin_8h.html#affec8a2c0650ebd2168d7772b2ecec19">  569</a></span> <span class="preprocessor">#define linini_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="lin_8h.html#a58c2822debf5b36daa18fe8711d724f2">  570</a></span> <span class="preprocessor">#define lincpy_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="lin_8h.html#aa6d3f59059c532b0217f570f2b4f50df">  571</a></span> <span class="preprocessor">#define linfree_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="lin_8h.html#a8970e09d61fde987211f8e64061e1fa1">  572</a></span> <span class="preprocessor">#define linprt_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="lin_8h.html#aa78f202b20674909aab523018106546e">  573</a></span> <span class="preprocessor">#define linset_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="lin_8h.html#acb8c02645d7cc3d42e3db6ebf74de192">  574</a></span> <span class="preprocessor">#define linp2x_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="lin_8h.html#a7232df93295216e063c438671652c2b4">  575</a></span> <span class="preprocessor">#define linx2p_errmsg lin_errmsg</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> }</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> </div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_LIN */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="structlinprm_html_a7036b8527bc8b220ad8a863442631f48"><div class="ttname"><a href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">linprm::m_pc</a></div><div class="ttdeci">double * m_pc</div><div class="ttdef"><b>Definition:</b> lin.h:537</div></div>
 <div class="ttc" id="lin_8h_html_ae4947608476c198ad27759d1e562d655"><div class="ttname"><a href="lin_8h.html#ae4947608476c198ad27759d1e562d655">linp2x</a></div><div class="ttdeci">int linp2x(struct linprm *lin, int ncoord, int nelem, const double pixcrd[], double imgcrd[])</div><div class="ttdoc">Pixel-to-world linear transformation. </div></div>
-<div class="ttc" id="structlinprm_html_ae281f0f7ebeaf5038cc13c13946641b1"><div class="ttname"><a href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> lin.h:388</div></div>
-<div class="ttc" id="structlinprm_html_a3691ff3f40a0ba087637d30ffc87e6d0"><div class="ttname"><a href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">linprm::crpix</a></div><div class="ttdeci">double * crpix</div><div class="ttdef"><b>Definition:</b> lin.h:389</div></div>
-<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">LINERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> lin.h:377</div></div>
-<div class="ttc" id="structlinprm_html_a5ef7cce6307f640aca1080d0d5ad9ba1"><div class="ttname"><a href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> lin.h:407</div></div>
-<div class="ttc" id="structlinprm_html_af0a5cac7b1d2d3a0feb6905c05b122c2"><div class="ttname"><a href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">linprm::unity</a></div><div class="ttdeci">int unity</div><div class="ttdef"><b>Definition:</b> lin.h:397</div></div>
+<div class="ttc" id="structlinprm_html_a7d951475b1c16f94703fba9e04ec24d2"><div class="ttname"><a href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm::dispre</a></div><div class="ttdeci">struct disprm * dispre</div><div class="ttdef"><b>Definition:</b> lin.h:516</div></div>
+<div class="ttc" id="structlinprm_html_adf299a3f7750599a48373ce370fde9da"><div class="ttname"><a href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">linprm::tmpcrd</a></div><div class="ttdeci">double * tmpcrd</div><div class="ttdef"><b>Definition:</b> lin.h:534</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa36fc93e3c5e2d1a1de01d399232a03d9">LINERR_DEDISTORT</a></div><div class="ttdef"><b>Definition:</b> lin.h:502</div></div>
+<div class="ttc" id="structlinprm_html_ae281f0f7ebeaf5038cc13c13946641b1"><div class="ttname"><a href="structlinprm.html#ae281f0f7ebeaf5038cc13c13946641b1">linprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> lin.h:512</div></div>
+<div class="ttc" id="structlinprm_html_a3691ff3f40a0ba087637d30ffc87e6d0"><div class="ttname"><a href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">linprm::crpix</a></div><div class="ttdeci">double * crpix</div><div class="ttdef"><b>Definition:</b> lin.h:513</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa28004da63d882a7df754d49047ea7f2d">LINERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> lin.h:498</div></div>
+<div class="ttc" id="structlinprm_html_a5ef7cce6307f640aca1080d0d5ad9ba1"><div class="ttname"><a href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">linprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> lin.h:536</div></div>
+<div class="ttc" id="structlinprm_html_af0a5cac7b1d2d3a0feb6905c05b122c2"><div class="ttname"><a href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">linprm::unity</a></div><div class="ttdeci">int unity</div><div class="ttdef"><b>Definition:</b> lin.h:524</div></div>
+<div class="ttc" id="structlinprm_html_a9c5dae1285df5adbc684bb650a84b74a"><div class="ttname"><a href="structlinprm.html#a9c5dae1285df5adbc684bb650a84b74a">linprm::m_dispre</a></div><div class="ttdeci">struct disprm * m_dispre</div><div class="ttdef"><b>Definition:</b> lin.h:538</div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
-<div class="ttc" id="structlinprm_html_aeefcacedf2989970f0df2c246d84bfb7"><div class="ttname"><a href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm::m_naxis</a></div><div class="ttdeci">int m_naxis</div><div class="ttdef"><b>Definition:</b> lin.h:407</div></div>
-<div class="ttc" id="structlinprm_html_aba4a6d5c87b53b6f3a4399276ac13a2c"><div class="ttname"><a href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">linprm::padding2</a></div><div class="ttdeci">void * padding2</div><div class="ttdef"><b>Definition:</b> lin.h:409</div></div>
-<div class="ttc" id="structlinprm_html_a2975830d4214bb6b35cb1ca922875057"><div class="ttname"><a href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">linprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> lin.h:402</div></div>
+<div class="ttc" id="structlinprm_html_aeefcacedf2989970f0df2c246d84bfb7"><div class="ttname"><a href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">linprm::m_naxis</a></div><div class="ttdeci">int m_naxis</div><div class="ttdef"><b>Definition:</b> lin.h:536</div></div>
+<div class="ttc" id="structlinprm_html_a2975830d4214bb6b35cb1ca922875057"><div class="ttname"><a href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">linprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> lin.h:530</div></div>
+<div class="ttc" id="structdisprm_html_a201bc2948f326bbed9a0e1f818720ef9"><div class="ttname"><a href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">disprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> dis.h:501</div></div>
 <div class="ttc" id="lin_8h_html_acc7d26efba3ca08d36047253a9315dcc"><div class="ttname"><a href="lin_8h.html#acc7d26efba3ca08d36047253a9315dcc">matinv</a></div><div class="ttdeci">int matinv(int n, const double mat[], double inv[])</div><div class="ttdoc">Matrix inversion. </div></div>
-<div class="ttc" id="structlinprm_html_a7f40c88135117b07a7767082ef24aba9"><div class="ttname"><a href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">linprm::padding</a></div><div class="ttdeci">int padding</div><div class="ttdef"><b>Definition:</b> lin.h:401</div></div>
-<div class="ttc" id="structlinprm_html"><div class="ttname"><a href="structlinprm.html">linprm</a></div><div class="ttdoc">Linear transformation parameters. </div><div class="ttdef"><b>Definition:</b> lin.h:381</div></div>
+<div class="ttc" id="structlinprm_html"><div class="ttname"><a href="structlinprm.html">linprm</a></div><div class="ttdoc">Linear transformation parameters. </div><div class="ttdef"><b>Definition:</b> lin.h:505</div></div>
 <div class="ttc" id="lin_8h_html_a7bdf034bd750df1e518db9feeebf7a79"><div class="ttname"><a href="lin_8h.html#a7bdf034bd750df1e518db9feeebf7a79">lin_errmsg</a></div><div class="ttdeci">const char * lin_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
-<div class="ttc" id="structlinprm_html_aeaaf26fd243da58fee173b075bed1de7"><div class="ttname"><a href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">linprm::piximg</a></div><div class="ttdeci">double * piximg</div><div class="ttdef"><b>Definition:</b> lin.h:395</div></div>
-<div class="ttc" id="structlinprm_html_ab73e780d0792b3570fcf2cf55651f22c"><div class="ttname"><a href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">linprm::m_padding</a></div><div class="ttdeci">int m_padding</div><div class="ttdef"><b>Definition:</b> lin.h:407</div></div>
-<div class="ttc" id="structlinprm_html_a596f68ff17fce142f36530d72dd838c4"><div class="ttname"><a href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">linprm::i_naxis</a></div><div class="ttdeci">int i_naxis</div><div class="ttdef"><b>Definition:</b> lin.h:406</div></div>
-<div class="ttc" id="structlinprm_html_a091103ceb860eeed1a280effa0df28df"><div class="ttname"><a href="structlinprm.html#a091103ceb860eeed1a280effa0df28df">linprm::m_crpix</a></div><div class="ttdeci">double * m_crpix</div><div class="ttdef"><b>Definition:</b> lin.h:408</div></div>
+<div class="ttc" id="structdisprm_html"><div class="ttname"><a href="structdisprm.html">disprm</a></div><div class="ttdoc">Distortion parameters. </div><div class="ttdef"><b>Definition:</b> dis.h:494</div></div>
+<div class="ttc" id="lin_8h_html_a7bdde709fac889f1c386e9c8993d74f7"><div class="ttname"><a href="lin_8h.html#a7bdde709fac889f1c386e9c8993d74f7">linperr</a></div><div class="ttdeci">int linperr(const struct linprm *lin, const char *prefix)</div><div class="ttdoc">Print error messages from a linprm struct. </div></div>
+<div class="ttc" id="structlinprm_html_aeaaf26fd243da58fee173b075bed1de7"><div class="ttname"><a href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">linprm::piximg</a></div><div class="ttdeci">double * piximg</div><div class="ttdef"><b>Definition:</b> lin.h:521</div></div>
+<div class="ttc" id="structlinprm_html_af3a8524b6c3c11315e4048d4bd6864c8"><div class="ttname"><a href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">linprm::simple</a></div><div class="ttdeci">int simple</div><div class="ttdef"><b>Definition:</b> lin.h:526</div></div>
+<div class="ttc" id="structlinprm_html_a596f68ff17fce142f36530d72dd838c4"><div class="ttname"><a href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">linprm::i_naxis</a></div><div class="ttdeci">int i_naxis</div><div class="ttdef"><b>Definition:</b> lin.h:523</div></div>
+<div class="ttc" id="structlinprm_html_a091103ceb860eeed1a280effa0df28df"><div class="ttname"><a href="structlinprm.html#a091103ceb860eeed1a280effa0df28df">linprm::m_crpix</a></div><div class="ttdeci">double * m_crpix</div><div class="ttdef"><b>Definition:</b> lin.h:537</div></div>
+<div class="ttc" id="structlinprm_html_a7ecd987ea3b41b7d0a1c4489e882c1f4"><div class="ttname"><a href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">linprm::m_disseq</a></div><div class="ttdeci">struct disprm * m_disseq</div><div class="ttdef"><b>Definition:</b> lin.h:538</div></div>
 <div class="ttc" id="lin_8h_html_aef9ead7c6ea6ab08f3ba3fc6a1c30303"><div class="ttname"><a href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303">linfree</a></div><div class="ttdeci">int linfree(struct linprm *lin)</div><div class="ttdoc">Destructor for the linprm struct. </div></div>
 <div class="ttc" id="lin_8h_html_a5c01c0991c8d0c4437581a7c1453b09a"><div class="ttname"><a href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a">linset</a></div><div class="ttdeci">int linset(struct linprm *lin)</div><div class="ttdoc">Setup routine for the linprm struct. </div></div>
-<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> lin.h:375</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa2544660be2086b8225623e8a7b534dfb">LINERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> lin.h:496</div></div>
 <div class="ttc" id="lin_8h_html_a7ddea28768d99f01c6be1c71a4d8fe58"><div class="ttname"><a href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58">linini</a></div><div class="ttdeci">int linini(int alloc, int naxis, struct linprm *lin)</div><div class="ttdoc">Default constructor for the linprm struct. </div></div>
-<div class="ttc" id="structlinprm_html_a162762d02eaade6a53d63d70b8827caa"><div class="ttname"><a href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">linprm::cdelt</a></div><div class="ttdeci">double * cdelt</div><div class="ttdef"><b>Definition:</b> lin.h:391</div></div>
-<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1f"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a></div><div class="ttdeci">lin_errmsg_enum</div><div class="ttdef"><b>Definition:</b> lin.h:374</div></div>
-<div class="ttc" id="structlinprm_html_a5bb0b2b2ce1f160a8a70f6437a893eea"><div class="ttname"><a href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> lin.h:384</div></div>
+<div class="ttc" id="structlinprm_html_a162762d02eaade6a53d63d70b8827caa"><div class="ttname"><a href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">linprm::cdelt</a></div><div class="ttdeci">double * cdelt</div><div class="ttdef"><b>Definition:</b> lin.h:515</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1f"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1f">lin_errmsg_enum</a></div><div class="ttdeci">lin_errmsg_enum</div><div class="ttdef"><b>Definition:</b> lin.h:495</div></div>
+<div class="ttc" id="structlinprm_html_a5bb0b2b2ce1f160a8a70f6437a893eea"><div class="ttname"><a href="structlinprm.html#a5bb0b2b2ce1f160a8a70f6437a893eea">linprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> lin.h:508</div></div>
+<div class="ttc" id="structlinprm_html_a499a66528c3dcb9d1a9bea67b5afaa0d"><div class="ttname"><a href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">linprm::affine</a></div><div class="ttdeci">int affine</div><div class="ttdef"><b>Definition:</b> lin.h:525</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fabf345caedf5c1dd97c44f38b34ca2da7">LINERR_DISTORT_INIT</a></div><div class="ttdef"><b>Definition:</b> lin.h:500</div></div>
 <div class="ttc" id="lin_8h_html_ab8fc0ef6b34eb3327b13a00de78232b1"><div class="ttname"><a href="lin_8h.html#ab8fc0ef6b34eb3327b13a00de78232b1">lincpy</a></div><div class="ttdeci">int lincpy(int alloc, const struct linprm *linsrc, struct linprm *lindst)</div><div class="ttdoc">Copy routine for the linprm struct. </div></div>
-<div class="ttc" id="structlinprm_html_a4c40bec32ec40035b8c1ef13db652270"><div class="ttname"><a href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">linprm::pc</a></div><div class="ttdeci">double * pc</div><div class="ttdef"><b>Definition:</b> lin.h:390</div></div>
+<div class="ttc" id="structlinprm_html_a4c40bec32ec40035b8c1ef13db652270"><div class="ttname"><a href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">linprm::pc</a></div><div class="ttdeci">double * pc</div><div class="ttdef"><b>Definition:</b> lin.h:514</div></div>
 <div class="ttc" id="lin_8h_html_a5490027e9699680dfefe370c28691243"><div class="ttname"><a href="lin_8h.html#a5490027e9699680dfefe370c28691243">linx2p</a></div><div class="ttdeci">int linx2p(struct linprm *lin, int ncoord, int nelem, const double imgcrd[], double pixcrd[])</div><div class="ttdoc">World-to-pixel linear transformation. </div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="structlinprm_html_a28a705f744a32cd05dd3aa86ca58998b"><div class="ttname"><a href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">linprm::imgpix</a></div><div class="ttdeci">double * imgpix</div><div class="ttdef"><b>Definition:</b> lin.h:396</div></div>
-<div class="ttc" id="structlinprm_html_a5ac85757a7a46247e353a089374eb128"><div class="ttname"><a href="structlinprm.html#a5ac85757a7a46247e353a089374eb128">linprm::m_cdelt</a></div><div class="ttdeci">double * m_cdelt</div><div class="ttdef"><b>Definition:</b> lin.h:408</div></div>
-<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a></div><div class="ttdef"><b>Definition:</b> lin.h:378</div></div>
+<div class="ttc" id="lin_8h_html_ad68df60cc9fa6f86e2c6e6943dc74cdb"><div class="ttname"><a href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lindis</a></div><div class="ttdeci">int lindis(int sequence, struct linprm *lin, struct disprm *dis)</div><div class="ttdoc">Assign a distortion to a linprm struct. </div></div>
+<div class="ttc" id="structlinprm_html_a2c21e35f61f428ed14ca2b60bccc10c8"><div class="ttname"><a href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm::disseq</a></div><div class="ttdeci">struct disprm * disseq</div><div class="ttdef"><b>Definition:</b> lin.h:517</div></div>
+<div class="ttc" id="structlinprm_html_a28a705f744a32cd05dd3aa86ca58998b"><div class="ttname"><a href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">linprm::imgpix</a></div><div class="ttdeci">double * imgpix</div><div class="ttdef"><b>Definition:</b> lin.h:522</div></div>
+<div class="ttc" id="structlinprm_html_a5ac85757a7a46247e353a089374eb128"><div class="ttname"><a href="structlinprm.html#a5ac85757a7a46247e353a089374eb128">linprm::m_cdelt</a></div><div class="ttdeci">double * m_cdelt</div><div class="ttdef"><b>Definition:</b> lin.h:537</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fad2248fa36c9d85c91187179ae95207e8">LINERR_SINGULAR_MTX</a></div><div class="ttdef"><b>Definition:</b> lin.h:499</div></div>
 <div class="ttc" id="lin_8h_html_a946005b038f5c584691630b5d39369e3"><div class="ttname"><a href="lin_8h.html#a946005b038f5c584691630b5d39369e3">linprt</a></div><div class="ttdeci">int linprt(const struct linprm *lin)</div><div class="ttdoc">Print routine for the linprm struct. </div></div>
-<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">LINERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> lin.h:376</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa3e2bbcacb84e47b393daa1ff8c3e70a2">LINERR_DISTORT</a></div><div class="ttdef"><b>Definition:</b> lin.h:501</div></div>
+<div class="ttc" id="lin_8h_html_a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513"><div class="ttname"><a href="lin_8h.html#a6690044d47c6784a4cc0ccf6f52bfc1fa84e4dcf5e518ba3dce985ef7c9687513">LINERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> lin.h:497</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/log_8h.html b/html/log_8h.html
index 37fc862..5217fc7 100644
--- a/html/log_8h.html
+++ b/html/log_8h.html
@@ -292,7 +292,7 @@ No warranty is given for the accuracy of these routines (refer to the copyright
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/log_8h_source.html b/html/log_8h_source.html
index dd8eca5..a93b663 100644
--- a/html/log_8h_source.html
+++ b/html/log_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="log_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: log.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: log.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement logarithmic coordinate systems as</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement logarithmic coordinate systems as</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* defined by the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -229,7 +229,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/memory.html b/html/memory.html
index f1e2bcf..8776278 100644
--- a/html/memory.html
+++ b/html/memory.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -58,7 +58,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/overview.html b/html/overview.html
index 41599e8..2055a6a 100644
--- a/html/overview.html
+++ b/html/overview.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -114,7 +114,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/pages.html b/html/pages.html
index 0709226..356dfdf 100644
--- a/html/pages.html
+++ b/html/pages.html
@@ -49,7 +49,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:19:00 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:19:12 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/pgsbox.html b/html/pgsbox.html
index f9fdad7..38486a4 100644
--- a/html/pgsbox.html
+++ b/html/pgsbox.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -54,7 +54,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/prj_8h.html b/html/prj_8h.html
index 7e8a467..9985bbc 100644
--- a/html/prj_8h.html
+++ b/html/prj_8h.html
@@ -57,8 +57,7 @@
 <div class="title">prj.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
-</div>
+
 <p><a href="prj_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -533,7 +532,7 @@ No warranty is given for the accuracy of these routines (refer to the copyright
 </div><div class="memdoc">
 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> *prj, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> sxy, <span class="keywordtype">int</span> spt, \</div>
 <div class="line">const <span class="keywordtype">double</span> x[], <span class="keyword">const</span> <span class="keywordtype">double</span> y[], <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">int</span> stat[]</div>
-<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:638</div></div>
+<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:639</div></div>
 </div><!-- fragment --><p>Preprocessor macro used for declaring deprojection function prototypes. </p>
 
 </div>
@@ -549,7 +548,7 @@ No warranty is given for the accuracy of these routines (refer to the copyright
 </div><div class="memdoc">
 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> *prj, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> sxy, <span class="keywordtype">int</span> spt, \</div>
 <div class="line">const <span class="keywordtype">double</span> phi[], <span class="keyword">const</span> <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> y[], <span class="keywordtype">int</span> stat[]</div>
-<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:638</div></div>
+<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:639</div></div>
 </div><!-- fragment --><p>Preprocessor macro used for declaring projection function prototypes. </p>
 
 </div>
@@ -2598,7 +2597,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/prj_8h_source.html b/html/prj_8h_source.html
index d3f6337..021b050 100644
--- a/html/prj_8h_source.html
+++ b/html/prj_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="prj_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: prj.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: prj.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the spherical map projections</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the spherical map projections</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* recognized by the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -539,334 +539,335 @@
 <div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">*     to suit each projection.  bounds is set to 7 by prjini() by default</span></div>
 <div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">*     which enables all checks.  Zero it to disable all checking.</span></div>
 <div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">* The remaining members of the prjprm struct are maintained by the setup</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">* routines and must not be modified elsewhere:</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">*     It is not necessary to reset the prjprm struct (via prjset() or</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">*     ???set()) when prjprm::bounds is changed.</span></div>
 <div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">*   char name[40]</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">*     (Returned) Long name of the projection.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">* The remaining members of the prjprm struct are maintained by the setup</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">* routines and must not be modified elsewhere:</span></div>
 <div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">*   int  category</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*     (Returned) Projection category matching the value of the relevant global</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">*     variable:</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*     - ZENITHAL,</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*     - CYLINDRICAL,</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*     - PSEUDOCYLINDRICAL,</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*     - CONVENTIONAL,</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*     - CONIC,</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*     - POLYCONIC,</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*     - QUADCUBE, and</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">*     - HEALPIX.</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">*     The category name may be identified via the prj_categories character</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">*     array, e.g.</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">*   char name[40]</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*     (Returned) Long name of the projection.</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment">*   int  category</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*     (Returned) Projection category matching the value of the relevant global</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*     variable:</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*     - ZENITHAL,</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*     - CYLINDRICAL,</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*     - PSEUDOCYLINDRICAL,</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*     - CONVENTIONAL,</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">*     - CONIC,</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*     - POLYCONIC,</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">*     - QUADCUBE, and</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">*     - HEALPIX.</span></div>
 <div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">=       struct prjprm prj;</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">=         ...</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">=       printf("%s\n", prj_categories[prj.category]);</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*   int  pvrange</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*     (Returned) Range of projection parameter indices: 100 times the first</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*     allowed index plus the number of parameters, e.g. TAN is 0 (no</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">*     parameters), SZP is 103 (1 to 3), and ZPN is 30 (0 to 29).</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">*   int  simplezen</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">*     (Returned) True if the projection is a radially-symmetric zenithal</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">*     projection.</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*   int  equiareal</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*     (Returned) True if the projection is equal area.</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">*     The category name may be identified via the prj_categories character</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">*     array, e.g.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">=       struct prjprm prj;</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">=         ...</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">=       printf("%s\n", prj_categories[prj.category]);</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">*   int  pvrange</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">*     (Returned) Range of projection parameter indices: 100 times the first</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">*     allowed index plus the number of parameters, e.g. TAN is 0 (no</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">*     parameters), SZP is 103 (1 to 3), and ZPN is 30 (0 to 29).</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">*   int  simplezen</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">*     (Returned) True if the projection is a radially-symmetric zenithal</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">*     projection.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
 <div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">*   int  conformal</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">*     (Returned) True if the projection is conformal.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">*   int  equiareal</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">*     (Returned) True if the projection is equal area.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
 <div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*   int  global</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*     (Returned) True if the projection can represent the whole sphere in a</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">*     finite, non-overlapped mapping.</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">*   int  divergent</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">*     (Returned) True if the projection diverges in latitude.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*   int  conformal</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*     (Returned) True if the projection is conformal.</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">*   int  global</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">*     (Returned) True if the projection can represent the whole sphere in a</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">*     finite, non-overlapped mapping.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
 <div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">*   double x0</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">*     (Returned) The offset in x, and ...</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">*   double y0</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">*     (Returned) ... the offset in y used to force (x,y) = (0,0) at</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">*     (phi_0,theta_0).</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">*   void *padding</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">*   int  divergent</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">*     (Returned) True if the projection diverges in latitude.</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">*     Provided for information only, not used by the projection routines.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">*   double x0</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">*     (Returned) The offset in x, and ...</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">*   double y0</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">*     (Returned) ... the offset in y used to force (x,y) = (0,0) at</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">*     (phi_0,theta_0).</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">*   struct wcserr *err</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
 <div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">*   double w[10]</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment">*     (Returned) Intermediate floating-point values derived from the</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*     projection parameters, cached here to save recomputation.</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*     Usage of the w[] array as it applies to each projection is described in</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*     the prologue to each trio of projection routines in prj.c.</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">*   void *padding</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*   double w[10]</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*     (Returned) Intermediate floating-point values derived from the</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*     projection parameters, cached here to save recomputation.</span></div>
 <div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*   int n</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">*     (Returned) Intermediate integer value (used only for the ZPN and HPX</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">*     projections).</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">*   int (*prjx2s)(PRJX2S_ARGS)</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">*     (Returned) Pointer to the projection ...</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*   int (*prjs2x)(PRJ_ARGS)</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*     (Returned) ... and deprojection routines.</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">* Global variable: const char *prj_errmsg[] - Status return messages</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">* ------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">*===========================================================================*/</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="preprocessor">#ifndef WCSLIB_PROJ</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="preprocessor">#define WCSLIB_PROJ</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*     Usage of the w[] array as it applies to each projection is described in</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">*     the prologue to each trio of projection routines in prj.c.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">*   int n</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">*     (Returned) Intermediate integer value (used only for the ZPN and HPX</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">*     projections).</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*   int (*prjx2s)(PRJX2S_ARGS)</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*     (Returned) Pointer to the spherical projection ...</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*   int (*prjs2x)(PRJ_ARGS)</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">*     (Returned) ... and deprojection routines.</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">* Global variable: const char *prj_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">* ------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">*===========================================================================*/</span></div>
 <div class="line"><a name="l00591"></a><span class="lineno">  591</span> </div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="preprocessor">#ifndef WCSLIB_PROJ</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="preprocessor">#define WCSLIB_PROJ</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00598"></a><span class="lineno">  598</span> </div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">/* Total number of projection parameters; 0 to PVN-1. */</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">  600</a></span> <span class="preprocessor">#define PVN 30</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span> </div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="prj_8h.html#acb157519ef498bf669298c5508492f3e">prj_errmsg</a>[];</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
-<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">  604</a></span> <span class="keyword">enum</span> <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">prj_errmsg_enum</a> {</div>
-<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">  605</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">PRJERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">  606</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">PRJERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null prjprm pointer passed. */</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">  607</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">PRJERR_BAD_PARAM</a>    = 2,      <span class="comment">/* Invalid projection parameters. */</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">  608</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">PRJERR_BAD_PIX</a>      = 3,      <span class="comment">/* One or more of the (x, y) coordinates were</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">  610</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">PRJERR_BAD_WORLD</a>    = 4       <span class="comment">/* One or more of the (phi, theta) coordinates</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment">                                   were invalid. */</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span> };</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span> </div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#adc97181f64d72234b8c6903b22b33df9">CONIC</a>, <a class="code" href="prj_8h.html#ac940da0fb0552876fb40a92f82c9625f">CONVENTIONAL</a>, <a class="code" href="prj_8h.html#a86e25219d2169702c7db6508750097cf">CYLINDRICAL</a>, <a class="code" href="prj_8h.html#aafd25a96ccc5966c04 [...]
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>                  <a class="code" href="prj_8h.html#a5a2f80bed69a84464e5654f91ed4fb63">PSEUDOCYLINDRICAL</a>, <a class="code" href="prj_8h.html#a749605599f1bf2b883c5c88b6cc9c06b">QUADCUBE</a>, <a class="code" href="prj_8h.html#a4b25d630b7590f31fa0aa6d5861c9bfd">ZENITHAL</a>, <a class="code" href="prj_8h.html#a6e2db45f219ba5732ddca43a9fc17408">HEALPIX</a>;</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="prj_8h.html#a9bceed17f625eb88a0826871dc8296b5">prj_categories</a>[9][32];</div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span> </div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span>  <a class="code" href="prj_8h.html#a2d30db5685dd1faa18680a0e69bc5854">prj_ncode</a>;</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="prj_8h.html#a5c0dfa6c6a33e8a936386c05d74e7202">prj_codes</a>[28][4];</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span> </div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="preprocessor">#ifdef PRJX2S_ARGS</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="preprocessor">#undef PRJX2S_ARGS</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span> </div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="preprocessor">#ifdef PRJS2X_ARGS</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="preprocessor">#undef PRJS2X_ARGS</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span> </div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">/* For use in declaring deprojection function prototypes. */</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">  630</a></span> <span class="preprocessor">#define PRJX2S_ARGS struct prjprm *prj, int nx, int ny, int sxy, int spt, \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="preprocessor">const double x[], const double y[], double phi[], double theta[], int stat[]</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span> </div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">/* For use in declaring projection function prototypes. */</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">  634</a></span> <span class="preprocessor">#define PRJS2X_ARGS struct prjprm *prj, int nx, int ny, int sxy, int spt, \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="preprocessor">const double phi[], const double theta[], double x[], double y[], int stat[]</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">/* Total number of projection parameters; 0 to PVN-1. */</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">  601</a></span> <span class="preprocessor">#define PVN 30</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="prj_8h.html#acb157519ef498bf669298c5508492f3e">prj_errmsg</a>[];</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> </div>
+<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">  605</a></span> <span class="keyword">enum</span> <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">prj_errmsg_enum</a> {</div>
+<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">  606</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">PRJERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">  607</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">PRJERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null prjprm pointer passed. */</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">  608</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">PRJERR_BAD_PARAM</a>    = 2,      <span class="comment">/* Invalid projection parameters. */</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">  609</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">PRJERR_BAD_PIX</a>      = 3,      <span class="comment">/* One or more of the (x, y) coordinates were</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">  611</a></span>   <a class="code" href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">PRJERR_BAD_WORLD</a>    = 4       <span class="comment">/* One or more of the (phi, theta) coordinates</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">                                   were invalid. */</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> };</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#adc97181f64d72234b8c6903b22b33df9">CONIC</a>, <a class="code" href="prj_8h.html#ac940da0fb0552876fb40a92f82c9625f">CONVENTIONAL</a>, <a class="code" href="prj_8h.html#a86e25219d2169702c7db6508750097cf">CYLINDRICAL</a>, <a class="code" href="prj_8h.html#aafd25a96ccc5966c04 [...]
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>                  <a class="code" href="prj_8h.html#a5a2f80bed69a84464e5654f91ed4fb63">PSEUDOCYLINDRICAL</a>, <a class="code" href="prj_8h.html#a749605599f1bf2b883c5c88b6cc9c06b">QUADCUBE</a>, <a class="code" href="prj_8h.html#a4b25d630b7590f31fa0aa6d5861c9bfd">ZENITHAL</a>, <a class="code" href="prj_8h.html#a6e2db45f219ba5732ddca43a9fc17408">HEALPIX</a>;</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="prj_8h.html#a9bceed17f625eb88a0826871dc8296b5">prj_categories</a>[9][32];</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span>  <a class="code" href="prj_8h.html#a2d30db5685dd1faa18680a0e69bc5854">prj_ncode</a>;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="prj_8h.html#a5c0dfa6c6a33e8a936386c05d74e7202">prj_codes</a>[28][4];</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> </div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="preprocessor">#ifdef PRJX2S_ARGS</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="preprocessor">#undef PRJX2S_ARGS</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> </div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="preprocessor">#ifdef PRJS2X_ARGS</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="preprocessor">#undef PRJS2X_ARGS</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> </div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">/* For use in declaring deprojection function prototypes. */</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">  631</a></span> <span class="preprocessor">#define PRJX2S_ARGS struct prjprm *prj, int nx, int ny, int sxy, int spt, \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="preprocessor">const double x[], const double y[], double phi[], double theta[], int stat[]</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> </div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">/* For use in declaring projection function prototypes. */</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">  635</a></span> <span class="preprocessor">#define PRJS2X_ARGS struct prjprm *prj, int nx, int ny, int sxy, int spt, \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span> <span class="preprocessor">const double phi[], const double theta[], double x[], double y[], int stat[]</span></div>
 <div class="line"><a name="l00637"></a><span class="lineno">  637</span> </div>
-<div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="structprjprm.html">  638</a></span> <span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> {</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">  641</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span> </div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">  645</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">code</a>[4];               <span class="comment">/* Three-letter projection code.            */</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">  646</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">r0</a>;                    <span class="comment">/* Radius of the generating sphere.         */</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">  647</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">pv</a>[<a class="code" href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">PVN</a>];               <span class="comment">/* Projection parameters.                   */</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">  648</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a699ad609ff7c1935d8fb6a457a5b8164">phi0</a>, <a class="code" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">theta0</a>;          <span class="comment">/* Fiducial native coordinates.             */</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">  649</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">bounds</a>;                <span class="comment">/* Controls bounds checking.                */</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span> </div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">  653</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">name</a>[40];              <span class="comment">/* Projection name.                         */</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">  654</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">category</a>;              <span class="comment">/* Projection category.                     */</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">  655</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">pvrange</a>;               <span class="comment">/* Range of projection parameter indices.   */</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">  656</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">simplezen</a>;             <span class="comment">/* Is it a simple zenithal projection?      */</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">  657</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">equiareal</a>;             <span class="comment">/* Is it an equal area projection?          */</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">  658</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">conformal</a>;             <span class="comment">/* Is it a conformal projection?            */</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">  659</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">global</a>;                <span class="comment">/* Can it map the whole sphere?             */</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">  660</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">divergent</a>;             <span class="comment">/* Does the projection diverge in latitude? */</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">  661</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#aae2c61d85c72e87f4b2b77a14c8eb316">x0</a>, <a class="code" href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">y0</a>;                <span class="comment">/* Fiducial offsets.                        */</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span> </div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">  665</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">err</a>;</div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span> </div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>   <span class="comment">/* Private                                                                */</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">  669</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">  670</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">w</a>[10];                 <span class="comment">/* Intermediate values.                     */</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">  671</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#afb805c40a4d37c195074c1305874d615">m</a>, <a class="code" href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">n</a>;                  <span class="comment">/* Intermediate values.                     */</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span> </div>
-<div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">  673</a></span>   int (*<a class="code" href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">prjx2s</a>)(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);   <span class="comment">/* Pointers to the spherical projection and */</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="structprjprm.html#ae699a5fb02198777343057972e1452d0">  674</a></span>   int (*<a class="code" href="structprjprm.html#ae699a5fb02198777343057972e1452d0">prjs2x</a>)(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);   <span class="comment">/* deprojection functions.                  */</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span> };</div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span> </div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">/* Size of the prjprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="prj_8h.html#a2cdabd9dfe78fe18b9e6597881d8ed92">  678</a></span> <span class="preprocessor">#define PRJLEN (sizeof(struct prjprm)/sizeof(int))</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> </div>
+<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="structprjprm.html">  639</a></span> <span class="keyword">struct </span><a class="code" href="structprjprm.html">prjprm</a> {</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">  642</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span> </div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">  646</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">code</a>[4];               <span class="comment">/* Three-letter projection code.            */</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">  647</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">r0</a>;                    <span class="comment">/* Radius of the generating sphere.         */</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">  648</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">pv</a>[<a class="code" href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">PVN</a>];               <span class="comment">/* Projection parameters.                   */</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">  649</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a699ad609ff7c1935d8fb6a457a5b8164">phi0</a>, <a class="code" href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">theta0</a>;          <span class="comment">/* Fiducial native coordinates.             */</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">  650</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">bounds</a>;                <span class="comment">/* Controls bounds checking.                */</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">  654</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">name</a>[40];              <span class="comment">/* Projection name.                         */</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">  655</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">category</a>;              <span class="comment">/* Projection category.                     */</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">  656</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">pvrange</a>;               <span class="comment">/* Range of projection parameter indices.   */</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">  657</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">simplezen</a>;             <span class="comment">/* Is it a simple zenithal projection?      */</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">  658</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">equiareal</a>;             <span class="comment">/* Is it an equal area projection?          */</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">  659</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">conformal</a>;             <span class="comment">/* Is it a conformal projection?            */</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">  660</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">global</a>;                <span class="comment">/* Can it map the whole sphere?             */</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">  661</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">divergent</a>;             <span class="comment">/* Does the projection diverge in latitude? */</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">  662</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#aae2c61d85c72e87f4b2b77a14c8eb316">x0</a>, <a class="code" href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">y0</a>;                <span class="comment">/* Fiducial offsets.                        */</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> </div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   <span class="comment">/* Error handling                                                         */</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">  666</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">err</a>;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   <span class="comment">/* Private                                                                */</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">  670</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">  671</a></span>   <span class="keywordtype">double</span> <a class="code" href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">w</a>[10];                 <span class="comment">/* Intermediate values.                     */</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">  672</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structprjprm.html#afb805c40a4d37c195074c1305874d615">m</a>, <a class="code" href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">n</a>;                  <span class="comment">/* Intermediate values.                     */</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span> </div>
+<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">  674</a></span>   int (*<a class="code" href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">prjx2s</a>)(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);   <span class="comment">/* Pointers to the spherical projection and */</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="structprjprm.html#ae699a5fb02198777343057972e1452d0">  675</a></span>   int (*<a class="code" href="structprjprm.html#ae699a5fb02198777343057972e1452d0">prjs2x</a>)(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);   <span class="comment">/* deprojection functions.                  */</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> };</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> </div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">/* Size of the prjprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="prj_8h.html#a2cdabd9dfe78fe18b9e6597881d8ed92">  679</a></span> <span class="preprocessor">#define PRJLEN (sizeof(struct prjprm)/sizeof(int))</span></div>
 <div class="line"><a name="l00680"></a><span class="lineno">  680</span> </div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">/* Use the preprocessor to help declare function prototypes (see above). */</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad994cb23871c51b20754973bef180f8a">prjini</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a50db1538981df162709b81be0b2961ab">prjfree</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8785bdf33bdaa3d9d52fd51b621ec8d5">prjprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a147e82f4cede2e6d9ba0ff76b11a2ab2">prjbchk</a>(<span class="keywordtype">double</span> tol, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> spt, <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[],</div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>            <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span> </div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f">prjset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a9a387f05414e7b59487fdcb03ff79ced">prjx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abe28216295d9e7ad7dbb01bf5985df9f">prjs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abf6696d3455c684cb44d06da7885ce94">azpset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8ebb4c79b635cef463b4e7242ff23c25">azpx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abc26dfb2d0b0bee71f6e4541977d237f">azps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span> </div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afaafab5c440384667d7af444b7aca750">szpset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2fe67a5ecf17729881efa24c83482611">szpx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a70b750ec65eb4a277057200c7fbb251f">szps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span> </div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a34d303d7ae44a6aca43c1a81bfaac10f">tanset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#acd4f54c072b6219242daeb6d4b9a74cb">tanx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a9d3358bed907342e3309e54bd2ab89da">tans2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a66b51f10624b6c17a84b5b54058dd72b">stgset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a88c15d0b6f789cbbd7c5d323ef131360">stgx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab46a0a668f28939626287d048153863f">stgs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span> </div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab6ce2bb75a87b1679d05f251227d2f1b">sinset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aeb7881cd5d7b4b5e26281a512b8f62ac">sinx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abdf8c6c3ef615a01ebf8822e013d6a63">sins2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span> </div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac038f2474d5d58de157554cee74a9735">arcset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a666322bfe8c4b8e73f00afeb47283f97">arcx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aaba5ce89ae711728d8ba8105ac5fd599">arcs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span> </div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac983c5a393c5b3f1041f07b2eb95a3a5">zpnset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a574e44daea81568a6d5e324a6f339d6f">zpnx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a7b60d7992bf9c671cb4191f0ec2e0c90">zpns2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span> </div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a3229533df20718c0d5671cc9eb5316fe">zeaset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a849a1bbd679d0c193e8be96a8b9ed534">zeax2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#adc4da028cde2d970e9e5e22adca22f37">zeas2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span> </div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a025adf8a63b5d4a8d2a4de804e0707be">airset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2c87fbf68277f03051d3eaae3db785e9">airx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a75b6b1cb0a748e9b5d3a4cd31129ace6">airs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span> </div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a36cf447dee9f2e90e42d43d7adc5a0a1">cypset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#affdbf993ce959fce2c148c07cd0f2c0c">cypx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a13e0f81e1fd4bdc46847ab4c634ad346">cyps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span> </div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a68ce41ad199c3385bed7e7d4ded2bd8a">ceaset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aff09e87b2246bdec83f6a7bb1bc0f471">ceax2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a28ddb923a52cb597ca9c7dd03ceeb4fe">ceas2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span> </div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a36ccae7b426311614a4e80432a2b62c3">carset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#af363383621fb2b72243c1d6b894874d5">carx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab4325a957786611772b90e7a080327f3">cars2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span> </div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#acf989261fd56f1e8b4eb8941ec2c754f">merset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a5380727f9aeff5aa57f8545d6b54a8f8">merx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad9a80b98c04b0e06d08fd84bacc58b27">mers2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span> </div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a7c719c0387d23c53b0ceb3ee161de66a">sflset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a310444979f8f0e62db2bcbe39b0e3d35">sflx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a5517fccc15882e298ac9433f44d1ae4c">sfls2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span> </div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad2a2b56c0900516dd24eebf430bcb29c">parset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a17be11269d86b3308fd925949877718e">parx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aeb5951ec54b929d16ab464939a37d74f">pars2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span> </div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a151140d870ed4f490317938bd6260a6a">molset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a853c1df5e8327d83e9cfdde9455355f5">molx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6f3cbaaf367984579aad5ec7eb00f397">mols2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span> </div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a33f92621800eb880b75611c439526d19">aitset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2da3bbd3c42c6ad324117cc5f249a834">aitx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8cca776751549082521a72a743d6b937">aits2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac2f3bc42ac6e7d458364ebcf2b35814f">copset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a588e9a86fc4dcd1195f867f718ce5429">copx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a77283589634cc9a054f3a7c7fc91d38d">cops2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span> </div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab1264f0201113c1a8e931ad9a7630e2f">coeset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad70968320728202aa12048162248d368">coex2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afa8d27e481bbfffacd3e671e6715d5cb">coes2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span> </div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afbf5f05496f1e018425e02d60a4e0b74">codset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a105e2bf177120eb34f41e6af768f855d">codx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afedc43dc512008174ec9b87753519031">cods2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span> </div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a344308a1d96a93f9bc682141f3df1a14">cooset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2f42dcec4ea56bbb25b563859228b02e">coox2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aed0317c8ffef248346da897568df266c">coos2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span> </div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aaec02a8e47d68e126983e9bb07a0c0aa">bonset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a53315ef8d3bd4002d1e98142fcf62566">bonx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a3b4cda48838c613460bff00c76fceb44">bons2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span> </div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aabdc7abc8b7c80187770cfd12c63f700">pcoset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a28b623c88d38ab711fc61f36a97d0b27">pcox2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a1f1714691f99f11640dccdc74eadfb49">pcos2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aad75dcd0cd2fd0b6a162b5587cba9c2d">tscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abbfbf3cba73850d7608765725993dfe3">tscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a167a49d730bca43483aef311f7114ae4">tscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8bc552f12260f944e0b8f9b714804983">cscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afcefcb885b7d1c33e0458345cdc9f4a4">cscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac9a7ed6b032cfdaba0e8caba17c6c149">cscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span> </div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6d1f0504f9b864d4aed4a59d60bab819">qscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afc5276e759c799deea36271d9cafc5e9">qscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a847b7c3f5b7361596912d3d876b4f4fe">qscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span> </div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aa2167e62576d36eae341c2583cb5d678">hpxset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a4ff298fcdc6e7e23dfb4971fbd26ebe7">hpxx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#af44375ad9036898dd6d12d2cc58bf53b">hpxs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span> </div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afe3968d54673ee2d843005ad2f2276b5">xphset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6a15da57b1ebff4daea8728b0d064f23">xphx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6c92f19ce9244009f4ae9517bd4f68b4">xphs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span> </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> </div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">/* Use the preprocessor to help declare function prototypes (see above). */</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad994cb23871c51b20754973bef180f8a">prjini</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a50db1538981df162709b81be0b2961ab">prjfree</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8785bdf33bdaa3d9d52fd51b621ec8d5">prjprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a147e82f4cede2e6d9ba0ff76b11a2ab2">prjbchk</a>(<span class="keywordtype">double</span> tol, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> spt, <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[],</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>            <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f">prjset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a9a387f05414e7b59487fdcb03ff79ced">prjx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abe28216295d9e7ad7dbb01bf5985df9f">prjs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span> </div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abf6696d3455c684cb44d06da7885ce94">azpset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8ebb4c79b635cef463b4e7242ff23c25">azpx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abc26dfb2d0b0bee71f6e4541977d237f">azps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> </div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afaafab5c440384667d7af444b7aca750">szpset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2fe67a5ecf17729881efa24c83482611">szpx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a70b750ec65eb4a277057200c7fbb251f">szps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span> </div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a34d303d7ae44a6aca43c1a81bfaac10f">tanset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#acd4f54c072b6219242daeb6d4b9a74cb">tanx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a9d3358bed907342e3309e54bd2ab89da">tans2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a66b51f10624b6c17a84b5b54058dd72b">stgset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a88c15d0b6f789cbbd7c5d323ef131360">stgx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab46a0a668f28939626287d048153863f">stgs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab6ce2bb75a87b1679d05f251227d2f1b">sinset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aeb7881cd5d7b4b5e26281a512b8f62ac">sinx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abdf8c6c3ef615a01ebf8822e013d6a63">sins2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac038f2474d5d58de157554cee74a9735">arcset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a666322bfe8c4b8e73f00afeb47283f97">arcx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aaba5ce89ae711728d8ba8105ac5fd599">arcs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac983c5a393c5b3f1041f07b2eb95a3a5">zpnset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a574e44daea81568a6d5e324a6f339d6f">zpnx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a7b60d7992bf9c671cb4191f0ec2e0c90">zpns2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span> </div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a3229533df20718c0d5671cc9eb5316fe">zeaset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a849a1bbd679d0c193e8be96a8b9ed534">zeax2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#adc4da028cde2d970e9e5e22adca22f37">zeas2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span> </div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a025adf8a63b5d4a8d2a4de804e0707be">airset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2c87fbf68277f03051d3eaae3db785e9">airx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a75b6b1cb0a748e9b5d3a4cd31129ace6">airs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span> </div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a36cf447dee9f2e90e42d43d7adc5a0a1">cypset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#affdbf993ce959fce2c148c07cd0f2c0c">cypx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a13e0f81e1fd4bdc46847ab4c634ad346">cyps2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> </div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a68ce41ad199c3385bed7e7d4ded2bd8a">ceaset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aff09e87b2246bdec83f6a7bb1bc0f471">ceax2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a28ddb923a52cb597ca9c7dd03ceeb4fe">ceas2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a36ccae7b426311614a4e80432a2b62c3">carset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#af363383621fb2b72243c1d6b894874d5">carx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab4325a957786611772b90e7a080327f3">cars2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#acf989261fd56f1e8b4eb8941ec2c754f">merset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a5380727f9aeff5aa57f8545d6b54a8f8">merx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad9a80b98c04b0e06d08fd84bacc58b27">mers2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> </div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a7c719c0387d23c53b0ceb3ee161de66a">sflset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a310444979f8f0e62db2bcbe39b0e3d35">sflx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a5517fccc15882e298ac9433f44d1ae4c">sfls2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> </div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad2a2b56c0900516dd24eebf430bcb29c">parset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a17be11269d86b3308fd925949877718e">parx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aeb5951ec54b929d16ab464939a37d74f">pars2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> </div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a151140d870ed4f490317938bd6260a6a">molset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a853c1df5e8327d83e9cfdde9455355f5">molx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6f3cbaaf367984579aad5ec7eb00f397">mols2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a33f92621800eb880b75611c439526d19">aitset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2da3bbd3c42c6ad324117cc5f249a834">aitx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8cca776751549082521a72a743d6b937">aits2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> </div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac2f3bc42ac6e7d458364ebcf2b35814f">copset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a588e9a86fc4dcd1195f867f718ce5429">copx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a77283589634cc9a054f3a7c7fc91d38d">cops2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> </div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ab1264f0201113c1a8e931ad9a7630e2f">coeset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ad70968320728202aa12048162248d368">coex2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afa8d27e481bbfffacd3e671e6715d5cb">coes2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> </div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afbf5f05496f1e018425e02d60a4e0b74">codset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a105e2bf177120eb34f41e6af768f855d">codx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afedc43dc512008174ec9b87753519031">cods2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> </div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a344308a1d96a93f9bc682141f3df1a14">cooset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a2f42dcec4ea56bbb25b563859228b02e">coox2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aed0317c8ffef248346da897568df266c">coos2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span> </div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aaec02a8e47d68e126983e9bb07a0c0aa">bonset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a53315ef8d3bd4002d1e98142fcf62566">bonx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a3b4cda48838c613460bff00c76fceb44">bons2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aabdc7abc8b7c80187770cfd12c63f700">pcoset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a28b623c88d38ab711fc61f36a97d0b27">pcox2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a1f1714691f99f11640dccdc74eadfb49">pcos2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> </div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aad75dcd0cd2fd0b6a162b5587cba9c2d">tscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#abbfbf3cba73850d7608765725993dfe3">tscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a167a49d730bca43483aef311f7114ae4">tscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span> </div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a8bc552f12260f944e0b8f9b714804983">cscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afcefcb885b7d1c33e0458345cdc9f4a4">cscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#ac9a7ed6b032cfdaba0e8caba17c6c149">cscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6d1f0504f9b864d4aed4a59d60bab819">qscset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afc5276e759c799deea36271d9cafc5e9">qscx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a847b7c3f5b7361596912d3d876b4f4fe">qscs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> </div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#aa2167e62576d36eae341c2583cb5d678">hpxset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a4ff298fcdc6e7e23dfb4971fbd26ebe7">hpxx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#af44375ad9036898dd6d12d2cc58bf53b">hpxs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#afe3968d54673ee2d843005ad2f2276b5">xphset</a>(<span class="keyword">struct</span> <a class="code" href="structprjprm.html">prjprm</a> *prj);</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6a15da57b1ebff4daea8728b0d064f23">xphx2s</a>(<a class="code" href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a>);</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="keywordtype">int</span> <a class="code" href="prj_8h.html#a6c92f19ce9244009f4ae9517bd4f68b4">xphs2x</a>(<a class="code" href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a>);</div>
 <div class="line"><a name="l00804"></a><span class="lineno">  804</span> </div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="prj_8h.html#a7f080405538ea2ddd2882c991e25bd2f">  806</a></span> <span class="preprocessor">#define prjini_errmsg prj_errmsg</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="prj_8h.html#af862254dceec64a987fdaabc40e4963d">  807</a></span> <span class="preprocessor">#define prjprt_errmsg prj_errmsg</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="prj_8h.html#a94f59295c312536ce66482b3d9bebec4">  808</a></span> <span class="preprocessor">#define prjset_errmsg prj_errmsg</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="prj_8h.html#a3672afec3db0f850d67404814ebdbc64">  809</a></span> <span class="preprocessor">#define prjx2s_errmsg prj_errmsg</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="prj_8h.html#adf9cca0265038851129d1966017cd525">  810</a></span> <span class="preprocessor">#define prjs2x_errmsg prj_errmsg</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span> </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span> }</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span> </div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_PROJ */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> </div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="prj_8h.html#a7f080405538ea2ddd2882c991e25bd2f">  807</a></span> <span class="preprocessor">#define prjini_errmsg prj_errmsg</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="prj_8h.html#af862254dceec64a987fdaabc40e4963d">  808</a></span> <span class="preprocessor">#define prjprt_errmsg prj_errmsg</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="prj_8h.html#a94f59295c312536ce66482b3d9bebec4">  809</a></span> <span class="preprocessor">#define prjset_errmsg prj_errmsg</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="prj_8h.html#a3672afec3db0f850d67404814ebdbc64">  810</a></span> <span class="preprocessor">#define prjx2s_errmsg prj_errmsg</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="prj_8h.html#adf9cca0265038851129d1966017cd525">  811</a></span> <span class="preprocessor">#define prjs2x_errmsg prj_errmsg</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> </div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span> }</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> </div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_PROJ */</span><span class="preprocessor"></span></div>
 <div class="ttc" id="prj_8h_html_aeb7881cd5d7b4b5e26281a512b8f62ac"><div class="ttname"><a href="prj_8h.html#aeb7881cd5d7b4b5e26281a512b8f62ac">sinx2s</a></div><div class="ttdeci">int sinx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the orthographic/synthesis (SIN) projection. </div></div>
 <div class="ttc" id="prj_8h_html_ab4325a957786611772b90e7a080327f3"><div class="ttname"><a href="prj_8h.html#ab4325a957786611772b90e7a080327f3">cars2x</a></div><div class="ttdeci">int cars2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the plate carrée (CAR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a151140d870ed4f490317938bd6260a6a"><div class="ttname"><a href="prj_8h.html#a151140d870ed4f490317938bd6260a6a">molset</a></div><div class="ttdeci">int molset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for Mollweide's (MOL) projection. </div></div>
@@ -877,19 +878,19 @@
 <div class="ttc" id="prj_8h_html_a666322bfe8c4b8e73f00afeb47283f97"><div class="ttname"><a href="prj_8h.html#a666322bfe8c4b8e73f00afeb47283f97">arcx2s</a></div><div class="ttdeci">int arcx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the zenithal/azimuthal equidistant (ARC) projection...</div></div>
 <div class="ttc" id="prj_8h_html_ac038f2474d5d58de157554cee74a9735"><div class="ttname"><a href="prj_8h.html#ac038f2474d5d58de157554cee74a9735">arcset</a></div><div class="ttdeci">int arcset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the zenithal/azimuthal equidistant (ARC) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a53315ef8d3bd4002d1e98142fcf62566"><div class="ttname"><a href="prj_8h.html#a53315ef8d3bd4002d1e98142fcf62566">bonx2s</a></div><div class="ttdeci">int bonx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for Bonne's (BON) projection. </div></div>
-<div class="ttc" id="structprjprm_html_afecdd175932cbf29fcfac575b1a5cb9b"><div class="ttname"><a href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">prjprm::simplezen</a></div><div class="ttdeci">int simplezen</div><div class="ttdef"><b>Definition:</b> prj.h:656</div></div>
+<div class="ttc" id="structprjprm_html_afecdd175932cbf29fcfac575b1a5cb9b"><div class="ttname"><a href="structprjprm.html#afecdd175932cbf29fcfac575b1a5cb9b">prjprm::simplezen</a></div><div class="ttdeci">int simplezen</div><div class="ttdef"><b>Definition:</b> prj.h:657</div></div>
 <div class="ttc" id="prj_8h_html_ab1264f0201113c1a8e931ad9a7630e2f"><div class="ttname"><a href="prj_8h.html#ab1264f0201113c1a8e931ad9a7630e2f">coeset</a></div><div class="ttdeci">int coeset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the conic equal area (COE) projection. </div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
-<div class="ttc" id="structprjprm_html_ab3e207e26d1c9db06cedba2cf4460340"><div class="ttname"><a href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">prjprm::equiareal</a></div><div class="ttdeci">int equiareal</div><div class="ttdef"><b>Definition:</b> prj.h:657</div></div>
+<div class="ttc" id="structprjprm_html_ab3e207e26d1c9db06cedba2cf4460340"><div class="ttname"><a href="structprjprm.html#ab3e207e26d1c9db06cedba2cf4460340">prjprm::equiareal</a></div><div class="ttdeci">int equiareal</div><div class="ttdef"><b>Definition:</b> prj.h:658</div></div>
 <div class="ttc" id="prj_8h_html_a7c719c0387d23c53b0ceb3ee161de66a"><div class="ttname"><a href="prj_8h.html#a7c719c0387d23c53b0ceb3ee161de66a">sflset</a></div><div class="ttdeci">int sflset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the Sanson-Flamsteed (SFL) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a3b4cda48838c613460bff00c76fceb44"><div class="ttname"><a href="prj_8h.html#a3b4cda48838c613460bff00c76fceb44">bons2x</a></div><div class="ttdeci">int bons2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for Bonne's (BON) projection. </div></div>
-<div class="ttc" id="structprjprm_html_afb805c40a4d37c195074c1305874d615"><div class="ttname"><a href="structprjprm.html#afb805c40a4d37c195074c1305874d615">prjprm::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> prj.h:671</div></div>
+<div class="ttc" id="structprjprm_html_afb805c40a4d37c195074c1305874d615"><div class="ttname"><a href="structprjprm.html#afb805c40a4d37c195074c1305874d615">prjprm::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> prj.h:672</div></div>
 <div class="ttc" id="prj_8h_html_a9bceed17f625eb88a0826871dc8296b5"><div class="ttname"><a href="prj_8h.html#a9bceed17f625eb88a0826871dc8296b5">prj_categories</a></div><div class="ttdeci">const char prj_categories[9][32]</div><div class="ttdoc">Projection categories. </div></div>
 <div class="ttc" id="prj_8h_html_ac2f3bc42ac6e7d458364ebcf2b35814f"><div class="ttname"><a href="prj_8h.html#ac2f3bc42ac6e7d458364ebcf2b35814f">copset</a></div><div class="ttdeci">int copset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the conic perspective (COP) projection. </div></div>
 <div class="ttc" id="prj_8h_html_acd4f54c072b6219242daeb6d4b9a74cb"><div class="ttname"><a href="prj_8h.html#acd4f54c072b6219242daeb6d4b9a74cb">tanx2s</a></div><div class="ttdeci">int tanx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the gnomonic (TAN) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a2c87fbf68277f03051d3eaae3db785e9"><div class="ttname"><a href="prj_8h.html#a2c87fbf68277f03051d3eaae3db785e9">airx2s</a></div><div class="ttdeci">int airx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for Airy's (AIR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a6c92f19ce9244009f4ae9517bd4f68b4"><div class="ttname"><a href="prj_8h.html#a6c92f19ce9244009f4ae9517bd4f68b4">xphs2x</a></div><div class="ttdeci">int xphs2x(PRJS2X_ARGS)</div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">prj_errmsg_enum</a></div><div class="ttdeci">prj_errmsg_enum</div><div class="ttdef"><b>Definition:</b> prj.h:604</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305">prj_errmsg_enum</a></div><div class="ttdeci">prj_errmsg_enum</div><div class="ttdef"><b>Definition:</b> prj.h:605</div></div>
 <div class="ttc" id="prj_8h_html_a88c15d0b6f789cbbd7c5d323ef131360"><div class="ttname"><a href="prj_8h.html#a88c15d0b6f789cbbd7c5d323ef131360">stgx2s</a></div><div class="ttdeci">int stgx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the stereographic (STG) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a5c0dfa6c6a33e8a936386c05d74e7202"><div class="ttname"><a href="prj_8h.html#a5c0dfa6c6a33e8a936386c05d74e7202">prj_codes</a></div><div class="ttdeci">const char prj_codes[28][4]</div><div class="ttdoc">Recognized three-letter projection codes. </div></div>
 <div class="ttc" id="prj_8h_html_afaafab5c440384667d7af444b7aca750"><div class="ttname"><a href="prj_8h.html#afaafab5c440384667d7af444b7aca750">szpset</a></div><div class="ttdeci">int szpset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the slant zenithal perspective (SZP) projection. </div></div>
@@ -900,15 +901,15 @@
 <div class="ttc" id="prj_8h_html_acf989261fd56f1e8b4eb8941ec2c754f"><div class="ttname"><a href="prj_8h.html#acf989261fd56f1e8b4eb8941ec2c754f">merset</a></div><div class="ttdeci">int merset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for Mercator's (MER) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a17be11269d86b3308fd925949877718e"><div class="ttname"><a href="prj_8h.html#a17be11269d86b3308fd925949877718e">parx2s</a></div><div class="ttdeci">int parx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the parabolic (PAR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_afa8d27e481bbfffacd3e671e6715d5cb"><div class="ttname"><a href="prj_8h.html#afa8d27e481bbfffacd3e671e6715d5cb">coes2x</a></div><div class="ttdeci">int coes2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the conic equal area (COE) projection. </div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">PRJERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> prj.h:610</div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">PRJERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> prj.h:607</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a0d15cd17822bea2f7fc0209a180cc998">PRJERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> prj.h:611</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6a0f63e2f52f594637a12db14e5814e6">PRJERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> prj.h:608</div></div>
 <div class="ttc" id="prj_8h_html_af363383621fb2b72243c1d6b894874d5"><div class="ttname"><a href="prj_8h.html#af363383621fb2b72243c1d6b894874d5">carx2s</a></div><div class="ttdeci">int carx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the plate carrée (CAR) projection. </div></div>
-<div class="ttc" id="structprjprm_html_a75cda8ae364a914f64e119ba859c8372"><div class="ttname"><a href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">prjprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> prj.h:669</div></div>
-<div class="ttc" id="structprjprm_html_a46d6928a9026e7b3376dcf0d3f91db64"><div class="ttname"><a href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">prjprm::pv</a></div><div class="ttdeci">double pv[PVN]</div><div class="ttdef"><b>Definition:</b> prj.h:647</div></div>
-<div class="ttc" id="structprjprm_html_ae699a5fb02198777343057972e1452d0"><div class="ttname"><a href="structprjprm.html#ae699a5fb02198777343057972e1452d0">prjprm::prjs2x</a></div><div class="ttdeci">int(* prjs2x)(PRJS2X_ARGS)</div><div class="ttdef"><b>Definition:</b> prj.h:674</div></div>
+<div class="ttc" id="structprjprm_html_a75cda8ae364a914f64e119ba859c8372"><div class="ttname"><a href="structprjprm.html#a75cda8ae364a914f64e119ba859c8372">prjprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> prj.h:670</div></div>
+<div class="ttc" id="structprjprm_html_a46d6928a9026e7b3376dcf0d3f91db64"><div class="ttname"><a href="structprjprm.html#a46d6928a9026e7b3376dcf0d3f91db64">prjprm::pv</a></div><div class="ttdeci">double pv[PVN]</div><div class="ttdef"><b>Definition:</b> prj.h:648</div></div>
+<div class="ttc" id="structprjprm_html_ae699a5fb02198777343057972e1452d0"><div class="ttname"><a href="structprjprm.html#ae699a5fb02198777343057972e1452d0">prjprm::prjs2x</a></div><div class="ttdeci">int(* prjs2x)(PRJS2X_ARGS)</div><div class="ttdef"><b>Definition:</b> prj.h:675</div></div>
 <div class="ttc" id="prj_8h_html_affdbf993ce959fce2c148c07cd0f2c0c"><div class="ttname"><a href="prj_8h.html#affdbf993ce959fce2c148c07cd0f2c0c">cypx2s</a></div><div class="ttdeci">int cypx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the cylindrical perspective (CYP) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a8bc552f12260f944e0b8f9b714804983"><div class="ttname"><a href="prj_8h.html#a8bc552f12260f944e0b8f9b714804983">cscset</a></div><div class="ttdeci">int cscset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the COBE spherical cube (CSC) projection. </div></div>
-<div class="ttc" id="structprjprm_html_af0fcebbc8155f0b1ee868e64a2ed9ac3"><div class="ttname"><a href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">prjprm::category</a></div><div class="ttdeci">int category</div><div class="ttdef"><b>Definition:</b> prj.h:654</div></div>
+<div class="ttc" id="structprjprm_html_af0fcebbc8155f0b1ee868e64a2ed9ac3"><div class="ttname"><a href="structprjprm.html#af0fcebbc8155f0b1ee868e64a2ed9ac3">prjprm::category</a></div><div class="ttdeci">int category</div><div class="ttdef"><b>Definition:</b> prj.h:655</div></div>
 <div class="ttc" id="prj_8h_html_a33f92621800eb880b75611c439526d19"><div class="ttname"><a href="prj_8h.html#a33f92621800eb880b75611c439526d19">aitset</a></div><div class="ttdeci">int aitset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the Hammer-Aitoff (AIT) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a86e25219d2169702c7db6508750097cf"><div class="ttname"><a href="prj_8h.html#a86e25219d2169702c7db6508750097cf">CYLINDRICAL</a></div><div class="ttdeci">const int CYLINDRICAL</div><div class="ttdoc">Identifier for cylindrical projections. </div></div>
 <div class="ttc" id="prj_8h_html_a77283589634cc9a054f3a7c7fc91d38d"><div class="ttname"><a href="prj_8h.html#a77283589634cc9a054f3a7c7fc91d38d">cops2x</a></div><div class="ttdeci">int cops2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the conic perspective (COP) projection. ...</div></div>
@@ -921,21 +922,21 @@
 <div class="ttc" id="prj_8h_html_afcefcb885b7d1c33e0458345cdc9f4a4"><div class="ttname"><a href="prj_8h.html#afcefcb885b7d1c33e0458345cdc9f4a4">cscx2s</a></div><div class="ttdeci">int cscx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the COBE spherical cube (CSC) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a025adf8a63b5d4a8d2a4de804e0707be"><div class="ttname"><a href="prj_8h.html#a025adf8a63b5d4a8d2a4de804e0707be">airset</a></div><div class="ttdeci">int airset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for Airy's (AIR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_ac9a7ed6b032cfdaba0e8caba17c6c149"><div class="ttname"><a href="prj_8h.html#ac9a7ed6b032cfdaba0e8caba17c6c149">cscs2x</a></div><div class="ttdeci">int cscs2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the COBE spherical cube (CSC) projection. </div></div>
-<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:638</div></div>
+<div class="ttc" id="structprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:639</div></div>
 <div class="ttc" id="prj_8h_html_a1f1714691f99f11640dccdc74eadfb49"><div class="ttname"><a href="prj_8h.html#a1f1714691f99f11640dccdc74eadfb49">pcos2x</a></div><div class="ttdeci">int pcos2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the polyconic (PCO) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a70b750ec65eb4a277057200c7fbb251f"><div class="ttname"><a href="prj_8h.html#a70b750ec65eb4a277057200c7fbb251f">szps2x</a></div><div class="ttdeci">int szps2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the slant zenithal perspective (SZP) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a849a1bbd679d0c193e8be96a8b9ed534"><div class="ttname"><a href="prj_8h.html#a849a1bbd679d0c193e8be96a8b9ed534">zeax2s</a></div><div class="ttdeci">int zeax2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the zenithal/azimuthal equal area (ZEA) projection...</div></div>
 <div class="ttc" id="prj_8h_html_afc5276e759c799deea36271d9cafc5e9"><div class="ttname"><a href="prj_8h.html#afc5276e759c799deea36271d9cafc5e9">qscx2s</a></div><div class="ttdeci">int qscx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the quadrilateralized spherical cube (QSC) projection...</div></div>
-<div class="ttc" id="structprjprm_html_a699ad609ff7c1935d8fb6a457a5b8164"><div class="ttname"><a href="structprjprm.html#a699ad609ff7c1935d8fb6a457a5b8164">prjprm::phi0</a></div><div class="ttdeci">double phi0</div><div class="ttdef"><b>Definition:</b> prj.h:648</div></div>
-<div class="ttc" id="structprjprm_html_a3894c2e551929b29adce50cd637fa351"><div class="ttname"><a href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">prjprm::r0</a></div><div class="ttdeci">double r0</div><div class="ttdef"><b>Definition:</b> prj.h:646</div></div>
+<div class="ttc" id="structprjprm_html_a699ad609ff7c1935d8fb6a457a5b8164"><div class="ttname"><a href="structprjprm.html#a699ad609ff7c1935d8fb6a457a5b8164">prjprm::phi0</a></div><div class="ttdeci">double phi0</div><div class="ttdef"><b>Definition:</b> prj.h:649</div></div>
+<div class="ttc" id="structprjprm_html_a3894c2e551929b29adce50cd637fa351"><div class="ttname"><a href="structprjprm.html#a3894c2e551929b29adce50cd637fa351">prjprm::r0</a></div><div class="ttdeci">double r0</div><div class="ttdef"><b>Definition:</b> prj.h:647</div></div>
 <div class="ttc" id="prj_8h_html_aafd25a96ccc5966c04d7732ca482c0c1"><div class="ttname"><a href="prj_8h.html#aafd25a96ccc5966c04d7732ca482c0c1">POLYCONIC</a></div><div class="ttdeci">const int POLYCONIC</div><div class="ttdoc">Identifier for polyconic projections. </div></div>
 <div class="ttc" id="prj_8h_html_a6d1f0504f9b864d4aed4a59d60bab819"><div class="ttname"><a href="prj_8h.html#a6d1f0504f9b864d4aed4a59d60bab819">qscset</a></div><div class="ttdeci">int qscset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the quadrilateralized spherical cube (QSC) projection. ...</div></div>
 <div class="ttc" id="prj_8h_html_a147e82f4cede2e6d9ba0ff76b11a2ab2"><div class="ttname"><a href="prj_8h.html#a147e82f4cede2e6d9ba0ff76b11a2ab2">prjbchk</a></div><div class="ttdeci">int prjbchk(double tol, int nx, int ny, int spt, double phi[], double theta[], int stat[])</div><div class="ttdoc">Bounds checking on native coordinates. </div></div>
 <div class="ttc" id="prj_8h_html_a3229533df20718c0d5671cc9eb5316fe"><div class="ttname"><a href="prj_8h.html#a3229533df20718c0d5671cc9eb5316fe">zeaset</a></div><div class="ttdeci">int zeaset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the zenithal/azimuthal equal area (ZEA) projection. </div></div>
 <div class="ttc" id="prj_8h_html_ab6ce2bb75a87b1679d05f251227d2f1b"><div class="ttname"><a href="prj_8h.html#ab6ce2bb75a87b1679d05f251227d2f1b">sinset</a></div><div class="ttdeci">int sinset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the orthographic/synthesis (SIN) projection. </div></div>
-<div class="ttc" id="structprjprm_html_a4f3c364f16d0b6498d7e11e6bb67239c"><div class="ttname"><a href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">prjprm::code</a></div><div class="ttdeci">char code[4]</div><div class="ttdef"><b>Definition:</b> prj.h:645</div></div>
-<div class="ttc" id="structprjprm_html_aeef644ffeafea16e82b2b995a470a345"><div class="ttname"><a href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">prjprm::prjx2s</a></div><div class="ttdeci">int(* prjx2s)(PRJX2S_ARGS)</div><div class="ttdef"><b>Definition:</b> prj.h:673</div></div>
-<div class="ttc" id="prj_8h_html_aacc46318c778bd844e30d6997394cc8a"><div class="ttname"><a href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a></div><div class="ttdeci">#define PRJS2X_ARGS</div><div class="ttdoc">For use in declaring projection function prototypes. </div><div class="ttdef"><b>Definition:</b> prj.h:634</div></div>
+<div class="ttc" id="structprjprm_html_a4f3c364f16d0b6498d7e11e6bb67239c"><div class="ttname"><a href="structprjprm.html#a4f3c364f16d0b6498d7e11e6bb67239c">prjprm::code</a></div><div class="ttdeci">char code[4]</div><div class="ttdef"><b>Definition:</b> prj.h:646</div></div>
+<div class="ttc" id="structprjprm_html_aeef644ffeafea16e82b2b995a470a345"><div class="ttname"><a href="structprjprm.html#aeef644ffeafea16e82b2b995a470a345">prjprm::prjx2s</a></div><div class="ttdeci">int(* prjx2s)(PRJX2S_ARGS)</div><div class="ttdef"><b>Definition:</b> prj.h:674</div></div>
+<div class="ttc" id="prj_8h_html_aacc46318c778bd844e30d6997394cc8a"><div class="ttname"><a href="prj_8h.html#aacc46318c778bd844e30d6997394cc8a">PRJS2X_ARGS</a></div><div class="ttdeci">#define PRJS2X_ARGS</div><div class="ttdoc">For use in declaring projection function prototypes. </div><div class="ttdef"><b>Definition:</b> prj.h:635</div></div>
 <div class="ttc" id="prj_8h_html_aa2167e62576d36eae341c2583cb5d678"><div class="ttname"><a href="prj_8h.html#aa2167e62576d36eae341c2583cb5d678">hpxset</a></div><div class="ttdeci">int hpxset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the HEALPix (HPX) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a749605599f1bf2b883c5c88b6cc9c06b"><div class="ttname"><a href="prj_8h.html#a749605599f1bf2b883c5c88b6cc9c06b">QUADCUBE</a></div><div class="ttdeci">const int QUADCUBE</div><div class="ttdoc">Identifier for quadcube projections. </div></div>
 <div class="ttc" id="prj_8h_html_a310444979f8f0e62db2bcbe39b0e3d35"><div class="ttname"><a href="prj_8h.html#a310444979f8f0e62db2bcbe39b0e3d35">sflx2s</a></div><div class="ttdeci">int sflx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the Sanson-Flamsteed (SFL) projection. </div></div>
@@ -944,19 +945,19 @@
 <div class="ttc" id="prj_8h_html_adc4da028cde2d970e9e5e22adca22f37"><div class="ttname"><a href="prj_8h.html#adc4da028cde2d970e9e5e22adca22f37">zeas2x</a></div><div class="ttdeci">int zeas2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the zenithal/azimuthal equal area (ZEA) projection...</div></div>
 <div class="ttc" id="prj_8h_html_a75b6b1cb0a748e9b5d3a4cd31129ace6"><div class="ttname"><a href="prj_8h.html#a75b6b1cb0a748e9b5d3a4cd31129ace6">airs2x</a></div><div class="ttdeci">int airs2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for Airy's (AIR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_abbfbf3cba73850d7608765725993dfe3"><div class="ttname"><a href="prj_8h.html#abbfbf3cba73850d7608765725993dfe3">tscx2s</a></div><div class="ttdeci">int tscx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the tangential spherical cube (TSC) projection. </div></div>
-<div class="ttc" id="structprjprm_html_ab165b11d417700de0a4187f133050a2b"><div class="ttname"><a href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">prjprm::name</a></div><div class="ttdeci">char name[40]</div><div class="ttdef"><b>Definition:</b> prj.h:653</div></div>
+<div class="ttc" id="structprjprm_html_ab165b11d417700de0a4187f133050a2b"><div class="ttname"><a href="structprjprm.html#ab165b11d417700de0a4187f133050a2b">prjprm::name</a></div><div class="ttdeci">char name[40]</div><div class="ttdef"><b>Definition:</b> prj.h:654</div></div>
 <div class="ttc" id="prj_8h_html_a588e9a86fc4dcd1195f867f718ce5429"><div class="ttname"><a href="prj_8h.html#a588e9a86fc4dcd1195f867f718ce5429">copx2s</a></div><div class="ttdeci">int copx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the conic perspective (COP) projection. ...</div></div>
-<div class="ttc" id="structprjprm_html_aae2c61d85c72e87f4b2b77a14c8eb316"><div class="ttname"><a href="structprjprm.html#aae2c61d85c72e87f4b2b77a14c8eb316">prjprm::x0</a></div><div class="ttdeci">double x0</div><div class="ttdef"><b>Definition:</b> prj.h:661</div></div>
+<div class="ttc" id="structprjprm_html_aae2c61d85c72e87f4b2b77a14c8eb316"><div class="ttname"><a href="structprjprm.html#aae2c61d85c72e87f4b2b77a14c8eb316">prjprm::x0</a></div><div class="ttdeci">double x0</div><div class="ttdef"><b>Definition:</b> prj.h:662</div></div>
 <div class="ttc" id="prj_8h_html_afedc43dc512008174ec9b87753519031"><div class="ttname"><a href="prj_8h.html#afedc43dc512008174ec9b87753519031">cods2x</a></div><div class="ttdeci">int cods2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the conic equidistant (COD) projection. ...</div></div>
 <div class="ttc" id="prj_8h_html_ad43dbc765c63162d0af2b9285b8a434f"><div class="ttname"><a href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f">prjset</a></div><div class="ttdeci">int prjset(struct prjprm *prj)</div><div class="ttdoc">Generic setup routine for the prjprm struct. </div></div>
-<div class="ttc" id="structprjprm_html_ad7a41e3d03cb739c2a9aa1f8aabf54f9"><div class="ttname"><a href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">prjprm::conformal</a></div><div class="ttdeci">int conformal</div><div class="ttdef"><b>Definition:</b> prj.h:658</div></div>
-<div class="ttc" id="structprjprm_html_abcd2a3ee9f61b930d23bf741cea63bf3"><div class="ttname"><a href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">prjprm::pvrange</a></div><div class="ttdeci">int pvrange</div><div class="ttdef"><b>Definition:</b> prj.h:655</div></div>
+<div class="ttc" id="structprjprm_html_ad7a41e3d03cb739c2a9aa1f8aabf54f9"><div class="ttname"><a href="structprjprm.html#ad7a41e3d03cb739c2a9aa1f8aabf54f9">prjprm::conformal</a></div><div class="ttdeci">int conformal</div><div class="ttdef"><b>Definition:</b> prj.h:659</div></div>
+<div class="ttc" id="structprjprm_html_abcd2a3ee9f61b930d23bf741cea63bf3"><div class="ttname"><a href="structprjprm.html#abcd2a3ee9f61b930d23bf741cea63bf3">prjprm::pvrange</a></div><div class="ttdeci">int pvrange</div><div class="ttdef"><b>Definition:</b> prj.h:656</div></div>
 <div class="ttc" id="prj_8h_html_abdf8c6c3ef615a01ebf8822e013d6a63"><div class="ttname"><a href="prj_8h.html#abdf8c6c3ef615a01ebf8822e013d6a63">sins2x</a></div><div class="ttdeci">int sins2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the orthographic/synthesis (SIN) projection. </div></div>
 <div class="ttc" id="prj_8h_html_adc97181f64d72234b8c6903b22b33df9"><div class="ttname"><a href="prj_8h.html#adc97181f64d72234b8c6903b22b33df9">CONIC</a></div><div class="ttdeci">const int CONIC</div><div class="ttdoc">Identifier for conic projections. </div></div>
 <div class="ttc" id="prj_8h_html_a13e0f81e1fd4bdc46847ab4c634ad346"><div class="ttname"><a href="prj_8h.html#a13e0f81e1fd4bdc46847ab4c634ad346">cyps2x</a></div><div class="ttdeci">int cyps2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the cylindrical perspective (CYP) projection. </div></div>
 <div class="ttc" id="prj_8h_html_aaba5ce89ae711728d8ba8105ac5fd599"><div class="ttname"><a href="prj_8h.html#aaba5ce89ae711728d8ba8105ac5fd599">arcs2x</a></div><div class="ttdeci">int arcs2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the zenithal/azimuthal equidistant (ARC) projection...</div></div>
-<div class="ttc" id="structprjprm_html_a3b40a2df3b436c4ffcf5be6814993278"><div class="ttname"><a href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">prjprm::w</a></div><div class="ttdeci">double w[10]</div><div class="ttdef"><b>Definition:</b> prj.h:670</div></div>
-<div class="ttc" id="structprjprm_html_aab36c6218a33025ac4c5025de7c67d42"><div class="ttname"><a href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">prjprm::n</a></div><div class="ttdeci">int n</div><div class="ttdef"><b>Definition:</b> prj.h:671</div></div>
+<div class="ttc" id="structprjprm_html_a3b40a2df3b436c4ffcf5be6814993278"><div class="ttname"><a href="structprjprm.html#a3b40a2df3b436c4ffcf5be6814993278">prjprm::w</a></div><div class="ttdeci">double w[10]</div><div class="ttdef"><b>Definition:</b> prj.h:671</div></div>
+<div class="ttc" id="structprjprm_html_aab36c6218a33025ac4c5025de7c67d42"><div class="ttname"><a href="structprjprm.html#aab36c6218a33025ac4c5025de7c67d42">prjprm::n</a></div><div class="ttdeci">int n</div><div class="ttdef"><b>Definition:</b> prj.h:672</div></div>
 <div class="ttc" id="prj_8h_html_a6e2db45f219ba5732ddca43a9fc17408"><div class="ttname"><a href="prj_8h.html#a6e2db45f219ba5732ddca43a9fc17408">HEALPIX</a></div><div class="ttdeci">const int HEALPIX</div><div class="ttdoc">Identifier for the HEALPix projection. </div></div>
 <div class="ttc" id="prj_8h_html_ad9a80b98c04b0e06d08fd84bacc58b27"><div class="ttname"><a href="prj_8h.html#ad9a80b98c04b0e06d08fd84bacc58b27">mers2x</a></div><div class="ttdeci">int mers2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for Mercator's (MER) projection. </div></div>
 <div class="ttc" id="prj_8h_html_afbf5f05496f1e018425e02d60a4e0b74"><div class="ttname"><a href="prj_8h.html#afbf5f05496f1e018425e02d60a4e0b74">codset</a></div><div class="ttdeci">int codset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the conic equidistant (COD) projection. </div></div>
@@ -969,27 +970,26 @@
 <div class="ttc" id="prj_8h_html_ad70968320728202aa12048162248d368"><div class="ttname"><a href="prj_8h.html#ad70968320728202aa12048162248d368">coex2s</a></div><div class="ttdeci">int coex2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the conic equal area (COE) projection. </div></div>
 <div class="ttc" id="prj_8h_html_afe3968d54673ee2d843005ad2f2276b5"><div class="ttname"><a href="prj_8h.html#afe3968d54673ee2d843005ad2f2276b5">xphset</a></div><div class="ttdeci">int xphset(struct prjprm *prj)</div></div>
 <div class="ttc" id="prj_8h_html_a5a2f80bed69a84464e5654f91ed4fb63"><div class="ttname"><a href="prj_8h.html#a5a2f80bed69a84464e5654f91ed4fb63">PSEUDOCYLINDRICAL</a></div><div class="ttdeci">const int PSEUDOCYLINDRICAL</div><div class="ttdoc">Identifier for pseudocylindrical projections. </div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">PRJERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> prj.h:606</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a60d6a804ddfa2f2d0f25f397d653695b">PRJERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> prj.h:607</div></div>
 <div class="ttc" id="prj_8h_html_a2fe67a5ecf17729881efa24c83482611"><div class="ttname"><a href="prj_8h.html#a2fe67a5ecf17729881efa24c83482611">szpx2s</a></div><div class="ttdeci">int szpx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the slant zenithal perspective (SZP) projection. </div></div>
-<div class="ttc" id="prj_8h_html_ac8dfb42cf72db0c4bc690d030f75c662"><div class="ttname"><a href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">PVN</a></div><div class="ttdeci">#define PVN</div><div class="ttdoc">Total number of projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:600</div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">PRJERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> prj.h:608</div></div>
+<div class="ttc" id="prj_8h_html_ac8dfb42cf72db0c4bc690d030f75c662"><div class="ttname"><a href="prj_8h.html#ac8dfb42cf72db0c4bc690d030f75c662">PVN</a></div><div class="ttdeci">#define PVN</div><div class="ttdoc">Total number of projection parameters. </div><div class="ttdef"><b>Definition:</b> prj.h:601</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305ad33460ba0b865ff7580e6d2cebd92c74">PRJERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> prj.h:609</div></div>
 <div class="ttc" id="prj_8h_html_a28ddb923a52cb597ca9c7dd03ceeb4fe"><div class="ttname"><a href="prj_8h.html#a28ddb923a52cb597ca9c7dd03ceeb4fe">ceas2x</a></div><div class="ttdeci">int ceas2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the cylindrical equal area (CEA) projection. </div></div>
-<div class="ttc" id="structprjprm_html_a164706f09314c493c7e9d2c7325f8372"><div class="ttname"><a href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">prjprm::y0</a></div><div class="ttdeci">double y0</div><div class="ttdef"><b>Definition:</b> prj.h:661</div></div>
+<div class="ttc" id="structprjprm_html_a164706f09314c493c7e9d2c7325f8372"><div class="ttname"><a href="structprjprm.html#a164706f09314c493c7e9d2c7325f8372">prjprm::y0</a></div><div class="ttdeci">double y0</div><div class="ttdef"><b>Definition:</b> prj.h:662</div></div>
 <div class="ttc" id="prj_8h_html_aed0317c8ffef248346da897568df266c"><div class="ttname"><a href="prj_8h.html#aed0317c8ffef248346da897568df266c">coos2x</a></div><div class="ttdeci">int coos2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the conic orthomorphic (COO) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a2da3bbd3c42c6ad324117cc5f249a834"><div class="ttname"><a href="prj_8h.html#a2da3bbd3c42c6ad324117cc5f249a834">aitx2s</a></div><div class="ttdeci">int aitx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the Hammer-Aitoff (AIT) projection. </div></div>
 <div class="ttc" id="prj_8h_html_ac983c5a393c5b3f1041f07b2eb95a3a5"><div class="ttname"><a href="prj_8h.html#ac983c5a393c5b3f1041f07b2eb95a3a5">zpnset</a></div><div class="ttdeci">int zpnset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the zenithal/azimuthal polynomial (ZPN) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a5517fccc15882e298ac9433f44d1ae4c"><div class="ttname"><a href="prj_8h.html#a5517fccc15882e298ac9433f44d1ae4c">sfls2x</a></div><div class="ttdeci">int sfls2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the Sanson-Flamsteed (SFL) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a6f3cbaaf367984579aad5ec7eb00f397"><div class="ttname"><a href="prj_8h.html#a6f3cbaaf367984579aad5ec7eb00f397">mols2x</a></div><div class="ttdeci">int mols2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for Mollweide's (MOL) projection. </div></div>
-<div class="ttc" id="structprjprm_html_ae634b0747fe55f77e65b6909c94227d9"><div class="ttname"><a href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">prjprm::global</a></div><div class="ttdeci">int global</div><div class="ttdef"><b>Definition:</b> prj.h:659</div></div>
+<div class="ttc" id="structprjprm_html_ae634b0747fe55f77e65b6909c94227d9"><div class="ttname"><a href="structprjprm.html#ae634b0747fe55f77e65b6909c94227d9">prjprm::global</a></div><div class="ttdeci">int global</div><div class="ttdef"><b>Definition:</b> prj.h:660</div></div>
 <div class="ttc" id="prj_8h_html_aabdc7abc8b7c80187770cfd12c63f700"><div class="ttname"><a href="prj_8h.html#aabdc7abc8b7c80187770cfd12c63f700">pcoset</a></div><div class="ttdeci">int pcoset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the polyconic (PCO) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a68ce41ad199c3385bed7e7d4ded2bd8a"><div class="ttname"><a href="prj_8h.html#a68ce41ad199c3385bed7e7d4ded2bd8a">ceaset</a></div><div class="ttdeci">int ceaset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the cylindrical equal area (CEA) projection. </div></div>
 <div class="ttc" id="prj_8h_html_ad994cb23871c51b20754973bef180f8a"><div class="ttname"><a href="prj_8h.html#ad994cb23871c51b20754973bef180f8a">prjini</a></div><div class="ttdeci">int prjini(struct prjprm *prj)</div><div class="ttdoc">Default constructor for the prjprm struct. </div></div>
-<div class="ttc" id="structprjprm_html_ab8dd3d8b1e462a2b261fc9e304885943"><div class="ttname"><a href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">prjprm::bounds</a></div><div class="ttdeci">int bounds</div><div class="ttdef"><b>Definition:</b> prj.h:649</div></div>
-<div class="ttc" id="structprjprm_html_a30e78bb110dc7a8ad0303370ce20762c"><div class="ttname"><a href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">prjprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> prj.h:665</div></div>
+<div class="ttc" id="structprjprm_html_ab8dd3d8b1e462a2b261fc9e304885943"><div class="ttname"><a href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">prjprm::bounds</a></div><div class="ttdeci">int bounds</div><div class="ttdef"><b>Definition:</b> prj.h:650</div></div>
+<div class="ttc" id="structprjprm_html_a30e78bb110dc7a8ad0303370ce20762c"><div class="ttname"><a href="structprjprm.html#a30e78bb110dc7a8ad0303370ce20762c">prjprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> prj.h:666</div></div>
 <div class="ttc" id="prj_8h_html_a9d3358bed907342e3309e54bd2ab89da"><div class="ttname"><a href="prj_8h.html#a9d3358bed907342e3309e54bd2ab89da">tans2x</a></div><div class="ttdeci">int tans2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the gnomonic (TAN) projection. </div></div>
 <div class="ttc" id="prj_8h_html_abf6696d3455c684cb44d06da7885ce94"><div class="ttname"><a href="prj_8h.html#abf6696d3455c684cb44d06da7885ce94">azpset</a></div><div class="ttdeci">int azpset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the zenithal/azimuthal perspective (AZP) projection. </div></div>
-<div class="ttc" id="structprjprm_html_ad304d66b3f3aa64fe9c7251d3c420d02"><div class="ttname"><a href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">prjprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> prj.h:641</div></div>
+<div class="ttc" id="structprjprm_html_ad304d66b3f3aa64fe9c7251d3c420d02"><div class="ttname"><a href="structprjprm.html#ad304d66b3f3aa64fe9c7251d3c420d02">prjprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> prj.h:642</div></div>
 <div class="ttc" id="prj_8h_html_ad2a2b56c0900516dd24eebf430bcb29c"><div class="ttname"><a href="prj_8h.html#ad2a2b56c0900516dd24eebf430bcb29c">parset</a></div><div class="ttdeci">int parset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the parabolic (PAR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_abc26dfb2d0b0bee71f6e4541977d237f"><div class="ttname"><a href="prj_8h.html#abc26dfb2d0b0bee71f6e4541977d237f">azps2x</a></div><div class="ttdeci">int azps2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the zenithal/azimuthal perspective (AZP) projection...</div></div>
 <div class="ttc" id="prj_8h_html_ab46a0a668f28939626287d048153863f"><div class="ttname"><a href="prj_8h.html#ab46a0a668f28939626287d048153863f">stgs2x</a></div><div class="ttdeci">int stgs2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the stereographic (STG) projection. </div></div>
@@ -999,17 +999,17 @@
 <div class="ttc" id="prj_8h_html_a8ebb4c79b635cef463b4e7242ff23c25"><div class="ttname"><a href="prj_8h.html#a8ebb4c79b635cef463b4e7242ff23c25">azpx2s</a></div><div class="ttdeci">int azpx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the zenithal/azimuthal perspective (AZP) projection...</div></div>
 <div class="ttc" id="prj_8h_html_a9a387f05414e7b59487fdcb03ff79ced"><div class="ttname"><a href="prj_8h.html#a9a387f05414e7b59487fdcb03ff79ced">prjx2s</a></div><div class="ttdeci">int prjx2s(PRJX2S_ARGS)</div><div class="ttdoc">Generic Cartesian-to-spherical deprojection. </div></div>
 <div class="ttc" id="prj_8h_html_a853c1df5e8327d83e9cfdde9455355f5"><div class="ttname"><a href="prj_8h.html#a853c1df5e8327d83e9cfdde9455355f5">molx2s</a></div><div class="ttdeci">int molx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for Mollweide's (MOL) projection. </div></div>
-<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">PRJERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> prj.h:605</div></div>
-<div class="ttc" id="prj_8h_html_a37ad31c5d2926862d211db0d14f401f0"><div class="ttname"><a href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a></div><div class="ttdeci">#define PRJX2S_ARGS</div><div class="ttdoc">For use in declaring deprojection function prototypes. </div><div class="ttdef"><b>Definition:</b> prj.h:630</div></div>
-<div class="ttc" id="structprjprm_html_ae91fa3ff034b1c6de3ec98d8fb9e0ab1"><div class="ttname"><a href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">prjprm::theta0</a></div><div class="ttdeci">double theta0</div><div class="ttdef"><b>Definition:</b> prj.h:648</div></div>
-<div class="ttc" id="structprjprm_html_a62e88bd3c9e02f38193a800035b83918"><div class="ttname"><a href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">prjprm::divergent</a></div><div class="ttdeci">int divergent</div><div class="ttdef"><b>Definition:</b> prj.h:660</div></div>
+<div class="ttc" id="prj_8h_html_a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea"><div class="ttname"><a href="prj_8h.html#a2ac22403e59a9e8d2b2f53f6d0574305a6f3a73d3c0a7dc7d15ceb00e00714bea">PRJERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> prj.h:606</div></div>
+<div class="ttc" id="prj_8h_html_a37ad31c5d2926862d211db0d14f401f0"><div class="ttname"><a href="prj_8h.html#a37ad31c5d2926862d211db0d14f401f0">PRJX2S_ARGS</a></div><div class="ttdeci">#define PRJX2S_ARGS</div><div class="ttdoc">For use in declaring deprojection function prototypes. </div><div class="ttdef"><b>Definition:</b> prj.h:631</div></div>
+<div class="ttc" id="structprjprm_html_ae91fa3ff034b1c6de3ec98d8fb9e0ab1"><div class="ttname"><a href="structprjprm.html#ae91fa3ff034b1c6de3ec98d8fb9e0ab1">prjprm::theta0</a></div><div class="ttdeci">double theta0</div><div class="ttdef"><b>Definition:</b> prj.h:649</div></div>
+<div class="ttc" id="structprjprm_html_a62e88bd3c9e02f38193a800035b83918"><div class="ttname"><a href="structprjprm.html#a62e88bd3c9e02f38193a800035b83918">prjprm::divergent</a></div><div class="ttdeci">int divergent</div><div class="ttdef"><b>Definition:</b> prj.h:661</div></div>
 <div class="ttc" id="prj_8h_html_aeb5951ec54b929d16ab464939a37d74f"><div class="ttname"><a href="prj_8h.html#aeb5951ec54b929d16ab464939a37d74f">pars2x</a></div><div class="ttdeci">int pars2x(PRJS2X_ARGS)</div><div class="ttdoc">Spherical-to-Cartesian transformation for the parabolic (PAR) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a36cf447dee9f2e90e42d43d7adc5a0a1"><div class="ttname"><a href="prj_8h.html#a36cf447dee9f2e90e42d43d7adc5a0a1">cypset</a></div><div class="ttdeci">int cypset(struct prjprm *prj)</div><div class="ttdoc">Set up a prjprm struct for the cylindrical perspective (CYP) projection. </div></div>
 <div class="ttc" id="prj_8h_html_a105e2bf177120eb34f41e6af768f855d"><div class="ttname"><a href="prj_8h.html#a105e2bf177120eb34f41e6af768f855d">codx2s</a></div><div class="ttdeci">int codx2s(PRJX2S_ARGS)</div><div class="ttdoc">Cartesian-to-spherical transformation for the conic equidistant (COD) projection. ...</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/software.html b/html/software.html
index 1fdee9e..6bf8bc3 100644
--- a/html/software.html
+++ b/html/software.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -91,7 +91,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/spc_8h.html b/html/spc_8h.html
index fc30fb4..d9db335 100644
--- a/html/spc_8h.html
+++ b/html/spc_8h.html
@@ -58,7 +58,6 @@
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include "<a class="el" href="spx_8h_source.html">spx.h</a>"</code><br />
-<code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
 </div>
 <p><a href="spc_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
@@ -1303,7 +1302,7 @@ For an AIPS '<code><b>VELO</b></code>' axis, a radio convention velocity (VRAD)
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/spc_8h_source.html b/html/spc_8h_source.html
index 1b22066..e097911 100644
--- a/html/spc_8h_source.html
+++ b/html/spc_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="spc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: spc.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: spc.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the spectral coordinate systems</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the spectral coordinate systems</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* recognized by the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -772,7 +772,7 @@
 <div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
 <div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this structure</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
 <div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
 <div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="comment">*   void *padding2</span></div>
@@ -804,185 +804,183 @@
 <div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="preprocessor">#define WCSLIB_SPC</span></div>
 <div class="line"><a name="l00752"></a><span class="lineno">  752</span> </div>
 <div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="preprocessor">#include "<a class="code" href="spx_8h.html">spx.h</a>"</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span> </div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> </div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> </div>
 <div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span> </div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="spc_8h.html#a96978fec523018fd6898301a3452c166">spc_errmsg</a>[];</div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span> </div>
-<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">  763</a></span> <span class="keyword">enum</span> <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">spc_errmsg_enum</a> {</div>
-<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">  764</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">SPCERR_NO_CHANGE</a>       = -1,  <span class="comment">/* No change. */</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">  765</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">SPCERR_SUCCESS</a>         =  0,  <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">  766</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">SPCERR_NULL_POINTER</a>    =  1,  <span class="comment">/* Null spcprm pointer passed. */</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">  767</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">SPCERR_BAD_SPEC_PARAMS</a> =  2,  <span class="comment">/* Invalid spectral parameters. */</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">  768</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">SPCERR_BAD_X</a>           =  3,  <span class="comment">/* One or more of x coordinates were</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">  770</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">SPCERR_BAD_SPEC</a>        =  4   <span class="comment">/* One or more of the spec coordinates were</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span> };</div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span> </div>
-<div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="structspcprm.html">  774</a></span> <span class="keyword">struct </span><a class="code" href="structspcprm.html">spcprm</a> {</div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">  777</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span> </div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">  781</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">type</a>[8];               <span class="comment">/* Four-letter spectral variable type.      */</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">  782</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">code</a>[4];               <span class="comment">/* Three-letter spectral algorithm code.    */</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
-<div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">  784</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">crval</a>;                 <span class="comment">/* Reference value (CRVALia), SI units.     */</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">  785</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">restfrq</a>;               <span class="comment">/* Rest frequency, Hz.                      */</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">  786</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">restwav</a>;               <span class="comment">/* Rest wavelength, m.                      */</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">  788</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">pv</a>[7];                 <span class="comment">/* Grism parameters:                        */</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>                                 <span class="comment">/*   0: G, grating ruling density.          */</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>                                 <span class="comment">/*   1: m, interference order.              */</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>                                 <span class="comment">/*   2: alpha, angle of incidence.          */</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>                                 <span class="comment">/*   3: n_r, refractive index at lambda_r.  */</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>                                 <span class="comment">/*   4: n'_r, dn/dlambda at lambda_r.       */</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>                                 <span class="comment">/*   5: epsilon, grating tilt angle.        */</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>                                 <span class="comment">/*   6: theta, detector tilt angle.         */</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span> </div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">  799</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">w</a>[6];                  <span class="comment">/* Intermediate values.                     */</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>                                 <span class="comment">/*   0: Rest frequency or wavelength (SI).  */</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>                                 <span class="comment">/*   1: CRVALX (SI units).                  */</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>                                 <span class="comment">/*   2: CDELTX/CDELTia = dX/dS (SI units).  */</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>                                 <span class="comment">/* The remainder are grism intermediates.   */</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span> </div>
-<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">  805</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">isGrism</a>;               <span class="comment">/* Grism coordinates?  1: vacuum, 2: air.   */</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">  806</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">padding1</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span> </div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">  810</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">err</a>;</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span> </div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>   <span class="comment">/* Private                                                                */</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">  814</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">padding2</a>;             <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">  815</a></span>   int (*<a class="code" href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">spxX2P</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* Pointers to the transformation functions */</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">  816</a></span>   int (*<a class="code" href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">spxP2S</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* in the two-step algorithm chain in the   */</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>                                 <span class="comment">/* pixel-to-spectral direction.             */</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span> </div>
-<div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">  819</a></span>   int (*<a class="code" href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">spxS2P</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* Pointers to the transformation functions */</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">  820</a></span>   int (*<a class="code" href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">spxP2X</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* in the two-step algorithm chain in the   */</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>                                 <span class="comment">/* spectral-to-pixel direction.             */</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span> };</div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span> </div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment">/* Size of the spcprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="spc_8h.html#a4e195ae6c61da3608692a3c7f2395599">  825</a></span> <span class="preprocessor">#define SPCLEN (sizeof(struct spcprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="spc_8h.html#a96978fec523018fd6898301a3452c166">spc_errmsg</a>[];</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">  762</a></span> <span class="keyword">enum</span> <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">spc_errmsg_enum</a> {</div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">  763</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">SPCERR_NO_CHANGE</a>       = -1,  <span class="comment">/* No change. */</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">  764</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">SPCERR_SUCCESS</a>         =  0,  <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">  765</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">SPCERR_NULL_POINTER</a>    =  1,  <span class="comment">/* Null spcprm pointer passed. */</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">  766</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">SPCERR_BAD_SPEC_PARAMS</a> =  2,  <span class="comment">/* Invalid spectral parameters. */</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">  767</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">SPCERR_BAD_X</a>           =  3,  <span class="comment">/* One or more of x coordinates were</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">  769</a></span>   <a class="code" href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">SPCERR_BAD_SPEC</a>        =  4   <span class="comment">/* One or more of the spec coordinates were</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> };</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> </div>
+<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="structspcprm.html">  773</a></span> <span class="keyword">struct </span><a class="code" href="structspcprm.html">spcprm</a> {</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">  776</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">  780</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">type</a>[8];               <span class="comment">/* Four-letter spectral variable type.      */</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">  781</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">code</a>[4];               <span class="comment">/* Three-letter spectral algorithm code.    */</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> </div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">  783</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">crval</a>;                 <span class="comment">/* Reference value (CRVALia), SI units.     */</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">  784</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">restfrq</a>;               <span class="comment">/* Rest frequency, Hz.                      */</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">  785</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">restwav</a>;               <span class="comment">/* Rest wavelength, m.                      */</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> </div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">  787</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">pv</a>[7];                 <span class="comment">/* Grism parameters:                        */</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>                                 <span class="comment">/*   0: G, grating ruling density.          */</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>                                 <span class="comment">/*   1: m, interference order.              */</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>                                 <span class="comment">/*   2: alpha, angle of incidence.          */</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>                                 <span class="comment">/*   3: n_r, refractive index at lambda_r.  */</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>                                 <span class="comment">/*   4: n'_r, dn/dlambda at lambda_r.       */</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>                                 <span class="comment">/*   5: epsilon, grating tilt angle.        */</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>                                 <span class="comment">/*   6: theta, detector tilt angle.         */</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> </div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">  798</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">w</a>[6];                  <span class="comment">/* Intermediate values.                     */</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>                                 <span class="comment">/*   0: Rest frequency or wavelength (SI).  */</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>                                 <span class="comment">/*   1: CRVALX (SI units).                  */</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>                                 <span class="comment">/*   2: CDELTX/CDELTia = dX/dS (SI units).  */</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>                                 <span class="comment">/* The remainder are grism intermediates.   */</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> </div>
+<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">  804</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">isGrism</a>;               <span class="comment">/* Grism coordinates?  1: vacuum, 2: air.   */</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">  805</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">padding1</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> </div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   <span class="comment">/* Error handling                                                         */</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">  809</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">err</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   <span class="comment">/* Private                                                                */</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">  813</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">padding2</a>;             <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">  814</a></span>   int (*<a class="code" href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">spxX2P</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* Pointers to the transformation functions */</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">  815</a></span>   int (*<a class="code" href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">spxP2S</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* in the two-step algorithm chain in the   */</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>                                 <span class="comment">/* pixel-to-spectral direction.             */</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> </div>
+<div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">  818</a></span>   int (*<a class="code" href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">spxS2P</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* Pointers to the transformation functions */</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">  819</a></span>   int (*<a class="code" href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">spxP2X</a>)(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);      <span class="comment">/* in the two-step algorithm chain in the   */</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>                                 <span class="comment">/* spectral-to-pixel direction.             */</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span> };</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> </div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">/* Size of the spcprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="spc_8h.html#a4e195ae6c61da3608692a3c7f2395599">  824</a></span> <span class="preprocessor">#define SPCLEN (sizeof(struct spcprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span> </div>
 <div class="line"><a name="l00826"></a><span class="lineno">  826</span> </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span> </div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a30c95d776068ef3cc959a50af9995fa9">spcini</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span> </div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a2e04fc3ccd8aceebb4bfef56c5399a7d">spcfree</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span> </div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a7304d0d00bcf9d2bad1f56ba6d8322ea">spcprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span> </div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3">spcset</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span> </div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ae7fe86ae85a1a3bd19c2d78c3dba58f6">spcx2s</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> sx, <span class="keywordtype">int</span> sspec,</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> spec[], <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span> </div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ae6e89217a5eca87a2101ae195da74347">spcs2x</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc, <span class="keywordtype">int</span> nspec, <span class="keywordtype">int</span> sspec, <span class="keywordtype">int</span> sx,</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> spec[], <span class="keywordtype">double</span> x[], <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span> </div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aebcf04410f900ba05cb9bf1dcf3f28e8">spctype</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> stype[], <span class="keywordtype">char</span> scode[], <span class="keywordtype">char</span> sname[],</div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>             <span class="keywordtype">char</span> units[], <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>             <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span> </div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a006b5cc50a4559c348b544b3288d29c2">spcspxe</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalS, <span class="keywordtype">double</span> restfrq,</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>             <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>             <span class="keywordtype">double</span> *crvalX, <span class="keywordtype">double</span> *dXdS, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span> </div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#afeb4b475bc9b32a7e1047595a3ab67a1">spcxpse</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalX, <span class="keywordtype">double</span> restfrq,</div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>             <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>             <span class="keywordtype">double</span> *crvalS, <span class="keywordtype">double</span> *dSdX, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span> </div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a5a48828b6fef06053957a51406d31bae">spctrne</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS1[9], <span class="keywordtype">double</span> crvalS1, <span class="keywordtype">double</span> cdeltS1,</div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>             <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> ctypeS2[9], <span class="keywordtype">double</span> *crvalS2,</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>             <span class="keywordtype">double</span> *cdeltS2, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span> </div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ac9dc37c9fdf2db04e23e26b7a51c8e6a">spcaips</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeA[9], <span class="keywordtype">int</span> velref, <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> specsys[9]);</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a30c95d776068ef3cc959a50af9995fa9">spcini</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span> </div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a2e04fc3ccd8aceebb4bfef56c5399a7d">spcfree</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> </div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a7304d0d00bcf9d2bad1f56ba6d8322ea">spcprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3">spcset</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc);</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> </div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ae7fe86ae85a1a3bd19c2d78c3dba58f6">spcx2s</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> sx, <span class="keywordtype">int</span> sspec,</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> spec[], <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span> </div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ae6e89217a5eca87a2101ae195da74347">spcs2x</a>(<span class="keyword">struct</span> <a class="code" href="structspcprm.html">spcprm</a> *spc, <span class="keywordtype">int</span> nspec, <span class="keywordtype">int</span> sspec, <span class="keywordtype">int</span> sx,</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>            <span class="keyword">const</span> <span class="keywordtype">double</span> spec[], <span class="keywordtype">double</span> x[], <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> </div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aebcf04410f900ba05cb9bf1dcf3f28e8">spctype</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> stype[], <span class="keywordtype">char</span> scode[], <span class="keywordtype">char</span> sname[],</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>             <span class="keywordtype">char</span> units[], <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>             <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span> </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a006b5cc50a4559c348b544b3288d29c2">spcspxe</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalS, <span class="keywordtype">double</span> restfrq,</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>             <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>             <span class="keywordtype">double</span> *crvalX, <span class="keywordtype">double</span> *dXdS, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span> </div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#afeb4b475bc9b32a7e1047595a3ab67a1">spcxpse</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalX, <span class="keywordtype">double</span> restfrq,</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>             <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>             <span class="keywordtype">double</span> *crvalS, <span class="keywordtype">double</span> *dSdX, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> </div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a5a48828b6fef06053957a51406d31bae">spctrne</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS1[9], <span class="keywordtype">double</span> crvalS1, <span class="keywordtype">double</span> cdeltS1,</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>             <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> ctypeS2[9], <span class="keywordtype">double</span> *crvalS2,</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>             <span class="keywordtype">double</span> *cdeltS2, <span class="keyword">struct</span> <a class="code" href="structwcserr.html">wcserr</a> **err);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> </div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#ac9dc37c9fdf2db04e23e26b7a51c8e6a">spcaips</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeA[9], <span class="keywordtype">int</span> velref, <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> specsys[9]);</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> </div>
 <div class="line"><a name="l00859"></a><span class="lineno">  859</span> </div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span> </div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="spc_8h.html#a4d66edc63bfc8a39adc6bac9e88c8e81">  862</a></span> <span class="preprocessor">#define spcini_errmsg spc_errmsg</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="spc_8h.html#ac39694faccdd56850677999d714cd14a">  863</a></span> <span class="preprocessor">#define spcprt_errmsg spc_errmsg</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"><a class="line" href="spc_8h.html#a49807752ce4e223d4095cf6ad13bac0a">  864</a></span> <span class="preprocessor">#define spcset_errmsg spc_errmsg</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="spc_8h.html#aab517aed3ee9f8d5a5ca1f990d310b61">  865</a></span> <span class="preprocessor">#define spcx2s_errmsg spc_errmsg</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="spc_8h.html#af0e4274b242fd41625b6ad4f4376b8da">  866</a></span> <span class="preprocessor">#define spcs2x_errmsg spc_errmsg</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span> </div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aafe9e11caad5ac050e5479041c250a32">spctyp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> stype[], <span class="keywordtype">char</span> scode[], <span class="keywordtype">char</span> sname[],</div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>            <span class="keywordtype">char</span> units[], <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq);</div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a6bbde2603e62b96e09576e77ed3446c7">spcspx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalS, <span class="keywordtype">double</span> restfrq,</div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>            <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>            <span class="keywordtype">double</span> *crvalX, <span class="keywordtype">double</span> *dXdS);</div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aa1a03a96e0417b3f5481eb3730386658">spcxps</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalX, <span class="keywordtype">double</span> restfrq,</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>            <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>            <span class="keywordtype">double</span> *crvalS, <span class="keywordtype">double</span> *dSdX);</div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a467e30a1edcf29d6a096f29f8710395b">spctrn</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS1[9], <span class="keywordtype">double</span> crvalS1, <span class="keywordtype">double</span> cdeltS1,</div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>            <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> ctypeS2[9], <span class="keywordtype">double</span> *crvalS2,</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>            <span class="keywordtype">double</span> *cdeltS2);</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span> </div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span> }</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span> </div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_SPC */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="spc_8h.html#a4d66edc63bfc8a39adc6bac9e88c8e81">  861</a></span> <span class="preprocessor">#define spcini_errmsg spc_errmsg</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="spc_8h.html#ac39694faccdd56850677999d714cd14a">  862</a></span> <span class="preprocessor">#define spcprt_errmsg spc_errmsg</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="spc_8h.html#a49807752ce4e223d4095cf6ad13bac0a">  863</a></span> <span class="preprocessor">#define spcset_errmsg spc_errmsg</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"><a class="line" href="spc_8h.html#aab517aed3ee9f8d5a5ca1f990d310b61">  864</a></span> <span class="preprocessor">#define spcx2s_errmsg spc_errmsg</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="spc_8h.html#af0e4274b242fd41625b6ad4f4376b8da">  865</a></span> <span class="preprocessor">#define spcs2x_errmsg spc_errmsg</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> </div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aafe9e11caad5ac050e5479041c250a32">spctyp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctype[9], <span class="keywordtype">char</span> stype[], <span class="keywordtype">char</span> scode[], <span class="keywordtype">char</span> sname[],</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>            <span class="keywordtype">char</span> units[], <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq);</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a6bbde2603e62b96e09576e77ed3446c7">spcspx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalS, <span class="keywordtype">double</span> restfrq,</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>            <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>            <span class="keywordtype">double</span> *crvalX, <span class="keywordtype">double</span> *dXdS);</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#aa1a03a96e0417b3f5481eb3730386658">spcxps</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS[9], <span class="keywordtype">double</span> crvalX, <span class="keywordtype">double</span> restfrq,</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>            <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> *ptype, <span class="keywordtype">char</span> *xtype, <span class="keywordtype">int</span> *restreq,</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>            <span class="keywordtype">double</span> *crvalS, <span class="keywordtype">double</span> *dSdX);</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="keywordtype">int</span> <a class="code" href="spc_8h.html#a467e30a1edcf29d6a096f29f8710395b">spctrn</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> ctypeS1[9], <span class="keywordtype">double</span> crvalS1, <span class="keywordtype">double</span> cdeltS1,</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>            <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav, <span class="keywordtype">char</span> ctypeS2[9], <span class="keywordtype">double</span> *crvalS2,</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>            <span class="keywordtype">double</span> *cdeltS2);</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span> </div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span> }</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> </div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_SPC */</span><span class="preprocessor"></span></div>
 <div class="ttc" id="spc_8h_html_a7304d0d00bcf9d2bad1f56ba6d8322ea"><div class="ttname"><a href="spc_8h.html#a7304d0d00bcf9d2bad1f56ba6d8322ea">spcprt</a></div><div class="ttdeci">int spcprt(const struct spcprm *spc)</div><div class="ttdoc">Print routine for the spcprm struct. </div></div>
 <div class="ttc" id="spc_8h_html_afeb4b475bc9b32a7e1047595a3ab67a1"><div class="ttname"><a href="spc_8h.html#afeb4b475bc9b32a7e1047595a3ab67a1">spcxpse</a></div><div class="ttdeci">int spcxpse(const char ctypeS[9], double crvalX, double restfrq, double restwav, char *ptype, char *xtype, int *restreq, double *crvalS, double *dSdX, struct wcserr **err)</div><div class="ttdoc">Spectral keyword synthesis. </div></div>
-<div class="ttc" id="structspcprm_html_aec5d37c00d382a84a090d4f52d9a4346"><div class="ttname"><a href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">spcprm::isGrism</a></div><div class="ttdeci">int isGrism</div><div class="ttdef"><b>Definition:</b> spc.h:805</div></div>
-<div class="ttc" id="structspcprm_html_a2c5c2d97e6c5f617272834b1516c84de"><div class="ttname"><a href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">spcprm::crval</a></div><div class="ttdeci">double crval</div><div class="ttdef"><b>Definition:</b> spc.h:784</div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">SPCERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> spc.h:765</div></div>
+<div class="ttc" id="structspcprm_html_aec5d37c00d382a84a090d4f52d9a4346"><div class="ttname"><a href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">spcprm::isGrism</a></div><div class="ttdeci">int isGrism</div><div class="ttdef"><b>Definition:</b> spc.h:804</div></div>
+<div class="ttc" id="structspcprm_html_a2c5c2d97e6c5f617272834b1516c84de"><div class="ttname"><a href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">spcprm::crval</a></div><div class="ttdeci">double crval</div><div class="ttdef"><b>Definition:</b> spc.h:783</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0b84f38d1e903eacda3122ce55bff741">SPCERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> spc.h:764</div></div>
 <div class="ttc" id="spc_8h_html_ae6e89217a5eca87a2101ae195da74347"><div class="ttname"><a href="spc_8h.html#ae6e89217a5eca87a2101ae195da74347">spcs2x</a></div><div class="ttdeci">int spcs2x(struct spcprm *spc, int nspec, int sspec, int sx, const double spec[], double x[], int stat[])</div><div class="ttdoc">Transform spectral coordinates. </div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
 <div class="ttc" id="spc_8h_html_a2e04fc3ccd8aceebb4bfef56c5399a7d"><div class="ttname"><a href="spc_8h.html#a2e04fc3ccd8aceebb4bfef56c5399a7d">spcfree</a></div><div class="ttdeci">int spcfree(struct spcprm *spc)</div><div class="ttdoc">Destructor for the spcprm struct. </div></div>
-<div class="ttc" id="structspcprm_html_a8ef0c963f1b0ee957f3403da7559a81c"><div class="ttname"><a href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">spcprm::w</a></div><div class="ttdeci">double w[6]</div><div class="ttdef"><b>Definition:</b> spc.h:799</div></div>
-<div class="ttc" id="spx_8h_html_a777e5c4790da397aefcada61445a1bb3"><div class="ttname"><a href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a></div><div class="ttdeci">#define SPX_ARGS</div><div class="ttdoc">For use in declaring spectral conversion function prototypes. </div><div class="ttdef"><b>Definition:</b> spx.h:489</div></div>
+<div class="ttc" id="structspcprm_html_a8ef0c963f1b0ee957f3403da7559a81c"><div class="ttname"><a href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">spcprm::w</a></div><div class="ttdeci">double w[6]</div><div class="ttdef"><b>Definition:</b> spc.h:798</div></div>
+<div class="ttc" id="spx_8h_html_a777e5c4790da397aefcada61445a1bb3"><div class="ttname"><a href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a></div><div class="ttdeci">#define SPX_ARGS</div><div class="ttdoc">For use in declaring spectral conversion function prototypes. </div><div class="ttdef"><b>Definition:</b> spx.h:487</div></div>
 <div class="ttc" id="spc_8h_html_a006b5cc50a4559c348b544b3288d29c2"><div class="ttname"><a href="spc_8h.html#a006b5cc50a4559c348b544b3288d29c2">spcspxe</a></div><div class="ttdeci">int spcspxe(const char ctypeS[9], double crvalS, double restfrq, double restwav, char *ptype, char *xtype, int *restreq, double *crvalX, double *dXdS, struct wcserr **err)</div><div class="ttdoc">Spectral keyword analysis. </div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">SPCERR_BAD_SPEC_PARAMS</a></div><div class="ttdef"><b>Definition:</b> spc.h:767</div></div>
-<div class="ttc" id="structspcprm_html"><div class="ttname"><a href="structspcprm.html">spcprm</a></div><div class="ttdoc">Spectral transformation parameters. </div><div class="ttdef"><b>Definition:</b> spc.h:774</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba0653e60411a641a326492c65d257daa8">SPCERR_BAD_SPEC_PARAMS</a></div><div class="ttdef"><b>Definition:</b> spc.h:766</div></div>
+<div class="ttc" id="structspcprm_html"><div class="ttname"><a href="structspcprm.html">spcprm</a></div><div class="ttdoc">Spectral transformation parameters. </div><div class="ttdef"><b>Definition:</b> spc.h:773</div></div>
 <div class="ttc" id="spc_8h_html_a6bbde2603e62b96e09576e77ed3446c7"><div class="ttname"><a href="spc_8h.html#a6bbde2603e62b96e09576e77ed3446c7">spcspx</a></div><div class="ttdeci">int spcspx(const char ctypeS[9], double crvalS, double restfrq, double restwav, char *ptype, char *xtype, int *restreq, double *crvalX, double *dXdS)</div></div>
-<div class="ttc" id="structspcprm_html_a74433ae0e7e1ec426777bafb402b50c4"><div class="ttname"><a href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">spcprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> spc.h:785</div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3b"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">spc_errmsg_enum</a></div><div class="ttdeci">spc_errmsg_enum</div><div class="ttdef"><b>Definition:</b> spc.h:763</div></div>
+<div class="ttc" id="structspcprm_html_a74433ae0e7e1ec426777bafb402b50c4"><div class="ttname"><a href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">spcprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> spc.h:784</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3b"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3b">spc_errmsg_enum</a></div><div class="ttdeci">spc_errmsg_enum</div><div class="ttdef"><b>Definition:</b> spc.h:762</div></div>
 <div class="ttc" id="spc_8h_html_aebcf04410f900ba05cb9bf1dcf3f28e8"><div class="ttname"><a href="spc_8h.html#aebcf04410f900ba05cb9bf1dcf3f28e8">spctype</a></div><div class="ttdeci">int spctype(const char ctype[9], char stype[], char scode[], char sname[], char units[], char *ptype, char *xtype, int *restreq, struct wcserr **err)</div><div class="ttdoc">Spectral CTYPEia keyword analysis. </div></div>
 <div class="ttc" id="spc_8h_html_aa1a03a96e0417b3f5481eb3730386658"><div class="ttname"><a href="spc_8h.html#aa1a03a96e0417b3f5481eb3730386658">spcxps</a></div><div class="ttdeci">int spcxps(const char ctypeS[9], double crvalX, double restfrq, double restwav, char *ptype, char *xtype, int *restreq, double *crvalS, double *dSdX)</div></div>
-<div class="ttc" id="structspcprm_html_a20db4194170d78054908acf94b41d9d9"><div class="ttname"><a href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">spcprm::spxX2P</a></div><div class="ttdeci">int(* spxX2P)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:815</div></div>
-<div class="ttc" id="structspcprm_html_a5f9a48a52144f8ced93baaffc107a3a6"><div class="ttname"><a href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">spcprm::code</a></div><div class="ttdeci">char code[4]</div><div class="ttdef"><b>Definition:</b> spc.h:782</div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">SPCERR_BAD_SPEC</a></div><div class="ttdef"><b>Definition:</b> spc.h:770</div></div>
-<div class="ttc" id="structspcprm_html_a387d74de3215763d7e22c222b19a2c44"><div class="ttname"><a href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">spcprm::type</a></div><div class="ttdeci">char type[8]</div><div class="ttdef"><b>Definition:</b> spc.h:781</div></div>
+<div class="ttc" id="structspcprm_html_a20db4194170d78054908acf94b41d9d9"><div class="ttname"><a href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">spcprm::spxX2P</a></div><div class="ttdeci">int(* spxX2P)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:814</div></div>
+<div class="ttc" id="structspcprm_html_a5f9a48a52144f8ced93baaffc107a3a6"><div class="ttname"><a href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">spcprm::code</a></div><div class="ttdeci">char code[4]</div><div class="ttdef"><b>Definition:</b> spc.h:781</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7e218c5bd52bd6a45d8ad66573653007">SPCERR_BAD_SPEC</a></div><div class="ttdef"><b>Definition:</b> spc.h:769</div></div>
+<div class="ttc" id="structspcprm_html_a387d74de3215763d7e22c222b19a2c44"><div class="ttname"><a href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">spcprm::type</a></div><div class="ttdeci">char type[8]</div><div class="ttdef"><b>Definition:</b> spc.h:780</div></div>
 <div class="ttc" id="spc_8h_html_a30c95d776068ef3cc959a50af9995fa9"><div class="ttname"><a href="spc_8h.html#a30c95d776068ef3cc959a50af9995fa9">spcini</a></div><div class="ttdeci">int spcini(struct spcprm *spc)</div><div class="ttdoc">Default constructor for the spcprm struct. </div></div>
 <div class="ttc" id="spc_8h_html_ac9dc37c9fdf2db04e23e26b7a51c8e6a"><div class="ttname"><a href="spc_8h.html#ac9dc37c9fdf2db04e23e26b7a51c8e6a">spcaips</a></div><div class="ttdeci">int spcaips(const char ctypeA[9], int velref, char ctype[9], char specsys[9])</div><div class="ttdoc">Translate AIPS-convention spectral keywords. </div></div>
-<div class="ttc" id="structspcprm_html_a4dbc8c7064ae790483017b6c81e7ded2"><div class="ttname"><a href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">spcprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> spc.h:786</div></div>
-<div class="ttc" id="structspcprm_html_aa38c41f28ffff233bc7ffa0f3947b075"><div class="ttname"><a href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm::padding2</a></div><div class="ttdeci">void * padding2</div><div class="ttdef"><b>Definition:</b> spc.h:814</div></div>
+<div class="ttc" id="structspcprm_html_a4dbc8c7064ae790483017b6c81e7ded2"><div class="ttname"><a href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">spcprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> spc.h:785</div></div>
+<div class="ttc" id="structspcprm_html_aa38c41f28ffff233bc7ffa0f3947b075"><div class="ttname"><a href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">spcprm::padding2</a></div><div class="ttdeci">void * padding2</div><div class="ttdef"><b>Definition:</b> spc.h:813</div></div>
 <div class="ttc" id="spc_8h_html_a5a48828b6fef06053957a51406d31bae"><div class="ttname"><a href="spc_8h.html#a5a48828b6fef06053957a51406d31bae">spctrne</a></div><div class="ttdeci">int spctrne(const char ctypeS1[9], double crvalS1, double cdeltS1, double restfrq, double restwav, char ctypeS2[9], double *crvalS2, double *cdeltS2, struct wcserr **err)</div><div class="ttdoc">Spectral keyword translation. </div></div>
 <div class="ttc" id="spc_8h_html_aafe9e11caad5ac050e5479041c250a32"><div class="ttname"><a href="spc_8h.html#aafe9e11caad5ac050e5479041c250a32">spctyp</a></div><div class="ttdeci">int spctyp(const char ctype[9], char stype[], char scode[], char sname[], char units[], char *ptype, char *xtype, int *restreq)</div></div>
 <div class="ttc" id="spc_8h_html_a96978fec523018fd6898301a3452c166"><div class="ttname"><a href="spc_8h.html#a96978fec523018fd6898301a3452c166">spc_errmsg</a></div><div class="ttdeci">const char * spc_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
 <div class="ttc" id="spc_8h_html_ae7fe86ae85a1a3bd19c2d78c3dba58f6"><div class="ttname"><a href="spc_8h.html#ae7fe86ae85a1a3bd19c2d78c3dba58f6">spcx2s</a></div><div class="ttdeci">int spcx2s(struct spcprm *spc, int nx, int sx, int sspec, const double x[], double spec[], int stat[])</div><div class="ttdoc">Transform to spectral coordinates. </div></div>
-<div class="ttc" id="structspcprm_html_afeeb5f4056f271fd37291a712a7b6791"><div class="ttname"><a href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">spcprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> spc.h:777</div></div>
-<div class="ttc" id="structspcprm_html_a6727d3a30592e54c7361e0434a795832"><div class="ttname"><a href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">spcprm::spxP2X</a></div><div class="ttdeci">int(* spxP2X)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:820</div></div>
-<div class="ttc" id="structspcprm_html_ae11db8d7ff8b605eed87298a32fd094d"><div class="ttname"><a href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">spcprm::pv</a></div><div class="ttdeci">double pv[7]</div><div class="ttdef"><b>Definition:</b> spc.h:788</div></div>
+<div class="ttc" id="structspcprm_html_afeeb5f4056f271fd37291a712a7b6791"><div class="ttname"><a href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">spcprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> spc.h:776</div></div>
+<div class="ttc" id="structspcprm_html_a6727d3a30592e54c7361e0434a795832"><div class="ttname"><a href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">spcprm::spxP2X</a></div><div class="ttdeci">int(* spxP2X)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:819</div></div>
+<div class="ttc" id="structspcprm_html_ae11db8d7ff8b605eed87298a32fd094d"><div class="ttname"><a href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">spcprm::pv</a></div><div class="ttdeci">double pv[7]</div><div class="ttdef"><b>Definition:</b> spc.h:787</div></div>
 <div class="ttc" id="spc_8h_html_a467e30a1edcf29d6a096f29f8710395b"><div class="ttname"><a href="spc_8h.html#a467e30a1edcf29d6a096f29f8710395b">spctrn</a></div><div class="ttdeci">int spctrn(const char ctypeS1[9], double crvalS1, double cdeltS1, double restfrq, double restwav, char ctypeS2[9], double *crvalS2, double *cdeltS2)</div></div>
-<div class="ttc" id="structspcprm_html_a844792d006c308f465ce8ca593a37df3"><div class="ttname"><a href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">spcprm::padding1</a></div><div class="ttdeci">int padding1</div><div class="ttdef"><b>Definition:</b> spc.h:806</div></div>
-<div class="ttc" id="structspcprm_html_a6d4124d4db8f7addcbfee99a8634522e"><div class="ttname"><a href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">spcprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> spc.h:810</div></div>
-<div class="ttc" id="structspcprm_html_add01b70b4a074a7bdccff378ab61a948"><div class="ttname"><a href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">spcprm::spxP2S</a></div><div class="ttdeci">int(* spxP2S)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:816</div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">SPCERR_NO_CHANGE</a></div><div class="ttdef"><b>Definition:</b> spc.h:764</div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">SPCERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> spc.h:766</div></div>
+<div class="ttc" id="structspcprm_html_a844792d006c308f465ce8ca593a37df3"><div class="ttname"><a href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">spcprm::padding1</a></div><div class="ttdeci">int padding1</div><div class="ttdef"><b>Definition:</b> spc.h:805</div></div>
+<div class="ttc" id="structspcprm_html_a6d4124d4db8f7addcbfee99a8634522e"><div class="ttname"><a href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">spcprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> spc.h:809</div></div>
+<div class="ttc" id="structspcprm_html_add01b70b4a074a7bdccff378ab61a948"><div class="ttname"><a href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">spcprm::spxP2S</a></div><div class="ttdeci">int(* spxP2S)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:815</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3bae000828492cbedc0502f757d8b892606">SPCERR_NO_CHANGE</a></div><div class="ttdef"><b>Definition:</b> spc.h:763</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba7c5e0d09fac9f441e39f3cf28801961f">SPCERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> spc.h:765</div></div>
 <div class="ttc" id="spc_8h_html_af2ee6399a65f2467841be79e4bbb41c3"><div class="ttname"><a href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3">spcset</a></div><div class="ttdeci">int spcset(struct spcprm *spc)</div><div class="ttdoc">Setup routine for the spcprm struct. </div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">SPCERR_BAD_X</a></div><div class="ttdef"><b>Definition:</b> spc.h:768</div></div>
-<div class="ttc" id="structspcprm_html_afb6a33994ad13f402efb68d20a97eee1"><div class="ttname"><a href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">spcprm::spxS2P</a></div><div class="ttdeci">int(* spxS2P)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:819</div></div>
+<div class="ttc" id="spc_8h_html_a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615"><div class="ttname"><a href="spc_8h.html#a51ba1ce5380fd2e7693c37554d18fc3ba3ba9183c7c3dace15eef0606980fd615">SPCERR_BAD_X</a></div><div class="ttdef"><b>Definition:</b> spc.h:767</div></div>
+<div class="ttc" id="structspcprm_html_afb6a33994ad13f402efb68d20a97eee1"><div class="ttname"><a href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">spcprm::spxS2P</a></div><div class="ttdeci">int(* spxS2P)(SPX_ARGS)</div><div class="ttdef"><b>Definition:</b> spc.h:818</div></div>
 <div class="ttc" id="spx_8h_html"><div class="ttname"><a href="spx_8h.html">spx.h</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/sph_8h.html b/html/sph_8h.html
index 843a68d..8a7a60b 100644
--- a/html/sph_8h.html
+++ b/html/sph_8h.html
@@ -412,7 +412,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/sph_8h_source.html b/html/sph_8h_source.html
index 0f48cac..396cddc 100644
--- a/html/sph_8h_source.html
+++ b/html/sph_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="sph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: sph.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: sph.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the spherical coordinate</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the spherical coordinate</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* transformations used by the FITS World Coordinate System (WCS) standard.</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">* Refer to</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*</span></div>
@@ -309,7 +309,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/spx_8h.html b/html/spx_8h.html
index 72d53c3..61c3e81 100644
--- a/html/spx_8h.html
+++ b/html/spx_8h.html
@@ -57,8 +57,7 @@
 <div class="title">spx.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
-</div>
+
 <p><a href="spx_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -927,7 +926,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/spx_8h_source.html b/html/spx_8h_source.html
index 6df1b42..4386255 100644
--- a/html/spx_8h_source.html
+++ b/html/spx_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="spx_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: spx.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: spx.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the spectral coordinate systems</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the spectral coordinate systems</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* recognized by the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -453,7 +453,7 @@
 <div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">*     (Returned) ... vice versa [s/m] (constant, = 1/c, always available).</span></div>
 <div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
 <div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
 <div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*   void *padding</span></div>
@@ -472,207 +472,204 @@
 <div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
 <div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a>[];</div>
 <div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a>[];</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
-<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">  426</a></span> <span class="keyword">enum</span> spx_errmsg {</div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">  427</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">SPXERR_SUCCESS</a>          = 0,  <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">  428</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">SPXERR_NULL_POINTER</a>     = 1,  <span class="comment">/* Null spxprm pointer passed. */</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">  429</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">SPXERR_BAD_SPEC_PARAMS</a>  = 2,  <span class="comment">/* Invalid spectral parameters. */</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">  430</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">SPXERR_BAD_SPEC_VAR</a>     = 3,  <span class="comment">/* Invalid spectral variable. */</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">  431</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">SPXERR_BAD_INSPEC_COORD</a> = 4   <span class="comment">/* One or more of the inspec coordinates were</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span> };</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="structspxprm.html">  435</a></span> <span class="keyword">struct </span><a class="code" href="structspxprm.html">spxprm</a> {</div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">  436</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#a533847a7e77e2bba8ce886289d31abdb">restfrq</a>, <a class="code" href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">restwav</a>;      <span class="comment">/* Rest frequency [Hz] and wavelength [m].  */</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span> </div>
-<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">  438</a></span>   <span class="keywordtype">int</span> <a class="code" href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">wavetype</a>, <a class="code" href="structspxprm.html#ae83f0b38ecd0b7b7b6afb6eb42a61fd4">velotype</a>;       <span class="comment">/* True if wave/velocity types have been    */</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>                                 <span class="comment">/* computed; types are defined below.       */</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   <span class="comment">/* Spectral variables computed by specx().                                */</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">  443</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#af2a797bbae7610552aa9adfe75118908">freq</a>,                  <span class="comment">/* wavetype: Frequency [Hz].                */</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>          <a class="code" href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">afrq</a>,                  <span class="comment">/* wavetype: Angular frequency [rad/s].     */</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>          <a class="code" href="structspxprm.html#ab67c62285ad58f5f0c1a88cb15ac3408">ener</a>,                  <span class="comment">/* wavetype: Photon energy [J].             */</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>          <a class="code" href="structspxprm.html#aa37e50cd66795673d6bd43883a1be540">wavn</a>,                  <span class="comment">/* wavetype: Wave number [/m].              */</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>          <a class="code" href="structspxprm.html#a41ee038d00742dcf8cae9b6ed45a699b">vrad</a>,                  <span class="comment">/* velotype: Radio velocity [m/s].          */</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>          <a class="code" href="structspxprm.html#a7ba88553a468a9ef696c0c1eeda6864f">wave</a>,                  <span class="comment">/* wavetype: Vacuum wavelength [m].         */</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>          <a class="code" href="structspxprm.html#a1d7fd26e54e3b253a9e26163445cbfc8">vopt</a>,                  <span class="comment">/* velotype: Optical velocity [m/s].        */</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>          <a class="code" href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">zopt</a>,                  <span class="comment">/* velotype: Redshift.                      */</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>          <a class="code" href="structspxprm.html#aef53f8244101a4229518b25b08143d18">awav</a>,                  <span class="comment">/* wavetype: Air wavelength [m].            */</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>          <a class="code" href="structspxprm.html#a51aa1b37a464c53a5c07a9a407c4b96c">velo</a>,                  <span class="comment">/* velotype: Relativistic velocity [m/s].   */</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>          <a class="code" href="structspxprm.html#a6d41ec682a058f4028032bf6934f7fc0">beta</a>;                  <span class="comment">/* velotype: Relativistic beta.             */</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <span class="comment">/* Derivatives of spectral variables computed by specx().                 */</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">  457</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#aa75c986198c4673e2caa30bd4ac73a30">dfreqafrq</a>, <a class="code" href="structspxprm.html#a678577f6866727419716361586fe34bb">dafrqfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>          <a class="code" href="structspxprm.html#aa419711bf0079fff37d4adbae3278f5c">dfreqener</a>, <a class="code" href="structspxprm.html#a2d4ca3a63bb8871faec7928c8f713484">denerfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>          <a class="code" href="structspxprm.html#ac0096d466fedc5ec61948044af06551d">dfreqwavn</a>, <a class="code" href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">dwavnfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>          <a class="code" href="structspxprm.html#a9c60b90b7911b9846b353991dbf38084">dfreqvrad</a>, <a class="code" href="structspxprm.html#a1f9bd735b5ffa618aa0713616a3b2b87">dvradfreq</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>          <a class="code" href="structspxprm.html#a9cab306f378116a9b9388bd215a98c0b">dfreqwave</a>, <a class="code" href="structspxprm.html#a90656bb22c7fdb8c750ee5a16745334c">dwavefreq</a>,  <span class="comment">/* wavetype.                                */</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>          <a class="code" href="structspxprm.html#aa6ef9cc07973932f19c48062199e6689">dfreqawav</a>, <a class="code" href="structspxprm.html#ac9e44005ceadafb8158df81fe022f46e">dawavfreq</a>,  <span class="comment">/* wavetype.                                */</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>          <a class="code" href="structspxprm.html#a25de138f15027a948887f59f79b59d91">dfreqvelo</a>, <a class="code" href="structspxprm.html#a6300648f1270fbd6f45fefaac054db70">dvelofreq</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>          <a class="code" href="structspxprm.html#a307491e5045c959ed5212c54b6e300e9">dwavevopt</a>, <a class="code" href="structspxprm.html#a709e6f9fd2c706705a019d865280526f">dvoptwave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>          <a class="code" href="structspxprm.html#a203c7de3b62de030e721e99cc0a5799b">dwavezopt</a>, <a class="code" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">dzoptwave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>          <a class="code" href="structspxprm.html#af252fd0c875bfe2dc99c56617ae2faa8">dwaveawav</a>, <a class="code" href="structspxprm.html#a78d8a2235f18250cfa97a32625ab72a0">dawavwave</a>,  <span class="comment">/* wavetype.                                */</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>          <a class="code" href="structspxprm.html#a75c591192f69d3e284d037d0216c2179">dwavevelo</a>, <a class="code" href="structspxprm.html#acfdb74852a20099c1cdc3b2cc8faa03b">dvelowave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>          <a class="code" href="structspxprm.html#a7e1e561ce26f9be86978783bbd0dd496">dawavvelo</a>, <a class="code" href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">dveloawav</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>          <a class="code" href="structspxprm.html#a1d7633da24d461d6f791e003be2a508a">dvelobeta</a>, <a class="code" href="structspxprm.html#acc8a46737906be2cee7cba0b2aa09d87">dbetavelo</a>;  <span class="comment">/* Constant, always available.              */</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="structspxprm.html#ab232cb470b7f96330512dea46791644e">  473</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structspxprm.html#ab232cb470b7f96330512dea46791644e">err</a>;</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   <span class="comment">/* Private                                                                */</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">  477</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span> };</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span> </div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">/* Size of the spxprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="spx_8h.html#a45f0db5bb967998f070cad30e5e68180">  481</a></span> <span class="preprocessor">#define SPXLEN (sizeof(struct spxprm)/sizeof(int))</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span> </div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a192c7ea1edb2fc79d391a51bec7442e0">specx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *type, <span class="keywordtype">double</span> spec, <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav,</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>           <span class="keyword">struct</span> <a class="code" href="structspxprm.html">spxprm</a> *specs);</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span> </div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">/* For use in declaring function prototypes, e.g. in spcprm. */</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">  489</a></span> <span class="preprocessor">#define SPX_ARGS double param, int nspec, int instep, int outstep, \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="preprocessor">    const double inspec[], double outspec[], int stat[]</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span> </div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341">freqafrq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02">afrqfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c">freqener</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a89a689b848429cfa5780757a5eee9347">enerfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span> </div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664">freqwavn</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd">wavnfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span> </div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6">freqwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6">wavefreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span> </div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e">freqawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0">awavfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4">waveawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a413fa882d2b67a792a35938738214057">awavwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a8aba8fe47efe098740991771e97fe756">velobeta</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a">betavelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span> </div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31">freqvelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a974f799a8ee19dd23114ca01b225a02f">velofreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span> </div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#af4784a764fd0f36c82548ef755c470bd">freqvrad</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a772a14e27c613ea7b63697efdb765205">vradfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span> </div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span> </div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a0459c65496512f270d3c569c346ce413">wavevelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#acc02a893f538f5f0c0d1d9baae2b0e10">velowave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span> </div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#af7a2d05c2db901488d68576343aad873">awavvelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a56a7d77413c654541fb29f58561c16f9">veloawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span> </div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a61a1980ff0683231529b784af1c48eaa">wavevopt</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ab23cb997ad699b59f91f4dfe4e8b28b0">voptwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span> </div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a544be13048057701c37a8e9c4f761be2">wavezopt</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ada5d4cf3e8791d64da68575da692e3f3">zoptwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span> }</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span> </div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_SPEC */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">  424</a></span> <span class="keyword">enum</span> spx_errmsg {</div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">  425</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">SPXERR_SUCCESS</a>          = 0,  <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">  426</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">SPXERR_NULL_POINTER</a>     = 1,  <span class="comment">/* Null spxprm pointer passed. */</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">  427</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">SPXERR_BAD_SPEC_PARAMS</a>  = 2,  <span class="comment">/* Invalid spectral parameters. */</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">  428</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">SPXERR_BAD_SPEC_VAR</a>     = 3,  <span class="comment">/* Invalid spectral variable. */</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">  429</a></span>   <a class="code" href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">SPXERR_BAD_INSPEC_COORD</a> = 4   <span class="comment">/* One or more of the inspec coordinates were</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> };</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="structspxprm.html">  433</a></span> <span class="keyword">struct </span><a class="code" href="structspxprm.html">spxprm</a> {</div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">  434</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#a533847a7e77e2bba8ce886289d31abdb">restfrq</a>, <a class="code" href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">restwav</a>;      <span class="comment">/* Rest frequency [Hz] and wavelength [m].  */</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">  436</a></span>   <span class="keywordtype">int</span> <a class="code" href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">wavetype</a>, <a class="code" href="structspxprm.html#ae83f0b38ecd0b7b7b6afb6eb42a61fd4">velotype</a>;       <span class="comment">/* True if wave/velocity types have been    */</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>                                 <span class="comment">/* computed; types are defined below.       */</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="comment">/* Spectral variables computed by specx().                                */</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">  441</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#af2a797bbae7610552aa9adfe75118908">freq</a>,                  <span class="comment">/* wavetype: Frequency [Hz].                */</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>          <a class="code" href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">afrq</a>,                  <span class="comment">/* wavetype: Angular frequency [rad/s].     */</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>          <a class="code" href="structspxprm.html#ab67c62285ad58f5f0c1a88cb15ac3408">ener</a>,                  <span class="comment">/* wavetype: Photon energy [J].             */</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>          <a class="code" href="structspxprm.html#aa37e50cd66795673d6bd43883a1be540">wavn</a>,                  <span class="comment">/* wavetype: Wave number [/m].              */</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>          <a class="code" href="structspxprm.html#a41ee038d00742dcf8cae9b6ed45a699b">vrad</a>,                  <span class="comment">/* velotype: Radio velocity [m/s].          */</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>          <a class="code" href="structspxprm.html#a7ba88553a468a9ef696c0c1eeda6864f">wave</a>,                  <span class="comment">/* wavetype: Vacuum wavelength [m].         */</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>          <a class="code" href="structspxprm.html#a1d7fd26e54e3b253a9e26163445cbfc8">vopt</a>,                  <span class="comment">/* velotype: Optical velocity [m/s].        */</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>          <a class="code" href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">zopt</a>,                  <span class="comment">/* velotype: Redshift.                      */</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>          <a class="code" href="structspxprm.html#aef53f8244101a4229518b25b08143d18">awav</a>,                  <span class="comment">/* wavetype: Air wavelength [m].            */</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>          <a class="code" href="structspxprm.html#a51aa1b37a464c53a5c07a9a407c4b96c">velo</a>,                  <span class="comment">/* velotype: Relativistic velocity [m/s].   */</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>          <a class="code" href="structspxprm.html#a6d41ec682a058f4028032bf6934f7fc0">beta</a>;                  <span class="comment">/* velotype: Relativistic beta.             */</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   <span class="comment">/* Derivatives of spectral variables computed by specx().                 */</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">  455</a></span>   <span class="keywordtype">double</span> <a class="code" href="structspxprm.html#aa75c986198c4673e2caa30bd4ac73a30">dfreqafrq</a>, <a class="code" href="structspxprm.html#a678577f6866727419716361586fe34bb">dafrqfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>          <a class="code" href="structspxprm.html#aa419711bf0079fff37d4adbae3278f5c">dfreqener</a>, <a class="code" href="structspxprm.html#a2d4ca3a63bb8871faec7928c8f713484">denerfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>          <a class="code" href="structspxprm.html#ac0096d466fedc5ec61948044af06551d">dfreqwavn</a>, <a class="code" href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">dwavnfreq</a>,  <span class="comment">/* Constant, always available.              */</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>          <a class="code" href="structspxprm.html#a9c60b90b7911b9846b353991dbf38084">dfreqvrad</a>, <a class="code" href="structspxprm.html#a1f9bd735b5ffa618aa0713616a3b2b87">dvradfreq</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>          <a class="code" href="structspxprm.html#a9cab306f378116a9b9388bd215a98c0b">dfreqwave</a>, <a class="code" href="structspxprm.html#a90656bb22c7fdb8c750ee5a16745334c">dwavefreq</a>,  <span class="comment">/* wavetype.                                */</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>          <a class="code" href="structspxprm.html#aa6ef9cc07973932f19c48062199e6689">dfreqawav</a>, <a class="code" href="structspxprm.html#ac9e44005ceadafb8158df81fe022f46e">dawavfreq</a>,  <span class="comment">/* wavetype.                                */</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>          <a class="code" href="structspxprm.html#a25de138f15027a948887f59f79b59d91">dfreqvelo</a>, <a class="code" href="structspxprm.html#a6300648f1270fbd6f45fefaac054db70">dvelofreq</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>          <a class="code" href="structspxprm.html#a307491e5045c959ed5212c54b6e300e9">dwavevopt</a>, <a class="code" href="structspxprm.html#a709e6f9fd2c706705a019d865280526f">dvoptwave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>          <a class="code" href="structspxprm.html#a203c7de3b62de030e721e99cc0a5799b">dwavezopt</a>, <a class="code" href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">dzoptwave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>          <a class="code" href="structspxprm.html#af252fd0c875bfe2dc99c56617ae2faa8">dwaveawav</a>, <a class="code" href="structspxprm.html#a78d8a2235f18250cfa97a32625ab72a0">dawavwave</a>,  <span class="comment">/* wavetype.                                */</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>          <a class="code" href="structspxprm.html#a75c591192f69d3e284d037d0216c2179">dwavevelo</a>, <a class="code" href="structspxprm.html#acfdb74852a20099c1cdc3b2cc8faa03b">dvelowave</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>          <a class="code" href="structspxprm.html#a7e1e561ce26f9be86978783bbd0dd496">dawavvelo</a>, <a class="code" href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">dveloawav</a>,  <span class="comment">/* wavetype && velotype.                    */</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>          <a class="code" href="structspxprm.html#a1d7633da24d461d6f791e003be2a508a">dvelobeta</a>, <a class="code" href="structspxprm.html#acc8a46737906be2cee7cba0b2aa09d87">dbetavelo</a>;  <span class="comment">/* Constant, always available.              */</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   <span class="comment">/* Error handling                                                         */</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="structspxprm.html#ab232cb470b7f96330512dea46791644e">  471</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structspxprm.html#ab232cb470b7f96330512dea46791644e">err</a>;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   <span class="comment">/* Private                                                                */</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">  475</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> };</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">/* Size of the spxprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="spx_8h.html#a45f0db5bb967998f070cad30e5e68180">  479</a></span> <span class="preprocessor">#define SPXLEN (sizeof(struct spxprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a192c7ea1edb2fc79d391a51bec7442e0">specx</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *type, <span class="keywordtype">double</span> spec, <span class="keywordtype">double</span> restfrq, <span class="keywordtype">double</span> restwav,</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>           <span class="keyword">struct</span> <a class="code" href="structspxprm.html">spxprm</a> *specs);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">/* For use in declaring function prototypes, e.g. in spcprm. */</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">  487</a></span> <span class="preprocessor">#define SPX_ARGS double param, int nspec, int instep, int outstep, \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="preprocessor">    const double inspec[], double outspec[], int stat[]</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341">freqafrq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02">afrqfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c">freqener</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a89a689b848429cfa5780757a5eee9347">enerfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664">freqwavn</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd">wavnfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6">freqwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6">wavefreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e">freqawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0">awavfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4">waveawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a413fa882d2b67a792a35938738214057">awavwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a8aba8fe47efe098740991771e97fe756">velobeta</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a">betavelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31">freqvelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a974f799a8ee19dd23114ca01b225a02f">velofreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#af4784a764fd0f36c82548ef755c470bd">freqvrad</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a772a14e27c613ea7b63697efdb765205">vradfreq</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a0459c65496512f270d3c569c346ce413">wavevelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#acc02a893f538f5f0c0d1d9baae2b0e10">velowave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#af7a2d05c2db901488d68576343aad873">awavvelo</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a56a7d77413c654541fb29f58561c16f9">veloawav</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a61a1980ff0683231529b784af1c48eaa">wavevopt</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ab23cb997ad699b59f91f4dfe4e8b28b0">voptwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#a544be13048057701c37a8e9c4f761be2">wavezopt</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="keywordtype">int</span> <a class="code" href="spx_8h.html#ada5d4cf3e8791d64da68575da692e3f3">zoptwave</a>(<a class="code" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>);</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> }</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_SPEC */</span><span class="preprocessor"></span></div>
 <div class="ttc" id="spx_8h_html_a5eed4e6f2879b4607e60b4f77e2736bd"><div class="ttname"><a href="spx_8h.html#a5eed4e6f2879b4607e60b4f77e2736bd">wavnfreq</a></div><div class="ttdeci">int wavnfreq(SPX_ARGS)</div><div class="ttdoc">Convert wave number to frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a78d8a2235f18250cfa97a32625ab72a0"><div class="ttname"><a href="structspxprm.html#a78d8a2235f18250cfa97a32625ab72a0">spxprm::dawavwave</a></div><div class="ttdeci">double dawavwave</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_af252fd0c875bfe2dc99c56617ae2faa8"><div class="ttname"><a href="structspxprm.html#af252fd0c875bfe2dc99c56617ae2faa8">spxprm::dwaveawav</a></div><div class="ttdeci">double dwaveawav</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_acfdb74852a20099c1cdc3b2cc8faa03b"><div class="ttname"><a href="structspxprm.html#acfdb74852a20099c1cdc3b2cc8faa03b">spxprm::dvelowave</a></div><div class="ttdeci">double dvelowave</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_a78d8a2235f18250cfa97a32625ab72a0"><div class="ttname"><a href="structspxprm.html#a78d8a2235f18250cfa97a32625ab72a0">spxprm::dawavwave</a></div><div class="ttdeci">double dawavwave</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_af252fd0c875bfe2dc99c56617ae2faa8"><div class="ttname"><a href="structspxprm.html#af252fd0c875bfe2dc99c56617ae2faa8">spxprm::dwaveawav</a></div><div class="ttdeci">double dwaveawav</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_acfdb74852a20099c1cdc3b2cc8faa03b"><div class="ttname"><a href="structspxprm.html#acfdb74852a20099c1cdc3b2cc8faa03b">spxprm::dvelowave</a></div><div class="ttdeci">double dvelowave</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a5a497ffd57345f2f0bf1c9abc56842c4"><div class="ttname"><a href="spx_8h.html#a5a497ffd57345f2f0bf1c9abc56842c4">waveawav</a></div><div class="ttdeci">int waveawav(SPX_ARGS)</div><div class="ttdoc">Convert vacuum wavelength to air wavelength (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a1d7633da24d461d6f791e003be2a508a"><div class="ttname"><a href="structspxprm.html#a1d7633da24d461d6f791e003be2a508a">spxprm::dvelobeta</a></div><div class="ttdeci">double dvelobeta</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a7ba88553a468a9ef696c0c1eeda6864f"><div class="ttname"><a href="structspxprm.html#a7ba88553a468a9ef696c0c1eeda6864f">spxprm::wave</a></div><div class="ttdeci">double wave</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
+<div class="ttc" id="structspxprm_html_a1d7633da24d461d6f791e003be2a508a"><div class="ttname"><a href="structspxprm.html#a1d7633da24d461d6f791e003be2a508a">spxprm::dvelobeta</a></div><div class="ttdeci">double dvelobeta</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a7ba88553a468a9ef696c0c1eeda6864f"><div class="ttname"><a href="structspxprm.html#a7ba88553a468a9ef696c0c1eeda6864f">spxprm::wave</a></div><div class="ttdeci">double wave</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
 <div class="ttc" id="spx_8h_html_a3e86c3462619b4fdf0aeeeea9874757e"><div class="ttname"><a href="spx_8h.html#a3e86c3462619b4fdf0aeeeea9874757e">freqawav</a></div><div class="ttdeci">int freqawav(SPX_ARGS)</div><div class="ttdoc">Convert frequency to air wavelength (vector). </div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
-<div class="ttc" id="structspxprm_html_a84d43f663df39a476b33a9516f3662eb"><div class="ttname"><a href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">spxprm::dzoptwave</a></div><div class="ttdeci">double dzoptwave</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="spx_8h_html_a777e5c4790da397aefcada61445a1bb3"><div class="ttname"><a href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a></div><div class="ttdeci">#define SPX_ARGS</div><div class="ttdoc">For use in declaring spectral conversion function prototypes. </div><div class="ttdef"><b>Definition:</b> spx.h:489</div></div>
-<div class="ttc" id="structspxprm_html_a51aa1b37a464c53a5c07a9a407c4b96c"><div class="ttname"><a href="structspxprm.html#a51aa1b37a464c53a5c07a9a407c4b96c">spxprm::velo</a></div><div class="ttdeci">double velo</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
+<div class="ttc" id="structspxprm_html_a84d43f663df39a476b33a9516f3662eb"><div class="ttname"><a href="structspxprm.html#a84d43f663df39a476b33a9516f3662eb">spxprm::dzoptwave</a></div><div class="ttdeci">double dzoptwave</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="spx_8h_html_a777e5c4790da397aefcada61445a1bb3"><div class="ttname"><a href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a></div><div class="ttdeci">#define SPX_ARGS</div><div class="ttdoc">For use in declaring spectral conversion function prototypes. </div><div class="ttdef"><b>Definition:</b> spx.h:487</div></div>
+<div class="ttc" id="structspxprm_html_a51aa1b37a464c53a5c07a9a407c4b96c"><div class="ttname"><a href="structspxprm.html#a51aa1b37a464c53a5c07a9a407c4b96c">spxprm::velo</a></div><div class="ttdeci">double velo</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
 <div class="ttc" id="spx_8h_html_a61a1980ff0683231529b784af1c48eaa"><div class="ttname"><a href="spx_8h.html#a61a1980ff0683231529b784af1c48eaa">wavevopt</a></div><div class="ttdeci">int wavevopt(SPX_ARGS)</div><div class="ttdoc">Convert vacuum wavelength to optical velocity (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a6d41ec682a058f4028032bf6934f7fc0"><div class="ttname"><a href="structspxprm.html#a6d41ec682a058f4028032bf6934f7fc0">spxprm::beta</a></div><div class="ttdeci">double beta</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html_a34e6a4ba58cd67ef619ab48a58c8b808"><div class="ttname"><a href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">spxprm::dwavnfreq</a></div><div class="ttdeci">double dwavnfreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_a6d41ec682a058f4028032bf6934f7fc0"><div class="ttname"><a href="structspxprm.html#a6d41ec682a058f4028032bf6934f7fc0">spxprm::beta</a></div><div class="ttdeci">double beta</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html_a34e6a4ba58cd67ef619ab48a58c8b808"><div class="ttname"><a href="structspxprm.html#a34e6a4ba58cd67ef619ab48a58c8b808">spxprm::dwavnfreq</a></div><div class="ttdeci">double dwavnfreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a89a689b848429cfa5780757a5eee9347"><div class="ttname"><a href="spx_8h.html#a89a689b848429cfa5780757a5eee9347">enerfreq</a></div><div class="ttdeci">int enerfreq(SPX_ARGS)</div><div class="ttdoc">Convert photon energy to frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_aa419711bf0079fff37d4adbae3278f5c"><div class="ttname"><a href="structspxprm.html#aa419711bf0079fff37d4adbae3278f5c">spxprm::dfreqener</a></div><div class="ttdeci">double dfreqener</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_aa419711bf0079fff37d4adbae3278f5c"><div class="ttname"><a href="structspxprm.html#aa419711bf0079fff37d4adbae3278f5c">spxprm::dfreqener</a></div><div class="ttdeci">double dfreqener</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_ab23cb997ad699b59f91f4dfe4e8b28b0"><div class="ttname"><a href="spx_8h.html#ab23cb997ad699b59f91f4dfe4e8b28b0">voptwave</a></div><div class="ttdeci">int voptwave(SPX_ARGS)</div><div class="ttdoc">Convert optical velocity to vacuum wavelength (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a25de138f15027a948887f59f79b59d91"><div class="ttname"><a href="structspxprm.html#a25de138f15027a948887f59f79b59d91">spxprm::dfreqvelo</a></div><div class="ttdeci">double dfreqvelo</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">SPXERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> spx.h:428</div></div>
+<div class="ttc" id="structspxprm_html_a25de138f15027a948887f59f79b59d91"><div class="ttname"><a href="structspxprm.html#a25de138f15027a948887f59f79b59d91">spxprm::dfreqvelo</a></div><div class="ttdeci">double dfreqvelo</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa7342349cd1dc5b4581ae9c39f31d055e">SPXERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> spx.h:426</div></div>
 <div class="ttc" id="spx_8h_html_af7a2d05c2db901488d68576343aad873"><div class="ttname"><a href="spx_8h.html#af7a2d05c2db901488d68576343aad873">awavvelo</a></div><div class="ttdeci">int awavvelo(SPX_ARGS)</div><div class="ttdoc">Convert air wavelength to relativistic velocity (vector). </div></div>
 <div class="ttc" id="spx_8h_html_ad0a5167b8e52a0cdc3990e35a324ba02"><div class="ttname"><a href="spx_8h.html#ad0a5167b8e52a0cdc3990e35a324ba02">afrqfreq</a></div><div class="ttdeci">int afrqfreq(SPX_ARGS)</div><div class="ttdoc">Convert angular frequency to frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a6300648f1270fbd6f45fefaac054db70"><div class="ttname"><a href="structspxprm.html#a6300648f1270fbd6f45fefaac054db70">spxprm::dvelofreq</a></div><div class="ttdeci">double dvelofreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a678577f6866727419716361586fe34bb"><div class="ttname"><a href="structspxprm.html#a678577f6866727419716361586fe34bb">spxprm::dafrqfreq</a></div><div class="ttdeci">double dafrqfreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a307491e5045c959ed5212c54b6e300e9"><div class="ttname"><a href="structspxprm.html#a307491e5045c959ed5212c54b6e300e9">spxprm::dwavevopt</a></div><div class="ttdeci">double dwavevopt</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a709e6f9fd2c706705a019d865280526f"><div class="ttname"><a href="structspxprm.html#a709e6f9fd2c706705a019d865280526f">spxprm::dvoptwave</a></div><div class="ttdeci">double dvoptwave</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_a6300648f1270fbd6f45fefaac054db70"><div class="ttname"><a href="structspxprm.html#a6300648f1270fbd6f45fefaac054db70">spxprm::dvelofreq</a></div><div class="ttdeci">double dvelofreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a678577f6866727419716361586fe34bb"><div class="ttname"><a href="structspxprm.html#a678577f6866727419716361586fe34bb">spxprm::dafrqfreq</a></div><div class="ttdeci">double dafrqfreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a307491e5045c959ed5212c54b6e300e9"><div class="ttname"><a href="structspxprm.html#a307491e5045c959ed5212c54b6e300e9">spxprm::dwavevopt</a></div><div class="ttdeci">double dwavevopt</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a709e6f9fd2c706705a019d865280526f"><div class="ttname"><a href="structspxprm.html#a709e6f9fd2c706705a019d865280526f">spxprm::dvoptwave</a></div><div class="ttdeci">double dvoptwave</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a5c2eb2d8649eaab21e71efcd25d9236c"><div class="ttname"><a href="spx_8h.html#a5c2eb2d8649eaab21e71efcd25d9236c">freqener</a></div><div class="ttdeci">int freqener(SPX_ARGS)</div><div class="ttdoc">Convert frequency to photon energy (vector). </div></div>
-<div class="ttc" id="structspxprm_html_acc8a46737906be2cee7cba0b2aa09d87"><div class="ttname"><a href="structspxprm.html#acc8a46737906be2cee7cba0b2aa09d87">spxprm::dbetavelo</a></div><div class="ttdeci">double dbetavelo</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">SPXERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> spx.h:427</div></div>
+<div class="ttc" id="structspxprm_html_acc8a46737906be2cee7cba0b2aa09d87"><div class="ttname"><a href="structspxprm.html#acc8a46737906be2cee7cba0b2aa09d87">spxprm::dbetavelo</a></div><div class="ttdeci">double dbetavelo</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa45313ec670a74e7effc1bcee16cb0b56">SPXERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> spx.h:425</div></div>
 <div class="ttc" id="spx_8h_html_a56a7d77413c654541fb29f58561c16f9"><div class="ttname"><a href="spx_8h.html#a56a7d77413c654541fb29f58561c16f9">veloawav</a></div><div class="ttdeci">int veloawav(SPX_ARGS)</div><div class="ttdoc">Convert relativistic velocity to air wavelength (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a5ab73474c2a6e92885c805cc017f6fbe"><div class="ttname"><a href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">spxprm::dveloawav</a></div><div class="ttdeci">double dveloawav</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_a5ab73474c2a6e92885c805cc017f6fbe"><div class="ttname"><a href="structspxprm.html#a5ab73474c2a6e92885c805cc017f6fbe">spxprm::dveloawav</a></div><div class="ttdeci">double dveloawav</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a6c79d97dcc410e1a7a3e6e26ba3dabe6"><div class="ttname"><a href="spx_8h.html#a6c79d97dcc410e1a7a3e6e26ba3dabe6">wavefreq</a></div><div class="ttdeci">int wavefreq(SPX_ARGS)</div><div class="ttdoc">Convert vacuum wavelength to frequency (vector). </div></div>
 <div class="ttc" id="spx_8h_html_a8aba8fe47efe098740991771e97fe756"><div class="ttname"><a href="spx_8h.html#a8aba8fe47efe098740991771e97fe756">velobeta</a></div><div class="ttdeci">int velobeta(SPX_ARGS)</div><div class="ttdoc">Convert relativistic velocity to relativistic beta (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a9cab306f378116a9b9388bd215a98c0b"><div class="ttname"><a href="structspxprm.html#a9cab306f378116a9b9388bd215a98c0b">spxprm::dfreqwave</a></div><div class="ttdeci">double dfreqwave</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a1f9bd735b5ffa618aa0713616a3b2b87"><div class="ttname"><a href="structspxprm.html#a1f9bd735b5ffa618aa0713616a3b2b87">spxprm::dvradfreq</a></div><div class="ttdeci">double dvradfreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_a9cab306f378116a9b9388bd215a98c0b"><div class="ttname"><a href="structspxprm.html#a9cab306f378116a9b9388bd215a98c0b">spxprm::dfreqwave</a></div><div class="ttdeci">double dfreqwave</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a1f9bd735b5ffa618aa0713616a3b2b87"><div class="ttname"><a href="structspxprm.html#a1f9bd735b5ffa618aa0713616a3b2b87">spxprm::dvradfreq</a></div><div class="ttdeci">double dvradfreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a192c7ea1edb2fc79d391a51bec7442e0"><div class="ttname"><a href="spx_8h.html#a192c7ea1edb2fc79d391a51bec7442e0">specx</a></div><div class="ttdeci">int specx(const char *type, double spec, double restfrq, double restwav, struct spxprm *specs)</div><div class="ttdoc">Spectral cross conversions (scalar). </div></div>
-<div class="ttc" id="structspxprm_html_a2c20a26fe559feacc85e6e76c31bbbc3"><div class="ttname"><a href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">spxprm::wavetype</a></div><div class="ttdeci">int wavetype</div><div class="ttdef"><b>Definition:</b> spx.h:438</div></div>
-<div class="ttc" id="structspxprm_html_a75c591192f69d3e284d037d0216c2179"><div class="ttname"><a href="structspxprm.html#a75c591192f69d3e284d037d0216c2179">spxprm::dwavevelo</a></div><div class="ttdeci">double dwavevelo</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_ab232cb470b7f96330512dea46791644e"><div class="ttname"><a href="structspxprm.html#ab232cb470b7f96330512dea46791644e">spxprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> spx.h:473</div></div>
+<div class="ttc" id="structspxprm_html_a2c20a26fe559feacc85e6e76c31bbbc3"><div class="ttname"><a href="structspxprm.html#a2c20a26fe559feacc85e6e76c31bbbc3">spxprm::wavetype</a></div><div class="ttdeci">int wavetype</div><div class="ttdef"><b>Definition:</b> spx.h:436</div></div>
+<div class="ttc" id="structspxprm_html_a75c591192f69d3e284d037d0216c2179"><div class="ttname"><a href="structspxprm.html#a75c591192f69d3e284d037d0216c2179">spxprm::dwavevelo</a></div><div class="ttdeci">double dwavevelo</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_ab232cb470b7f96330512dea46791644e"><div class="ttname"><a href="structspxprm.html#ab232cb470b7f96330512dea46791644e">spxprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> spx.h:471</div></div>
 <div class="ttc" id="spx_8h_html_a772a14e27c613ea7b63697efdb765205"><div class="ttname"><a href="spx_8h.html#a772a14e27c613ea7b63697efdb765205">vradfreq</a></div><div class="ttdeci">int vradfreq(SPX_ARGS)</div><div class="ttdoc">Convert radio velocity to frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_aef53f8244101a4229518b25b08143d18"><div class="ttname"><a href="structspxprm.html#aef53f8244101a4229518b25b08143d18">spxprm::awav</a></div><div class="ttdeci">double awav</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html_a9c60b90b7911b9846b353991dbf38084"><div class="ttname"><a href="structspxprm.html#a9c60b90b7911b9846b353991dbf38084">spxprm::dfreqvrad</a></div><div class="ttdeci">double dfreqvrad</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_ab67c62285ad58f5f0c1a88cb15ac3408"><div class="ttname"><a href="structspxprm.html#ab67c62285ad58f5f0c1a88cb15ac3408">spxprm::ener</a></div><div class="ttdeci">double ener</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html_aa37e50cd66795673d6bd43883a1be540"><div class="ttname"><a href="structspxprm.html#aa37e50cd66795673d6bd43883a1be540">spxprm::wavn</a></div><div class="ttdeci">double wavn</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html_ac9e44005ceadafb8158df81fe022f46e"><div class="ttname"><a href="structspxprm.html#ac9e44005ceadafb8158df81fe022f46e">spxprm::dawavfreq</a></div><div class="ttdeci">double dawavfreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_aef53f8244101a4229518b25b08143d18"><div class="ttname"><a href="structspxprm.html#aef53f8244101a4229518b25b08143d18">spxprm::awav</a></div><div class="ttdeci">double awav</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html_a9c60b90b7911b9846b353991dbf38084"><div class="ttname"><a href="structspxprm.html#a9c60b90b7911b9846b353991dbf38084">spxprm::dfreqvrad</a></div><div class="ttdeci">double dfreqvrad</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_ab67c62285ad58f5f0c1a88cb15ac3408"><div class="ttname"><a href="structspxprm.html#ab67c62285ad58f5f0c1a88cb15ac3408">spxprm::ener</a></div><div class="ttdeci">double ener</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html_aa37e50cd66795673d6bd43883a1be540"><div class="ttname"><a href="structspxprm.html#aa37e50cd66795673d6bd43883a1be540">spxprm::wavn</a></div><div class="ttdeci">double wavn</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html_ac9e44005ceadafb8158df81fe022f46e"><div class="ttname"><a href="structspxprm.html#ac9e44005ceadafb8158df81fe022f46e">spxprm::dawavfreq</a></div><div class="ttdeci">double dawavfreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a09b951b08ac818b9da44389a3ddf614a"><div class="ttname"><a href="spx_8h.html#a09b951b08ac818b9da44389a3ddf614a">betavelo</a></div><div class="ttdeci">int betavelo(SPX_ARGS)</div><div class="ttdoc">Convert relativistic beta to relativistic velocity (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a90656bb22c7fdb8c750ee5a16745334c"><div class="ttname"><a href="structspxprm.html#a90656bb22c7fdb8c750ee5a16745334c">spxprm::dwavefreq</a></div><div class="ttdeci">double dwavefreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a7e1e561ce26f9be86978783bbd0dd496"><div class="ttname"><a href="structspxprm.html#a7e1e561ce26f9be86978783bbd0dd496">spxprm::dawavvelo</a></div><div class="ttdeci">double dawavvelo</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_a41ee038d00742dcf8cae9b6ed45a699b"><div class="ttname"><a href="structspxprm.html#a41ee038d00742dcf8cae9b6ed45a699b">spxprm::vrad</a></div><div class="ttdeci">double vrad</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecaf"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a></div><div class="ttdeci">spx_errmsg</div><div class="ttdef"><b>Definition:</b> spx.h:426</div></div>
-<div class="ttc" id="structspxprm_html_a2d4ca3a63bb8871faec7928c8f713484"><div class="ttname"><a href="structspxprm.html#a2d4ca3a63bb8871faec7928c8f713484">spxprm::denerfreq</a></div><div class="ttdeci">double denerfreq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">SPXERR_BAD_SPEC_VAR</a></div><div class="ttdef"><b>Definition:</b> spx.h:430</div></div>
+<div class="ttc" id="structspxprm_html_a90656bb22c7fdb8c750ee5a16745334c"><div class="ttname"><a href="structspxprm.html#a90656bb22c7fdb8c750ee5a16745334c">spxprm::dwavefreq</a></div><div class="ttdeci">double dwavefreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a7e1e561ce26f9be86978783bbd0dd496"><div class="ttname"><a href="structspxprm.html#a7e1e561ce26f9be86978783bbd0dd496">spxprm::dawavvelo</a></div><div class="ttdeci">double dawavvelo</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a41ee038d00742dcf8cae9b6ed45a699b"><div class="ttname"><a href="structspxprm.html#a41ee038d00742dcf8cae9b6ed45a699b">spxprm::vrad</a></div><div class="ttdeci">double vrad</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecaf"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecaf">spx_errmsg</a></div><div class="ttdeci">spx_errmsg</div><div class="ttdef"><b>Definition:</b> spx.h:424</div></div>
+<div class="ttc" id="structspxprm_html_a2d4ca3a63bb8871faec7928c8f713484"><div class="ttname"><a href="structspxprm.html#a2d4ca3a63bb8871faec7928c8f713484">spxprm::denerfreq</a></div><div class="ttdeci">double denerfreq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa6b6639fb6d3683c9d356dbd7cf705de1">SPXERR_BAD_SPEC_VAR</a></div><div class="ttdef"><b>Definition:</b> spx.h:428</div></div>
 <div class="ttc" id="spx_8h_html_ada5d4cf3e8791d64da68575da692e3f3"><div class="ttname"><a href="spx_8h.html#ada5d4cf3e8791d64da68575da692e3f3">zoptwave</a></div><div class="ttdeci">int zoptwave(SPX_ARGS)</div><div class="ttdoc">Convert redshift to vacuum wavelength (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a5f4248299fb8a02ff1df6ed3d1baaa1b"><div class="ttname"><a href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">spxprm::afrq</a></div><div class="ttdeci">double afrq</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html"><div class="ttname"><a href="structspxprm.html">spxprm</a></div><div class="ttdoc">Spectral variables and their derivatives. </div><div class="ttdef"><b>Definition:</b> spx.h:435</div></div>
+<div class="ttc" id="structspxprm_html_a5f4248299fb8a02ff1df6ed3d1baaa1b"><div class="ttname"><a href="structspxprm.html#a5f4248299fb8a02ff1df6ed3d1baaa1b">spxprm::afrq</a></div><div class="ttdeci">double afrq</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html"><div class="ttname"><a href="structspxprm.html">spxprm</a></div><div class="ttdoc">Spectral variables and their derivatives. </div><div class="ttdef"><b>Definition:</b> spx.h:433</div></div>
 <div class="ttc" id="spx_8h_html_a413fa882d2b67a792a35938738214057"><div class="ttname"><a href="spx_8h.html#a413fa882d2b67a792a35938738214057">awavwave</a></div><div class="ttdeci">int awavwave(SPX_ARGS)</div><div class="ttdoc">Convert air wavelength to vacuum wavelength (vector). </div></div>
 <div class="ttc" id="spx_8h_html_acc02a893f538f5f0c0d1d9baae2b0e10"><div class="ttname"><a href="spx_8h.html#acc02a893f538f5f0c0d1d9baae2b0e10">velowave</a></div><div class="ttdeci">int velowave(SPX_ARGS)</div><div class="ttdoc">Convert relativistic velocity to vacuum wavelength (vector). </div></div>
 <div class="ttc" id="spx_8h_html_af4784a764fd0f36c82548ef755c470bd"><div class="ttname"><a href="spx_8h.html#af4784a764fd0f36c82548ef755c470bd">freqvrad</a></div><div class="ttdeci">int freqvrad(SPX_ARGS)</div><div class="ttdoc">Convert frequency to radio velocity (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a968cf3d8e4b0d082c6d617f5a38344f7"><div class="ttname"><a href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">spxprm::zopt</a></div><div class="ttdeci">double zopt</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
-<div class="ttc" id="structspxprm_html_a947deca62dd508673f5b00f639d3af79"><div class="ttname"><a href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">spxprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> spx.h:477</div></div>
-<div class="ttc" id="structspxprm_html_ae83f0b38ecd0b7b7b6afb6eb42a61fd4"><div class="ttname"><a href="structspxprm.html#ae83f0b38ecd0b7b7b6afb6eb42a61fd4">spxprm::velotype</a></div><div class="ttdeci">int velotype</div><div class="ttdef"><b>Definition:</b> spx.h:438</div></div>
+<div class="ttc" id="structspxprm_html_a968cf3d8e4b0d082c6d617f5a38344f7"><div class="ttname"><a href="structspxprm.html#a968cf3d8e4b0d082c6d617f5a38344f7">spxprm::zopt</a></div><div class="ttdeci">double zopt</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
+<div class="ttc" id="structspxprm_html_a947deca62dd508673f5b00f639d3af79"><div class="ttname"><a href="structspxprm.html#a947deca62dd508673f5b00f639d3af79">spxprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> spx.h:475</div></div>
+<div class="ttc" id="structspxprm_html_ae83f0b38ecd0b7b7b6afb6eb42a61fd4"><div class="ttname"><a href="structspxprm.html#ae83f0b38ecd0b7b7b6afb6eb42a61fd4">spxprm::velotype</a></div><div class="ttdeci">int velotype</div><div class="ttdef"><b>Definition:</b> spx.h:436</div></div>
 <div class="ttc" id="spx_8h_html_aa626b0cad9206c62e7e265bdf8c92c31"><div class="ttname"><a href="spx_8h.html#aa626b0cad9206c62e7e265bdf8c92c31">freqvelo</a></div><div class="ttdeci">int freqvelo(SPX_ARGS)</div><div class="ttdoc">Convert frequency to relativistic velocity (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a1d7fd26e54e3b253a9e26163445cbfc8"><div class="ttname"><a href="structspxprm.html#a1d7fd26e54e3b253a9e26163445cbfc8">spxprm::vopt</a></div><div class="ttdeci">double vopt</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
+<div class="ttc" id="structspxprm_html_a1d7fd26e54e3b253a9e26163445cbfc8"><div class="ttname"><a href="structspxprm.html#a1d7fd26e54e3b253a9e26163445cbfc8">spxprm::vopt</a></div><div class="ttdeci">double vopt</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
 <div class="ttc" id="spx_8h_html_a9eb861d7c7437c5f974ad425da8b5664"><div class="ttname"><a href="spx_8h.html#a9eb861d7c7437c5f974ad425da8b5664">freqwavn</a></div><div class="ttdeci">int freqwavn(SPX_ARGS)</div><div class="ttdoc">Convert frequency to wave number (vector). </div></div>
-<div class="ttc" id="structspxprm_html_ad3a5b851397a50e8644aeda10b184776"><div class="ttname"><a href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">spxprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> spx.h:436</div></div>
+<div class="ttc" id="structspxprm_html_ad3a5b851397a50e8644aeda10b184776"><div class="ttname"><a href="structspxprm.html#ad3a5b851397a50e8644aeda10b184776">spxprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> spx.h:434</div></div>
 <div class="ttc" id="spx_8h_html_a0459c65496512f270d3c569c346ce413"><div class="ttname"><a href="spx_8h.html#a0459c65496512f270d3c569c346ce413">wavevelo</a></div><div class="ttdeci">int wavevelo(SPX_ARGS)</div><div class="ttdoc">Conversions between wavelength and velocity types (vector). </div></div>
-<div class="ttc" id="structspxprm_html_aa6ef9cc07973932f19c48062199e6689"><div class="ttname"><a href="structspxprm.html#aa6ef9cc07973932f19c48062199e6689">spxprm::dfreqawav</a></div><div class="ttdeci">double dfreqawav</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="structspxprm_html_a533847a7e77e2bba8ce886289d31abdb"><div class="ttname"><a href="structspxprm.html#a533847a7e77e2bba8ce886289d31abdb">spxprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> spx.h:436</div></div>
+<div class="ttc" id="structspxprm_html_aa6ef9cc07973932f19c48062199e6689"><div class="ttname"><a href="structspxprm.html#aa6ef9cc07973932f19c48062199e6689">spxprm::dfreqawav</a></div><div class="ttdeci">double dfreqawav</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_a533847a7e77e2bba8ce886289d31abdb"><div class="ttname"><a href="structspxprm.html#a533847a7e77e2bba8ce886289d31abdb">spxprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> spx.h:434</div></div>
 <div class="ttc" id="spx_8h_html_a6ee182e1185978bc6e7f69e4604fe341"><div class="ttname"><a href="spx_8h.html#a6ee182e1185978bc6e7f69e4604fe341">freqafrq</a></div><div class="ttdeci">int freqafrq(SPX_ARGS)</div><div class="ttdoc">Convert frequency to angular frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_a203c7de3b62de030e721e99cc0a5799b"><div class="ttname"><a href="structspxprm.html#a203c7de3b62de030e721e99cc0a5799b">spxprm::dwavezopt</a></div><div class="ttdeci">double dwavezopt</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">SPXERR_BAD_SPEC_PARAMS</a></div><div class="ttdef"><b>Definition:</b> spx.h:429</div></div>
+<div class="ttc" id="structspxprm_html_a203c7de3b62de030e721e99cc0a5799b"><div class="ttname"><a href="structspxprm.html#a203c7de3b62de030e721e99cc0a5799b">spxprm::dwavezopt</a></div><div class="ttdeci">double dwavezopt</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafa23753b512249d3752a74ce7497d9c852">SPXERR_BAD_SPEC_PARAMS</a></div><div class="ttdef"><b>Definition:</b> spx.h:427</div></div>
 <div class="ttc" id="spx_8h_html_a974f799a8ee19dd23114ca01b225a02f"><div class="ttname"><a href="spx_8h.html#a974f799a8ee19dd23114ca01b225a02f">velofreq</a></div><div class="ttdeci">int velofreq(SPX_ARGS)</div><div class="ttdoc">Convert relativistic velocity to frequency (vector). </div></div>
 <div class="ttc" id="spx_8h_html_a16bc2fef69c592c5bcdc695633f17df0"><div class="ttname"><a href="spx_8h.html#a16bc2fef69c592c5bcdc695633f17df0">awavfreq</a></div><div class="ttdeci">int awavfreq(SPX_ARGS)</div><div class="ttdoc">Convert air wavelength to frequency (vector). </div></div>
-<div class="ttc" id="structspxprm_html_ac0096d466fedc5ec61948044af06551d"><div class="ttname"><a href="structspxprm.html#ac0096d466fedc5ec61948044af06551d">spxprm::dfreqwavn</a></div><div class="ttdeci">double dfreqwavn</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
-<div class="ttc" id="structspxprm_html_aa75c986198c4673e2caa30bd4ac73a30"><div class="ttname"><a href="structspxprm.html#aa75c986198c4673e2caa30bd4ac73a30">spxprm::dfreqafrq</a></div><div class="ttdeci">double dfreqafrq</div><div class="ttdef"><b>Definition:</b> spx.h:457</div></div>
+<div class="ttc" id="structspxprm_html_ac0096d466fedc5ec61948044af06551d"><div class="ttname"><a href="structspxprm.html#ac0096d466fedc5ec61948044af06551d">spxprm::dfreqwavn</a></div><div class="ttdeci">double dfreqwavn</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
+<div class="ttc" id="structspxprm_html_aa75c986198c4673e2caa30bd4ac73a30"><div class="ttname"><a href="structspxprm.html#aa75c986198c4673e2caa30bd4ac73a30">spxprm::dfreqafrq</a></div><div class="ttdeci">double dfreqafrq</div><div class="ttdef"><b>Definition:</b> spx.h:455</div></div>
 <div class="ttc" id="spx_8h_html_a51b714ff0ed788c20f1b273ec551b6f6"><div class="ttname"><a href="spx_8h.html#a51b714ff0ed788c20f1b273ec551b6f6">freqwave</a></div><div class="ttdeci">int freqwave(SPX_ARGS)</div><div class="ttdoc">Convert frequency to vacuum wavelength (vector). </div></div>
-<div class="ttc" id="structspxprm_html_af2a797bbae7610552aa9adfe75118908"><div class="ttname"><a href="structspxprm.html#af2a797bbae7610552aa9adfe75118908">spxprm::freq</a></div><div class="ttdeci">double freq</div><div class="ttdef"><b>Definition:</b> spx.h:443</div></div>
+<div class="ttc" id="structspxprm_html_af2a797bbae7610552aa9adfe75118908"><div class="ttname"><a href="structspxprm.html#af2a797bbae7610552aa9adfe75118908">spxprm::freq</a></div><div class="ttdeci">double freq</div><div class="ttdef"><b>Definition:</b> spx.h:441</div></div>
 <div class="ttc" id="spx_8h_html_a544be13048057701c37a8e9c4f761be2"><div class="ttname"><a href="spx_8h.html#a544be13048057701c37a8e9c4f761be2">wavezopt</a></div><div class="ttdeci">int wavezopt(SPX_ARGS)</div><div class="ttdoc">Convert vacuum wavelength to redshift (vector). </div></div>
-<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">SPXERR_BAD_INSPEC_COORD</a></div><div class="ttdef"><b>Definition:</b> spx.h:431</div></div>
+<div class="ttc" id="spx_8h_html_ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2"><div class="ttname"><a href="spx_8h.html#ad99a404f496d5b8ce3ef6e53c630ecafae795e388e346496b34e57864af841ae2">SPXERR_BAD_INSPEC_COORD</a></div><div class="ttdef"><b>Definition:</b> spx.h:429</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structcelprm.html b/html/structcelprm.html
index fcd8093..3fea823 100644
--- a/html/structcelprm.html
+++ b/html/structcelprm.html
@@ -246,7 +246,7 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -267,7 +267,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structdisprm.html b/html/structdisprm.html
new file mode 100644
index 0000000..ec99fb8
--- /dev/null
+++ b/html/structdisprm.html
@@ -0,0 +1,509 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<title>WCSLIB: disprm Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">WCSLIB
+    <span id="projectnumber">4.25.1</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data Structures</span></a></li>
+      <li><a href="functions.html"><span>Data Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">disprm Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Distortion parameters.  
+ <a href="structdisprm.html#details">More...</a></p>
+
+<p><code>#include <<a class="el" href="dis_8h_source.html">dis.h</a>></code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4d6ba28bee2fc636f4b2b9ca4b50b0a4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">flag</a></td></tr>
+<tr class="separator:a4d6ba28bee2fc636f4b2b9ca4b50b0a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a201bc2948f326bbed9a0e1f818720ef9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">naxis</a></td></tr>
+<tr class="separator:a201bc2948f326bbed9a0e1f818720ef9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0d3386f4226b13c77deb97610ffeecb1"><td class="memItemLeft" align="right" valign="top">char(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">dtype</a> )[16]</td></tr>
+<tr class="separator:a0d3386f4226b13c77deb97610ffeecb1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab62d14319c82c93c70d290728cab78c4"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">axmap</a></td></tr>
+<tr class="separator:ab62d14319c82c93c70d290728cab78c4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8b0ac30436d7bb3e12e0ca1c64fda337"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">offset</a></td></tr>
+<tr class="separator:a8b0ac30436d7bb3e12e0ca1c64fda337"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1f7b541d7130698acc6781b7ca83dab8"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">scale</a></td></tr>
+<tr class="separator:a1f7b541d7130698acc6781b7ca83dab8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afd6bd50c561b27d0a1223e9c6c4f8baa"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">nparm</a></td></tr>
+<tr class="separator:afd6bd50c561b27d0a1223e9c6c4f8baa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a25efb5ab856ffa06135a5d429e1c6b02"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">parms</a></td></tr>
+<tr class="separator:a25efb5ab856ffa06135a5d429e1c6b02"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac107b9b4c645a461036476290a87ab22"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">maxdis</a></td></tr>
+<tr class="separator:ac107b9b4c645a461036476290a87ab22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a10a16217368a5cdd34d802fff442f383"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">totdis</a></td></tr>
+<tr class="separator:a10a16217368a5cdd34d802fff442f383"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a40a81085335f9d9aa617eb9605ae9421"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structwcserr.html">wcserr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a40a81085335f9d9aa617eb9605ae9421">err</a></td></tr>
+<tr class="separator:a40a81085335f9d9aa617eb9605ae9421"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a43a6e8d5c70b82c5eb573de7e0d2fbfa"><td class="memItemLeft" align="right" valign="top">int(** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a43a6e8d5c70b82c5eb573de7e0d2fbfa">disp2x</a> )(<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td></tr>
+<tr class="separator:a43a6e8d5c70b82c5eb573de7e0d2fbfa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae627d5f290ed7ad85d3665cf28c5dbf4"><td class="memItemLeft" align="right" valign="top">int(** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#ae627d5f290ed7ad85d3665cf28c5dbf4">disx2p</a> )(<a class="el" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">DISX2P_ARGS</a>)</td></tr>
+<tr class="separator:ae627d5f290ed7ad85d3665cf28c5dbf4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7f80d2d542c266d14a336c13d2ebeab2"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a7f80d2d542c266d14a336c13d2ebeab2">tmpmem</a></td></tr>
+<tr class="separator:a7f80d2d542c266d14a336c13d2ebeab2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a711121ef59301a0eaf3b6025d8259bd7"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a711121ef59301a0eaf3b6025d8259bd7">iwrk</a></td></tr>
+<tr class="separator:a711121ef59301a0eaf3b6025d8259bd7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5002d95480beaa900deae051ec7e45b1"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a5002d95480beaa900deae051ec7e45b1">dwrk</a></td></tr>
+<tr class="separator:a5002d95480beaa900deae051ec7e45b1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afb5079136a7ec5ae4effef9790e31439"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#afb5079136a7ec5ae4effef9790e31439">m_flag</a></td></tr>
+<tr class="separator:afb5079136a7ec5ae4effef9790e31439"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6a8b2e3fc58d8f21668a82a93b199712"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a6a8b2e3fc58d8f21668a82a93b199712">m_naxis</a></td></tr>
+<tr class="separator:a6a8b2e3fc58d8f21668a82a93b199712"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5f720fe9e047c9bfc3118ea43fcb193a"><td class="memItemLeft" align="right" valign="top">char(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a5f720fe9e047c9bfc3118ea43fcb193a">m_dtype</a> )[16]</td></tr>
+<tr class="separator:a5f720fe9e047c9bfc3118ea43fcb193a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a66547c34ec789c7efe10dc8f78295602"><td class="memItemLeft" align="right" valign="top">int ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a66547c34ec789c7efe10dc8f78295602">m_axmap</a></td></tr>
+<tr class="separator:a66547c34ec789c7efe10dc8f78295602"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a11c48b7be30b22236cdae89cb47a6317"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a11c48b7be30b22236cdae89cb47a6317">m_offset</a></td></tr>
+<tr class="separator:a11c48b7be30b22236cdae89cb47a6317"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad86b9715da25195e7a345ccf631ff87a"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#ad86b9715da25195e7a345ccf631ff87a">m_scale</a></td></tr>
+<tr class="separator:ad86b9715da25195e7a345ccf631ff87a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac54a69ee59f8c525309df6761ffadfed"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#ac54a69ee59f8c525309df6761ffadfed">m_nparm</a></td></tr>
+<tr class="separator:ac54a69ee59f8c525309df6761ffadfed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a64b9a5952a1a87ccd6b2533757c5ae36"><td class="memItemLeft" align="right" valign="top">double ** </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a64b9a5952a1a87ccd6b2533757c5ae36">m_parms</a></td></tr>
+<tr class="separator:a64b9a5952a1a87ccd6b2533757c5ae36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4f692b3bb436ceab5861ec9566d127e4"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a4f692b3bb436ceab5861ec9566d127e4">m_maxdis</a></td></tr>
+<tr class="separator:a4f692b3bb436ceab5861ec9566d127e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9d200cabe1a6a192f44a17535917cd3c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a9d200cabe1a6a192f44a17535917cd3c">m_alloc</a></td></tr>
+<tr class="separator:a9d200cabe1a6a192f44a17535917cd3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a01ec67e521b93c377aa76248b955bebc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structdisprm.html#a01ec67e521b93c377aa76248b955bebc">m_padding</a></td></tr>
+<tr class="separator:a01ec67e521b93c377aa76248b955bebc"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The <b>disprm</b> struct contains all of the information required to apply a set of distortion functions. It consists of certain members that must be set by the user (<em>given</em>) and others that are set by the WCSLIB routines (<em>returned</em>). </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a4d6ba28bee2fc636f4b2b9ca4b50b0a4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::flag</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(Given and returned) This flag must be set to zero whenever any of the following members of the <b>disprm</b> struct are set or modified:</p>
+<ul>
+<li>
+<a class="el" href="structdisprm.html#a201bc2948f326bbed9a0e1f818720ef9">disprm::naxis</a>, </li>
+<li>
+<a class="el" href="structdisprm.html#a0d3386f4226b13c77deb97610ffeecb1">disprm::dtype</a>, </li>
+<li>
+<a class="el" href="structdisprm.html#ab62d14319c82c93c70d290728cab78c4">disprm::axmap</a>, </li>
+<li>
+<a class="el" href="structdisprm.html#afd6bd50c561b27d0a1223e9c6c4f8baa">disprm::nparm</a>, </li>
+<li>
+<a class="el" href="structdisprm.html#a25efb5ab856ffa06135a5d429e1c6b02">disprm::parms</a>. </li>
+</ul>
+<p>This signals the initialization routine, <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>, to recompute the returned members of the <b>disprm</b> struct. <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a> will reset flag to indicate that this has been done.</p>
+<p><b>PLEASE NOTE:</b> flag must be set to -1 when <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a> is called for the first time for a particular <b>disprm</b> struct in order to initialize memory management. It must ONLY be used on the first initialization otherwise memory leaks may result. </p>
+
+</div>
+</div>
+<a class="anchor" id="a201bc2948f326bbed9a0e1f818720ef9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::naxis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(Given or returned) Number of pixel and world coordinate elements.</p>
+<p>If <a class="el" href="dis_8h.html#a8896e2a5330e55cd85da4a28ed6ee463" title="Default constructor for the disprm struct. ">disini()</a> is used to initialize the <b>disprm</b> struct (as would normally be the case) then it will set naxis from the value passed to it as a function argument. The user should not subsequently modify it. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0d3386f4226b13c77deb97610ffeecb1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">disprm::dtype</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of char[16] containing the name of the distortion function for each axis. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab62d14319c82c93c70d290728cab78c4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ** disprm::axmap</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of int* containing pointers to the first elements of the axis mapping arrays for each axis.</p>
+<p>An axis mapping associates the independent variables of a distortion function with the 1-relative image axis number. For example, consider an image with a spectrum on the first axis, followed by RA, Dec, and time axes. For a distortion in (RA,Dec) and no distortion on the spectral or time axes, the axis mapping arrays, axmap[j][], would be </p><div class="fragment"><div class="line">j=0: [0, 0, 0, 0]   ...no  distortion on spectral axis,</div>
+<div class="line">  1: [2, 3, 0, 0]   ...RA  distortion depends on RA and Dec,</div>
+<div class="line">  2: [3, 2, 0, 0]   ...Dec distortion depends on Dec and RA,</div>
+<div class="line">  3: [0, 0, 0, 0]   ...no  distortion on time axis,</div>
+</div><!-- fragment --><p>where zero indicates that there is no corresponding independent variable. </p>
+
+</div>
+</div>
+<a class="anchor" id="a8b0ac30436d7bb3e12e0ca1c64fda337"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::offset</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of double* containing an offset used to renormalize the independent variables of the distortion function for each axis.</p>
+<p>The offsets are subtracted from the independent variables before scaling.</p>
+<p>It is not necessary to reset the <b>disprm</b> struct (via <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>) when <a class="el" href="structdisprm.html#a8b0ac30436d7bb3e12e0ca1c64fda337">disprm::offset</a> is changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="a1f7b541d7130698acc6781b7ca83dab8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::scale</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of double* containing a scale used to renormalize the independent variables of the distortion function for each axis.</p>
+<p>The scale is applied to the independent variables after the offsets are subtracted.</p>
+<p>It is not necessary to reset the <b>disprm</b> struct (via <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>) when <a class="el" href="structdisprm.html#a1f7b541d7130698acc6781b7ca83dab8">disprm::scale</a> is changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="afd6bd50c561b27d0a1223e9c6c4f8baa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int * disprm::nparm</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of int containing the number of distortion parameters for each axis.</p>
+<p>The number of parameters specified must satisfy the requirements of the particular distortion function. For example, the polynomial distortion associated with the TPV "projection" must have a number that corresponds to the degree of the polynomial: </p><div class="fragment"><div class="line">Degree 1:   4</div>
+<div class="line">       2:   7</div>
+<div class="line">       3:  12</div>
+<div class="line">       4:  17</div>
+<div class="line">       5:  24</div>
+<div class="line">       6:  31</div>
+<div class="line">       7:  40</div>
+</div><!-- fragment --> 
+</div>
+</div>
+<a class="anchor" id="a25efb5ab856ffa06135a5d429e1c6b02"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::parms</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of double* containing pointers to the first elements of the arrays of distortion parameters for each axis.</p>
+<p><a class="el" href="dis_8h.html#acb2f2341971a191fdbea544602405723" title="Allocate memory for parameters in a disprm struct. ">disparms()</a> may be used to allocate memory for these arrays. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac107b9b4c645a461036476290a87ab22"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double * disprm::maxdis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to the first element of an array of double specifying the maximum absolute value of the distortion for each axis computed over the whole image.</p>
+<p>It is not necessary to reset the <b>disprm</b> struct (via <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>) when <a class="el" href="structdisprm.html#ac107b9b4c645a461036476290a87ab22">disprm::maxdis</a> is changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="a10a16217368a5cdd34d802fff442f383"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double disprm::totdis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) The maximum absolute value of the combination of all distortion functions specified as an offset in pixel coordinates computed over the whole image.</p>
+<p>It is not necessary to reset the <b>disprm</b> struct (via <a class="el" href="dis_8h.html#ad1bdf4497eb4513ca8431e1baa419041" title="Setup routine for the disprm struct. ">disset()</a>) when <a class="el" href="structdisprm.html#a10a16217368a5cdd34d802fff442f383">disprm::totdis</a> is changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="a40a81085335f9d9aa617eb9605ae9421"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="structwcserr.html">wcserr</a> * disprm::err</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a43a6e8d5c70b82c5eb573de7e0d2fbfa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int(** disprm::disp2x) (<a class="el" href="dis_8h.html#a23068602f42552a4257462b2875d8c51">DISP2X_ARGS</a>)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae627d5f290ed7ad85d3665cf28c5dbf4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int(** disprm::disx2p) (<a class="el" href="dis_8h.html#ac593cd79fb7f89b1c7395d0ecf2f7876">DISX2P_ARGS</a>)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7f80d2d542c266d14a336c13d2ebeab2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double * disprm::tmpmem</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a711121ef59301a0eaf3b6025d8259bd7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ** disprm::iwrk</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a5002d95480beaa900deae051ec7e45b1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::dwrk</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="afb5079136a7ec5ae4effef9790e31439"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::m_flag</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a6a8b2e3fc58d8f21668a82a93b199712"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::m_naxis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a5f720fe9e047c9bfc3118ea43fcb193a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">disprm::m_dtype</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a66547c34ec789c7efe10dc8f78295602"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ** disprm::m_axmap</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a11c48b7be30b22236cdae89cb47a6317"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::m_offset</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="ad86b9715da25195e7a345ccf631ff87a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::m_scale</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="ac54a69ee59f8c525309df6761ffadfed"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int * disprm::m_nparm</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a64b9a5952a1a87ccd6b2533757c5ae36"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double ** disprm::m_parms</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a4f692b3bb436ceab5861ec9566d127e4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double * disprm::m_maxdis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a9d200cabe1a6a192f44a17535917cd3c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::m_alloc</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+<a class="anchor" id="a01ec67e521b93c377aa76248b955bebc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int disprm::m_padding</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(For internal use only.) </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/html/structfitskey.html b/html/structfitskey.html
index 83ee415..d5b75bc 100644
--- a/html/structfitskey.html
+++ b/html/structfitskey.html
@@ -171,7 +171,7 @@ FITSHDR_TRAILER: Keyrecord following a valid <code><b><code><b>END</b></code></b
 </div><div class="memdoc">
 <p>(<em>Returned</em>) Keyvalue data type: </p><ul>
 <li>
-0: No keyvalue. </li>
+0: No keyvalue (both the value and type are undefined). </li>
 <li>
 1: Logical, represented as int. </li>
 <li>
@@ -374,7 +374,7 @@ Continued strings are not reconstructed, they remain split over successive <b>fi
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structfitskeyid.html b/html/structfitskeyid.html
index 4cabde2..cd33a98 100644
--- a/html/structfitskeyid.html
+++ b/html/structfitskeyid.html
@@ -111,7 +111,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structlinprm.html b/html/structlinprm.html
index 8824e74..0190624 100644
--- a/html/structlinprm.html
+++ b/html/structlinprm.html
@@ -67,32 +67,40 @@ Data Fields</h2></td></tr>
 <tr class="separator:a4c40bec32ec40035b8c1ef13db652270"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a162762d02eaade6a53d63d70b8827caa"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">cdelt</a></td></tr>
 <tr class="separator:a162762d02eaade6a53d63d70b8827caa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7d951475b1c16f94703fba9e04ec24d2"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structdisprm.html">disprm</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">dispre</a></td></tr>
+<tr class="separator:a7d951475b1c16f94703fba9e04ec24d2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2c21e35f61f428ed14ca2b60bccc10c8"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structdisprm.html">disprm</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">disseq</a></td></tr>
+<tr class="separator:a2c21e35f61f428ed14ca2b60bccc10c8"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:aeaaf26fd243da58fee173b075bed1de7"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">piximg</a></td></tr>
 <tr class="separator:aeaaf26fd243da58fee173b075bed1de7"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a28a705f744a32cd05dd3aa86ca58998b"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">imgpix</a></td></tr>
 <tr class="separator:a28a705f744a32cd05dd3aa86ca58998b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a596f68ff17fce142f36530d72dd838c4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">i_naxis</a></td></tr>
+<tr class="separator:a596f68ff17fce142f36530d72dd838c4"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:af0a5cac7b1d2d3a0feb6905c05b122c2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#af0a5cac7b1d2d3a0feb6905c05b122c2">unity</a></td></tr>
 <tr class="separator:af0a5cac7b1d2d3a0feb6905c05b122c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7f40c88135117b07a7767082ef24aba9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a7f40c88135117b07a7767082ef24aba9">padding</a></td></tr>
-<tr class="separator:a7f40c88135117b07a7767082ef24aba9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a499a66528c3dcb9d1a9bea67b5afaa0d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a499a66528c3dcb9d1a9bea67b5afaa0d">affine</a></td></tr>
+<tr class="separator:a499a66528c3dcb9d1a9bea67b5afaa0d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af3a8524b6c3c11315e4048d4bd6864c8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#af3a8524b6c3c11315e4048d4bd6864c8">simple</a></td></tr>
+<tr class="separator:af3a8524b6c3c11315e4048d4bd6864c8"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a2975830d4214bb6b35cb1ca922875057"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structwcserr.html">wcserr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a2975830d4214bb6b35cb1ca922875057">err</a></td></tr>
 <tr class="separator:a2975830d4214bb6b35cb1ca922875057"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a596f68ff17fce142f36530d72dd838c4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a596f68ff17fce142f36530d72dd838c4">i_naxis</a></td></tr>
-<tr class="separator:a596f68ff17fce142f36530d72dd838c4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adf299a3f7750599a48373ce370fde9da"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#adf299a3f7750599a48373ce370fde9da">tmpcrd</a></td></tr>
+<tr class="separator:adf299a3f7750599a48373ce370fde9da"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a5ef7cce6307f640aca1080d0d5ad9ba1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a5ef7cce6307f640aca1080d0d5ad9ba1">m_flag</a></td></tr>
 <tr class="separator:a5ef7cce6307f640aca1080d0d5ad9ba1"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:aeefcacedf2989970f0df2c246d84bfb7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#aeefcacedf2989970f0df2c246d84bfb7">m_naxis</a></td></tr>
 <tr class="separator:aeefcacedf2989970f0df2c246d84bfb7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab73e780d0792b3570fcf2cf55651f22c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#ab73e780d0792b3570fcf2cf55651f22c">m_padding</a></td></tr>
-<tr class="separator:ab73e780d0792b3570fcf2cf55651f22c"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a091103ceb860eeed1a280effa0df28df"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a091103ceb860eeed1a280effa0df28df">m_crpix</a></td></tr>
 <tr class="separator:a091103ceb860eeed1a280effa0df28df"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a7036b8527bc8b220ad8a863442631f48"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a7036b8527bc8b220ad8a863442631f48">m_pc</a></td></tr>
 <tr class="separator:a7036b8527bc8b220ad8a863442631f48"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a5ac85757a7a46247e353a089374eb128"><td class="memItemLeft" align="right" valign="top">double * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a5ac85757a7a46247e353a089374eb128">m_cdelt</a></td></tr>
 <tr class="separator:a5ac85757a7a46247e353a089374eb128"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aba4a6d5c87b53b6f3a4399276ac13a2c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#aba4a6d5c87b53b6f3a4399276ac13a2c">padding2</a></td></tr>
-<tr class="separator:aba4a6d5c87b53b6f3a4399276ac13a2c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9c5dae1285df5adbc684bb650a84b74a"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structdisprm.html">disprm</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a9c5dae1285df5adbc684bb650a84b74a">m_dispre</a></td></tr>
+<tr class="separator:a9c5dae1285df5adbc684bb650a84b74a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7ecd987ea3b41b7d0a1c4489e882c1f4"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structdisprm.html">disprm</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlinprm.html#a7ecd987ea3b41b7d0a1c4489e882c1f4">m_disseq</a></td></tr>
+<tr class="separator:a7ecd987ea3b41b7d0a1c4489e882c1f4"><td class="memSeparator" colspan="2"> </td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>The <b>linprm</b> struct contains all of the information required to perform a linear transformation. It consists of certain members that must be set by the user (<em>given</em>) and others that are set by the WCSLIB routines (<em>returned</em>). </p>
@@ -113,7 +121,11 @@ Data Fields</h2></td></tr>
 <li>
 <a class="el" href="structlinprm.html#a4c40bec32ec40035b8c1ef13db652270">linprm::pc</a>, </li>
 <li>
-<a class="el" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">linprm::cdelt</a>. </li>
+<a class="el" href="structlinprm.html#a162762d02eaade6a53d63d70b8827caa">linprm::cdelt</a>, </li>
+<li>
+<a class="el" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">linprm::dispre</a>. </li>
+<li>
+<a class="el" href="structlinprm.html#a2c21e35f61f428ed14ca2b60bccc10c8">linprm::disseq</a>. </li>
 </ul>
 <p>This signals the initialization routine, <a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a" title="Setup routine for the linprm struct. ">linset()</a>, to recompute the returned members of the <b>linprm</b> struct. <a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a" title="Setup routine for the linprm struct. ">linset()</a> will reset flag to indicate that this has been done.</p>
 <p><b>PLEASE NOTE:</b> flag should be set to -1 when <a class="el" href="lin_8h.html#a7ddea28768d99f01c6be1c71a4d8fe58" title="Default constructor for the linprm struct. ">linini()</a> is called for the first time for a particular <b>linprm</b> struct in order to initialize memory management. It must ONLY be used on the first initialization otherwise memory leaks may result. </p>
@@ -143,7 +155,8 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Given</em>) Pointer to the first element of an array of double containing the coordinate reference pixel, <code><b>CRPIX</b>ja</code>. </p>
+<p>(<em>Given</em>) Pointer to the first element of an array of double containing the coordinate reference pixel, <code><b>CRPIX</b>ja</code>.</p>
+<p>It is not necessary to reset the <b>linprm</b> struct (via <a class="el" href="lin_8h.html#a5c01c0991c8d0c4437581a7c1453b09a" title="Setup routine for the linprm struct. ">linset()</a>) when <a class="el" href="structlinprm.html#a3691ff3f40a0ba087637d30ffc87e6d0">linprm::crpix</a> is changed. </p>
 
 </div>
 </div>
@@ -183,6 +196,58 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a7d951475b1c16f94703fba9e04ec24d2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="structdisprm.html">disprm</a> * linprm::dispre</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to a disprm struct holding parameters for prior distortion functions, or a null (0x0) pointer if there are none.</p>
+<p>Function <a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb" title="Assign a distortion to a linprm struct. ">lindis()</a> may be used to assign a disprm pointer to a <b>linprm</b> struct, allowing it to take control of any memory allocated for it, as in the following example: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> add_distortion(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin)</div>
+<div class="line">{</div>
+<div class="line">  <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> *<a class="code" href="structlinprm.html#a7d951475b1c16f94703fba9e04ec24d2">dispre</a>;</div>
+<div class="line"></div>
+<div class="line">  dispre = malloc(<span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structdisprm.html">disprm</a>);</div>
+<div class="line">  dispre-><a class="code" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">flag</a> = -1;</div>
+<div class="line">  <a class="code" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lindis</a>(1, lin, dispre);</div>
+<div class="line">    :</div>
+<div class="line">   (Set up dispre.)</div>
+<div class="line">    :</div>
+<div class="line"></div>
+<div class="line">  <span class="keywordflow">return</span>;</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Here, after the distortion function parameters etc. are copied into dispre, dispre is assigned using <a class="el" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb" title="Assign a distortion to a linprm struct. ">lindis()</a> which takes control of the allocated memory. It will be free'd later when <a class="el" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303" title="Destructor for the linprm struct. ">linfree()</a> is invoked on the <b>linprm</b> struct.</p>
+<p>Consider also the following erroneous code: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> bad_code(<span class="keyword">struct</span> <a class="code" href="structlinprm.html">linprm</a> *lin)</div>
+<div class="line">{</div>
+<div class="line">  <span class="keyword">struct </span><a class="code" href="structdisprm.html">disprm</a> dispre;</div>
+<div class="line"></div>
+<div class="line">  dispre.<a class="code" href="structdisprm.html#a4d6ba28bee2fc636f4b2b9ca4b50b0a4">flag</a> = -1;</div>
+<div class="line">  <a class="code" href="lin_8h.html#ad68df60cc9fa6f86e2c6e6943dc74cdb">lindis</a>(1, lin, &dispre);   <span class="comment">// WRONG.</span></div>
+<div class="line">    :</div>
+<div class="line"></div>
+<div class="line">  <span class="keywordflow">return</span>;</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>Here, dispre is declared as a struct, rather than a pointer. When the function returns, dispre will go out of scope and its memory will most likely be reused, thereby trashing its contents. Later, a segfault will occur when <a class="el" href="lin_8h.html#aef9ead7c6ea6ab08f3ba3fc6a1c30303" title="Destructor for the linprm struct. ">linfree()</a> tries to free dispre's stale address. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2c21e35f61f428ed14ca2b60bccc10c8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="structdisprm.html">disprm</a> * linprm::disseq</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Given</em>) Pointer to a disprm struct holding parameters for sequent distortion functions, or a null (0x0) pointer if there are none.</p>
+<p>Refer to the comments and examples given for disprm::dispre. </p>
+
+</div>
+</div>
 <a class="anchor" id="aeaaf26fd243da58fee173b075bed1de7"></a>
 <div class="memitem">
 <div class="memproto">
@@ -209,6 +274,19 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a596f68ff17fce142f36530d72dd838c4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int linprm::i_naxis</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Returned</em>) The dimension of <a class="el" href="structlinprm.html#aeaaf26fd243da58fee173b075bed1de7">linprm::piximg</a> and <a class="el" href="structlinprm.html#a28a705f744a32cd05dd3aa86ca58998b">linprm::imgpix</a> (normally equal to naxis). </p>
+
+</div>
+</div>
 <a class="anchor" id="af0a5cac7b1d2d3a0feb6905c05b122c2"></a>
 <div class="memitem">
 <div class="memproto">
@@ -222,16 +300,29 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7f40c88135117b07a7767082ef24aba9"></a>
+<a class="anchor" id="a499a66528c3dcb9d1a9bea67b5afaa0d"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int linprm::padding</td>
+          <td class="memname">int linprm::affine</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(An unused variable inserted for alignment purposes only.) </p>
+<p>(<em>Returned</em>) True if there are no distortions. </p>
+
+</div>
+</div>
+<a class="anchor" id="af3a8524b6c3c11315e4048d4bd6864c8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int linprm::simple</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>(<em>Returned</em>) True if unity and no distortions. </p>
 
 </div>
 </div>
@@ -244,16 +335,16 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
-<a class="anchor" id="a596f68ff17fce142f36530d72dd838c4"></a>
+<a class="anchor" id="adf299a3f7750599a48373ce370fde9da"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int linprm::i_naxis</td>
+          <td class="memname">double * linprm::tmpcrd</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -287,12 +378,12 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ab73e780d0792b3570fcf2cf55651f22c"></a>
+<a class="anchor" id="a091103ceb860eeed1a280effa0df28df"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">int linprm::m_padding</td>
+          <td class="memname">double * linprm::m_crpix</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -300,12 +391,12 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a091103ceb860eeed1a280effa0df28df"></a>
+<a class="anchor" id="a7036b8527bc8b220ad8a863442631f48"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double * linprm::m_crpix</td>
+          <td class="memname">double * linprm::m_pc</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -313,12 +404,12 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7036b8527bc8b220ad8a863442631f48"></a>
+<a class="anchor" id="a5ac85757a7a46247e353a089374eb128"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double * linprm::m_pc</td>
+          <td class="memname">double * linprm::m_cdelt</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -326,12 +417,12 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a5ac85757a7a46247e353a089374eb128"></a>
+<a class="anchor" id="a9c5dae1285df5adbc684bb650a84b74a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double * linprm::m_cdelt</td>
+          <td class="memname">struct <a class="el" href="structdisprm.html">disprm</a> * linprm::m_dispre</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -339,12 +430,12 @@ Data Fields</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aba4a6d5c87b53b6f3a4399276ac13a2c"></a>
+<a class="anchor" id="a7ecd987ea3b41b7d0a1c4489e882c1f4"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void * linprm::padding2</td>
+          <td class="memname">struct <a class="el" href="structdisprm.html">disprm</a> * linprm::m_disseq</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -355,7 +446,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structprjprm.html b/html/structprjprm.html
index b4d7804..11ea997 100644
--- a/html/structprjprm.html
+++ b/html/structprjprm.html
@@ -212,6 +212,7 @@ Data Fields</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <p>(<em>Given</em>) Controls bounds checking. If bounds&1 then enable strict bounds checking for the spherical-to-Cartesian (s2x) transformation for the <code><b>AZP</b></code>, <code><b>SZP</b></code>, <code><b>TAN</b></code>, <code><b>SIN</b></code>, <code><b>ZPN</b></code>, and <code><b>COP</b></code> projections. If bounds&2 then enable strict bounds checking for the Cartesian-to-spherical transformation (x2s) for the <code><b>HPX</b></code> and XPH projections. If bounds&amp [...]
+<p>It is not necessary to reset the <b>prjprm</b> struct (via <a class="el" href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f" title="Generic setup routine for the prjprm struct. ">prjset()</a> or <b>???set()</b>) when <a class="el" href="structprjprm.html#ab8dd3d8b1e462a2b261fc9e304885943">prjprm::bounds</a> is changed.</p>
 <p>The remaining members of the <b>prjprm</b> struct are maintained by the setup routines and must not be modified elsewhere: </p>
 
 </div>
@@ -384,7 +385,7 @@ HEALPIX. </li>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -449,7 +450,7 @@ HEALPIX. </li>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) Pointer to the projection ... </p>
+<p>(<em>Returned</em>) Pointer to the spherical projection ... </p>
 
 </div>
 </div>
@@ -469,7 +470,7 @@ HEALPIX. </li>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structpscard.html b/html/structpscard.html
index c00ece6..c8bbe84 100644
--- a/html/structpscard.html
+++ b/html/structpscard.html
@@ -110,7 +110,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structpvcard.html b/html/structpvcard.html
index a486d7f..4deb48b 100644
--- a/html/structpvcard.html
+++ b/html/structpvcard.html
@@ -110,7 +110,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structs.html b/html/structs.html
index d9cccd6..ef8b568 100644
--- a/html/structs.html
+++ b/html/structs.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -59,7 +59,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structspcprm.html b/html/structspcprm.html
index d433858..ff10aef 100644
--- a/html/structspcprm.html
+++ b/html/structspcprm.html
@@ -278,7 +278,7 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this structure contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -350,7 +350,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structspxprm.html b/html/structspxprm.html
index d933db5..87d0712 100644
--- a/html/structspxprm.html
+++ b/html/structspxprm.html
@@ -691,7 +691,7 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -712,7 +712,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structtabprm.html b/html/structtabprm.html
index d07055e..6d49a43 100644
--- a/html/structtabprm.html
+++ b/html/structtabprm.html
@@ -312,7 +312,7 @@ Data Fields</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -449,7 +449,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structwcserr.html b/html/structwcserr.html
index 00a2a40..4ac9339 100644
--- a/html/structwcserr.html
+++ b/html/structwcserr.html
@@ -139,7 +139,7 @@ Data Fields</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:32 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structwcsprm.html b/html/structwcsprm.html
index cd7e409..bdcee5f 100644
--- a/html/structwcsprm.html
+++ b/html/structwcsprm.html
@@ -262,7 +262,15 @@ Data Fields</h2></td></tr>
 <li>
 <a class="el" href="structwcsprm.html#af124a4259475ea355ced38e73a05363a">wcsprm::crota</a>, </li>
 <li>
-<a class="el" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">wcsprm::altlin</a>. </li>
+<a class="el" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">wcsprm::altlin</a>, </li>
+<li>
+<a class="el" href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241">wcsprm::ntab</a>, </li>
+<li>
+<a class="el" href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801">wcsprm::nwtb</a>, </li>
+<li>
+<a class="el" href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709">wcsprm::tab</a>, </li>
+<li>
+<a class="el" href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2">wcsprm::wtb</a>. </li>
 </ul>
 <p>This signals the initialization routine, <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>, to recompute the returned members of the celprm struct. <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct. ">celset()</a> will reset flag to indicate that this has been done.</p>
 <p><b>PLEASE NOTE:</b> flag should be set to -1 when <a class="el" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45" title="Default constructor for the wcsprm struct. ">wcsini()</a> is called for the first time for a particular <b>wcsprm</b> struct in order to initialize memory management. It must ONLY be used on the first initialization otherwise memory leaks may result. </p>
@@ -597,7 +605,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Given</em>) AIPS velocity code <code><b>VELREF</b></code>, refer to <a class="el" href="spc_8h.html#ac9dc37c9fdf2db04e23e26b7a51c8e6a" title="Translate AIPS-convention spectral keywords. ">spcaips()</a>. </p>
+<p>(<em>Given</em>) AIPS velocity code <code><b>VELREF</b></code>, refer to <a class="el" href="spc_8h.html#ac9dc37c9fdf2db04e23e26b7a51c8e6a" title="Translate AIPS-convention spectral keywords. ">spcaips()</a>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908">wcsprm::velref</a> is changed. </p>
 
 </div>
 </div>
@@ -611,7 +620,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
       </table>
 </div><div class="memdoc">
 <p>(Given, auxiliary) Character code for alternate coordinate descriptions (i.e. the '<b>a</b>' in keyword names such as <code><b>CTYPE</b>ia</code>). This is blank for the primary coordinate description, or one of the 26 upper-case letters, A-Z.</p>
-<p>An array of four characters is provided for alignment purposes, only the first is used. </p>
+<p>An array of four characters is provided for alignment purposes, only the first is used.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3">wcsprm::alt</a> is changed. </p>
 
 </div>
 </div>
@@ -625,7 +635,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
       </table>
 </div><div class="memdoc">
 <p>(Given, auxiliary) Where the coordinate representation is associated with an image-array column in a FITS binary table, this variable may be used to record the relevant column number.</p>
-<p>It should be set to zero for an image header or pixel list. </p>
+<p>It should be set to zero for an image header or pixel list.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca">wcsprm::colnum</a> is changed. </p>
 
 </div>
 </div>
@@ -639,7 +650,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
       </table>
 </div><div class="memdoc">
 <p>(Given, auxiliary) Address of the first element of an array of int recording the column numbers for each axis in a pixel list.</p>
-<p>The array elements should be set to zero for an image header or image array in a binary table. </p>
+<p>The array elements should be set to zero for an image header or image array in a binary table.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55">wcsprm::colax</a> is changed. </p>
 
 </div>
 </div>
@@ -653,7 +665,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
       </table>
 </div><div class="memdoc">
 <p>(Given, auxiliary) The address of the first element of an array of char[72] containing the coordinate axis names, <code><b>CNAME</b>ia</code>.</p>
-<p>These variables accomodate the longest allowed string-valued FITS keyword, being limited to 68 characters, plus the null-terminating character. </p>
+<p>These variables accomodate the longest allowed string-valued FITS keyword, being limited to 68 characters, plus the null-terminating character.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b">wcsprm::cname</a> is changed. </p>
 
 </div>
 </div>
@@ -666,7 +679,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Address of the first element of an array of double recording the random error in the coordinate value, <code><b>CRDER</b>ia</code>. </p>
+<p>(Given, auxiliary) Address of the first element of an array of double recording the random error in the coordinate value, <code><b>CRDER</b>ia</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4">wcsprm::crder</a> is changed. </p>
 
 </div>
 </div>
@@ -679,7 +693,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Address of the first element of an array of double recording the systematic error in the coordinate value, <code><b>CSYER</b>ia</code>. </p>
+<p>(Given, auxiliary) Address of the first element of an array of double recording the systematic error in the coordinate value, <code><b>CSYER</b>ia</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f">wcsprm::csyer</a> is changed. </p>
 
 </div>
 </div>
@@ -692,7 +707,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The date of a representative mid-point of the observation in ISO format, <em>yyyy-mm-dd</em><code><b>T</b></code><em>hh:mm:ss</em>. </p>
+<p>(Given, auxiliary) The date of a representative mid-point of the observation in ISO format, <em>yyyy-mm-dd</em><code><b>T</b></code><em>hh:mm:ss</em>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63">wcsprm::dateavg</a> is changed. </p>
 
 </div>
 </div>
@@ -705,7 +721,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The date of the start of the observation unless otherwise explained in the comment field of the <code><b>DATE-OBS</b></code> keyword, in ISO format, <em>yyyy-mm-dd</em><code><b>T</b></code><em>hh:mm:ss</em>. </p>
+<p>(Given, auxiliary) The date of the start of the observation unless otherwise explained in the comment field of the <code><b>DATE-OBS</b></code> keyword, in ISO format, <em>yyyy-mm-dd</em><code><b>T</b></code><em>hh:mm:ss</em>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120">wcsprm::dateobs</a> is changed. </p>
 
 </div>
 </div>
@@ -718,7 +735,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The equinox associated with dynamical equatorial or ecliptic coordinate systems, <code><b>EQUINOX</b>a</code> (or <code><b>EPOCH</b></code> in older headers). Not applicable to ICRS equatorial or ecliptic coordinates. </p>
+<p>(Given, auxiliary) The equinox associated with dynamical equatorial or ecliptic coordinate systems, <code><b>EQUINOX</b>a</code> (or <code><b>EPOCH</b></code> in older headers). Not applicable to ICRS equatorial or ecliptic coordinates.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864">wcsprm::equinox</a> is changed. </p>
 
 </div>
 </div>
@@ -731,7 +749,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), <code><b>MJD-AVG</b></code>, corresponding to <code><b>DATE-AVG</b></code>. </p>
+<p>(Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), <code><b>MJD-AVG</b></code>, corresponding to <code><b>DATE-AVG</b></code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">wcsprm::mjdavg</a> is changed. </p>
 
 </div>
 </div>
@@ -744,7 +763,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), <code><b>MJD-OBS</b></code>, corresponding to <code><b>DATE-OBS</b></code>. </p>
+<p>(Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), <code><b>MJD-OBS</b></code>, corresponding to <code><b>DATE-OBS</b></code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa">wcsprm::mjdobs</a> is changed. </p>
 
 </div>
 </div>
@@ -757,7 +777,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Location of the observer in a standard terrestrial reference frame, <code><b>OBSGEO-X</b></code>, <code><b>OBSGEO-Y</b></code>, <code><b>OBSGEO-Z</b></code> [m]. </p>
+<p>(Given, auxiliary) Location of the observer in a standard terrestrial reference frame, <code><b>OBSGEO-X</b></code>, <code><b>OBSGEO-Y</b></code>, <code><b>OBSGEO-Z</b></code> [m].</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb">wcsprm::obsgeo</a> is changed. </p>
 
 </div>
 </div>
@@ -770,7 +791,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The equatorial or ecliptic coordinate system type, <code><b>RADESYS</b>a</code>. </p>
+<p>(Given, auxiliary) The equatorial or ecliptic coordinate system type, <code><b>RADESYS</b>a</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48">wcsprm::radesys</a> is changed. </p>
 
 </div>
 </div>
@@ -783,7 +805,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) Spectral reference frame (standard of rest), <code><b>SPECSYS</b>a</code>, and ... </p>
+<p>(Given, auxiliary) Spectral reference frame (standard of rest), <code><b>SPECSYS</b>a</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea">wcsprm::specsys</a> is changed. </p>
 
 </div>
 </div>
@@ -796,7 +819,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) ... the actual frame in which there is no differential variation in the spectral coordinate across the field-of-view, <code><b>SSYSOBS</b>a</code>. </p>
+<p>(Given, auxiliary) The spectral reference frame in which there is no differential variation in the spectral coordinate across the field-of-view, <code><b>SSYSOBS</b>a</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223">wcsprm::ssysobs</a> is changed. </p>
 
 </div>
 </div>
@@ -809,7 +833,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The relative radial velocity [m/s] between the observer and the selected standard of rest in the direction of the celestial reference coordinate, <code><b>VELOSYS</b>a</code>. </p>
+<p>(Given, auxiliary) The relative radial velocity [m/s] between the observer and the selected standard of rest in the direction of the celestial reference coordinate, <code><b>VELOSYS</b>a</code>.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83">wcsprm::velosys</a> is changed. </p>
 
 </div>
 </div>
@@ -822,7 +847,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The redshift, <code><b>ZSOURCE</b>a</code>, of the source, and ... </p>
+<p>(Given, auxiliary) The redshift, <code><b>ZSOURCE</b>a</code>, of the source.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">wcsprm::zsource</a> is changed. </p>
 
 </div>
 </div>
@@ -835,7 +861,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) ... the spectral reference frame (standard of rest) in which this was measured, <code><b>SSYSSRC</b>a</code>. </p>
+<p>(Given, auxiliary) The spectral reference frame (standard of rest), <code><b>SSYSSRC</b>a</code>, in which <a class="el" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">wcsprm::zsource</a> was measured.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20">wcsprm::ssyssrc</a> is changed. </p>
 
 </div>
 </div>
@@ -848,7 +875,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The angle [deg] that should be used to decompose an observed velocity into radial and transverse components. </p>
+<p>(Given, auxiliary) The angle [deg] that should be used to decompose an observed velocity into radial and transverse components.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4">wcsprm::velangl</a> is changed. </p>
 
 </div>
 </div>
@@ -861,7 +889,8 @@ Whenever a <code><b>CROTA</b>ia</code> keyword is encountered:<div class="fragme
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(Given, auxiliary) The name given to the coordinate representation, <code><b>WCSNAME</b>a</code>. This variable accomodates the longest allowed string-valued FITS keyword, being limited to 68 characters, plus the null-terminating character. </p>
+<p>(Given, auxiliary) The name given to the coordinate representation, <code><b>WCSNAME</b>a</code>. This variable accomodates the longest allowed string-valued FITS keyword, being limited to 68 characters, plus the null-terminating character.</p>
+<p>It is not necessary to reset the <b>wcsprm</b> struct (via <a class="el" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91" title="Setup routine for the wcsprm struct. ">wcsset()</a>) when <a class="el" href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66">wcsprm::wcsname</a> is changed. </p>
 
 </div>
 </div>
@@ -1131,7 +1160,7 @@ For lookup tables: the axis number in a multidimensional table. </li>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>(<em>Returned</em>) If enabled, when an error status is returned this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
+<p>(<em>Returned</em>) If enabled, when an error status is returned, this struct contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p>
 
 </div>
 </div>
@@ -1385,7 +1414,7 @@ For lookup tables: the axis number in a multidimensional table. </li>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:32 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/structwtbarr.html b/html/structwtbarr.html
index 4a8e637..a281c15 100644
--- a/html/structwtbarr.html
+++ b/html/structwtbarr.html
@@ -235,7 +235,7 @@ i: index vector. </li>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:32 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/tab_8h.html b/html/tab_8h.html
index 57704aa..d6fa9d8 100644
--- a/html/tab_8h.html
+++ b/html/tab_8h.html
@@ -57,8 +57,7 @@
 <div class="title">tab.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
-</div>
+
 <p><a href="tab_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -727,7 +726,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/tab_8h_source.html b/html/tab_8h_source.html
index cfa3111..cebaacd 100644
--- a/html/tab_8h_source.html
+++ b/html/tab_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="tab_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: tab.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: tab.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement tabular coordinate systems as</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement tabular coordinate systems as</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* defined by the FITS World Coordinate System (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -522,7 +522,7 @@
 <div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">*     inverse table lookup function, tabs2x(), to speed up table searches.</span></div>
 <div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
 <div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
 <div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*   int m_flag</span></div>
@@ -556,162 +556,159 @@
 <div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="preprocessor">#ifndef WCSLIB_TAB</span></div>
 <div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="preprocessor">#define WCSLIB_TAB</span></div>
 <div class="line"><a name="l00505"></a><span class="lineno">  505</span> </div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span> </div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="tab_8h.html#a824d1e7c8fea5e5918a8555df39aa5b7">tab_errmsg</a>[];</div>
 <div class="line"><a name="l00512"></a><span class="lineno">  512</span> </div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="tab_8h.html#a824d1e7c8fea5e5918a8555df39aa5b7">tab_errmsg</a>[];</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span> </div>
-<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">  515</a></span> <span class="keyword">enum</span> <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">tab_errmsg_enum</a> {</div>
-<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">  516</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">TABERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">  517</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">TABERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null tabprm pointer passed. */</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">  518</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">TABERR_MEMORY</a>       = 2,      <span class="comment">/* Memory allocation failed. */</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">  519</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">TABERR_BAD_PARAMS</a>   = 3,      <span class="comment">/* Invalid tabular parameters. */</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">  520</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">TABERR_BAD_X</a>        = 4,      <span class="comment">/* One or more of the x coordinates were</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">  513</a></span> <span class="keyword">enum</span> <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">tab_errmsg_enum</a> {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">  514</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">TABERR_SUCCESS</a>      = 0,      <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">  515</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">TABERR_NULL_POINTER</a> = 1,      <span class="comment">/* Null tabprm pointer passed. */</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">  516</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">TABERR_MEMORY</a>       = 2,      <span class="comment">/* Memory allocation failed. */</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">  517</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">TABERR_BAD_PARAMS</a>   = 3,      <span class="comment">/* Invalid tabular parameters. */</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">  518</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">TABERR_BAD_X</a>        = 4,      <span class="comment">/* One or more of the x coordinates were</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">  520</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">TABERR_BAD_WORLD</a>    = 5       <span class="comment">/* One or more of the world coordinates were</span></div>
 <div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">  522</a></span>   <a class="code" href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">TABERR_BAD_WORLD</a>    = 5       <span class="comment">/* One or more of the world coordinates were</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span> };</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
-<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="structtabprm.html">  526</a></span> <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> {</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">  529</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span> </div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">  533</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">M</a>;                     <span class="comment">/* Number of tabular coordinate axes.       */</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">  534</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">K</a>;                    <span class="comment">/* Vector of length M whose elements        */</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>                                 <span class="comment">/* (K_1, K_2,... K_M) record the lengths of */</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>                                 <span class="comment">/* the axes of the coordinate array and of  */</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>                                 <span class="comment">/* each indexing vector.                    */</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">  538</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">map</a>;                  <span class="comment">/* Vector of length M usually such that     */</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>                                 <span class="comment">/* map[m-1] == i-1 for coordinate array     */</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>                                 <span class="comment">/* axis m and image axis i (see above).     */</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">  541</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">crval</a>;                <span class="comment">/* Vector of length M containing the index  */</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>                                 <span class="comment">/* value for the reference pixel for each   */</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>                                 <span class="comment">/* of the tabular coordinate axes.          */</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">  544</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">index</a>;               <span class="comment">/* Vector of pointers to M indexing vectors */</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>                                 <span class="comment">/* of lengths (K_1, K_2,... K_M).           */</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">  546</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">coord</a>;                <span class="comment">/* (1+M)-dimensional tabular coordinate     */</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>                                 <span class="comment">/* array (see above).                       */</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">  551</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">nc</a>;                    <span class="comment">/* Number of coordinate vectors (of length  */</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>                                 <span class="comment">/* M) in the coordinate array.              */</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">  553</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">padding</a>;               <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">  554</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">sense</a>;                <span class="comment">/* Vector of M flags that indicate whether  */</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>                                 <span class="comment">/* the Mth indexing vector is monotonic     */</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>                                 <span class="comment">/* increasing, or else decreasing.          */</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">  557</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">p0</a>;                   <span class="comment">/* Vector of M indices.                     */</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">  558</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">delta</a>;                <span class="comment">/* Vector of M increments.                  */</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">  559</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">extrema</a>;              <span class="comment">/* (1+M)-dimensional array of coordinate    */</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>                                 <span class="comment">/* extrema.                                 */</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">  564</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">err</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   <span class="comment">/* Private - the remainder are for memory management.                     */</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">  568</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">m_flag</a>, <a class="code" href="structtabprm.html#ae19ca756ab2190f5d5ced59ad0a1a4bc">m_M</a>, <a class="code" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">m_N</a>;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">  569</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">set_M</a>;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">  570</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a5c62c8fd3dc6e9a3c928be9a1ed81ca1">m_K</a>, *<a class="code" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">m_map</a>;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">  571</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#abf7f932bcefad1f0e371167971018965">m_crval</a>, **<a class="code" href="structtabprm.html#a1ce970a854c9976d8b3e4e26df102b3b">m_index</a>, **<a class="code" href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">m_indxs</a>, *<a class="code" href="s [...]
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span> };</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">/* Size of the tabprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="tab_8h.html#a9c80120944556169d230d4cd051d88cb">  575</a></span> <span class="preprocessor">#define TABLEN (sizeof(struct tabprm)/sizeof(int))</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> };</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="structtabprm.html">  524</a></span> <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> {</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">  527</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> </div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   <span class="comment">/* Parameters to be provided (see the prologue above).                    */</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">  531</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">M</a>;                     <span class="comment">/* Number of tabular coordinate axes.       */</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">  532</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">K</a>;                    <span class="comment">/* Vector of length M whose elements        */</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>                                 <span class="comment">/* (K_1, K_2,... K_M) record the lengths of */</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>                                 <span class="comment">/* the axes of the coordinate array and of  */</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>                                 <span class="comment">/* each indexing vector.                    */</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">  536</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">map</a>;                  <span class="comment">/* Vector of length M usually such that     */</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>                                 <span class="comment">/* map[m-1] == i-1 for coordinate array     */</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>                                 <span class="comment">/* axis m and image axis i (see above).     */</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">  539</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">crval</a>;                <span class="comment">/* Vector of length M containing the index  */</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>                                 <span class="comment">/* value for the reference pixel for each   */</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>                                 <span class="comment">/* of the tabular coordinate axes.          */</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">  542</a></span>   <span class="keywordtype">double</span> **<a class="code" href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">index</a>;               <span class="comment">/* Vector of pointers to M indexing vectors */</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>                                 <span class="comment">/* of lengths (K_1, K_2,... K_M).           */</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">  544</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">coord</a>;                <span class="comment">/* (1+M)-dimensional tabular coordinate     */</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>                                 <span class="comment">/* array (see above).                       */</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   <span class="comment">/* Information derived from the parameters supplied.                      */</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">  549</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">nc</a>;                    <span class="comment">/* Number of coordinate vectors (of length  */</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>                                 <span class="comment">/* M) in the coordinate array.              */</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">  551</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">padding</a>;               <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">  552</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">sense</a>;                <span class="comment">/* Vector of M flags that indicate whether  */</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>                                 <span class="comment">/* the Mth indexing vector is monotonic     */</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>                                 <span class="comment">/* increasing, or else decreasing.          */</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">  555</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">p0</a>;                   <span class="comment">/* Vector of M indices.                     */</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">  556</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">delta</a>;                <span class="comment">/* Vector of M increments.                  */</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">  557</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">extrema</a>;              <span class="comment">/* (1+M)-dimensional array of coordinate    */</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>                                 <span class="comment">/* extrema.                                 */</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   <span class="comment">/* Error handling                                                         */</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">  562</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">err</a>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   <span class="comment">/* Private - the remainder are for memory management.                     */</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">  566</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">m_flag</a>, <a class="code" href="structtabprm.html#ae19ca756ab2190f5d5ced59ad0a1a4bc">m_M</a>, <a class="code" href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">m_N</a>;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">  567</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">set_M</a>;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">  568</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structtabprm.html#a5c62c8fd3dc6e9a3c928be9a1ed81ca1">m_K</a>, *<a class="code" href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">m_map</a>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">  569</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structtabprm.html#abf7f932bcefad1f0e371167971018965">m_crval</a>, **<a class="code" href="structtabprm.html#a1ce970a854c9976d8b3e4e26df102b3b">m_index</a>, **<a class="code" href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">m_indxs</a>, *<a class="code" href="s [...]
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> };</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">/* Size of the tabprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="tab_8h.html#a9c80120944556169d230d4cd051d88cb">  573</a></span> <span class="preprocessor">#define TABLEN (sizeof(struct tabprm)/sizeof(int))</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#abb7920acdfb83179d3bac65035144c02">tabini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> M, <span class="keyword">const</span> <span class="keywordtype">int</span> K[], <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
 <div class="line"><a name="l00577"></a><span class="lineno">  577</span> </div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#abb7920acdfb83179d3bac65035144c02">tabini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> M, <span class="keyword">const</span> <span class="keywordtype">int</span> K[], <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#ae403ff0b740916989c7386728df001c8">tabmem</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
 <div class="line"><a name="l00579"></a><span class="lineno">  579</span> </div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#ae403ff0b740916989c7386728df001c8">tabmem</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a87b3a2a84bab396a528af8382ce9ad04">tabcpy</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tabsrc, <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tabdst);</div>
 <div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a87b3a2a84bab396a528af8382ce9ad04">tabcpy</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tabsrc, <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tabdst);</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span> </div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a61ff724eb7c412e42da7362a5d7a093d">tabcmp</a>(<span class="keywordtype">int</span> cmp, <span class="keywordtype">double</span> tol, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab1,</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>            <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab2, <span class="keywordtype">int</span> *equal);</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a61ff724eb7c412e42da7362a5d7a093d">tabcmp</a>(<span class="keywordtype">int</span> cmp, <span class="keywordtype">double</span> tol, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab1,</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>            <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab2, <span class="keywordtype">int</span> *equal);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> </div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a0f3501cc592c78e0f2cb9922466589f2">tabfree</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
 <div class="line"><a name="l00586"></a><span class="lineno">  586</span> </div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a0f3501cc592c78e0f2cb9922466589f2">tabfree</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a6b3768349e9a5e925aab24effddc584f">tabprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
 <div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a6b3768349e9a5e925aab24effddc584f">tabprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a519e8e4503f7c41c0f99e8597171c97f">tabset</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
 <div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a519e8e4503f7c41c0f99e8597171c97f">tabset</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab);</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span> </div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a006d6e8cb373e0dc3e9ccf128adb9411">tabx2s</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> x[],</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>            <span class="keywordtype">double</span> world[], <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span> </div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#aaded7db92aa2758198b33f35f5f18d6e">tabs2x</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> world[],</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>            <span class="keywordtype">double</span> x[], <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span> </div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span> </div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="tab_8h.html#a8b57d9bacbabd2b516d77220cdb6167d">  601</a></span> <span class="preprocessor">#define tabini_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="tab_8h.html#a27460f165fb03a075a1c6c6a48f33c62">  602</a></span> <span class="preprocessor">#define tabcpy_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="tab_8h.html#abf96fe5488df6796ec2606b974f330fe">  603</a></span> <span class="preprocessor">#define tabfree_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="tab_8h.html#ae2ee098afabb7a7d225f930276ffb441">  604</a></span> <span class="preprocessor">#define tabprt_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="tab_8h.html#a4abf39ca4cfc2ea073bffdbb98caa46d">  605</a></span> <span class="preprocessor">#define tabset_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="tab_8h.html#a141c3365f0364c01237aeeb93ddb717e">  606</a></span> <span class="preprocessor">#define tabx2s_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="tab_8h.html#a49872082d67e357c5c68a633824133ae">  607</a></span> <span class="preprocessor">#define tabs2x_errmsg tab_errmsg</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span> </div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span> }</div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span> </div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_TAB */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#a006d6e8cb373e0dc3e9ccf128adb9411">tabx2s</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> x[],</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>            <span class="keywordtype">double</span> world[], <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="keywordtype">int</span> <a class="code" href="tab_8h.html#aaded7db92aa2758198b33f35f5f18d6e">tabs2x</a>(<span class="keyword">struct</span> <a class="code" href="structtabprm.html">tabprm</a> *tab, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> world[],</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>            <span class="keywordtype">double</span> x[], <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> </div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="tab_8h.html#a8b57d9bacbabd2b516d77220cdb6167d">  599</a></span> <span class="preprocessor">#define tabini_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="tab_8h.html#a27460f165fb03a075a1c6c6a48f33c62">  600</a></span> <span class="preprocessor">#define tabcpy_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="tab_8h.html#abf96fe5488df6796ec2606b974f330fe">  601</a></span> <span class="preprocessor">#define tabfree_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="tab_8h.html#ae2ee098afabb7a7d225f930276ffb441">  602</a></span> <span class="preprocessor">#define tabprt_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="tab_8h.html#a4abf39ca4cfc2ea073bffdbb98caa46d">  603</a></span> <span class="preprocessor">#define tabset_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="tab_8h.html#a141c3365f0364c01237aeeb93ddb717e">  604</a></span> <span class="preprocessor">#define tabx2s_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="tab_8h.html#a49872082d67e357c5c68a633824133ae">  605</a></span> <span class="preprocessor">#define tabs2x_errmsg tab_errmsg</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> }</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_TAB */</span><span class="preprocessor"></span></div>
 <div class="ttc" id="tab_8h_html_a0f3501cc592c78e0f2cb9922466589f2"><div class="ttname"><a href="tab_8h.html#a0f3501cc592c78e0f2cb9922466589f2">tabfree</a></div><div class="ttdeci">int tabfree(struct tabprm *tab)</div><div class="ttdoc">Destructor for the tabprm struct. </div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">TABERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> tab.h:522</div></div>
-<div class="ttc" id="structtabprm_html_a71057a73168d71019b0caaa203fe5a05"><div class="ttname"><a href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">tabprm::set_M</a></div><div class="ttdeci">int set_M</div><div class="ttdef"><b>Definition:</b> tab.h:569</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda9d77712eeed3ab7d2bf25e5251c9451b">TABERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> tab.h:520</div></div>
+<div class="ttc" id="structtabprm_html_a71057a73168d71019b0caaa203fe5a05"><div class="ttname"><a href="structtabprm.html#a71057a73168d71019b0caaa203fe5a05">tabprm::set_M</a></div><div class="ttdeci">int set_M</div><div class="ttdef"><b>Definition:</b> tab.h:567</div></div>
 <div class="ttc" id="tab_8h_html_abb7920acdfb83179d3bac65035144c02"><div class="ttname"><a href="tab_8h.html#abb7920acdfb83179d3bac65035144c02">tabini</a></div><div class="ttdeci">int tabini(int alloc, int M, const int K[], struct tabprm *tab)</div><div class="ttdoc">Default constructor for the tabprm struct. </div></div>
 <div class="ttc" id="tab_8h_html_a519e8e4503f7c41c0f99e8597171c97f"><div class="ttname"><a href="tab_8h.html#a519e8e4503f7c41c0f99e8597171c97f">tabset</a></div><div class="ttdeci">int tabset(struct tabprm *tab)</div><div class="ttdoc">Setup routine for the tabprm struct. </div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">TABERR_BAD_PARAMS</a></div><div class="ttdef"><b>Definition:</b> tab.h:519</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda09c02b9ffff721d3f2dd64c318d7c38b">TABERR_BAD_PARAMS</a></div><div class="ttdef"><b>Definition:</b> tab.h:517</div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
-<div class="ttc" id="structtabprm_html_a8572ca79676edfe06b3d1df00f93384b"><div class="ttname"><a href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">tabprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> tab.h:568</div></div>
-<div class="ttc" id="structtabprm_html_abf7f932bcefad1f0e371167971018965"><div class="ttname"><a href="structtabprm.html#abf7f932bcefad1f0e371167971018965">tabprm::m_crval</a></div><div class="ttdeci">double * m_crval</div><div class="ttdef"><b>Definition:</b> tab.h:571</div></div>
-<div class="ttc" id="structtabprm_html_a29505cdf78fb12ca5951295fc16f4819"><div class="ttname"><a href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">tabprm::map</a></div><div class="ttdeci">int * map</div><div class="ttdef"><b>Definition:</b> tab.h:538</div></div>
-<div class="ttc" id="structtabprm_html_acee8b63d1691f1f531a1bb4854c6bf4c"><div class="ttname"><a href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">tabprm::coord</a></div><div class="ttdeci">double * coord</div><div class="ttdef"><b>Definition:</b> tab.h:546</div></div>
+<div class="ttc" id="structtabprm_html_a8572ca79676edfe06b3d1df00f93384b"><div class="ttname"><a href="structtabprm.html#a8572ca79676edfe06b3d1df00f93384b">tabprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> tab.h:566</div></div>
+<div class="ttc" id="structtabprm_html_abf7f932bcefad1f0e371167971018965"><div class="ttname"><a href="structtabprm.html#abf7f932bcefad1f0e371167971018965">tabprm::m_crval</a></div><div class="ttdeci">double * m_crval</div><div class="ttdef"><b>Definition:</b> tab.h:569</div></div>
+<div class="ttc" id="structtabprm_html_a29505cdf78fb12ca5951295fc16f4819"><div class="ttname"><a href="structtabprm.html#a29505cdf78fb12ca5951295fc16f4819">tabprm::map</a></div><div class="ttdeci">int * map</div><div class="ttdef"><b>Definition:</b> tab.h:536</div></div>
+<div class="ttc" id="structtabprm_html_acee8b63d1691f1f531a1bb4854c6bf4c"><div class="ttname"><a href="structtabprm.html#acee8b63d1691f1f531a1bb4854c6bf4c">tabprm::coord</a></div><div class="ttdeci">double * coord</div><div class="ttdef"><b>Definition:</b> tab.h:544</div></div>
 <div class="ttc" id="tab_8h_html_a87b3a2a84bab396a528af8382ce9ad04"><div class="ttname"><a href="tab_8h.html#a87b3a2a84bab396a528af8382ce9ad04">tabcpy</a></div><div class="ttdeci">int tabcpy(int alloc, const struct tabprm *tabsrc, struct tabprm *tabdst)</div><div class="ttdoc">Copy routine for the tabprm struct. </div></div>
-<div class="ttc" id="structtabprm_html_a5c62c8fd3dc6e9a3c928be9a1ed81ca1"><div class="ttname"><a href="structtabprm.html#a5c62c8fd3dc6e9a3c928be9a1ed81ca1">tabprm::m_K</a></div><div class="ttdeci">int * m_K</div><div class="ttdef"><b>Definition:</b> tab.h:570</div></div>
-<div class="ttc" id="structtabprm_html_a27a7b0b12492e1b5f19242ec0eff8e08"><div class="ttname"><a href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">tabprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> tab.h:529</div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">TABERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> tab.h:516</div></div>
+<div class="ttc" id="structtabprm_html_a5c62c8fd3dc6e9a3c928be9a1ed81ca1"><div class="ttname"><a href="structtabprm.html#a5c62c8fd3dc6e9a3c928be9a1ed81ca1">tabprm::m_K</a></div><div class="ttdeci">int * m_K</div><div class="ttdef"><b>Definition:</b> tab.h:568</div></div>
+<div class="ttc" id="structtabprm_html_a27a7b0b12492e1b5f19242ec0eff8e08"><div class="ttname"><a href="structtabprm.html#a27a7b0b12492e1b5f19242ec0eff8e08">tabprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> tab.h:527</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda42a664a8df3b0a485f49eb0e7c8108cd">TABERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> tab.h:514</div></div>
 <div class="ttc" id="tab_8h_html_a824d1e7c8fea5e5918a8555df39aa5b7"><div class="ttname"><a href="tab_8h.html#a824d1e7c8fea5e5918a8555df39aa5b7">tab_errmsg</a></div><div class="ttdeci">const char * tab_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
-<div class="ttc" id="structtabprm_html_a77130658a6e330e0edba348d1dc7edf2"><div class="ttname"><a href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">tabprm::delta</a></div><div class="ttdeci">double * delta</div><div class="ttdef"><b>Definition:</b> tab.h:558</div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">TABERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> tab.h:517</div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2ed"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">tab_errmsg_enum</a></div><div class="ttdeci">tab_errmsg_enum</div><div class="ttdef"><b>Definition:</b> tab.h:515</div></div>
-<div class="ttc" id="structtabprm_html_a1ce970a854c9976d8b3e4e26df102b3b"><div class="ttname"><a href="structtabprm.html#a1ce970a854c9976d8b3e4e26df102b3b">tabprm::m_index</a></div><div class="ttdeci">double ** m_index</div><div class="ttdef"><b>Definition:</b> tab.h:571</div></div>
+<div class="ttc" id="structtabprm_html_a77130658a6e330e0edba348d1dc7edf2"><div class="ttname"><a href="structtabprm.html#a77130658a6e330e0edba348d1dc7edf2">tabprm::delta</a></div><div class="ttdeci">double * delta</div><div class="ttdef"><b>Definition:</b> tab.h:556</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edaa0705873598b9fa5bf3b9afbc598a6bc">TABERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> tab.h:515</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2ed"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2ed">tab_errmsg_enum</a></div><div class="ttdeci">tab_errmsg_enum</div><div class="ttdef"><b>Definition:</b> tab.h:513</div></div>
+<div class="ttc" id="structtabprm_html_a1ce970a854c9976d8b3e4e26df102b3b"><div class="ttname"><a href="structtabprm.html#a1ce970a854c9976d8b3e4e26df102b3b">tabprm::m_index</a></div><div class="ttdeci">double ** m_index</div><div class="ttdef"><b>Definition:</b> tab.h:569</div></div>
 <div class="ttc" id="tab_8h_html_a6b3768349e9a5e925aab24effddc584f"><div class="ttname"><a href="tab_8h.html#a6b3768349e9a5e925aab24effddc584f">tabprt</a></div><div class="ttdeci">int tabprt(const struct tabprm *tab)</div><div class="ttdoc">Print routine for the tabprm struct. </div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">TABERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> tab.h:518</div></div>
-<div class="ttc" id="structtabprm_html_a36adcba673ae8ede86b80f7e5111e0ec"><div class="ttname"><a href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">tabprm::m_N</a></div><div class="ttdeci">int m_N</div><div class="ttdef"><b>Definition:</b> tab.h:568</div></div>
-<div class="ttc" id="structtabprm_html_a9d2c36c4cfb17532ba5f08cbd90a5785"><div class="ttname"><a href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">tabprm::m_map</a></div><div class="ttdeci">int * m_map</div><div class="ttdef"><b>Definition:</b> tab.h:570</div></div>
-<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">TABERR_BAD_X</a></div><div class="ttdef"><b>Definition:</b> tab.h:520</div></div>
-<div class="ttc" id="structtabprm_html_afa6969fd752bb4e3823e8facf86bbd60"><div class="ttname"><a href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">tabprm::index</a></div><div class="ttdeci">double ** index</div><div class="ttdef"><b>Definition:</b> tab.h:544</div></div>
-<div class="ttc" id="structtabprm_html_a43276034ba8e0954a6e2632117cd0afd"><div class="ttname"><a href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">tabprm::m_indxs</a></div><div class="ttdeci">double ** m_indxs</div><div class="ttdef"><b>Definition:</b> tab.h:571</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2eda1e503c059ddfe8f4aca37d335f7271f8">TABERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> tab.h:516</div></div>
+<div class="ttc" id="structtabprm_html_a36adcba673ae8ede86b80f7e5111e0ec"><div class="ttname"><a href="structtabprm.html#a36adcba673ae8ede86b80f7e5111e0ec">tabprm::m_N</a></div><div class="ttdeci">int m_N</div><div class="ttdef"><b>Definition:</b> tab.h:566</div></div>
+<div class="ttc" id="structtabprm_html_a9d2c36c4cfb17532ba5f08cbd90a5785"><div class="ttname"><a href="structtabprm.html#a9d2c36c4cfb17532ba5f08cbd90a5785">tabprm::m_map</a></div><div class="ttdeci">int * m_map</div><div class="ttdef"><b>Definition:</b> tab.h:568</div></div>
+<div class="ttc" id="tab_8h_html_abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297"><div class="ttname"><a href="tab_8h.html#abd68f3b717dcf0fcd0078b9a4204f2edac6f6b4c9eca2bd36b0bf2f89309f9297">TABERR_BAD_X</a></div><div class="ttdef"><b>Definition:</b> tab.h:518</div></div>
+<div class="ttc" id="structtabprm_html_afa6969fd752bb4e3823e8facf86bbd60"><div class="ttname"><a href="structtabprm.html#afa6969fd752bb4e3823e8facf86bbd60">tabprm::index</a></div><div class="ttdeci">double ** index</div><div class="ttdef"><b>Definition:</b> tab.h:542</div></div>
+<div class="ttc" id="structtabprm_html_a43276034ba8e0954a6e2632117cd0afd"><div class="ttname"><a href="structtabprm.html#a43276034ba8e0954a6e2632117cd0afd">tabprm::m_indxs</a></div><div class="ttdeci">double ** m_indxs</div><div class="ttdef"><b>Definition:</b> tab.h:569</div></div>
 <div class="ttc" id="tab_8h_html_a006d6e8cb373e0dc3e9ccf128adb9411"><div class="ttname"><a href="tab_8h.html#a006d6e8cb373e0dc3e9ccf128adb9411">tabx2s</a></div><div class="ttdeci">int tabx2s(struct tabprm *tab, int ncoord, int nelem, const double x[], double world[], int stat[])</div><div class="ttdoc">Pixel-to-world transformation. </div></div>
-<div class="ttc" id="structtabprm_html_adc7e170dba47f4e6d40afabfdaecfddd"><div class="ttname"><a href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">tabprm::sense</a></div><div class="ttdeci">int * sense</div><div class="ttdef"><b>Definition:</b> tab.h:554</div></div>
+<div class="ttc" id="structtabprm_html_adc7e170dba47f4e6d40afabfdaecfddd"><div class="ttname"><a href="structtabprm.html#adc7e170dba47f4e6d40afabfdaecfddd">tabprm::sense</a></div><div class="ttdeci">int * sense</div><div class="ttdef"><b>Definition:</b> tab.h:552</div></div>
 <div class="ttc" id="tab_8h_html_ae403ff0b740916989c7386728df001c8"><div class="ttname"><a href="tab_8h.html#ae403ff0b740916989c7386728df001c8">tabmem</a></div><div class="ttdeci">int tabmem(struct tabprm *tab)</div><div class="ttdoc">Acquire tabular memory. </div></div>
-<div class="ttc" id="structtabprm_html"><div class="ttname"><a href="structtabprm.html">tabprm</a></div><div class="ttdoc">Tabular transformation parameters. </div><div class="ttdef"><b>Definition:</b> tab.h:526</div></div>
-<div class="ttc" id="structtabprm_html_ac05f0ad36debbabf441ca8d8aac59a96"><div class="ttname"><a href="structtabprm.html#ac05f0ad36debbabf441ca8d8aac59a96">tabprm::m_coord</a></div><div class="ttdeci">double * m_coord</div><div class="ttdef"><b>Definition:</b> tab.h:571</div></div>
-<div class="ttc" id="structtabprm_html_aade738f7269d71d34fdf3d52f1c61d88"><div class="ttname"><a href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">tabprm::extrema</a></div><div class="ttdeci">double * extrema</div><div class="ttdef"><b>Definition:</b> tab.h:559</div></div>
-<div class="ttc" id="structtabprm_html_af00d4a4e089737a799fb91e1a68040dc"><div class="ttname"><a href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">tabprm::K</a></div><div class="ttdeci">int * K</div><div class="ttdef"><b>Definition:</b> tab.h:534</div></div>
-<div class="ttc" id="structtabprm_html_a0777c3de4601874221031a8ad37eff95"><div class="ttname"><a href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">tabprm::padding</a></div><div class="ttdeci">int padding</div><div class="ttdef"><b>Definition:</b> tab.h:553</div></div>
-<div class="ttc" id="structtabprm_html_a3df12930fa5f38dcfc71aece8aed816c"><div class="ttname"><a href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">tabprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> tab.h:564</div></div>
-<div class="ttc" id="structtabprm_html_a64b8a2eaba4116cc647a435108269be3"><div class="ttname"><a href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">tabprm::M</a></div><div class="ttdeci">int M</div><div class="ttdef"><b>Definition:</b> tab.h:533</div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="structtabprm_html_a1ef3d0af652bb59fb838a6b01bb133e2"><div class="ttname"><a href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">tabprm::crval</a></div><div class="ttdeci">double * crval</div><div class="ttdef"><b>Definition:</b> tab.h:541</div></div>
+<div class="ttc" id="structtabprm_html"><div class="ttname"><a href="structtabprm.html">tabprm</a></div><div class="ttdoc">Tabular transformation parameters. </div><div class="ttdef"><b>Definition:</b> tab.h:524</div></div>
+<div class="ttc" id="structtabprm_html_ac05f0ad36debbabf441ca8d8aac59a96"><div class="ttname"><a href="structtabprm.html#ac05f0ad36debbabf441ca8d8aac59a96">tabprm::m_coord</a></div><div class="ttdeci">double * m_coord</div><div class="ttdef"><b>Definition:</b> tab.h:569</div></div>
+<div class="ttc" id="structtabprm_html_aade738f7269d71d34fdf3d52f1c61d88"><div class="ttname"><a href="structtabprm.html#aade738f7269d71d34fdf3d52f1c61d88">tabprm::extrema</a></div><div class="ttdeci">double * extrema</div><div class="ttdef"><b>Definition:</b> tab.h:557</div></div>
+<div class="ttc" id="structtabprm_html_af00d4a4e089737a799fb91e1a68040dc"><div class="ttname"><a href="structtabprm.html#af00d4a4e089737a799fb91e1a68040dc">tabprm::K</a></div><div class="ttdeci">int * K</div><div class="ttdef"><b>Definition:</b> tab.h:532</div></div>
+<div class="ttc" id="structtabprm_html_a0777c3de4601874221031a8ad37eff95"><div class="ttname"><a href="structtabprm.html#a0777c3de4601874221031a8ad37eff95">tabprm::padding</a></div><div class="ttdeci">int padding</div><div class="ttdef"><b>Definition:</b> tab.h:551</div></div>
+<div class="ttc" id="structtabprm_html_a3df12930fa5f38dcfc71aece8aed816c"><div class="ttname"><a href="structtabprm.html#a3df12930fa5f38dcfc71aece8aed816c">tabprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> tab.h:562</div></div>
+<div class="ttc" id="structtabprm_html_a64b8a2eaba4116cc647a435108269be3"><div class="ttname"><a href="structtabprm.html#a64b8a2eaba4116cc647a435108269be3">tabprm::M</a></div><div class="ttdeci">int M</div><div class="ttdef"><b>Definition:</b> tab.h:531</div></div>
+<div class="ttc" id="structtabprm_html_a1ef3d0af652bb59fb838a6b01bb133e2"><div class="ttname"><a href="structtabprm.html#a1ef3d0af652bb59fb838a6b01bb133e2">tabprm::crval</a></div><div class="ttdeci">double * crval</div><div class="ttdef"><b>Definition:</b> tab.h:539</div></div>
 <div class="ttc" id="tab_8h_html_aaded7db92aa2758198b33f35f5f18d6e"><div class="ttname"><a href="tab_8h.html#aaded7db92aa2758198b33f35f5f18d6e">tabs2x</a></div><div class="ttdeci">int tabs2x(struct tabprm *tab, int ncoord, int nelem, const double world[], double x[], int stat[])</div><div class="ttdoc">World-to-pixel transformation. </div></div>
-<div class="ttc" id="structtabprm_html_a48cbe51ee26f0615036308fe72768403"><div class="ttname"><a href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">tabprm::p0</a></div><div class="ttdeci">int * p0</div><div class="ttdef"><b>Definition:</b> tab.h:557</div></div>
+<div class="ttc" id="structtabprm_html_a48cbe51ee26f0615036308fe72768403"><div class="ttname"><a href="structtabprm.html#a48cbe51ee26f0615036308fe72768403">tabprm::p0</a></div><div class="ttdeci">int * p0</div><div class="ttdef"><b>Definition:</b> tab.h:555</div></div>
 <div class="ttc" id="tab_8h_html_a61ff724eb7c412e42da7362a5d7a093d"><div class="ttname"><a href="tab_8h.html#a61ff724eb7c412e42da7362a5d7a093d">tabcmp</a></div><div class="ttdeci">int tabcmp(int cmp, double tol, const struct tabprm *tab1, const struct tabprm *tab2, int *equal)</div><div class="ttdoc">Compare two tabprm structs for equality. </div></div>
-<div class="ttc" id="structtabprm_html_ae19ca756ab2190f5d5ced59ad0a1a4bc"><div class="ttname"><a href="structtabprm.html#ae19ca756ab2190f5d5ced59ad0a1a4bc">tabprm::m_M</a></div><div class="ttdeci">int m_M</div><div class="ttdef"><b>Definition:</b> tab.h:568</div></div>
-<div class="ttc" id="structtabprm_html_a4263d73c71a9a5e77643f572c483b7ab"><div class="ttname"><a href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">tabprm::nc</a></div><div class="ttdeci">int nc</div><div class="ttdef"><b>Definition:</b> tab.h:551</div></div>
+<div class="ttc" id="structtabprm_html_ae19ca756ab2190f5d5ced59ad0a1a4bc"><div class="ttname"><a href="structtabprm.html#ae19ca756ab2190f5d5ced59ad0a1a4bc">tabprm::m_M</a></div><div class="ttdeci">int m_M</div><div class="ttdef"><b>Definition:</b> tab.h:566</div></div>
+<div class="ttc" id="structtabprm_html_a4263d73c71a9a5e77643f572c483b7ab"><div class="ttname"><a href="structtabprm.html#a4263d73c71a9a5e77643f572c483b7ab">tabprm::nc</a></div><div class="ttdeci">int nc</div><div class="ttdef"><b>Definition:</b> tab.h:549</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/testing.html b/html/testing.html
index ba0716b..6f903b4 100644
--- a/html/testing.html
+++ b/html/testing.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -76,7 +76,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/threads.html b/html/threads.html
index 72509ab..94197fe 100644
--- a/html/threads.html
+++ b/html/threads.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -45,7 +45,7 @@
 <div class="title">Thread-safety </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p>With the following exceptions WCSLIB 4.25.1 is thread-safe:</p>
+<div class="textblock"><p>With the following exceptions WCSLIB 5.0 is thread-safe:</p>
 <ul>
 <li>The C code generated by Flex is not re-entrant. Flex does have the capacity for producing re-entrant scanners but they have a different API. This may be handled by a compile-time option in future but in the meantime calls to the header parsers should be serialized via a mutex.</li>
 <li>The low-level functions <a class="el" href="wcs_8h.html#a42b2578d76ace7ca6114d82b7ae46a89" title="Memory allocation for PVi_ma. ">wcsnpv()</a> and <a class="el" href="wcs_8h.html#ae790c9ce6c9b7a4845cf1c3c97b1e97a" title="Memory allocation for PSi_ma. ">wcsnps()</a> are not thread-safe but within the library itself they are only used by the Flex scanners <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</ [...]
@@ -55,7 +55,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/vector.html b/html/vector.html
index 9d17f3b..0563c9c 100644
--- a/html/vector.html
+++ b/html/vector.html
@@ -37,7 +37,7 @@
   </div>
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="index.html">WCSLIB 4.25.1 and PGSBOX 4.25.1</a></li>  </ul>
+<li class="navelem"><a class="el" href="index.html">WCSLIB 5.0 and PGSBOX 5.0</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -108,7 +108,7 @@ Vector strides</h1>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:20 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcs_8h.html b/html/wcs_8h.html
index 73a852c..7a6f4b9 100644
--- a/html/wcs_8h.html
+++ b/html/wcs_8h.html
@@ -60,8 +60,6 @@
 <div class="textblock"><code>#include "<a class="el" href="lin_8h_source.html">lin.h</a>"</code><br />
 <code>#include "<a class="el" href="cel_8h_source.html">cel.h</a>"</code><br />
 <code>#include "<a class="el" href="spc_8h_source.html">spc.h</a>"</code><br />
-<code>#include "<a class="el" href="tab_8h_source.html">tab.h</a>"</code><br />
-<code>#include "<a class="el" href="wcserr_8h_source.html">wcserr.h</a>"</code><br />
 </div>
 <p><a href="wcs_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
@@ -208,6 +206,8 @@ Functions</h2></td></tr>
 <tr class="memitem:a57975833fe0588eb7c7b6d79f13a7693"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="wcs_8h.html#a57975833fe0588eb7c7b6d79f13a7693">wcssptr</a> (struct <a class="el" href="structwcsprm.html">wcsprm</a> *wcs, int *i, char ctype[9])</td></tr>
 <tr class="memdesc:a57975833fe0588eb7c7b6d79f13a7693"><td class="mdescLeft"> </td><td class="mdescRight">Spectral axis translation.  <a href="#a57975833fe0588eb7c7b6d79f13a7693">More...</a><br /></td></tr>
 <tr class="separator:a57975833fe0588eb7c7b6d79f13a7693"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a319c3945e70d0bb10587e4925b589229"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcslib_version</a> (int vers[3])</td></tr>
+<tr class="separator:a319c3945e70d0bb10587e4925b589229"><td class="memSeparator" colspan="2"> </td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
 Variables</h2></td></tr>
@@ -223,6 +223,7 @@ Variables</h2></td></tr>
 <p><a class="el" href="wcs_8h.html#a27d3dd209db3e76cf4c50f48c01ba986" title="Pixel-to-world transformation. ">wcsp2s()</a> and <a class="el" href="wcs_8h.html#a60673d05a3513659ac848a9cb3d0cb07" title="World-to-pixel transformation. ">wcss2p()</a> implement the WCS world coordinate transformations. In fact, they are high level driver routines for the WCS linear, logarithmic, celestial, spectral and tabular transformation routines described in <a class="el" href="lin_8h.html">lin.h</a>, <a [...]
 <p>Given either the celestial longitude or latitude plus an element of the pixel coordinate a hybrid routine, <a class="el" href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81" title="Hybrid coordinate transformation. ">wcsmix()</a>, iteratively solves for the unknown elements.</p>
 <p><a class="el" href="wcs_8h.html#a57975833fe0588eb7c7b6d79f13a7693" title="Spectral axis translation. ">wcssptr()</a> translates the spectral axis in a wcsprm struct. For example, a '<code><b>FREQ</b></code>' axis may be translated into <code><b>'ZOPT-F2W'</b></code> and vice versa.</p>
+<p><a class="el" href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcslib_version()</a> returns the WCSLIB version number.</p>
 <p><b>Quadcube projections:</b> <br />
  The quadcube projections (<code><b>TSC</b></code>, <code><b>CSC</b></code>, <code><b>QSC</b></code>) may be represented in FITS in either of two ways:</p>
 <p>a: The six faces may be laid out in one plane and numbered as follows: </p><div class="fragment"><div class="line">         0</div>
@@ -1351,6 +1352,22 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 
 </div>
 </div>
+<a class="anchor" id="a319c3945e70d0bb10587e4925b589229"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* wcslib_version </td>
+          <td>(</td>
+          <td class="paramtype">int </td>
+          <td class="paramname"><em>vers</em>[3]</td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
 <h2 class="groupheader">Variable Documentation</h2>
 <a class="anchor" id="ad16bd8db875ee05b014429efdc1f3471"></a>
 <div class="memitem">
@@ -1368,7 +1385,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcs_8h_source.html b/html/wcs_8h_source.html
index dbda8f9..fdb46a7 100644
--- a/html/wcs_8h_source.html
+++ b/html/wcs_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcs_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcs.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcs.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -132,1689 +132,1792 @@
 <div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">* wcssptr() translates the spectral axis in a wcsprm struct.  For example, a</span></div>
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">* 'FREQ' axis may be translated into 'ZOPT-F2W' and vice versa.</span></div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">* Quadcube projections:</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">* ---------------------</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">*   The quadcube projections (TSC, CSC, QSC) may be represented in FITS in</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">*   either of two ways:</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">*     a: The six faces may be laid out in one plane and numbered as follows:</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">* wcslib_version() returns the WCSLIB version number.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">* Quadcube projections:</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">* ---------------------</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">*   The quadcube projections (TSC, CSC, QSC) may be represented in FITS in</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">*   either of two ways:</span></div>
 <div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">=                                 0</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">=</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">=                        4  3  2  1  4  3  2</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">*     a: The six faces may be laid out in one plane and numbered as follows:</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">=                                 0</span></div>
 <div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">=</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">=                                 5</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">*        Faces 2, 3 and 4 may appear on one side or the other (or both).  The</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*        world-to-pixel routines map faces 2, 3 and 4 to the left but the</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*        pixel-to-world routines accept them on either side.</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">*     b: The "COBE" convention in which the six faces are stored in a</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">*        three-dimensional structure using a CUBEFACE axis indexed from</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">*        0 to 5 as above.</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">*   These routines support both methods; wcsset() determines which is being</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">*   used by the presence or absence of a CUBEFACE axis in ctype[].  wcsp2s()</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">*   and wcss2p() translate the CUBEFACE axis representation to the single</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">*   plane representation understood by the lower-level WCSLIB projection</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*   routines.</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">* wcsini() - Default constructor for the wcsprm struct</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">* ----------------------------------------------------</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">* wcsini() optionally allocates memory for arrays in a wcsprm struct and sets</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">* all members of the struct to default values.  Memory is allocated for up to</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* NPVMAX PVi_ma keywords or NPSMAX PSi_ma keywords per WCS representation.</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">* These may be changed via wcsnpv() and wcsnps() before wcsini() is called.</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* PLEASE NOTE: every wcsprm struct should be initialized by wcsini(), possibly</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">* repeatedly.  On the first invokation, and only the first invokation,</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">* wcsprm::flag must be set to -1 to initialize memory management, regardless</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">* of whether wcsini() will actually be used to allocate memory.</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for the</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">*                       crpix, etc. arrays.</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*                       If false, it is assumed that pointers to these arrays</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*                       have been set by the user except if they are null</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*                       pointers in which case memory will be allocated for</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*                       them regardless.  (In other words, setting alloc true</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                       saves having to initalize these pointers to zero.)</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*   naxis     int       The number of world coordinate axes.  This is used to</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">*                       determine the length of the various wcsprm vectors and</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">*                       matrices and therefore the amount of memory to</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">*                       allocate for them.</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">*                       Note that, in order to initialize memory management,</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">*                       wcsprm::flag should be set to -1 when wcs is</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">*                       initialized for the first time (memory leaks may</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">*                       result if it had already been initialized).</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">* wcsnpv() - Memory allocation for PVi_ma</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">* ---------------------------------------</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">* wcsnpv() changes the value of NPVMAX (default 64).  This global variable</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">* controls the number of PVi_ma keywords that wcsini() should allocate space</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">* for.</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">* PLEASE NOTE: This function is not thread-safe.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">=                        4  3  2  1  4  3  2</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">=</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">=                                 5</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">*        Faces 2, 3 and 4 may appear on one side or the other (or both).  The</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">*        world-to-pixel routines map faces 2, 3 and 4 to the left but the</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">*        pixel-to-world routines accept them on either side.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">*     b: The "COBE" convention in which the six faces are stored in a</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">*        three-dimensional structure using a CUBEFACE axis indexed from</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">*        0 to 5 as above.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">*   These routines support both methods; wcsset() determines which is being</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">*   used by the presence or absence of a CUBEFACE axis in ctype[].  wcsp2s()</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">*   and wcss2p() translate the CUBEFACE axis representation to the single</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">*   plane representation understood by the lower-level WCSLIB projection</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">*   routines.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">* wcsini() - Default constructor for the wcsprm struct</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">* wcsini() optionally allocates memory for arrays in a wcsprm struct and sets</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">* all members of the struct to default values.  Memory is allocated for up to</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">* NPVMAX PVi_ma keywords or NPSMAX PSi_ma keywords per WCS representation.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">* These may be changed via wcsnpv() and wcsnps() before wcsini() is called.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">* PLEASE NOTE: every wcsprm struct should be initialized by wcsini(), possibly</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">* repeatedly.  On the first invokation, and only the first invokation,</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">* wcsprm::flag must be set to -1 to initialize memory management, regardless</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">* of whether wcsini() will actually be used to allocate memory.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">*   alloc     int       If true, allocate memory unconditionally for the</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">*                       crpix, etc. arrays.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">*                       If false, it is assumed that pointers to these arrays</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">*                       have been set by the user except if they are null</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">*                       pointers in which case memory will be allocated for</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">*                       them regardless.  (In other words, setting alloc true</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">*                       saves having to initalize these pointers to zero.)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">*   naxis     int       The number of world coordinate axes.  This is used to</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">*                       determine the length of the various wcsprm vectors and</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">*                       matrices and therefore the amount of memory to</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">*                       allocate for them.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">*                       Note that, in order to initialize memory management,</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">*                       wcsprm::flag should be set to -1 when wcs is</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">*                       initialized for the first time (memory leaks may</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">*                       result if it had already been initialized).</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">* wcsnpv() - Memory allocation for PVi_ma</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">* ---------------------------------------</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">* wcsnpv() changes the value of NPVMAX (default 64).  This global variable</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">* controls the number of PVi_ma keywords that wcsini() should allocate space</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">* for.</span></div>
 <div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*   n         int       Value of NPVMAX; ignored if < 0.</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*             int       Current value of NPVMAX.</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">* wcsnps() - Memory allocation for PSi_ma</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">* ---------------------------------------</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">* wcsnps() changes the values of NPSMAX (default 8).  This global variable</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">* controls the number of PSi_ma keywords that wcsini() should allocate space</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">* for.</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">* PLEASE NOTE: This function is not thread-safe.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">* PLEASE NOTE: This function is not thread-safe.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*   n         int       Value of NPVMAX; ignored if < 0.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*             int       Current value of NPVMAX.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">* wcsnps() - Memory allocation for PSi_ma</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">* ---------------------------------------</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">* wcsnps() changes the values of NPSMAX (default 8).  This global variable</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">* controls the number of PSi_ma keywords that wcsini() should allocate space</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">* for.</span></div>
 <div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*   n         int       Value of NPSMAX; ignored if < 0.</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*             int       Current value of NPSMAX.</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">* wcssub() - Subimage extraction routine for the wcsprm struct</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">* ------------------------------------------------------------</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">* wcssub() extracts the coordinate description for a subimage from a wcsprm</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">* struct.  It does a deep copy, using wcsini() to allocate memory for its</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">* arrays if required.  Only the "information to be provided" part of the</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">* struct is extracted; a call to wcsset() is required to set up the remainder.</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">* The world coordinate system of the subimage must be separable in the sense</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">* that the world coordinates at any point in the subimage must depend only on</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">* the pixel coordinates of the axes extracted.  In practice, this means that</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">* the PCi_ja matrix of the original image must not contain non-zero</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">* off-diagonal terms that associate any of the subimage axes with any of the</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">* non-subimage axes.</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">* Note that while the required elements of the tabprm array are extracted, the</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">* wtbarr array is not.  (Thus it is not appropriate to call wcssub() after</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">* wcstab() but before filling the tabprm structs - refer to wcshdr.h.)</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">* wcssub() can also add axes to a wcsprm struct.  The new axes will be created</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">* using the defaults set by wcsini() which produce a simple, unnamed, linear</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">* axis with world coordinate equal to the pixel coordinate.  These default</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">* values can be changed afterwards, before invoking wcsset().</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*   alloc     int       If true, allocate memory for the crpix, etc. arrays in</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*                       the destination.  Otherwise, it is assumed that</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*                       pointers to these arrays have been set by the user</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*                       except if they are null pointers in which case memory</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*                       will be allocated for them regardless.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*   wcssrc    const struct wcsprm*</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*                       Struct to extract from.</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*   nsub      int*</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*   axes      int[]     Vector of length *nsub containing the image axis</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*                       numbers (1-relative) to extract.  Order is</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*                       significant; axes[0] is the axis number of the input</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*                       image that corresponds to the first axis in the</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">*                       subimage, etc.</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">*                       Use an axis number of 0 to create a new axis using</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">*                       the defaults set by wcsini().  They can be changed</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">*                       later.</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">*                       nsub (the pointer) may be set to zero, and so also may</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">*                       *nsub, which is interpreted to mean all axes in the</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*                       input image; the number of axes will be returned if</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*                       nsub != 0x0.  axes itself (the pointer) may be set to</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">*                       zero to indicate the first *nsub axes in their</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">*                       original order.</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*                       Set both nsub (or *nsub) and axes to zero to do a deep</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*                       copy of one wcsprm struct to another.</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*                       Subimage extraction by coordinate axis type may be</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*                       done by setting the elements of axes[] to the</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*                       following special preprocessor macro values:</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*                         WCSSUB_LONGITUDE: Celestial longitude.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*                         WCSSUB_LATITUDE:  Celestial latitude.</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">*                         WCSSUB_CUBEFACE:  Quadcube CUBEFACE axis.</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*                         WCSSUB_SPECTRAL:  Spectral axis.</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*                         WCSSUB_STOKES:    Stokes axis.</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*                       Refer to the notes (below) for further usage examples.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">* PLEASE NOTE: This function is not thread-safe.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*   n         int       Value of NPSMAX; ignored if < 0.</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*             int       Current value of NPSMAX.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">* wcssub() - Subimage extraction routine for the wcsprm struct</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">* ------------------------------------------------------------</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">* wcssub() extracts the coordinate description for a subimage from a wcsprm</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">* struct.  It does a deep copy, using wcsini() to allocate memory for its</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">* arrays if required.  Only the "information to be provided" part of the</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">* struct is extracted; a call to wcsset() is required to set up the remainder.</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">* The world coordinate system of the subimage must be separable in the sense</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">* that the world coordinates at any point in the subimage must depend only on</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">* the pixel coordinates of the axes extracted.  In practice, this means that</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">* the PCi_ja matrix of the original image must not contain non-zero</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">* off-diagonal terms that associate any of the subimage axes with any of the</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">* non-subimage axes.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">* Note that while the required elements of the tabprm array are extracted, the</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">* wtbarr array is not.  (Thus it is not appropriate to call wcssub() after</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">* wcstab() but before filling the tabprm structs - refer to wcshdr.h.)</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">* wcssub() can also add axes to a wcsprm struct.  The new axes will be created</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">* using the defaults set by wcsini() which produce a simple, unnamed, linear</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">* axis with world coordinate equal to the pixel coordinate.  These default</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">* values can be changed afterwards, before invoking wcsset().</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*   alloc     int       If true, allocate memory for the crpix, etc. arrays in</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*                       the destination.  Otherwise, it is assumed that</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*                       pointers to these arrays have been set by the user</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*                       except if they are null pointers in which case memory</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*                       will be allocated for them regardless.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*   wcssrc    const struct wcsprm*</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">*                       Struct to extract from.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">*   nsub      int*</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">*   axes      int[]     Vector of length *nsub containing the image axis</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*                       numbers (1-relative) to extract.  Order is</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">*                       significant; axes[0] is the axis number of the input</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">*                       image that corresponds to the first axis in the</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">*                       subimage, etc.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">*                       Use an axis number of 0 to create a new axis using</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">*                       the defaults set by wcsini().  They can be changed</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">*                       later.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*                       nsub (the pointer) may be set to zero, and so also may</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*                       *nsub, which is interpreted to mean all axes in the</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">*                       input image; the number of axes will be returned if</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">*                       nsub != 0x0.  axes itself (the pointer) may be set to</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*                       zero to indicate the first *nsub axes in their</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">*                       original order.</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*                       Set both nsub (or *nsub) and axes to zero to do a deep</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">*                       copy of one wcsprm struct to another.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*                       Subimage extraction by coordinate axis type may be</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">*                       done by setting the elements of axes[] to the</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*                       following special preprocessor macro values:</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">*                         WCSSUB_LONGITUDE: Celestial longitude.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*                         WCSSUB_LATITUDE:  Celestial latitude.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">*                         WCSSUB_CUBEFACE:  Quadcube CUBEFACE axis.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*                         WCSSUB_SPECTRAL:  Spectral axis.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">*                         WCSSUB_STOKES:    Stokes axis.</span></div>
 <div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*                       On return, *nsub will be set to the number of axes in</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*                       the subimage; this may be zero if there were no axes</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*                       of the required type(s) (in which case no memory will</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*                       be allocated).  axes[] will contain the axis numbers</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*                       that were extracted, or 0 for newly created axes.  The</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*                       vector length must be sufficient to contain all axis</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       numbers.  No checks are performed to verify that the</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*                       coordinate axes are consistent, this is done by</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*                       wcsset().</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*   wcsdst    struct wcsprm*</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*                       Struct describing the subimage.  wcsprm::flag should</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*                       be set to -1 if wcsdst was not previously initialized</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*                       (memory leaks may result if it was previously</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*                       initialized).</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*                        12: Invalid subimage specification.</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*                        13: Non-separable subimage coordinate system.</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*   Combinations of subimage axes of particular types may be extracted in the</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*   same order as they occur in the input image by combining preprocessor</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*   codes, for example</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">=     *nsub = 1;</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">=     axes[0] = WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_SPECTRAL;</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*   would extract the longitude, latitude, and spectral axes in the same order</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*   as the input image.  If one of each were present, *nsub = 3 would be</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*   returned.</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*   For convenience, WCSSUB_CELESTIAL is defined as the combination</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*   WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_CUBEFACE.</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*   The codes may also be negated to extract all but the types specified, for</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*   example</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">=     *nsub = 4;</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">=     axes[0] = WCSSUB_LONGITUDE;</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">=     axes[1] = WCSSUB_LATITUDE;</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">=     axes[2] = WCSSUB_CUBEFACE;</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">=     axes[3] = -(WCSSUB_SPECTRAL | WCSSUB_STOKES);</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*   The last of these specifies all axis types other than spectral or Stokes.</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*   Extraction is done in the order specified by axes[] a longitude axis (if</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*   present) would be extracted first (via axes[0]) and not subsequently (via</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*   axes[3]).  Likewise for the latitude and cubeface axes in this example.</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*   From the foregoing, it is apparent that the value of *nsub returned may be</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*   less than or greater than that given.  However, it will never exceed the</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*   number of axes in the input image (plus the number of newly-created axes</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*   if any were specified on input).</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">* wcscompare() - Compare two wcsprm structs for equality</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">* ------------------------------------------------------</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">* wcscompare() compares two wcsprm structs for equality.</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*   cmp       int       A bit field controlling the strictness of the</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*                       comparison.  When 0, all fields must be identical.</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*                       The following constants may be or'ed together to</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*                       relax the comparison:</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*                         WCSCOMPARE_ANCILLARY: Ignore ancillary keywords</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*                           that don't change the WCS transformation, such</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*                           as DATE-OBS or EQUINOX.</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*                         WCSCOMPARE_TILING: Ignore integral differences in</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*                           CRPIXja.  This is the 'tiling' condition, where</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*                           two WCSes cover different regions of the same</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*                           map projection and align on the same map grid.</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*                         WCSCOMPARE_CRPIX: Ignore any differences at all in</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*                           CRPIXja.  The two WCSes cover different regions</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*                           of the same map projection but may not align on</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*                           the same grid map.  Overrides WCSCOMPARE_TILING.</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*   tol       double    Tolerance for comparison of floating-point values.</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*                       For example, for tol == 1e-6, all floating-point</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*                       values in the structs must be equal to the first 6</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*                       decimal places.  A value of 0 implies exact equality.</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*   wcs1      const struct wcsprm*</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*                       The first wcsprm struct to compare.</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*   wcs2      const struct wcsprm*</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*                       The second wcsprm struct to compare.</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*   equal     int*      Non-zero when the given structs are equal.</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*                         1: Null pointer passed.</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">* wcscopy() macro - Copy routine for the wcsprm struct</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">* ----------------------------------------------------</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">* wcscopy() does a deep copy of one wcsprm struct to another.  As of</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">* WCSLIB 3.6, it is implemented as a preprocessor macro that invokes</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">* wcssub() with the nsub and axes pointers both set to zero.</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">* wcsfree() - Destructor for the wcsprm struct</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">* --------------------------------------------</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">* wcsfree() frees memory allocated for the wcsprm arrays by wcsini() and/or</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">* wcsset().  wcsini() records the memory it allocates and wcsfree() will only</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">* attempt to free this.</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">* PLEASE NOTE: wcsfree() must not be invoked on a wcsprm struct that was not</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">* initialized by wcsini().</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">* wcsprt() - Print routine for the wcsprm struct</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">* wcsprt() prints the contents of a wcsprm struct using wcsprintf().  Mainly</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">* intended for diagnostic purposes.</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*   wcs       const struct wcsprm*</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">* wcsperr() - Print error messages from a wcsprm struct</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">* -----------------------------------------------------</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">* wcsperr() prints the error message(s), if any, stored in a wcsprm struct,</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">* and the linprm, celprm, prjprm, spcprm, and tabprm structs that it contains.</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">* If there are no errors then nothing is printed.  It uses wcserr_prt(), q.v.</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*   wcs       const struct wcsprm*</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*   prefix    const char *</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*                       If non-NULL, each output line will be prefixed with</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*                       this string.</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">* wcsbchk() - Enable/disable bounds checking</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">* ------------------------------------------</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">* wcsbchk() is used to control bounds checking in the projection routines.</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment">* Note that wcsset() always enables bounds checking.  wcsbchk() will invoke</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">* wcsset() on the wcsprm struct beforehand if necessary.</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*   bounds    int       If bounds&1 then enable strict bounds checking for the</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">*                       spherical-to-Cartesian (s2x) transformation for the</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*                       AZP, SZP, TAN, SIN, ZPN, and COP projections.</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*                       If bounds&2 then enable strict bounds checking for the</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*                       Cartesian-to-spherical (x2s) transformation for the</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*                       HPX and XPH projections.</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*                       If bounds&4 then enable bounds checking on the native</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*                       coordinates returned by the Cartesian-to-spherical</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">*                       (x2s) transformations using prjchk().</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*                       Zero it to disable all checking.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*                       Refer to the notes (below) for further usage examples.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*                       On return, *nsub will be set to the number of axes in</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*                       the subimage; this may be zero if there were no axes</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*                       of the required type(s) (in which case no memory will</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*                       be allocated).  axes[] will contain the axis numbers</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       that were extracted, or 0 for newly created axes.  The</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*                       vector length must be sufficient to contain all axis</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*                       numbers.  No checks are performed to verify that the</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*                       coordinate axes are consistent, this is done by</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*                       wcsset().</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*   wcsdst    struct wcsprm*</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*                       Struct describing the subimage.  wcsprm::flag should</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*                       be set to -1 if wcsdst was not previously initialized</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*                       (memory leaks may result if it was previously</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*                       initialized).</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*                        12: Invalid subimage specification.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*                        13: Non-separable subimage coordinate system.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*   Combinations of subimage axes of particular types may be extracted in the</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*   same order as they occur in the input image by combining preprocessor</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*   codes, for example</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">=     *nsub = 1;</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">=     axes[0] = WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_SPECTRAL;</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*   would extract the longitude, latitude, and spectral axes in the same order</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*   as the input image.  If one of each were present, *nsub = 3 would be</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*   returned.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*   For convenience, WCSSUB_CELESTIAL is defined as the combination</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*   WCSSUB_LONGITUDE | WCSSUB_LATITUDE | WCSSUB_CUBEFACE.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*   The codes may also be negated to extract all but the types specified, for</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*   example</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">=     *nsub = 4;</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">=     axes[0] = WCSSUB_LONGITUDE;</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">=     axes[1] = WCSSUB_LATITUDE;</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">=     axes[2] = WCSSUB_CUBEFACE;</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">=     axes[3] = -(WCSSUB_SPECTRAL | WCSSUB_STOKES);</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*   The last of these specifies all axis types other than spectral or Stokes.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*   Extraction is done in the order specified by axes[] a longitude axis (if</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*   present) would be extracted first (via axes[0]) and not subsequently (via</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*   axes[3]).  Likewise for the latitude and cubeface axes in this example.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*   From the foregoing, it is apparent that the value of *nsub returned may be</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*   less than or greater than that given.  However, it will never exceed the</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*   number of axes in the input image (plus the number of newly-created axes</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*   if any were specified on input).</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">* wcscompare() - Compare two wcsprm structs for equality</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">* ------------------------------------------------------</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">* wcscompare() compares two wcsprm structs for equality.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*   cmp       int       A bit field controlling the strictness of the</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*                       comparison.  When 0, all fields must be identical.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*                       The following constants may be or'ed together to</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*                       relax the comparison:</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*                         WCSCOMPARE_ANCILLARY: Ignore ancillary keywords</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*                           that don't change the WCS transformation, such</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*                           as DATE-OBS or EQUINOX.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*                         WCSCOMPARE_TILING: Ignore integral differences in</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*                           CRPIXja.  This is the 'tiling' condition, where</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*                           two WCSes cover different regions of the same</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*                           map projection and align on the same map grid.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*                         WCSCOMPARE_CRPIX: Ignore any differences at all in</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*                           CRPIXja.  The two WCSes cover different regions</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*                           of the same map projection but may not align on</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*                           the same grid map.  Overrides WCSCOMPARE_TILING.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*   tol       double    Tolerance for comparison of floating-point values.</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*                       For example, for tol == 1e-6, all floating-point</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*                       values in the structs must be equal to the first 6</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*                       decimal places.  A value of 0 implies exact equality.</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*   wcs1      const struct wcsprm*</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*                       The first wcsprm struct to compare.</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*   wcs2      const struct wcsprm*</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*                       The second wcsprm struct to compare.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*   equal     int*      Non-zero when the given structs are equal.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*                         1: Null pointer passed.</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">* wcscopy() macro - Copy routine for the wcsprm struct</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">* wcscopy() does a deep copy of one wcsprm struct to another.  As of</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">* WCSLIB 3.6, it is implemented as a preprocessor macro that invokes</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">* wcssub() with the nsub and axes pointers both set to zero.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">* wcsfree() - Destructor for the wcsprm struct</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">* --------------------------------------------</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">* wcsfree() frees memory allocated for the wcsprm arrays by wcsini() and/or</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">* wcsset().  wcsini() records the memory it allocates and wcsfree() will only</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">* attempt to free this.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">* PLEASE NOTE: wcsfree() must not be invoked on a wcsprm struct that was not</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">* initialized by wcsini().</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">* wcsprt() - Print routine for the wcsprm struct</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">* wcsprt() prints the contents of a wcsprm struct using wcsprintf().  Mainly</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">* intended for diagnostic purposes.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">*   wcs       const struct wcsprm*</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">* wcsperr() - Print error messages from a wcsprm struct</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">* -----------------------------------------------------</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">* wcsperr() prints the error message(s), if any, stored in a wcsprm struct,</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">* and the linprm, celprm, prjprm, spcprm, and tabprm structs that it contains.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">* If there are no errors then nothing is printed.  It uses wcserr_prt(), q.v.</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*   wcs       const struct wcsprm*</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*   prefix    const char *</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*                       If non-NULL, each output line will be prefixed with</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">*                       this string.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">* wcsbchk() - Enable/disable bounds checking</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment">* ------------------------------------------</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">* wcsbchk() is used to control bounds checking in the projection routines.</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">* Note that wcsset() always enables bounds checking.  wcsbchk() will invoke</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">* wcsset() on the wcsprm struct beforehand if necessary.</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*   bounds    int       If bounds&1 then enable strict bounds checking for the</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*                       spherical-to-Cartesian (s2x) transformation for the</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*                       AZP, SZP, TAN, SIN, ZPN, and COP projections.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*                       If bounds&2 then enable strict bounds checking for the</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*                       Cartesian-to-spherical (x2s) transformation for the</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*                       HPX and XPH projections.</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">*                       If bounds&4 then enable bounds checking on the native</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*                       coordinates returned by the Cartesian-to-spherical</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*                       (x2s) transformations using prjchk().</span></div>
 <div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">* wcsset() - Setup routine for the wcsprm struct</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">* ----------------------------------------------</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">* wcsset() sets up a wcsprm struct according to information supplied within</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">* it (refer to the description of the wcsprm struct).</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">* wcsset() recognizes the NCP projection and converts it to the equivalent SIN</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">* projection and likewise translates GLS into SFL.  It also translates the</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">* AIPS spectral types ('FREQ-LSR', 'FELO-HEL', etc.), possibly changing the</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">* input header keywords wcsprm::ctype and/or wcsprm::specsys if necessary.</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">* wcsp2s() and wcss2p() if the wcsprm::flag is anything other than a</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">* predefined magic value.</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">*   wcsset() always enables strict bounds checking in the projection routines</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">*   (via a call to prjini()).  Use wcsbchk() to modify bounds-checking after</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">*   wcsset() is invoked.</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">* wcsp2s() - Pixel-to-world transformation</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">* ----------------------------------------</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">* wcsp2s() transforms pixel coordinates to world coordinates.</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*   ncoord,</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment">*                       nelem but containing wcs.naxis coordinate elements.</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*                       Thus nelem must equal or exceed the value of the</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*                       NAXIS keyword unless ncoord == 1, in which case nelem</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*                       is not used.</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*   pixcrd    const double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">*                       Array of intermediate world coordinates.  For</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">*                       celestial axes, imgcrd[][wcs.lng] and</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">*                       imgcrd[][wcs.lat] are the projected x-, and</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">*                       y-coordinates in pseudo "degrees".  For spectral</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">*                       axes, imgcrd[][wcs.spec] is the intermediate spectral</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">*                       coordinate, in SI units.</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">*   phi,theta double[ncoord]</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">*                       Longitude and latitude in the native coordinate system</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*                       of the projection [deg].</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*   world     double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">*                       Array of world coordinates.  For celestial axes,</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">*                       world[][wcs.lng] and world[][wcs.lat] are the</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">*                       celestial longitude and latitude [deg].  For</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">*                       spectral axes, imgcrd[][wcs.spec] is the intermediate</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">*                       spectral coordinate, in SI units.</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">*   stat      int[ncoord]</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">*                       Status return value for each coordinate:</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">*                        1+: A bit mask indicating invalid pixel coordinate</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*                            element(s).</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">*                         8: One or more of the pixel coordinates were</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">* wcss2p() - World-to-pixel transformation</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">* ----------------------------------------</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">* wcss2p() transforms world coordinates to pixel coordinates.</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">*   ncoord,</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">*                       but containing wcs.naxis coordinate elements.  Thus</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">*                       nelem must equal or exceed the value of the NAXIS</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">*                       keyword unless ncoord == 1, in which case nelem is not</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment">*                       used.</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*   world     const double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*                       Array of world coordinates.  For celestial axes,</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*                       world[][wcs.lng] and world[][wcs.lat] are the</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">*                       celestial longitude and latitude [deg]. For spectral</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*                       axes, world[][wcs.spec] is the spectral coordinate, in</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">*                       SI units.</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">*   phi,theta double[ncoord]</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">*                       Longitude and latitude in the native coordinate</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*                       system of the projection [deg].</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*                       Array of intermediate world coordinates.  For</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">*                       celestial axes, imgcrd[][wcs.lng] and</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">*                       imgcrd[][wcs.lat] are the projected x-, and</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">*                       y-coordinates in pseudo "degrees".  For quadcube</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">*                       projections with a CUBEFACE axis the face number is</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">*                       also returned in imgcrd[][wcs.cubeface].  For</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">*                       spectral axes, imgcrd[][wcs.spec] is the intermediate</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">*                       spectral coordinate, in SI units.</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment">*   pixcrd    double[ncoord][nelem]</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment">*   stat      int[ncoord]</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment">*                       Status return value for each coordinate:</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment">*                        1+: A bit mask indicating invalid world coordinate</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">*                            element(s).</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">*                         9: One or more of the world coordinates were</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">* wcsmix() - Hybrid coordinate transformation</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment">* -------------------------------------------</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment">* wcsmix(), given either the celestial longitude or latitude plus an element</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">* of the pixel coordinate, solves for the remaining elements by iterating on</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">* the unknown celestial coordinate element using wcss2p().  Refer also to the</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">* notes below.</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">*                       Indices for the celestial coordinates obtained</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">*                       by parsing the wcsprm::ctype[].</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment">*   mixpix    int       Which element of the pixel coordinate is given.</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">*   mixcel    int       Which element of the celestial coordinate is given:</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">*                         1: Celestial longitude is given in</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span> <span class="comment">*                            world[wcs.lng], latitude returned in</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment">*                            world[wcs.lat].</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">*                         2: Celestial latitude is given in</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment">*                            world[wcs.lat], longitude returned in</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment">*                            world[wcs.lng].</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment">*   vspan     const double[2]</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment">*                       Solution interval for the celestial coordinate [deg].</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment">*                       The ordering of the two limits is irrelevant.</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span> <span class="comment">*                       Longitude ranges may be specified with any convenient</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="comment">*                       normalization, for example [-120,+120] is the same as</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment">*                       [240,480], except that the solution will be returned</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">*                       with the same normalization, i.e. lie within the</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">*                       interval specified.</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">*   vstep     const double</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">*                       Step size for solution search [deg].  If zero, a</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">*                       sensible, although perhaps non-optimal default will be</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment">*                       used.</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">*   viter     int       If a solution is not found then the step size will be</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">*                       halved and the search recommenced.  viter controls how</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment">*                       many times the step size is halved.  The allowed range</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">*                       is 5 - 10.</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">*   world     double[naxis]</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">*                       World coordinate elements.  world[wcs.lng] and</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">*                       world[wcs.lat] are the celestial longitude and</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">*                       latitude [deg].  Which is given and which returned</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment">*                       depends on the value of mixcel.  All other elements</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment">*                       are given.</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment">*   phi,theta double[naxis]</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">*                       Longitude and latitude in the native coordinate</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">*                       system of the projection [deg].</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span> <span class="comment">*   imgcrd    double[naxis]</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span> <span class="comment">*                       Image coordinate elements.  imgcrd[wcs.lng] and</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span> <span class="comment">*                       imgcrd[wcs.lat] are the projected x-, and</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">*                       y-coordinates in pseudo "degrees".</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">*   pixcrd    double[naxis]</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">*                       Pixel coordinate.  The element indicated by mixpix is</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">*                       given and the remaining elements are returned.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">*                        10: Invalid world coordinate.</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment">*                        11: No solution found in the specified interval.</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="comment">*   Initially the specified solution interval is checked to see if it's a</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="comment">*   "crossing" interval.  If it isn't, a search is made for a crossing</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment">*   solution by iterating on the unknown celestial coordinate starting at the</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="comment">*   upper limit of the solution interval and decrementing by the specified</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="comment">*   step size.  A crossing is indicated if the trial value of the pixel</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span> <span class="comment">*   coordinate steps through the value specified.  If a crossing interval is</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="comment">*   found then the solution is determined by a modified form of "regula falsi"</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="comment">*   division of the crossing interval.  If no crossing interval was found</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="comment">*   within the specified solution interval then a search is made for a</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="comment">*   "non-crossing" solution as may arise from a point of tangency.  The</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="comment">*   process is complicated by having to make allowance for the discontinuities</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span> <span class="comment">*   that occur in all map projections.</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="comment">*   Once one solution has been determined others may be found by subsequent</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="comment">*   invokations of wcsmix() with suitably restricted solution intervals.</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="comment">*   Note the circumstance that arises when the solution point lies at a native</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="comment">*   pole of a projection in which the pole is represented as a finite curve,</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">*   for example the zenithals and conics.  In such cases two or more valid</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*   solutions may exist but wcsmix() only ever returns one.</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="comment">*   Because of its generality wcsmix() is very compute-intensive.  For</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="comment">*   compute-limited applications more efficient special-case solvers could be</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="comment">*   written for simple projections, for example non-oblique cylindrical</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="comment">*   projections.</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="comment">* wcssptr() - Spectral axis translation</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="comment">* -------------------------------------</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="comment">* wcssptr() translates the spectral axis in a wcsprm struct.  For example, a</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="comment">* 'FREQ' axis may be translated into 'ZOPT-F2W' and vice versa.</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">*   i         int*      Index of the spectral axis (0-relative).  If given < 0</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">*                       it will be set to the first spectral axis identified</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">*                       from the ctype[] keyvalues in the wcsprm struct.</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment">*   ctype     char[9]   Desired spectral CTYPEia.  Wildcarding may be used as</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="comment">*                       for the ctypeS2 argument to spctrn() as described in</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="comment">*                       the prologue of spc.h, i.e. if the final three</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="comment">*                       characters are specified as "???", or if just the</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment">*                       eighth character is specified as '?', the correct</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment">*                       algorithm code will be substituted and returned.</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="comment">*                        12: Invalid subimage specification (no spectral</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="comment">*                            axis).</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">* wcsprm struct - Coordinate transformation parameters</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">* ----------------------------------------------------</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">* The wcsprm struct contains information required to transform world</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="comment">* coordinates.  It consists of certain members that must be set by the user</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="comment">* ("given") and others that are set by the WCSLIB routines ("returned").</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="comment">* Some of the former are not actually required for transforming coordinates.</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="comment">* These are described as "auxiliary"; the struct simply provides a place to</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment">* store them, though they may be used by wcshdo() in constructing a FITS</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">* header from a wcsprm struct.  Some of the returned values are supplied for</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">* informational purposes and others are for internal use only as indicated.</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">*                       Zero it to disable all checking.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">* wcsset() - Setup routine for the wcsprm struct</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">* ----------------------------------------------</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">* wcsset() sets up a wcsprm struct according to information supplied within</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">* it (refer to the description of the wcsprm struct).</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">* wcsset() recognizes the NCP projection and converts it to the equivalent SIN</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">* projection and likewise translates GLS into SFL.  It also translates the</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">* AIPS spectral types ('FREQ-LSR', 'FELO-HEL', etc.), possibly changing the</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">* input header keywords wcsprm::ctype and/or wcsprm::specsys if necessary.</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">* wcsp2s() and wcss2p() if the wcsprm::flag is anything other than a</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">* predefined magic value.</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">*   wcsset() always enables strict bounds checking in the projection routines</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">*   (via a call to prjini()).  Use wcsbchk() to modify bounds-checking after</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">*   wcsset() is invoked.</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">* wcsp2s() - Pixel-to-world transformation</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">* ----------------------------------------</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">* wcsp2s() transforms pixel coordinates to world coordinates.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment">*   ncoord,</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*                       nelem but containing wcs.naxis coordinate elements.</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*                       Thus nelem must equal or exceed the value of the</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*                       NAXIS keyword unless ncoord == 1, in which case nelem</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*                       is not used.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*   pixcrd    const double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">*                       Array of intermediate world coordinates.  For</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">*                       celestial axes, imgcrd[][wcs.lng] and</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">*                       imgcrd[][wcs.lat] are the projected x-, and</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">*                       y-coordinates in pseudo "degrees".  For spectral</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">*                       axes, imgcrd[][wcs.spec] is the intermediate spectral</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">*                       coordinate, in SI units.</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*   phi,theta double[ncoord]</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*                       Longitude and latitude in the native coordinate system</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*                       of the projection [deg].</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">*   world     double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">*                       Array of world coordinates.  For celestial axes,</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">*                       world[][wcs.lng] and world[][wcs.lat] are the</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">*                       celestial longitude and latitude [deg].  For</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">*                       spectral axes, imgcrd[][wcs.spec] is the intermediate</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">*                       spectral coordinate, in SI units.</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">*   stat      int[ncoord]</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">*                       Status return value for each coordinate:</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*                        1+: A bit mask indicating invalid pixel coordinate</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">*                            element(s).</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">*                         8: One or more of the pixel coordinates were</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">* wcss2p() - World-to-pixel transformation</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">* ----------------------------------------</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">* wcss2p() transforms world coordinates to pixel coordinates.</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">*   ncoord,</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">*   nelem     int       The number of coordinates, each of vector length nelem</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">*                       but containing wcs.naxis coordinate elements.  Thus</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment">*                       nelem must equal or exceed the value of the NAXIS</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*                       keyword unless ncoord == 1, in which case nelem is not</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*                       used.</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*   world     const double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">*                       Array of world coordinates.  For celestial axes,</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*                       world[][wcs.lng] and world[][wcs.lat] are the</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">*                       celestial longitude and latitude [deg]. For spectral</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">*                       axes, world[][wcs.spec] is the spectral coordinate, in</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">*                       SI units.</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*   phi,theta double[ncoord]</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*                       Longitude and latitude in the native coordinate</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*                       system of the projection [deg].</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">*   imgcrd    double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">*                       Array of intermediate world coordinates.  For</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">*                       celestial axes, imgcrd[][wcs.lng] and</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">*                       imgcrd[][wcs.lat] are the projected x-, and</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">*                       y-coordinates in pseudo "degrees".  For quadcube</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">*                       projections with a CUBEFACE axis the face number is</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">*                       also returned in imgcrd[][wcs.cubeface].  For</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">*                       spectral axes, imgcrd[][wcs.spec] is the intermediate</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment">*                       spectral coordinate, in SI units.</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">*   pixcrd    double[ncoord][nelem]</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment">*                       Array of pixel coordinates.</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">*   stat      int[ncoord]</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment">*                       Status return value for each coordinate:</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">*                        1+: A bit mask indicating invalid world coordinate</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">*                            element(s).</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment">*                         9: One or more of the world coordinates were</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">*                            invalid, as indicated by the stat vector.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment">* wcsmix() - Hybrid coordinate transformation</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">* -------------------------------------------</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">* wcsmix(), given either the celestial longitude or latitude plus an element</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">* of the pixel coordinate, solves for the remaining elements by iterating on</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">* the unknown celestial coordinate element using wcss2p().  Refer also to the</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">* notes below.</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">*                       Indices for the celestial coordinates obtained</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment">*                       by parsing the wcsprm::ctype[].</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">*   mixpix    int       Which element of the pixel coordinate is given.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span> <span class="comment">*   mixcel    int       Which element of the celestial coordinate is given:</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment">*                         1: Celestial longitude is given in</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">*                            world[wcs.lng], latitude returned in</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment">*                            world[wcs.lat].</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment">*                         2: Celestial latitude is given in</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment">*                            world[wcs.lat], longitude returned in</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment">*                            world[wcs.lng].</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment">*   vspan     const double[2]</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span> <span class="comment">*                       Solution interval for the celestial coordinate [deg].</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="comment">*                       The ordering of the two limits is irrelevant.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment">*                       Longitude ranges may be specified with any convenient</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">*                       normalization, for example [-120,+120] is the same as</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">*                       [240,480], except that the solution will be returned</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">*                       with the same normalization, i.e. lie within the</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">*                       interval specified.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">*   vstep     const double</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment">*                       Step size for solution search [deg].  If zero, a</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">*                       sensible, although perhaps non-optimal default will be</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">*                       used.</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment">*   viter     int       If a solution is not found then the step size will be</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">*                       halved and the search recommenced.  viter controls how</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">*                       many times the step size is halved.  The allowed range</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">*                       is 5 - 10.</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">*   world     double[naxis]</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">*                       World coordinate elements.  world[wcs.lng] and</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment">*                       world[wcs.lat] are the celestial longitude and</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment">*                       latitude [deg].  Which is given and which returned</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">*                       depends on the value of mixcel.  All other elements</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">*                       are given.</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">*   phi,theta double[naxis]</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span> <span class="comment">*                       Longitude and latitude in the native coordinate</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> <span class="comment">*                       system of the projection [deg].</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> <span class="comment">*   imgcrd    double[naxis]</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">*                       Image coordinate elements.  imgcrd[wcs.lng] and</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">*                       imgcrd[wcs.lat] are the projected x-, and</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">*                       y-coordinates in pseudo "degrees".</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">*   pixcrd    double[naxis]</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">*                       Pixel coordinate.  The element indicated by mixpix is</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="comment">*                       given and the remaining elements are returned.</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="comment">*                        10: Invalid world coordinate.</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="comment">*                        11: No solution found in the specified interval.</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment">*   Initially the specified solution interval is checked to see if it's a</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="comment">*   "crossing" interval.  If it isn't, a search is made for a crossing</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="comment">*   solution by iterating on the unknown celestial coordinate starting at the</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span> <span class="comment">*   upper limit of the solution interval and decrementing by the specified</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="comment">*   step size.  A crossing is indicated if the trial value of the pixel</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="comment">*   coordinate steps through the value specified.  If a crossing interval is</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="comment">*   found then the solution is determined by a modified form of "regula falsi"</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="comment">*   division of the crossing interval.  If no crossing interval was found</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="comment">*   within the specified solution interval then a search is made for a</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> <span class="comment">*   "non-crossing" solution as may arise from a point of tangency.  The</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="comment">*   process is complicated by having to make allowance for the discontinuities</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="comment">*   that occur in all map projections.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="comment">*   Once one solution has been determined others may be found by subsequent</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="comment">*   invokations of wcsmix() with suitably restricted solution intervals.</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">*   Note the circumstance that arises when the solution point lies at a native</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*   pole of a projection in which the pole is represented as a finite curve,</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="comment">*   for example the zenithals and conics.  In such cases two or more valid</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="comment">*   solutions may exist but wcsmix() only ever returns one.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="comment">*   Because of its generality wcsmix() is very compute-intensive.  For</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="comment">*   compute-limited applications more efficient special-case solvers could be</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="comment">*   written for simple projections, for example non-oblique cylindrical</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="comment">*   projections.</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="comment">* wcssptr() - Spectral axis translation</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="comment">* -------------------------------------</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="comment">* wcssptr() translates the spectral axis in a wcsprm struct.  For example, a</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="comment">* 'FREQ' axis may be translated into 'ZOPT-F2W' and vice versa.</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">*                       Coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">*   i         int*      Index of the spectral axis (0-relative).  If given < 0</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">*                       it will be set to the first spectral axis identified</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment">*                       from the ctype[] keyvalues in the wcsprm struct.</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="comment">*   ctype     char[9]   Desired spectral CTYPEia.  Wildcarding may be used as</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="comment">*                       for the ctypeS2 argument to spctrn() as described in</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment">*                       the prologue of spc.h, i.e. if the final three</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment">*                       characters are specified as "???", or if just the</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">*                       eighth character is specified as '?', the correct</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">*                       algorithm code will be substituted and returned.</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment">*                        12: Invalid subimage specification (no spectral</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">*                            axis).</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">* wcslib_version() - WCSLIB version number</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="comment">* ----------------------------------------</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="comment">* wcslib_version() returns the WCSLIB version number.</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="comment">* The major version number changes when the ABI changes or when the license</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment">* conditions change.  ABI changes typically result from a change to the</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">* contents of one of the structs.  The major version number is used to</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">* distinguish between incompatible versions of the sharable library.</span></div>
 <div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">* In practice, it is expected that a WCS parser would scan the FITS header to</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">* determine the number of coordinate axes.  It would then use wcsini() to</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment">* allocate memory for arrays in the wcsprm struct and set default values.</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">* Then as it reread the header and identified each WCS keyrecord it would load</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">* the value into the relevant wcsprm array element.  This is essentially what</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="comment">* wcspih() does - refer to the prologue of wcshdr.h.  As the final step,</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">* wcsset() is invoked, either directly or indirectly, to set the derived</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">* members of the wcsprm struct.  wcsset() strips off trailing blanks in all</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">* string members and null-fills the character array.</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">*   int flag</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">*     following wcsprm struct members are set or changed:</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">* The minor version number changes with new functionality or bug fixes that do</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">* not involve a change in the ABI.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">* The auxiliary version number (which is often absent) signals changes to the</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">* documentation, test suite, build procedures, or any other change that does</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="comment">* not affect the compiled library.</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">*   vers[3]   int[3]    The broken-down version number:</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">*                         0: Major version number.</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">*                         1: Minor version number.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">*                         2: Auxiliary version number (zero if absent).</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">*                       May be given as a null pointer if not required.</span></div>
 <div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">*       - wcsprm::naxis (q.v., not normally set by the user),</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment">*       - wcsprm::crpix,</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="comment">*       - wcsprm::pc,</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="comment">*       - wcsprm::cdelt,</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span> <span class="comment">*       - wcsprm::crval,</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span> <span class="comment">*       - wcsprm::cunit,</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="comment">*       - wcsprm::ctype,</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="comment">*       - wcsprm::lonpole,</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="comment">*       - wcsprm::latpole,</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="comment">*       - wcsprm::restfrq,</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment">*       - wcsprm::restwav,</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">*       - wcsprm::npv,</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">*       - wcsprm::pv,</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span> <span class="comment">*       - wcsprm::nps,</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span> <span class="comment">*       - wcsprm::ps,</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span> <span class="comment">*       - wcsprm::cd,</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span> <span class="comment">*       - wcsprm::crota,</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment">*       - wcsprm::altlin.</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment">*     This signals the initialization routine, wcsset(), to recompute the</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment">*     returned members of the celprm struct.  celset() will reset flag to</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment">*     indicate that this has been done.</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment">*     PLEASE NOTE: flag should be set to -1 when wcsini() is called for the</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span> <span class="comment">*     first time for a particular wcsprm struct in order to initialize memory</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span> <span class="comment">*     management.  It must ONLY be used on the first initialization otherwise</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span> <span class="comment">*     memory leaks may result.</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span> <span class="comment">*   int naxis</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">*     (Given or returned) Number of pixel and world coordinate elements.</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment">*             char*     A null-terminated, statically allocated string</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="comment">*                       containing the version number in the usual form, i.e.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="comment">*                       "<major>.<minor>.<auxiliary>".</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="comment">* wcsprm struct - Coordinate transformation parameters</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="comment">* ----------------------------------------------------</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="comment">* The wcsprm struct contains information required to transform world</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="comment">* coordinates.  It consists of certain members that must be set by the user</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment">* ("given") and others that are set by the WCSLIB routines ("returned").</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">* Some of the former are not actually required for transforming coordinates.</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">* These are described as "auxiliary"; the struct simply provides a place to</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> <span class="comment">* store them, though they may be used by wcshdo() in constructing a FITS</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span> <span class="comment">* header from a wcsprm struct.  Some of the returned values are supplied for</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span> <span class="comment">* informational purposes and others are for internal use only as indicated.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment">* In practice, it is expected that a WCS parser would scan the FITS header to</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">* determine the number of coordinate axes.  It would then use wcsini() to</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment">* allocate memory for arrays in the wcsprm struct and set default values.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment">* Then as it reread the header and identified each WCS keyrecord it would load</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment">* the value into the relevant wcsprm array element.  This is essentially what</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">* wcspih() does - refer to the prologue of wcshdr.h.  As the final step,</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment">* wcsset() is invoked, either directly or indirectly, to set the derived</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span> <span class="comment">* members of the wcsprm struct.  wcsset() strips off trailing blanks in all</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span> <span class="comment">* string members and null-fills the character array.</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span> <span class="comment">*   int flag</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> <span class="comment">*     (Given and returned) This flag must be set to zero whenever any of the</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">*     following wcsprm struct members are set or changed:</span></div>
 <div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span> <span class="comment">*     If wcsini() is used to initialize the linprm struct (as would normally</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span> <span class="comment">*     be the case) then it will set naxis from the value passed to it as a</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span> <span class="comment">*     function argument.  The user should not subsequently modify it.</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment">*   double *crpix</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">*     (Given) Address of the first element of an array of double containing</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment">*     the coordinate reference pixel, CRPIXja.</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment">*   double *pc</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">*     (Given) Address of the first element of the PCi_ja (pixel coordinate)</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">*     transformation matrix.  The expected order is</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment">=       struct wcsprm wcs;</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="comment">=       wcs.pc = {PC1_1, PC1_2, PC2_1, PC2_2};</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">*     This may be constructed conveniently from a 2-D array via</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">=       double m[2][2] = {{PC1_1, PC1_2},</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment">=                         {PC2_1, PC2_2}};</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="comment">*     which is equivalent to</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="comment">=       double m[2][2];</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span> <span class="comment">=       m[0][0] = PC1_1;</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment">=       m[0][1] = PC1_2;</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment">=       m[1][0] = PC2_1;</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment">=       m[1][1] = PC2_2;</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment">*     The storage order for this 2-D array is the same as for the 1-D array,</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment">*     whence</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment">=       wcs.pc = *m;</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">*     would be legitimate.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span> <span class="comment">*       - wcsprm::naxis (q.v., not normally set by the user),</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span> <span class="comment">*       - wcsprm::crpix,</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span> <span class="comment">*       - wcsprm::pc,</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="comment">*       - wcsprm::cdelt,</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment">*       - wcsprm::crval,</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">*       - wcsprm::cunit,</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment">*       - wcsprm::ctype,</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment">*       - wcsprm::lonpole,</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment">*       - wcsprm::latpole,</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">*       - wcsprm::restfrq,</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">*       - wcsprm::restwav,</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment">*       - wcsprm::npv,</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment">*       - wcsprm::pv,</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="comment">*       - wcsprm::nps,</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">*       - wcsprm::ps,</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">*       - wcsprm::cd,</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">*       - wcsprm::crota,</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">*       - wcsprm::altlin,</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment">*       - wcsprm::ntab,</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span> <span class="comment">*       - wcsprm::nwtb,</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="comment">*       - wcsprm::tab,</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span> <span class="comment">*       - wcsprm::wtb.</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span> <span class="comment">*     This signals the initialization routine, wcsset(), to recompute the</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment">*     returned members of the celprm struct.  celset() will reset flag to</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment">*     indicate that this has been done.</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">*     PLEASE NOTE: flag should be set to -1 when wcsini() is called for the</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment">*     first time for a particular wcsprm struct in order to initialize memory</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment">*     management.  It must ONLY be used on the first initialization otherwise</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">*     memory leaks may result.</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">*   int naxis</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">*     (Given or returned) Number of pixel and world coordinate elements.</span></div>
 <div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">*   double *cdelt</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">*     (Given) Address of the first element of an array of double containing</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment">*     the coordinate increments, CDELTia.</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">*     If wcsini() is used to initialize the linprm struct (as would normally</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">*     be the case) then it will set naxis from the value passed to it as a</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment">*     function argument.  The user should not subsequently modify it.</span></div>
 <div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">*   double *crval</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">*   double *crpix</span></div>
 <div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">*     (Given) Address of the first element of an array of double containing</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">*     the coordinate reference values, CRVALia.</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">*     the coordinate reference pixel, CRPIXja.</span></div>
 <div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment">*   char (*cunit)[72]</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="comment">*     (Given) Address of the first element of an array of char[72] containing</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="comment">*     the CUNITia keyvalues which define the units of measurement of the</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span> <span class="comment">*     CRVALia, CDELTia, and CDi_ja keywords.</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="comment">*     As CUNITia is an optional header keyword, cunit[][72] may be left blank</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span> <span class="comment">*     but otherwise is expected to contain a standard units specification as</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="comment">*     defined by WCS Paper I.  Utility function wcsutrn(), described in</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="comment">*     wcsunits.h, is available to translate commonly used non-standard units</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span> <span class="comment">*     specifications but this must be done as a separate step before invoking</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span> <span class="comment">*     wcsset().</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment">*   double *pc</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="comment">*     (Given) Address of the first element of the PCi_ja (pixel coordinate)</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="comment">*     transformation matrix.  The expected order is</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span> <span class="comment">=       struct wcsprm wcs;</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="comment">=       wcs.pc = {PC1_1, PC1_2, PC2_1, PC2_2};</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="comment">*     This may be constructed conveniently from a 2-D array via</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span> <span class="comment">=       double m[2][2] = {{PC1_1, PC1_2},</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span> <span class="comment">=                         {PC2_1, PC2_2}};</span></div>
 <div class="line"><a name="l00879"></a><span class="lineno">  879</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span> <span class="comment">*     For celestial axes, if cunit[][72] is not blank, wcsset() uses</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span> <span class="comment">*     wcsunits() to parse it and scale cdelt[], crval[], and cd[][*] to</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="comment">*     degrees.  It then resets cunit[][72] to "deg".</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="comment">*     For spectral axes, if cunit[][72] is not blank, wcsset() uses wcsunits()</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span> <span class="comment">*     to parse it and scale cdelt[], crval[], and cd[][*] to SI units.  It</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span> <span class="comment">*     then resets cunit[][72] accordingly.</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span> <span class="comment">*     which is equivalent to</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="comment">=       double m[2][2];</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="comment">=       m[0][0] = PC1_1;</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="comment">=       m[0][1] = PC1_2;</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span> <span class="comment">=       m[1][0] = PC2_1;</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span> <span class="comment">=       m[1][1] = PC2_2;</span></div>
 <div class="line"><a name="l00887"></a><span class="lineno">  887</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span> <span class="comment">*     wcsset() ignores cunit[][72] for other coordinate types; cunit[][72] may</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span> <span class="comment">*     be used to label coordinate values.</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span> <span class="comment">*     The storage order for this 2-D array is the same as for the 1-D array,</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span> <span class="comment">*     whence</span></div>
 <div class="line"><a name="l00890"></a><span class="lineno">  890</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span> <span class="comment">*     character.</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span> <span class="comment">=       wcs.pc = *m;</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span> <span class="comment">*     would be legitimate.</span></div>
 <div class="line"><a name="l00894"></a><span class="lineno">  894</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span> <span class="comment">*   char (*ctype)[72]</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span> <span class="comment">*     (Given) Address of the first element of an array of char[72] containing</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span> <span class="comment">*     the coordinate axis types, CTYPEia.</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> <span class="comment">*   double *cdelt</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span> <span class="comment">*     (Given) Address of the first element of an array of double containing</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span> <span class="comment">*     the coordinate increments, CDELTia.</span></div>
 <div class="line"><a name="l00898"></a><span class="lineno">  898</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span> <span class="comment">*     The ctype[][72] keyword values must be in upper case and there must be</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="comment">*     zero or one pair of matched celestial axis types, and zero or one</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment">*     spectral axis.  The ctype[][72] strings should be padded with blanks on</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span> <span class="comment">*     the right and null-terminated so that they are at least eight characters</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span> <span class="comment">*     in length.</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment">*     character.</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span> <span class="comment">*   double lonpole</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span> <span class="comment">*     (Given and returned) The native longitude of the celestial pole, phi_p,</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span> <span class="comment">*     given by LONPOLEa [deg] or by PVi_2a [deg] attached to the longitude</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span> <span class="comment">*     axis which takes precedence if defined, and ...</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span> <span class="comment">*   double latpole</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span> <span class="comment">*     (Given and returned) ... the native latitude of the celestial pole,</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span> <span class="comment">*     theta_p, given by LATPOLEa [deg] or by PVi_3a [deg] attached to the</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="comment">*     longitude axis which takes precedence if defined.</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span> <span class="comment">*     lonpole and latpole may be left to default to values set by wcsini()</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span> <span class="comment">*     (see celprm::ref), but in any case they will be reset by wcsset() to</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment">*     the values actually used.  Note therefore that if the wcsprm struct is</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">*     reused without resetting them, whether directly or via wcsini(), they</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span> <span class="comment">*     will no longer have their default values.</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment">*   double restfrq</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">*     (Given) The rest frequency [Hz], and/or ...</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment">*   double restwav</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="comment">*     (Given) ... the rest wavelength in vacuo [m], only one of which need be</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="comment">*     given, the other should be set to zero.</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span> <span class="comment">*   double *crval</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="comment">*     (Given) Address of the first element of an array of double containing</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment">*     the coordinate reference values, CRVALia.</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span> <span class="comment">*   char (*cunit)[72]</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span> <span class="comment">*     (Given) Address of the first element of an array of char[72] containing</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span> <span class="comment">*     the CUNITia keyvalues which define the units of measurement of the</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span> <span class="comment">*     CRVALia, CDELTia, and CDi_ja keywords.</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">*     As CUNITia is an optional header keyword, cunit[][72] may be left blank</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span> <span class="comment">*     but otherwise is expected to contain a standard units specification as</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> <span class="comment">*     defined by WCS Paper I.  Utility function wcsutrn(), described in</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span> <span class="comment">*     wcsunits.h, is available to translate commonly used non-standard units</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span> <span class="comment">*     specifications but this must be done as a separate step before invoking</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span> <span class="comment">*     wcsset().</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span> <span class="comment">*     For celestial axes, if cunit[][72] is not blank, wcsset() uses</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="comment">*     wcsunits() to parse it and scale cdelt[], crval[], and cd[][*] to</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span> <span class="comment">*     degrees.  It then resets cunit[][72] to "deg".</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span> <span class="comment">*     For spectral axes, if cunit[][72] is not blank, wcsset() uses wcsunits()</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment">*     to parse it and scale cdelt[], crval[], and cd[][*] to SI units.  It</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">*     then resets cunit[][72] accordingly.</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span> <span class="comment">*     wcsset() ignores cunit[][72] for other coordinate types; cunit[][72] may</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment">*     be used to label coordinate values.</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="comment">*     character.</span></div>
 <div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment">*   int npv</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span> <span class="comment">*     (Given) The number of entries in the wcsprm::pv[] array.</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="comment">*   int npvmax</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="comment">*     (Given or returned) The length of the wcsprm::pv[] array.</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment">*     npvmax will be set by wcsini() if it allocates memory for wcsprm::pv[],</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">*     otherwise it must be set by the user.  See also wcsnpv().</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment">*   struct pvcard *pv</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="comment">*     (Given or returned) Address of the first element of an array of length</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span> <span class="comment">*     npvmax of pvcard structs.  Set by wcsini() if it allocates memory for</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span> <span class="comment">*     pv[], otherwise it must be set by the user.  See also wcsnpv().</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment">*   char (*ctype)[72]</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span> <span class="comment">*     (Given) Address of the first element of an array of char[72] containing</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="comment">*     the coordinate axis types, CTYPEia.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="comment">*     The ctype[][72] keyword values must be in upper case and there must be</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="comment">*     zero or one pair of matched celestial axis types, and zero or one</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment">*     spectral axis.  The ctype[][72] strings should be padded with blanks on</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">*     the right and null-terminated so that they are at least eight characters</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">*     in length.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span> <span class="comment">*     character.</span></div>
 <div class="line"><a name="l00943"></a><span class="lineno">  943</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span> <span class="comment">*     As a FITS header parser encounters each PVi_ma keyword it should load it</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">*     into a pvcard struct in the array and increment npv.  wcsset()</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span> <span class="comment">*     interprets these as required.</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span> <span class="comment">*     Note that, if they were not given, wcsset() resets the entries for</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">*     PVi_1a, PVi_2a, PVi_3a, and PVi_4a for longitude axis i to match</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span> <span class="comment">*     phi_0 and theta_0 (the native longitude and latitude of the reference</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span> <span class="comment">*     point), LONPOLEa and LATPOLEa respectively.</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> <span class="comment">*   double lonpole</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">*     (Given and returned) The native longitude of the celestial pole, phi_p,</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span> <span class="comment">*     given by LONPOLEa [deg] or by PVi_2a [deg] attached to the longitude</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment">*     axis which takes precedence if defined, and ...</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span> <span class="comment">*   double latpole</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">*     (Given and returned) ... the native latitude of the celestial pole,</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span> <span class="comment">*     theta_p, given by LATPOLEa [deg] or by PVi_3a [deg] attached to the</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span> <span class="comment">*     longitude axis which takes precedence if defined.</span></div>
 <div class="line"><a name="l00952"></a><span class="lineno">  952</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span> <span class="comment">*   int nps</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span> <span class="comment">*     (Given) The number of entries in the wcsprm::ps[] array.</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span> <span class="comment">*   int npsmax</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span> <span class="comment">*     (Given or returned) The length of the wcsprm::ps[] array.</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span> <span class="comment">*     lonpole and latpole may be left to default to values set by wcsini()</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span> <span class="comment">*     (see celprm::ref), but in any case they will be reset by wcsset() to</span></div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span> <span class="comment">*     the values actually used.  Note therefore that if the wcsprm struct is</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span> <span class="comment">*     reused without resetting them, whether directly or via wcsini(), they</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span> <span class="comment">*     will no longer have their default values.</span></div>
 <div class="line"><a name="l00958"></a><span class="lineno">  958</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span> <span class="comment">*     npsmax will be set by wcsini() if it allocates memory for wcsprm::ps[],</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span> <span class="comment">*     otherwise it must be set by the user.  See also wcsnps().</span></div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span> <span class="comment">*   struct pscard *ps</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span> <span class="comment">*     (Given or returned) Address of the first element of an array of length</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span> <span class="comment">*     npsmax of pscard structs.  Set by wcsini() if it allocates memory for</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span> <span class="comment">*     ps[], otherwise it must be set by the user.  See also wcsnps().</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">*     As a FITS header parser encounters each PSi_ma keyword it should load it</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="comment">*     into a pscard struct in the array and increment nps.  wcsset()</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span> <span class="comment">*     interprets these as required (currently no PSi_ma keyvalues are</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span> <span class="comment">*     recognized).</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span> <span class="comment">*   double *cd</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">*     (Given) For historical compatibility, the wcsprm struct supports two</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">*     alternate specifications of the linear transformation matrix, those</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">*     associated with the CDi_ja keywords, and ...</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">*   double *crota</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span> <span class="comment">*     (Given) ... those associated with the CROTAia keywords.  Although these</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span> <span class="comment">*     may not formally co-exist with PCi_ja, the approach taken here is simply</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment">*     to ignore them if given in conjunction with PCi_ja.</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="comment">*   int altlin</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span> <span class="comment">*     (Given) altlin is a bit flag that denotes which of the PCi_ja, CDi_ja</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span> <span class="comment">*     and CROTAia keywords are present in the header:</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="comment">*     - Bit 0: PCi_ja is present.</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span> <span class="comment">*     - Bit 1: CDi_ja is present.</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span> <span class="comment">*       Matrix elements in the IRAF convention are</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span> <span class="comment">*       equivalent to the product CDi_ja = CDELTia * PCi_ja, but the</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span> <span class="comment">*       defaults differ from that of the PCi_ja matrix.  If one or more</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span> <span class="comment">*       CDi_ja keywords are present then all unspecified CDi_ja default to</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span> <span class="comment">*       zero.  If no CDi_ja (or CROTAia) keywords are present, then the</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span> <span class="comment">*       header is assumed to be in PCi_ja form whether or not any PCi_ja</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span> <span class="comment">*       keywords are present since this results in an interpretation of</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span> <span class="comment">*       CDELTia consistent with the original FITS specification.</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span> <span class="comment">*       While CDi_ja may not formally co-exist with PCi_ja, it may co-exist</span></div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">*       with CDELTia and CROTAia which are to be ignored.</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">*     - Bit 2: CROTAia is present.</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment">*       In the AIPS convention, CROTAia may only be</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment">*       associated with the latitude axis of a celestial axis pair.  It</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment">*       specifies a rotation in the image plane that is applied AFTER the</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment">*       CDELTia; any other CROTAia keywords are ignored.</span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">*       CROTAia may not formally co-exist with PCi_ja.</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">*       CROTAia and CDELTia may formally co-exist with CDi_ja but if so are to</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">*       be ignored.</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">*     CDi_ja and CROTAia keywords, if found, are to be stored in the</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment">*     wcsprm::cd and wcsprm::crota arrays which are dimensioned similarly to</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">*     wcsprm::pc and wcsprm::cdelt.  FITS</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">*     header parsers should use the following procedure:</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">*     - Whenever a PCi_ja  keyword is encountered: altlin |= 1;</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span> <span class="comment">*   double restfrq</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span> <span class="comment">*     (Given) The rest frequency [Hz], and/or ...</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span> <span class="comment">*   double restwav</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span> <span class="comment">*     (Given) ... the rest wavelength in vacuo [m], only one of which need be</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span> <span class="comment">*     given, the other should be set to zero.</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span> <span class="comment">*   int npv</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span> <span class="comment">*     (Given) The number of entries in the wcsprm::pv[] array.</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="comment">*   int npvmax</span></div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span> <span class="comment">*     (Given or returned) The length of the wcsprm::pv[] array.</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment">*     npvmax will be set by wcsini() if it allocates memory for wcsprm::pv[],</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span> <span class="comment">*     otherwise it must be set by the user.  See also wcsnpv().</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">*   struct pvcard *pv</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">*     (Given or returned) Address of the first element of an array of length</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">*     npvmax of pvcard structs.  Set by wcsini() if it allocates memory for</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span> <span class="comment">*     pv[], otherwise it must be set by the user.  See also wcsnpv().</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment">*     As a FITS header parser encounters each PVi_ma keyword it should load it</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">*     into a pvcard struct in the array and increment npv.  wcsset()</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="comment">*     interprets these as required.</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span> <span class="comment">*     Note that, if they were not given, wcsset() resets the entries for</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> <span class="comment">*     PVi_1a, PVi_2a, PVi_3a, and PVi_4a for longitude axis i to match</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="comment">*     phi_0 and theta_0 (the native longitude and latitude of the reference</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment">*     point), LONPOLEa and LATPOLEa respectively.</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="comment">*   int nps</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> <span class="comment">*     (Given) The number of entries in the wcsprm::ps[] array.</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span> <span class="comment">*   int npsmax</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span> <span class="comment">*     (Given or returned) The length of the wcsprm::ps[] array.</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span> <span class="comment">*     npsmax will be set by wcsini() if it allocates memory for wcsprm::ps[],</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span> <span class="comment">*     otherwise it must be set by the user.  See also wcsnps().</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> <span class="comment">*   struct pscard *ps</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span> <span class="comment">*     (Given or returned) Address of the first element of an array of length</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">*     npsmax of pscard structs.  Set by wcsini() if it allocates memory for</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">*     ps[], otherwise it must be set by the user.  See also wcsnps().</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">*     As a FITS header parser encounters each PSi_ma keyword it should load it</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment">*     into a pscard struct in the array and increment nps.  wcsset()</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment">*     interprets these as required (currently no PSi_ma keyvalues are</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment">*     recognized).</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">*   double *cd</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">*     (Given) For historical compatibility, the wcsprm struct supports two</span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">*     alternate specifications of the linear transformation matrix, those</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">*     associated with the CDi_ja keywords, and ...</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">*   double *crota</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">*     (Given) ... those associated with the CROTAia keywords.  Although these</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">*     may not formally co-exist with PCi_ja, the approach taken here is simply</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment">*     to ignore them if given in conjunction with PCi_ja.</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">*   int altlin</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">*     (Given) altlin is a bit flag that denotes which of the PCi_ja, CDi_ja</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">*     and CROTAia keywords are present in the header:</span></div>
 <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">*     - Whenever a CDi_ja  keyword is encountered: altlin |= 2;</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">*     - Bit 0: PCi_ja is present.</span></div>
 <div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">*     - Whenever a CROTAia keyword is encountered: altlin |= 4;</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">*     - Bit 1: CDi_ja is present.</span></div>
 <div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">*     If none of these bits are set the PCi_ja representation results, i.e.</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">*     wcsprm::pc and wcsprm::cdelt will be used as given.</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment">*     These alternate specifications of the linear transformation matrix are</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment">*     translated immediately to PCi_ja by wcsset() and are invisible to the</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">*     lower-level WCSLIB routines.  In particular, wcsset() resets</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">*     wcsprm::cdelt to unity if CDi_ja is present (and no PCi_ja).</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">*     If CROTAia are present but none is associated with the latitude axis</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">*     (and no PCi_ja or CDi_ja), then wcsset() reverts to a unity PCi_ja</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">*     matrix.</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">*       Matrix elements in the IRAF convention are</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">*       equivalent to the product CDi_ja = CDELTia * PCi_ja, but the</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">*       defaults differ from that of the PCi_ja matrix.  If one or more</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment">*       CDi_ja keywords are present then all unspecified CDi_ja default to</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment">*       zero.  If no CDi_ja (or CROTAia) keywords are present, then the</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">*       header is assumed to be in PCi_ja form whether or not any PCi_ja</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">*       keywords are present since this results in an interpretation of</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">*       CDELTia consistent with the original FITS specification.</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">*       While CDi_ja may not formally co-exist with PCi_ja, it may co-exist</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">*       with CDELTia and CROTAia which are to be ignored.</span></div>
 <div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">*   int velref</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">*     (Given) AIPS velocity code VELREF, refer to spcaips().</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">*   char alt[4]</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">*     (Given, auxiliary) Character code for alternate coordinate descriptions</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">*     (i.e. the 'a' in keyword names such as CTYPEia).  This is blank for the</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">*     primary coordinate description, or one of the 26 upper-case letters,</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">*     A-Z.</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">*     - Bit 2: CROTAia is present.</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">*       In the AIPS convention, CROTAia may only be</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">*       associated with the latitude axis of a celestial axis pair.  It</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">*       specifies a rotation in the image plane that is applied AFTER the</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">*       CDELTia; any other CROTAia keywords are ignored.</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">*       CROTAia may not formally co-exist with PCi_ja.</span></div>
 <div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">*     An array of four characters is provided for alignment purposes, only the</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">*     first is used.</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">*       CROTAia and CDELTia may formally co-exist with CDi_ja but if so are to</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">*       be ignored.</span></div>
 <div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">*   int colnum</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">*     (Given, auxiliary) Where the coordinate representation is associated</span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">*     with an image-array column in a FITS binary table, this variable may be</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">*     used to record the relevant column number.</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">*     CDi_ja and CROTAia keywords, if found, are to be stored in the</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">*     wcsprm::cd and wcsprm::crota arrays which are dimensioned similarly to</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">*     wcsprm::pc and wcsprm::cdelt.  FITS</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">*     header parsers should use the following procedure:</span></div>
 <div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment">*     It should be set to zero for an image header or pixel list.</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment">*     - Whenever a PCi_ja  keyword is encountered: altlin |= 1;</span></div>
 <div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">*   int *colax</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of int</span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">*     recording the column numbers for each axis in a pixel list.</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">*     - Whenever a CDi_ja  keyword is encountered: altlin |= 2;</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">*     - Whenever a CROTAia keyword is encountered: altlin |= 4;</span></div>
 <div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">*     The array elements should be set to zero for an image header or image</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">*     array in a binary table.</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">*     If none of these bits are set the PCi_ja representation results, i.e.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">*     wcsprm::pc and wcsprm::cdelt will be used as given.</span></div>
 <div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">*   char (*cname)[72]</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">*     (Given, auxiliary) The address of the first element of an array of</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">*     char[72] containing the coordinate axis names, CNAMEia.</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment">*     character.</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">*   double *crder</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of double</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment">*     recording the random error in the coordinate value, CRDERia.</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">*   double *csyer</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of double</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">*     recording the systematic error in the coordinate value, CSYERia.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">*     These alternate specifications of the linear transformation matrix are</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">*     translated immediately to PCi_ja by wcsset() and are invisible to the</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">*     lower-level WCSLIB routines.  In particular, wcsset() resets</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">*     wcsprm::cdelt to unity if CDi_ja is present (and no PCi_ja).</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">*     If CROTAia are present but none is associated with the latitude axis</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment">*     (and no PCi_ja or CDi_ja), then wcsset() reverts to a unity PCi_ja</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">*     matrix.</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">*   int velref</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment">*     (Given) AIPS velocity code VELREF, refer to spcaips().</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">*     wcsprm::velref is changed.</span></div>
 <div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">*   char dateavg[72]</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">*     (Given, auxiliary) The date of a representative mid-point of the</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">*     observation in ISO format, yyyy-mm-ddThh:mm:ss.</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">*   char dateobs[72]</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">*     (Given, auxiliary) The date of the start of the observation unless</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">*     otherwise explained in the comment field of the DATE-OBS keyword, in</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">*     ISO format, yyyy-mm-ddThh:mm:ss.</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment">*   double equinox</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">*     (Given, auxiliary) The equinox associated with dynamical equatorial or</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">*     ecliptic coordinate systems, EQUINOXa (or EPOCH in older headers).  Not</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">*     applicable to ICRS equatorial or ecliptic coordinates.</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">*   double mjdavg</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">*     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-AVG,</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">*     corresponding to DATE-AVG.</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment">*   double mjdobs</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">*     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-OBS,</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">*     corresponding to DATE-OBS.</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment">*   double obsgeo[3]</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">*     (Given, auxiliary) Location of the observer in a standard terrestrial</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">*     reference frame, OBSGEO-X, OBSGEO-Y, OBSGEO-Z [m].</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">*   char radesys[72]</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">*     (Given, auxiliary) The equatorial or ecliptic coordinate system type,</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">*     RADESYSa.</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">*   char specsys[72]</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">*     (Given, auxiliary) Spectral reference frame (standard of rest),</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">*     SPECSYSa, and ...</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">*   char ssysobs[72]</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">*     (Given, auxiliary) ... the actual frame in which there is no</span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">*     differential variation in the spectral coordinate across the</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">*     field-of-view, SSYSOBSa.</span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">*   double velosys</span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">*     (Given, auxiliary) The relative radial velocity [m/s] between the</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">*     observer and the selected standard of rest in the direction of the</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">*     celestial reference coordinate, VELOSYSa.</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">*   char alt[4]</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">*     (Given, auxiliary) Character code for alternate coordinate descriptions</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">*     (i.e. the 'a' in keyword names such as CTYPEia).  This is blank for the</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">*     primary coordinate description, or one of the 26 upper-case letters,</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">*     A-Z.</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">*     An array of four characters is provided for alignment purposes, only the</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">*     first is used.</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">*     wcsprm::alt is changed.</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">*   int colnum</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">*     (Given, auxiliary) Where the coordinate representation is associated</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">*     with an image-array column in a FITS binary table, this variable may be</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">*     used to record the relevant column number.</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">*     It should be set to zero for an image header or pixel list.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment">*     wcsprm::colnum is changed.</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">*   int *colax</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of int</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">*     recording the column numbers for each axis in a pixel list.</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">*     The array elements should be set to zero for an image header or image</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">*     array in a binary table.</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">*     wcsprm::colax is changed.</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">*   char (*cname)[72]</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">*     (Given, auxiliary) The address of the first element of an array of</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">*     char[72] containing the coordinate axis names, CNAMEia.</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">*     These variables accomodate the longest allowed string-valued FITS</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">*     keyword, being limited to 68 characters, plus the null-terminating</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">*     character.</span></div>
 <div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">*   double zsource</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment">*     (Given, auxiliary) The redshift, ZSOURCEa, of the source, and ...</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment">*   char ssyssrc[72]</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment">*     (Given, auxiliary) ... the spectral reference frame (standard of rest)</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">*     in which this was measured, SSYSSRCa.</span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">*   double velangl</span></div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment">*     (Given, auxiliary) The angle [deg] that should be used to decompose an</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">*     observed velocity into radial and transverse components.</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment">*     wcsprm::cname is changed.</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment">*   double *crder</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of double</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">*     recording the random error in the coordinate value, CRDERia.</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">*     wcsprm::crder is changed.</span></div>
 <div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment">*   char wcsname[72]</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">*     (Given, auxiliary) The name given to the coordinate representation,</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment">*     WCSNAMEa.  This variable accomodates the longest allowed string-valued</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment">*     FITS keyword, being limited to 68 characters, plus the null-terminating</span></div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment">*     character.</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">*   int ntab</span></div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">*     (Given) See wcsprm::tab.</span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">*   int nwtb</span></div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment">*     (Given) See wcsprm::wtb.</span></div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment">*   struct tabprm *tab</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment">*     (Given) Address of the first element of an array of ntab tabprm structs</span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">*     for which memory has been allocated.  These are used to store tabular</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment">*     transformation parameters.</span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment">*     Although technically wcsprm::ntab and tab are "given", they will</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">*     normally be set by invoking wcstab(), whether directly or indirectly.</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">*     The tabprm structs contain some members that must be supplied and others</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">*     that are derived.  The information to be supplied comes primarily from</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">*     arrays stored in one or more FITS binary table extensions.  These</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">*     arrays, referred to here as "wcstab arrays", are themselves located by</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">*     parameters stored in the FITS image header.</span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">*   struct wtbarr *wtb</span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">*     (Given) Address of the first element of an array of nwtb wtbarr structs</span></div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment">*     for which memory has been allocated.  These are used in extracting</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment">*     wcstab arrays from a FITS binary table.</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">*     Although technically wcsprm::nwtb and wtb are "given", they will</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment">*     normally be set by invoking wcstab(), whether directly or indirectly.</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment">*   double *csyer</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">*     (Given, auxiliary) Address of the first element of an array of double</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment">*     recording the systematic error in the coordinate value, CSYERia.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment">*     wcsprm::csyer is changed.</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">*   char dateavg[72]</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">*     (Given, auxiliary) The date of a representative mid-point of the</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">*     observation in ISO format, yyyy-mm-ddThh:mm:ss.</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment">*     wcsprm::dateavg is changed.</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">*   char dateobs[72]</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment">*     (Given, auxiliary) The date of the start of the observation unless</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment">*     otherwise explained in the comment field of the DATE-OBS keyword, in</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment">*     ISO format, yyyy-mm-ddThh:mm:ss.</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">*     wcsprm::dateobs is changed.</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">*   double equinox</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">*     (Given, auxiliary) The equinox associated with dynamical equatorial or</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">*     ecliptic coordinate systems, EQUINOXa (or EPOCH in older headers).  Not</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">*     applicable to ICRS equatorial or ecliptic coordinates.</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment">*     wcsprm::equinox is changed.</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment">*   double mjdavg</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">*     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-AVG,</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment">*     corresponding to DATE-AVG.</span></div>
 <div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">*   char lngtyp[8]</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment">*     (Returned) Four-character WCS celestial longitude and ...</span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment">*   char lattyp[8]</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment">*     (Returned) ... latitude axis types. e.g. "RA", "DEC", "GLON", "GLAT",</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">*     etc. extracted from 'RA--', 'DEC-', 'GLON', 'GLAT', etc. in the first</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">*     four characters of CTYPEia but with trailing dashes removed.  (Declared</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">*     as char[8] for alignment reasons.)</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">*   int lng</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">*     (Returned) Index for the longitude coordinate, and ...</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment">*   int lat</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment">*     (Returned) ... index for the latitude coordinate, and ...</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment">*   int spec</span></div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">*     (Returned) ... index for the spectral coordinate in the imgcrd[][] and</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">*     world[][] arrays in the API of wcsp2s(), wcss2p() and wcsmix().</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment">*     These may also serve as indices into the pixcrd[][] array provided that</span></div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment">*     the PCi_ja matrix does not transpose axes.</span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment">*   int cubeface</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment">*     (Returned) Index into the pixcrd[][] array for the CUBEFACE axis.  This</span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">*     is used for quadcube projections where the cube faces are stored on a</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment">*     separate axis (see wcs.h).</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment">*     wcsprm::mjdavg is changed.</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment">*   double mjdobs</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">*     (Given, auxiliary) Modified Julian Date (MJD = JD - 2400000.5), MJD-OBS,</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">*     corresponding to DATE-OBS.</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">*     wcsprm::mjdobs is changed.</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment">*   double obsgeo[3]</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment">*     (Given, auxiliary) Location of the observer in a standard terrestrial</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment">*     reference frame, OBSGEO-X, OBSGEO-Y, OBSGEO-Z [m].</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">*     wcsprm::obsgeo is changed.</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment">*   char radesys[72]</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">*     (Given, auxiliary) The equatorial or ecliptic coordinate system type,</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment">*     RADESYSa.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment">*     wcsprm::radesys is changed.</span></div>
 <div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment">*   int *types</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment">*     (Returned) Address of the first element of an array of int containing a</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment">*     four-digit type code for each axis.</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment">*   char specsys[72]</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment">*     (Given, auxiliary) Spectral reference frame (standard of rest),</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment">*     SPECSYSa.</span></div>
 <div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment">*     - First digit (i.e. 1000s):</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment">*       - 0: Non-specific coordinate type.</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment">*       - 1: Stokes coordinate.</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">*       - 2: Celestial coordinate (including CUBEFACE).</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">*       - 3: Spectral coordinate.</span></div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment">*     - Second digit (i.e. 100s):</span></div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">*       - 0: Linear axis.</span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment">*       - 1: Quantized axis (STOKES, CUBEFACE).</span></div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">*       - 2: Non-linear celestial axis.</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment">*       - 3: Non-linear spectral axis.</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment">*       - 4: Logarithmic axis.</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment">*       - 5: Tabular axis.</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment">*     - Third digit (i.e. 10s):</span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">*       - 0: Group number, e.g. lookup table number, being an index into the</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">*            tabprm array (see above).</span></div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">*     - The fourth digit is used as a qualifier depending on the axis type.</span></div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">*       - For celestial axes:</span></div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment">*         - 0: Longitude coordinate.</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment">*         - 1: Latitude coordinate.</span></div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">*         - 2: CUBEFACE number.</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment">*     wcsprm::specsys is changed.</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">*   char ssysobs[72]</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">*     (Given, auxiliary) The spectral reference frame in which there is no</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment">*     differential variation in the spectral coordinate across the</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment">*     field-of-view, SSYSOBSa.</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">*     wcsprm::ssysobs is changed.</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment">*   double velosys</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment">*     (Given, auxiliary) The relative radial velocity [m/s] between the</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">*     observer and the selected standard of rest in the direction of the</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment">*     celestial reference coordinate, VELOSYSa.</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment">*     wcsprm::velosys is changed.</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">*   double zsource</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">*     (Given, auxiliary) The redshift, ZSOURCEa, of the source.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">*     wcsprm::zsource is changed.</span></div>
 <div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment">*       - For lookup tables: the axis number in a multidimensional table.</span></div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment">*     CTYPEia in "4-3" form with unrecognized algorithm code will have its</span></div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">*     type set to -1 and generate an error.</span></div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment">*   void *padding</span></div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment">*   struct linprm lin</span></div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment">*     (Returned) Linear transformation parameters (usage is described in the</span></div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment">*     prologue to lin.h).</span></div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">*   struct celprm cel</span></div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">*     (Returned) Celestial transformation parameters (usage is described in</span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment">*     the prologue to cel.h).</span></div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">*   struct spcprm spc</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">*     (Returned) Spectral transformation parameters (usage is described in the</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">*     prologue to spc.h).</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment">*   char ssyssrc[72]</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">*     (Given, auxiliary) The spectral reference frame (standard of rest),</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment">*     SSYSSRCa, in which wcsprm::zsource was measured.</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment">*     wcsprm::ssyssrc is changed.</span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment">*   double velangl</span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment">*     (Given, auxiliary) The angle [deg] that should be used to decompose an</span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment">*     observed velocity into radial and transverse components.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">*     wcsprm::velangl is changed.</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment">*   char wcsname[72]</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment">*     (Given, auxiliary) The name given to the coordinate representation,</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">*     WCSNAMEa.  This variable accomodates the longest allowed string-valued</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">*     FITS keyword, being limited to 68 characters, plus the null-terminating</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">*     character.</span></div>
 <div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment">*   struct wcserr *err</span></div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">*     (Returned) If enabled, when an error status is returned this struct</span></div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment">*   void *m_padding</span></div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment">*   int m_flag</span></div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment">*   int m_naxis</span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment">*   double *m_crpix</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment">*   double *m_pc</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">*   double *m_cdelt</span></div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">*   double *m_crval</span></div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">*   char (*m_cunit)[72]</span></div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment">*   char (*m_ctype)[72]</span></div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">*   struct pvcard *m_pv</span></div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment">*   struct pscard *m_ps</span></div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">*   double *m_cd</span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment">*   double *m_crota</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">*   int *m_colax</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">*   char (*m_cname)[72]</span></div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment">*   double *m_crder</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment">*   double *m_csyer</span></div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">*   struct tabprm *m_tab</span></div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment">*   struct wtbarr *m_wtb</span></div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment">*     (For internal use only.)</span></div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment">* pscard struct - Store for PSi_ma keyrecords</span></div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment">* -------------------------------------------</span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">* The pscard struct is used to pass the parsed contents of PSi_ma keyrecords</span></div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment">* to wcsset() via the wcsprm struct.</span></div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">* All members of this struct are to be set by the user.</span></div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">*   int i</span></div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">*     (Given) Axis number (1-relative), as in the FITS PSi_ma keyword.</span></div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">*   int m</span></div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">*     (Given) Parameter number (non-negative), as in the FITS PSi_ma keyword.</span></div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">*   char value[72]</span></div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment">*     (Given) Parameter value.</span></div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">* pvcard struct - Store for PVi_ma keyrecords</span></div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">* -------------------------------------------</span></div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">* The pvcard struct is used to pass the parsed contents of PVi_ma keyrecords</span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment">* to wcsset() via the wcsprm struct.</span></div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment">* All members of this struct are to be set by the user.</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment">*   int i</span></div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">*     (Given) Axis number (1-relative), as in the FITS PVi_ma keyword.  If</span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment">*     i == 0, wcsset() will replace it with the latitude axis number.</span></div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment">*   int m</span></div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment">*     (Given) Parameter number (non-negative), as in the FITS PVi_ma keyword.</span></div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">*   double value</span></div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment">*     (Given) Parameter value.</span></div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment">*     It is not necessary to reset the wcsprm struct (via wcsset()) when</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">*     wcsprm::wcsname is changed.</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">*   int ntab</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment">*     (Given) See wcsprm::tab.</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment">*   int nwtb</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment">*     (Given) See wcsprm::wtb.</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment">*   struct tabprm *tab</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment">*     (Given) Address of the first element of an array of ntab tabprm structs</span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment">*     for which memory has been allocated.  These are used to store tabular</span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment">*     transformation parameters.</span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">*     Although technically wcsprm::ntab and tab are "given", they will</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment">*     normally be set by invoking wcstab(), whether directly or indirectly.</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">*     The tabprm structs contain some members that must be supplied and others</span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">*     that are derived.  The information to be supplied comes primarily from</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment">*     arrays stored in one or more FITS binary table extensions.  These</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment">*     arrays, referred to here as "wcstab arrays", are themselves located by</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment">*     parameters stored in the FITS image header.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment">*   struct wtbarr *wtb</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment">*     (Given) Address of the first element of an array of nwtb wtbarr structs</span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">*     for which memory has been allocated.  These are used in extracting</span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">*     wcstab arrays from a FITS binary table.</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment">*     Although technically wcsprm::nwtb and wtb are "given", they will</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">*     normally be set by invoking wcstab(), whether directly or indirectly.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">*   char lngtyp[8]</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">*     (Returned) Four-character WCS celestial longitude and ...</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment">*   char lattyp[8]</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment">*     (Returned) ... latitude axis types. e.g. "RA", "DEC", "GLON", "GLAT",</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment">*     etc. extracted from 'RA--', 'DEC-', 'GLON', 'GLAT', etc. in the first</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment">*     four characters of CTYPEia but with trailing dashes removed.  (Declared</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">*     as char[8] for alignment reasons.)</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment">*   int lng</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment">*     (Returned) Index for the longitude coordinate, and ...</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment">*   int lat</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">*     (Returned) ... index for the latitude coordinate, and ...</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment">*   int spec</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment">*     (Returned) ... index for the spectral coordinate in the imgcrd[][] and</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment">*     world[][] arrays in the API of wcsp2s(), wcss2p() and wcsmix().</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment">*     These may also serve as indices into the pixcrd[][] array provided that</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment">*     the PCi_ja matrix does not transpose axes.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment">*   int cubeface</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">*     (Returned) Index into the pixcrd[][] array for the CUBEFACE axis.  This</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">*     is used for quadcube projections where the cube faces are stored on a</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">*     separate axis (see wcs.h).</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">*   int *types</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">*     (Returned) Address of the first element of an array of int containing a</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">*     four-digit type code for each axis.</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">*     - First digit (i.e. 1000s):</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment">*       - 0: Non-specific coordinate type.</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">*       - 1: Stokes coordinate.</span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">*       - 2: Celestial coordinate (including CUBEFACE).</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">*       - 3: Spectral coordinate.</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment">*     - Second digit (i.e. 100s):</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment">*       - 0: Linear axis.</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">*       - 1: Quantized axis (STOKES, CUBEFACE).</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment">*       - 2: Non-linear celestial axis.</span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">*       - 3: Non-linear spectral axis.</span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment">*       - 4: Logarithmic axis.</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment">*       - 5: Tabular axis.</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment">*     - Third digit (i.e. 10s):</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment">*       - 0: Group number, e.g. lookup table number, being an index into the</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">*            tabprm array (see above).</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">*     - The fourth digit is used as a qualifier depending on the axis type.</span></div>
 <div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment">* wtbarr struct - Extraction of coordinate lookup tables from BINTABLE</span></div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment">* --------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment">* Function wcstab(), which is invoked automatically by wcspih(), sets up an</span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment">* array of wtbarr structs to assist in extracting coordinate lookup tables</span></div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment">* from a binary table extension (BINTABLE) and copying them into the tabprm</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">* structs stored in wcsprm.  Refer to the usage notes for wcspih() and</span></div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment">* wcstab() in wcshdr.h, and also the prologue to tab.h.</span></div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">* For C++ usage, because of a name space conflict with the wtbarr typedef</span></div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment">* defined in CFITSIO header fitsio.h, the wtbarr struct is renamed to wtbarr_s</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">* by preprocessor macro substitution with scope limited to wcs.h itself.</span></div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment">*   int i</span></div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment">*     (Given) Image axis number.</span></div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">*   int m</span></div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment">*     (Given) wcstab array axis number for index vectors.</span></div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">*   int kind</span></div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment">*     (Given) Character identifying the wcstab array type:</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">*       - c: coordinate array,</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment">*       - i: index vector.</span></div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">*   char extnam[72]</span></div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment">*     (Given) EXTNAME identifying the binary table extension.</span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment">*   int extver</span></div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">*     (Given) EXTVER identifying the binary table extension.</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment">*       - For celestial axes:</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment">*         - 0: Longitude coordinate.</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment">*         - 1: Latitude coordinate.</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment">*         - 2: CUBEFACE number.</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">*       - For lookup tables: the axis number in a multidimensional table.</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">*     CTYPEia in "4-3" form with unrecognized algorithm code will have its</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">*     type set to -1 and generate an error.</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">*   void *padding</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">*     (An unused variable inserted for alignment purposes only.)</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment">*   struct linprm lin</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment">*     (Returned) Linear transformation parameters (usage is described in the</span></div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">*     prologue to lin.h).</span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">*   struct celprm cel</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">*     (Returned) Celestial transformation parameters (usage is described in</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment">*     the prologue to cel.h).</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment">*   struct spcprm spc</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">*     (Returned) Spectral transformation parameters (usage is described in the</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">*     prologue to spc.h).</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment">*   struct wcserr *err</span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment">*     (Returned) If enabled, when an error status is returned, this struct</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">*     contains detailed information about the error, see wcserr_enable().</span></div>
 <div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">*   int extlev</span></div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">*     (Given) EXTLEV identifying the binary table extension.</span></div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment">*   char ttype[72]</span></div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment">*     (Given) TTYPEn identifying the column of the binary table that contains</span></div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment">*     the wcstab array.</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment">*   long row</span></div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">*     (Given) Table row number.</span></div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment">*   int ndim</span></div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment">*     (Given) Expected dimensionality of the wcstab array.</span></div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment">*   int *dimlen</span></div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment">*     (Given) Address of the first element of an array of int of length ndim</span></div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment">*     into which the wcstab array axis lengths are to be written.</span></div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment">*   double **arrayp</span></div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment">*     (Given) Pointer to an array of double which is to be allocated by the</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">*     user and into which the wcstab array is to be written.</span></div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">* Global variable: const char *wcs_errmsg[] - Status return messages</span></div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment">* ------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment">*===========================================================================*/</span></div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> </div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="preprocessor">#ifndef WCSLIB_WCS</span></div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="preprocessor">#define WCSLIB_WCS</span></div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> </div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="preprocessor">#include "<a class="code" href="lin_8h.html">lin.h</a>"</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="preprocessor">#include "<a class="code" href="cel_8h.html">cel.h</a>"</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="preprocessor">#include "<a class="code" href="spc_8h.html">spc.h</a>"</span></div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="preprocessor">#include "<a class="code" href="tab_8h.html">tab.h</a>"</span></div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div>
-<div class="line"><a name="l01383"></a><span class="lineno"><a class="line" href="wcs_8h.html#a0653c98b8a1bee5755740ae3f4854094"> 1383</a></span> <span class="preprocessor">#define WCSSUB_LONGITUDE 0x1001</span></div>
-<div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="wcs_8h.html#a5d377c202850ee0eaf44b3e989d0736e"> 1384</a></span> <span class="preprocessor">#define WCSSUB_LATITUDE  0x1002</span></div>
-<div class="line"><a name="l01385"></a><span class="lineno"><a class="line" href="wcs_8h.html#a22bbac394b025c4cfc7bd73b6d6e3962"> 1385</a></span> <span class="preprocessor">#define WCSSUB_CUBEFACE  0x1004</span></div>
-<div class="line"><a name="l01386"></a><span class="lineno"><a class="line" href="wcs_8h.html#ab9885b02031ff7aa7b094f4a1edee2cd"> 1386</a></span> <span class="preprocessor">#define WCSSUB_CELESTIAL 0x1007</span></div>
-<div class="line"><a name="l01387"></a><span class="lineno"><a class="line" href="wcs_8h.html#a4b2dfca2e80fe80ba85dc830cd9c377b"> 1387</a></span> <span class="preprocessor">#define WCSSUB_SPECTRAL  0x1008</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"><a class="line" href="wcs_8h.html#a6ba6d2640572b12a11e3558fa75a01ed"> 1388</a></span> <span class="preprocessor">#define WCSSUB_STOKES    0x1010</span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> </div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> </div>
-<div class="line"><a name="l01391"></a><span class="lineno"><a class="line" href="wcs_8h.html#a232a0e8d0de3d599955e6eaef74067bc"> 1391</a></span> <span class="preprocessor">#define WCSCOMPARE_ANCILLARY 0x0001</span></div>
-<div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="wcs_8h.html#a22cc4f926c4cd495e45dfb773a6498d3"> 1392</a></span> <span class="preprocessor">#define WCSCOMPARE_TILING    0x0002</span></div>
-<div class="line"><a name="l01393"></a><span class="lineno"><a class="line" href="wcs_8h.html#a49672bfc5329d584fae143b6ddb6dc1d"> 1393</a></span> <span class="preprocessor">#define WCSCOMPARE_CRPIX     0x0004</span></div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> </div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> </div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="wcs_8h.html#ad16bd8db875ee05b014429efdc1f3471">wcs_errmsg</a>[];</div>
-<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> </div>
-<div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f"> 1398</a></span> <span class="keyword">enum</span> <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f">wcs_errmsg_enum</a> {</div>
-<div class="line"><a name="l01399"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8"> 1399</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8">WCSERR_SUCCESS</a>         =  0,  <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l01400"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f"> 1400</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f">WCSERR_NULL_POINTER</a>    =  1,  <span class="comment">/* Null wcsprm pointer passed. */</span></div>
-<div class="line"><a name="l01401"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af"> 1401</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af">WCSERR_MEMORY</a>          =  2,  <span class="comment">/* Memory allocation failed. */</span></div>
-<div class="line"><a name="l01402"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0"> 1402</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0">WCSERR_SINGULAR_MTX</a>    =  3,  <span class="comment">/* Linear transformation matrix is</span></div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment">                                   singular. */</span></div>
-<div class="line"><a name="l01404"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313"> 1404</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313">WCSERR_BAD_CTYPE</a>       =  4,  <span class="comment">/* Inconsistent or unrecognized coordinate</span></div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment">                                   axis types. */</span></div>
-<div class="line"><a name="l01406"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9"> 1406</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9">WCSERR_BAD_PARAM</a>       =  5,  <span class="comment">/* Invalid parameter value. */</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007"> 1407</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007">WCSERR_BAD_COORD_TRANS</a> =  6,  <span class="comment">/* Invalid coordinate transformation</span></div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">                                   parameters. */</span></div>
-<div class="line"><a name="l01409"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020"> 1409</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020">WCSERR_ILL_COORD_TRANS</a> =  7,  <span class="comment">/* Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment">                                   parameters. */</span></div>
-<div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69"> 1411</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69">WCSERR_BAD_PIX</a>         =  8,  <span class="comment">/* One or more of the pixel coordinates were</span></div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804"> 1413</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804">WCSERR_BAD_WORLD</a>       =  9,  <span class="comment">/* One or more of the world coordinates were</span></div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment">                                   invalid. */</span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d"> 1415</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d">WCSERR_BAD_WORLD_COORD</a> = 10,  <span class="comment">/* Invalid world coordinate. */</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a"> 1416</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a">WCSERR_NO_SOLUTION</a>     = 11,  <span class="comment">/* No solution found in the specified</span></div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment">                                   interval. */</span></div>
-<div class="line"><a name="l01418"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e"> 1418</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e">WCSERR_BAD_SUBIMAGE</a>    = 12,  <span class="comment">/* Invalid subimage specification. */</span></div>
-<div class="line"><a name="l01419"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7"> 1419</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7">WCSERR_NON_SEPARABLE</a>   = 13   <span class="comment">/* Non-separable subimage coordinate</span></div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment">                                   system. */</span></div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> };</div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> </div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment">/* Struct used for storing PVi_ma keywords. */</span></div>
-<div class="line"><a name="l01425"></a><span class="lineno"><a class="line" href="structpvcard.html"> 1425</a></span> <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> {</div>
-<div class="line"><a name="l01426"></a><span class="lineno"><a class="line" href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7"> 1426</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7">i</a>;                        <span class="comment">/* Axis number, as in PVi_ma (1-relative).  */</span></div>
-<div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f"> 1427</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f">m</a>;                        <span class="comment">/* Parameter number, ditto  (0-relative).   */</span></div>
-<div class="line"><a name="l01428"></a><span class="lineno"><a class="line" href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059"> 1428</a></span>   <span class="keywordtype">double</span> <a class="code" href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059">value</a>;                 <span class="comment">/* Parameter value.                         */</span></div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> };</div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> </div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">/* Struct used for storing PSi_ma keywords. */</span></div>
-<div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="structpscard.html"> 1432</a></span> <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> {</div>
-<div class="line"><a name="l01433"></a><span class="lineno"><a class="line" href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1"> 1433</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1">i</a>;                        <span class="comment">/* Axis number, as in PSi_ma (1-relative).  */</span></div>
-<div class="line"><a name="l01434"></a><span class="lineno"><a class="line" href="structpscard.html#a71912f084bc3cadeb0758756a723071a"> 1434</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpscard.html#a71912f084bc3cadeb0758756a723071a">m</a>;                        <span class="comment">/* Parameter number, ditto  (0-relative).   */</span></div>
-<div class="line"><a name="l01435"></a><span class="lineno"><a class="line" href="structpscard.html#a9986f2ace84978f6cc543224b57592c9"> 1435</a></span>   <span class="keywordtype">char</span> <a class="code" href="structpscard.html#a9986f2ace84978f6cc543224b57592c9">value</a>[72];               <span class="comment">/* Parameter value.                         */</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> };</div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> </div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>                                 <span class="comment">/* For extracting wcstab arrays.  Matches   */</span></div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>                                 <span class="comment">/* the wtbarr typedef defined in CFITSIO    */</span></div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>                                 <span class="comment">/* header fitsio.h.                         */</span></div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="preprocessor">#define wtbarr wtbarr_s         </span><span class="comment">/* See prologue above.                      */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> {</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a8743b84c99b4b5e7ab7bf0653507a180">i</a>;                       <span class="comment">/* Image axis number.                       */</span></div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a1e88ad32570534a006e96cba721489b5">m</a>;                       <span class="comment">/* Array axis number for index vectors.     */</span></div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#af8ea7b15992ab7a86be63ff83318be41">kind</a>;                    <span class="comment">/* wcstab array type.                       */</span></div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>   <span class="keywordtype">char</span> <a class="code" href="structwtbarr.html#a9f1fcad814aa3da08dfa75ede2a07deb">extnam</a>[72];              <span class="comment">/* EXTNAME of binary table extension.       */</span></div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a24487eda7b17800f41bd4a452c6306d5">extver</a>;                  <span class="comment">/* EXTVER  of binary table extension.       */</span></div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a10c8dba85b62e2794071dd50a41c4bb1">extlev</a>;                  <span class="comment">/* EXTLEV  of binary table extension.       */</span></div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>   <span class="keywordtype">char</span> <a class="code" href="structwtbarr.html#a750832793167bbeebd1074e29844415d">ttype</a>[72];               <span class="comment">/* TTYPEn of column containing the array.   */</span></div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>   <span class="keywordtype">long</span> <a class="code" href="structwtbarr.html#a2ff7c235353320c6dd98951484012ee7">row</a>;                     <span class="comment">/* Table row number.                        */</span></div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#af862b4f90b0406ed8dd0c240768d4bd3">ndim</a>;                    <span class="comment">/* Expected wcstab array dimensionality.    */</span></div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>   <span class="keywordtype">int</span>  *<a class="code" href="structwtbarr.html#a901403d05f985d4a1fbd2fdc9585bd50">dimlen</a>;                 <span class="comment">/* Where to write the array axis lengths.   */</span></div>
-<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>   <span class="keywordtype">double</span> **<a class="code" href="structwtbarr.html#a41c30234dbdf18ac094872cf39562172">arrayp</a>;              <span class="comment">/* Where to write the address of the array  */</span></div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>                                 <span class="comment">/* allocated to store the wcstab array.     */</span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> };</div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> </div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> </div>
-<div class="line"><a name="l01460"></a><span class="lineno"><a class="line" href="structwcsprm.html"> 1460</a></span> <span class="keyword">struct </span><a class="code" href="structwcsprm.html">wcsprm</a> {</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01463"></a><span class="lineno"><a class="line" href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68"> 1463</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>   <span class="comment">/* FITS header keyvalues to be provided (see the prologue above).         */</span></div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"><a class="line" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834"> 1467</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">naxis</a>;                 <span class="comment">/* Number of axes (pixel and coordinate).   */</span></div>
-<div class="line"><a name="l01468"></a><span class="lineno"><a class="line" href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f"> 1468</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f">crpix</a>;                <span class="comment">/* CRPIXja keyvalues for each pixel axis.   */</span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"><a class="line" href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63"> 1469</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63">pc</a>;                   <span class="comment">/* PCi_ja  linear transformation matrix.    */</span></div>
-<div class="line"><a name="l01470"></a><span class="lineno"><a class="line" href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446"> 1470</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446">cdelt</a>;                <span class="comment">/* CDELTia keyvalues for each coord axis.   */</span></div>
-<div class="line"><a name="l01471"></a><span class="lineno"><a class="line" href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c"> 1471</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c">crval</a>;                <span class="comment">/* CRVALia keyvalues for each coord axis.   */</span></div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
-<div class="line"><a name="l01473"></a><span class="lineno"><a class="line" href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52"> 1473</a></span>   char   (*<a class="code" href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52">cunit</a>)[72];          <span class="comment">/* CUNITia keyvalues for each coord axis.   */</span></div>
-<div class="line"><a name="l01474"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e"> 1474</a></span>   char   (*<a class="code" href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e">ctype</a>)[72];          <span class="comment">/* CTYPEia keyvalues for each coord axis.   */</span></div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div>
-<div class="line"><a name="l01476"></a><span class="lineno"><a class="line" href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d"> 1476</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d">lonpole</a>;               <span class="comment">/* LONPOLEa keyvalue.                       */</span></div>
-<div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5"> 1477</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5">latpole</a>;               <span class="comment">/* LATPOLEa keyvalue.                       */</span></div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> </div>
-<div class="line"><a name="l01479"></a><span class="lineno"><a class="line" href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41"> 1479</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41">restfrq</a>;               <span class="comment">/* RESTFRQa keyvalue.                       */</span></div>
-<div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e"> 1480</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e">restwav</a>;               <span class="comment">/* RESTWAVa keyvalue.                       */</span></div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> </div>
-<div class="line"><a name="l01482"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd"> 1482</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd">npv</a>;                   <span class="comment">/* Number of PVi_ma keywords, and the       */</span></div>
-<div class="line"><a name="l01483"></a><span class="lineno"><a class="line" href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc"> 1483</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc">npvmax</a>;                <span class="comment">/* number for which space was allocated.    */</span></div>
-<div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c"> 1484</a></span>   <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> *<a class="code" href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c">pv</a>;            <span class="comment">/* PVi_ma keywords for each i and m.        */</span></div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> </div>
-<div class="line"><a name="l01486"></a><span class="lineno"><a class="line" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65"> 1486</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">nps</a>;                   <span class="comment">/* Number of PSi_ma keywords, and the       */</span></div>
-<div class="line"><a name="l01487"></a><span class="lineno"><a class="line" href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b"> 1487</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b">npsmax</a>;                <span class="comment">/* number for which space was allocated.    */</span></div>
-<div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256"> 1488</a></span>   <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> *<a class="code" href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256">ps</a>;            <span class="comment">/* PSi_ma keywords for each i and m.        */</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> </div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>   <span class="comment">/* Alternative header keyvalues (see the prologue above).                 */</span></div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01492"></a><span class="lineno"><a class="line" href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1"> 1492</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1">cd</a>;                   <span class="comment">/* CDi_ja linear transformation matrix.     */</span></div>
-<div class="line"><a name="l01493"></a><span class="lineno"><a class="line" href="structwcsprm.html#af124a4259475ea355ced38e73a05363a"> 1493</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#af124a4259475ea355ced38e73a05363a">crota</a>;                <span class="comment">/* CROTAia keyvalues for each coord axis.   */</span></div>
-<div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e"> 1494</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">altlin</a>;                <span class="comment">/* Alternative representations              */</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>                                 <span class="comment">/*   Bit 0: PCi_ja  is present,             */</span></div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>                                 <span class="comment">/*   Bit 1: CDi_ja  is present,             */</span></div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>                                 <span class="comment">/*   Bit 2: CROTAia is present.             */</span></div>
-<div class="line"><a name="l01498"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908"> 1498</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908">velref</a>;                <span class="comment">/* AIPS velocity code, VELREF.              */</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">*   void *m_padding</span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment">*   int m_flag</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment">*   int m_naxis</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment">*   double *m_crpix</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">*   double *m_pc</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment">*   double *m_cdelt</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">*   double *m_crval</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment">*   char (*m_cunit)[72]</span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment">*   char (*m_ctype)[72]</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment">*   struct pvcard *m_pv</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">*   struct pscard *m_ps</span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">*   double *m_cd</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment">*   double *m_crota</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment">*   int *m_colax</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">*   char (*m_cname)[72]</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment">*   double *m_crder</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment">*   double *m_csyer</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="comment">*   struct tabprm *m_tab</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="comment">*   struct wtbarr *m_wtb</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment">*     (For internal use only.)</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment">* pscard struct - Store for PSi_ma keyrecords</span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment">* -------------------------------------------</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <span class="comment">* The pscard struct is used to pass the parsed contents of PSi_ma keyrecords</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment">* to wcsset() via the wcsprm struct.</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment">* All members of this struct are to be set by the user.</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment">*   int i</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">*     (Given) Axis number (1-relative), as in the FITS PSi_ma keyword.</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment">*   int m</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">*     (Given) Parameter number (non-negative), as in the FITS PSi_ma keyword.</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">*   char value[72]</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">*     (Given) Parameter value.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment">* pvcard struct - Store for PVi_ma keyrecords</span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment">* -------------------------------------------</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment">* The pvcard struct is used to pass the parsed contents of PVi_ma keyrecords</span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">* to wcsset() via the wcsprm struct.</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment">* All members of this struct are to be set by the user.</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment">*   int i</span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment">*     (Given) Axis number (1-relative), as in the FITS PVi_ma keyword.  If</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">*     i == 0, wcsset() will replace it with the latitude axis number.</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment">*   int m</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment">*     (Given) Parameter number (non-negative), as in the FITS PVi_ma keyword.</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment">*   double value</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment">*     (Given) Parameter value.</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment">* wtbarr struct - Extraction of coordinate lookup tables from BINTABLE</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment">* --------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="comment">* Function wcstab(), which is invoked automatically by wcspih(), sets up an</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment">* array of wtbarr structs to assist in extracting coordinate lookup tables</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment">* from a binary table extension (BINTABLE) and copying them into the tabprm</span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">* structs stored in wcsprm.  Refer to the usage notes for wcspih() and</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment">* wcstab() in wcshdr.h, and also the prologue to tab.h.</span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment">* For C++ usage, because of a name space conflict with the wtbarr typedef</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment">* defined in CFITSIO header fitsio.h, the wtbarr struct is renamed to wtbarr_s</span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment">* by preprocessor macro substitution with scope limited to wcs.h itself.</span></div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment">*   int i</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment">*     (Given) Image axis number.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment">*   int m</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment">*     (Given) wcstab array axis number for index vectors.</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment">*   int kind</span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">*     (Given) Character identifying the wcstab array type:</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="comment">*       - c: coordinate array,</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment">*       - i: index vector.</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment">*   char extnam[72]</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">*     (Given) EXTNAME identifying the binary table extension.</span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment">*   int extver</span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment">*     (Given) EXTVER identifying the binary table extension.</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment">*   int extlev</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment">*     (Given) EXTLEV identifying the binary table extension.</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment">*   char ttype[72]</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment">*     (Given) TTYPEn identifying the column of the binary table that contains</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">*     the wcstab array.</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">*   long row</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="comment">*     (Given) Table row number.</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment">*   int ndim</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="comment">*     (Given) Expected dimensionality of the wcstab array.</span></div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment">*   int *dimlen</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="comment">*     (Given) Address of the first element of an array of int of length ndim</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="comment">*     into which the wcstab array axis lengths are to be written.</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">*   double **arrayp</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment">*     (Given) Pointer to an array of double which is to be allocated by the</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment">*     user and into which the wcstab array is to be written.</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="comment">* Global variable: const char *wcs_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment">* ------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment">*===========================================================================*/</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> </div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="preprocessor">#ifndef WCSLIB_WCS</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="preprocessor">#define WCSLIB_WCS</span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> </div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <span class="preprocessor">#include "<a class="code" href="lin_8h.html">lin.h</a>"</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="preprocessor">#include "<a class="code" href="cel_8h.html">cel.h</a>"</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="preprocessor">#include "<a class="code" href="spc_8h.html">spc.h</a>"</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> </div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> </div>
+<div class="line"><a name="l01485"></a><span class="lineno"><a class="line" href="wcs_8h.html#a0653c98b8a1bee5755740ae3f4854094"> 1485</a></span> <span class="preprocessor">#define WCSSUB_LONGITUDE 0x1001</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"><a class="line" href="wcs_8h.html#a5d377c202850ee0eaf44b3e989d0736e"> 1486</a></span> <span class="preprocessor">#define WCSSUB_LATITUDE  0x1002</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"><a class="line" href="wcs_8h.html#a22bbac394b025c4cfc7bd73b6d6e3962"> 1487</a></span> <span class="preprocessor">#define WCSSUB_CUBEFACE  0x1004</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="wcs_8h.html#ab9885b02031ff7aa7b094f4a1edee2cd"> 1488</a></span> <span class="preprocessor">#define WCSSUB_CELESTIAL 0x1007</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"><a class="line" href="wcs_8h.html#a4b2dfca2e80fe80ba85dc830cd9c377b"> 1489</a></span> <span class="preprocessor">#define WCSSUB_SPECTRAL  0x1008</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"><a class="line" href="wcs_8h.html#a6ba6d2640572b12a11e3558fa75a01ed"> 1490</a></span> <span class="preprocessor">#define WCSSUB_STOKES    0x1010</span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> </div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> </div>
+<div class="line"><a name="l01493"></a><span class="lineno"><a class="line" href="wcs_8h.html#a232a0e8d0de3d599955e6eaef74067bc"> 1493</a></span> <span class="preprocessor">#define WCSCOMPARE_ANCILLARY 0x0001</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="wcs_8h.html#a22cc4f926c4cd495e45dfb773a6498d3"> 1494</a></span> <span class="preprocessor">#define WCSCOMPARE_TILING    0x0002</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"><a class="line" href="wcs_8h.html#a49672bfc5329d584fae143b6ddb6dc1d"> 1495</a></span> <span class="preprocessor">#define WCSCOMPARE_CRPIX     0x0004</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> </div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> </div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="wcs_8h.html#ad16bd8db875ee05b014429efdc1f3471">wcs_errmsg</a>[];</div>
 <div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> </div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="comment">/* Auxiliary coordinate system information, not used by WCSLIB.           */</span></div>
-<div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3"> 1501</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3">alt</a>[4];</div>
-<div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca"> 1502</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca">colnum</a>;</div>
-<div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55"> 1503</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55">colax</a>;</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> </div>
-<div class="line"><a name="l01505"></a><span class="lineno"><a class="line" href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b"> 1505</a></span>   char   (*<a class="code" href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b">cname</a>)[72];</div>
-<div class="line"><a name="l01506"></a><span class="lineno"><a class="line" href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4"> 1506</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4">crder</a>;</div>
-<div class="line"><a name="l01507"></a><span class="lineno"><a class="line" href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f"> 1507</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f">csyer</a>;</div>
-<div class="line"><a name="l01508"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63"> 1508</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63">dateavg</a>[72];</div>
-<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120"> 1509</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120">dateobs</a>[72];</div>
-<div class="line"><a name="l01510"></a><span class="lineno"><a class="line" href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864"> 1510</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864">equinox</a>;</div>
-<div class="line"><a name="l01511"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8"> 1511</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">mjdavg</a>;</div>
-<div class="line"><a name="l01512"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa"> 1512</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa">mjdobs</a>;</div>
-<div class="line"><a name="l01513"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb"> 1513</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb">obsgeo</a>[3];</div>
-<div class="line"><a name="l01514"></a><span class="lineno"><a class="line" href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48"> 1514</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48">radesys</a>[72];</div>
-<div class="line"><a name="l01515"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea"> 1515</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea">specsys</a>[72];</div>
-<div class="line"><a name="l01516"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223"> 1516</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223">ssysobs</a>[72];</div>
-<div class="line"><a name="l01517"></a><span class="lineno"><a class="line" href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83"> 1517</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83">velosys</a>;</div>
-<div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1"> 1518</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">zsource</a>;</div>
-<div class="line"><a name="l01519"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20"> 1519</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20">ssyssrc</a>[72];</div>
-<div class="line"><a name="l01520"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4"> 1520</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4">velangl</a>;</div>
-<div class="line"><a name="l01521"></a><span class="lineno"><a class="line" href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66"> 1521</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66">wcsname</a>[72];</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> </div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   <span class="comment">/* Coordinate lookup tables (see the prologue above).                     */</span></div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01525"></a><span class="lineno"><a class="line" href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241"> 1525</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241">ntab</a>;                  <span class="comment">/* Number of separate tables.               */</span></div>
-<div class="line"><a name="l01526"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801"> 1526</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801">nwtb</a>;                  <span class="comment">/* Number of wtbarr structs.                */</span></div>
-<div class="line"><a name="l01527"></a><span class="lineno"><a class="line" href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709"> 1527</a></span>   <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> *<a class="code" href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709">tab</a>;           <span class="comment">/* Tabular transformation parameters.       */</span></div>
-<div class="line"><a name="l01528"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2"> 1528</a></span>   <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> *<a class="code" href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2">wtb</a>;           <span class="comment">/* Array of wtbarr structs.                 */</span></div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> </div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   <span class="comment">/* Information derived from the FITS header keyvalues by wcsset().        */</span></div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01532"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c"> 1532</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c">lngtyp</a>[8], <a class="code" href="structwcsprm.html#ae352318ce3202dab1b5db8b9ceec7703">lattyp</a>[8];  <span class="comment">/* Celestial axis types, e.g. RA, DEC.      */</span></div>
-<div class="line"><a name="l01533"></a><span class="lineno"><a class="line" href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b"> 1533</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a08098820949433d1336841d32d0b62b5">lng</a>, <a class="code" href="structwcsprm.html#ab7f7173e6d2b1b8028a3275bdd751e79">lat</a>, <a class="code" href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b">spec</a>;        <span class="comment">/* Longitud [...]
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>                                 <span class="comment">/* indices (0-relative).                    */</span></div>
-<div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708"> 1535</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708">cubeface</a>;              <span class="comment">/* True if there is a CUBEFACE axis.        */</span></div>
-<div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef"> 1536</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef">types</a>;                <span class="comment">/* Coordinate type codes for each axis.     */</span></div>
-<div class="line"><a name="l01537"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4"> 1537</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> </div>
-<div class="line"><a name="l01539"></a><span class="lineno"><a class="line" href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8"> 1539</a></span>   <span class="keyword">struct </span><a class="code" href="structlinprm.html">linprm</a> <a class="code" href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8">lin</a>;            <span class="comment">/* Linear    transformation parameters.     */</span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba"> 1540</a></span>   <span class="keyword">struct </span><a class="code" href="structcelprm.html">celprm</a> <a class="code" href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba">cel</a>;            <span class="comment">/* Celestial transformation parameters.     */</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7"> 1541</a></span>   <span class="keyword">struct </span><a class="code" href="structspcprm.html">spcprm</a> <a class="code" href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7">spc</a>;            <span class="comment">/* Spectral  transformation parameters.     */</span></div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> </div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>   <span class="comment">/* Error handling                                                         */</span></div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01545"></a><span class="lineno"><a class="line" href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed"> 1545</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed">err</a>;</div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> </div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>   <span class="comment">/* Private - the remainder are for memory management.                     */</span></div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
-<div class="line"><a name="l01549"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563"> 1549</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">m_padding</a>;</div>
-<div class="line"><a name="l01550"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d"> 1550</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">m_flag</a>, <a class="code" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">m_naxis</a>;</div>
-<div class="line"><a name="l01551"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03"> 1551</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a164e3852bcd2dea8b5f73e1dff79ddf5">m_crpix</a>, *<a class="code" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">m_pc</a>, *<a class="code" href="structwcsprm.html#a42e0ff2da3b0c1ca0a9509f787ed1951">m_cdelt</a>, *<a class="code" href="struct [...]
-<div class="line"><a name="l01552"></a><span class="lineno"><a class="line" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95"> 1552</a></span>   char  (*<a class="code" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">m_cunit</a>)[72], (*m_ctype)[72];</div>
-<div class="line"><a name="l01553"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986"> 1553</a></span>   <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> *<a class="code" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">m_pv</a>;</div>
-<div class="line"><a name="l01554"></a><span class="lineno"><a class="line" href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374"> 1554</a></span>   <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> *<a class="code" href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374">m_ps</a>;</div>
-<div class="line"><a name="l01555"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d"> 1555</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">m_cd</a>, *<a class="code" href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d">m_crota</a>;</div>
-<div class="line"><a name="l01556"></a><span class="lineno"><a class="line" href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7"> 1556</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7">m_colax</a>;</div>
-<div class="line"><a name="l01557"></a><span class="lineno"><a class="line" href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582"> 1557</a></span>   char  (*<a class="code" href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582">m_cname</a>)[72];</div>
-<div class="line"><a name="l01558"></a><span class="lineno"><a class="line" href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac"> 1558</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a0d15534535c7f9308c9daa2cceff29e7">m_crder</a>, *<a class="code" href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac">m_csyer</a>;</div>
-<div class="line"><a name="l01559"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8"> 1559</a></span>   <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> *<a class="code" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">m_tab</a>;</div>
-<div class="line"><a name="l01560"></a><span class="lineno"><a class="line" href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f"> 1560</a></span>   <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> *<a class="code" href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f">m_wtb</a>;</div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> };</div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> </div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="comment">/* Size of the wcsprm struct in int units, used by the Fortran wrappers. */</span></div>
-<div class="line"><a name="l01564"></a><span class="lineno"><a class="line" href="wcs_8h.html#a6852f6dd2883c82296f1108b897d337e"> 1564</a></span> <span class="preprocessor">#define WCSLEN (sizeof(struct wcsprm)/sizeof(int))</span></div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> </div>
+<div class="line"><a name="l01500"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f"> 1500</a></span> <span class="keyword">enum</span> <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f">wcs_errmsg_enum</a> {</div>
+<div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8"> 1501</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8">WCSERR_SUCCESS</a>         =  0,  <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f"> 1502</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f">WCSERR_NULL_POINTER</a>    =  1,  <span class="comment">/* Null wcsprm pointer passed. */</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af"> 1503</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af">WCSERR_MEMORY</a>          =  2,  <span class="comment">/* Memory allocation failed. */</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0"> 1504</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0">WCSERR_SINGULAR_MTX</a>    =  3,  <span class="comment">/* Linear transformation matrix is</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> <span class="comment">                                   singular. */</span></div>
+<div class="line"><a name="l01506"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313"> 1506</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313">WCSERR_BAD_CTYPE</a>       =  4,  <span class="comment">/* Inconsistent or unrecognized coordinate</span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="comment">                                   axis type. */</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9"> 1508</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9">WCSERR_BAD_PARAM</a>       =  5,  <span class="comment">/* Invalid parameter value. */</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007"> 1509</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007">WCSERR_BAD_COORD_TRANS</a> =  6,  <span class="comment">/* Unrecognized coordinate transformation</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment">                                   parameter. */</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020"> 1511</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020">WCSERR_ILL_COORD_TRANS</a> =  7,  <span class="comment">/* Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">                                   parameter. */</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69"> 1513</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69">WCSERR_BAD_PIX</a>         =  8,  <span class="comment">/* One or more of the pixel coordinates were</span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804"> 1515</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804">WCSERR_BAD_WORLD</a>       =  9,  <span class="comment">/* One or more of the world coordinates were</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment">                                   invalid. */</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d"> 1517</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d">WCSERR_BAD_WORLD_COORD</a> = 10,  <span class="comment">/* Invalid world coordinate. */</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a"> 1518</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a">WCSERR_NO_SOLUTION</a>     = 11,  <span class="comment">/* No solution found in the specified</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment">                                   interval. */</span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e"> 1520</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e">WCSERR_BAD_SUBIMAGE</a>    = 12,  <span class="comment">/* Invalid subimage specification. */</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"><a class="line" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7"> 1521</a></span>   <a class="code" href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7">WCSERR_NON_SEPARABLE</a>   = 13   <span class="comment">/* Non-separable subimage coordinate</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">                                   system. */</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> };</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> </div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> </div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment">/* Struct used for storing PVi_ma keywords. */</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"><a class="line" href="structpvcard.html"> 1527</a></span> <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> {</div>
+<div class="line"><a name="l01528"></a><span class="lineno"><a class="line" href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7"> 1528</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7">i</a>;                        <span class="comment">/* Axis number, as in PVi_ma (1-relative).  */</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"><a class="line" href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f"> 1529</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f">m</a>;                        <span class="comment">/* Parameter number, ditto  (0-relative).   */</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059"> 1530</a></span>   <span class="keywordtype">double</span> <a class="code" href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059">value</a>;                 <span class="comment">/* Parameter value.                         */</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> };</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> </div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment">/* Struct used for storing PSi_ma keywords. */</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"><a class="line" href="structpscard.html"> 1534</a></span> <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> {</div>
+<div class="line"><a name="l01535"></a><span class="lineno"><a class="line" href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1"> 1535</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1">i</a>;                        <span class="comment">/* Axis number, as in PSi_ma (1-relative).  */</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="structpscard.html#a71912f084bc3cadeb0758756a723071a"> 1536</a></span>   <span class="keywordtype">int</span> <a class="code" href="structpscard.html#a71912f084bc3cadeb0758756a723071a">m</a>;                        <span class="comment">/* Parameter number, ditto  (0-relative).   */</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"><a class="line" href="structpscard.html#a9986f2ace84978f6cc543224b57592c9"> 1537</a></span>   <span class="keywordtype">char</span> <a class="code" href="structpscard.html#a9986f2ace84978f6cc543224b57592c9">value</a>[72];               <span class="comment">/* Parameter value.                         */</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> };</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> </div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>                                 <span class="comment">/* For extracting wcstab arrays.  Matches   */</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>                                 <span class="comment">/* the wtbarr typedef defined in CFITSIO    */</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>                                 <span class="comment">/* header fitsio.h.                         */</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="preprocessor">#define wtbarr wtbarr_s         </span><span class="comment">/* See prologue above.                      */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> {</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a8743b84c99b4b5e7ab7bf0653507a180">i</a>;                       <span class="comment">/* Image axis number.                       */</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a1e88ad32570534a006e96cba721489b5">m</a>;                       <span class="comment">/* Array axis number for index vectors.     */</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#af8ea7b15992ab7a86be63ff83318be41">kind</a>;                    <span class="comment">/* wcstab array type.                       */</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>   <span class="keywordtype">char</span> <a class="code" href="structwtbarr.html#a9f1fcad814aa3da08dfa75ede2a07deb">extnam</a>[72];              <span class="comment">/* EXTNAME of binary table extension.       */</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a24487eda7b17800f41bd4a452c6306d5">extver</a>;                  <span class="comment">/* EXTVER  of binary table extension.       */</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#a10c8dba85b62e2794071dd50a41c4bb1">extlev</a>;                  <span class="comment">/* EXTLEV  of binary table extension.       */</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   <span class="keywordtype">char</span> <a class="code" href="structwtbarr.html#a750832793167bbeebd1074e29844415d">ttype</a>[72];               <span class="comment">/* TTYPEn of column containing the array.   */</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>   <span class="keywordtype">long</span> <a class="code" href="structwtbarr.html#a2ff7c235353320c6dd98951484012ee7">row</a>;                     <span class="comment">/* Table row number.                        */</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>   <span class="keywordtype">int</span>  <a class="code" href="structwtbarr.html#af862b4f90b0406ed8dd0c240768d4bd3">ndim</a>;                    <span class="comment">/* Expected wcstab array dimensionality.    */</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>   <span class="keywordtype">int</span>  *<a class="code" href="structwtbarr.html#a901403d05f985d4a1fbd2fdc9585bd50">dimlen</a>;                 <span class="comment">/* Where to write the array axis lengths.   */</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>   <span class="keywordtype">double</span> **<a class="code" href="structwtbarr.html#a41c30234dbdf18ac094872cf39562172">arrayp</a>;              <span class="comment">/* Where to write the address of the array  */</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>                                 <span class="comment">/* allocated to store the wcstab array.     */</span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> };</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> </div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> </div>
+<div class="line"><a name="l01562"></a><span class="lineno"><a class="line" href="structwcsprm.html"> 1562</a></span> <span class="keyword">struct </span><a class="code" href="structwcsprm.html">wcsprm</a> {</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   <span class="comment">/* Initialization flag (see the prologue above).                          */</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"><a class="line" href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68"> 1565</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68">flag</a>;                  <span class="comment">/* Set to zero to force initialization.     */</span></div>
 <div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> </div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a42b2578d76ace7ca6114d82b7ae46a89">wcsnpv</a>(<span class="keywordtype">int</span> n);</div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> </div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ae790c9ce6c9b7a4845cf1c3c97b1e97a">wcsnps</a>(<span class="keywordtype">int</span> n);</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> </div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcsini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> naxis, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> </div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a864c99fef9f3eee29085ce42d0ee0d64">wcssub</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcssrc, <span class="keywordtype">int</span> *nsub, <span class="keywordtype">int</span> axes[],</div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>            <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcsdst);</div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> </div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a78d5d27f74218723acde6d3aa232c4a5">wcscompare</a>(<span class="keywordtype">int</span> cmp, <span class="keywordtype">double</span> tol, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs1,</div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>                <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs2, <span class="keywordtype">int</span> *equal);</div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> </div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>   <span class="comment">/* FITS header keyvalues to be provided (see the prologue above).         */</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"><a class="line" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834"> 1569</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">naxis</a>;                 <span class="comment">/* Number of axes (pixel and coordinate).   */</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"><a class="line" href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f"> 1570</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f">crpix</a>;                <span class="comment">/* CRPIXja keyvalues for each pixel axis.   */</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"><a class="line" href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63"> 1571</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63">pc</a>;                   <span class="comment">/* PCi_ja  linear transformation matrix.    */</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"><a class="line" href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446"> 1572</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446">cdelt</a>;                <span class="comment">/* CDELTia keyvalues for each coord axis.   */</span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"><a class="line" href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c"> 1573</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c">crval</a>;                <span class="comment">/* CRVALia keyvalues for each coord axis.   */</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> </div>
+<div class="line"><a name="l01575"></a><span class="lineno"><a class="line" href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52"> 1575</a></span>   char   (*<a class="code" href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52">cunit</a>)[72];          <span class="comment">/* CUNITia keyvalues for each coord axis.   */</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e"> 1576</a></span>   char   (*<a class="code" href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e">ctype</a>)[72];          <span class="comment">/* CTYPEia keyvalues for each coord axis.   */</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> </div>
+<div class="line"><a name="l01578"></a><span class="lineno"><a class="line" href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d"> 1578</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d">lonpole</a>;               <span class="comment">/* LONPOLEa keyvalue.                       */</span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5"> 1579</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5">latpole</a>;               <span class="comment">/* LATPOLEa keyvalue.                       */</span></div>
 <div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> </div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ab9aeb8cf1afb1bfb22e989580d90fca8">wcsprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> </div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keyword">const</span> <span class="keywordtype">char</span> *prefix);</div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> </div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#af226d8537fbc578d63f1ba5601078398">wcsbchk</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> bounds);</div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> </div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> </div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a27d3dd209db3e76cf4c50f48c01ba986">wcsp2s</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> pixcrd[],</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>            <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> world[],</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>            <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> </div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a60673d05a3513659ac848a9cb3d0cb07">wcss2p</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> world[],</div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> pixcrd[],</div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>            <span class="keywordtype">int</span> stat[]);</div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> </div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81">wcsmix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> mixpix, <span class="keywordtype">int</span> mixcel, <span class="keyword">const</span> <span class="keywordtype">double</span> vspan[],</div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>            <span class="keywordtype">double</span> vstep, <span class="keywordtype">int</span> viter, <span class="keywordtype">double</span> world[], <span class="keywordtype">double</span> phi[],</div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>            <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> pixcrd[]);</div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> </div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a57975833fe0588eb7c7b6d79f13a7693">wcssptr</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> *<a class="code" href="structwtbarr.html#a8743b84c99b4b5e7ab7bf0653507a180">i</a>, <span class="keywordtype">char</span> ctype[9]);</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="comment">/* Defined mainly for backwards compatibility, use wcssub() instead. */</span></div>
-<div class="line"><a name="l01604"></a><span class="lineno"><a class="line" href="wcs_8h.html#ac55946dadc53ac592cb686275902ae7b"> 1604</a></span> <span class="preprocessor">#define wcscopy(alloc, wcssrc, wcsdst) wcssub(alloc, wcssrc, 0x0, 0x0, wcsdst)</span></div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> </div>
+<div class="line"><a name="l01581"></a><span class="lineno"><a class="line" href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41"> 1581</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41">restfrq</a>;               <span class="comment">/* RESTFRQa keyvalue.                       */</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e"> 1582</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e">restwav</a>;               <span class="comment">/* RESTWAVa keyvalue.                       */</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> </div>
+<div class="line"><a name="l01584"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd"> 1584</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd">npv</a>;                   <span class="comment">/* Number of PVi_ma keywords, and the       */</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"><a class="line" href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc"> 1585</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc">npvmax</a>;                <span class="comment">/* number for which space was allocated.    */</span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"><a class="line" href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c"> 1586</a></span>   <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> *<a class="code" href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c">pv</a>;            <span class="comment">/* PVi_ma keywords for each i and m.        */</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> </div>
+<div class="line"><a name="l01588"></a><span class="lineno"><a class="line" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65"> 1588</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">nps</a>;                   <span class="comment">/* Number of PSi_ma keywords, and the       */</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"><a class="line" href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b"> 1589</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b">npsmax</a>;                <span class="comment">/* number for which space was allocated.    */</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256"> 1590</a></span>   <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> *<a class="code" href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256">ps</a>;            <span class="comment">/* PSi_ma keywords for each i and m.        */</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> </div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>   <span class="comment">/* Alternative header keyvalues (see the prologue above).                 */</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"><a class="line" href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1"> 1594</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1">cd</a>;                   <span class="comment">/* CDi_ja linear transformation matrix.     */</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"><a class="line" href="structwcsprm.html#af124a4259475ea355ced38e73a05363a"> 1595</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#af124a4259475ea355ced38e73a05363a">crota</a>;                <span class="comment">/* CROTAia keyvalues for each coord axis.   */</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e"> 1596</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">altlin</a>;                <span class="comment">/* Alternative representations              */</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>                                 <span class="comment">/*   Bit 0: PCi_ja  is present,             */</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>                                 <span class="comment">/*   Bit 1: CDi_ja  is present,             */</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>                                 <span class="comment">/*   Bit 2: CROTAia is present.             */</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908"> 1600</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908">velref</a>;                <span class="comment">/* AIPS velocity code, VELREF.              */</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> </div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>   <span class="comment">/* Auxiliary coordinate system information, not used by WCSLIB.           */</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3"> 1603</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3">alt</a>[4];</div>
+<div class="line"><a name="l01604"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca"> 1604</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca">colnum</a>;</div>
+<div class="line"><a name="l01605"></a><span class="lineno"><a class="line" href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55"> 1605</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55">colax</a>;</div>
 <div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> </div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment">/* Deprecated. */</span></div>
-<div class="line"><a name="l01608"></a><span class="lineno"><a class="line" href="wcs_8h.html#a1bcf49cfe1ed1bb2bc4c930f98d808fa"> 1608</a></span> <span class="preprocessor">#define wcsini_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01609"></a><span class="lineno"><a class="line" href="wcs_8h.html#a465ef3c77aaf546324dae0692e6de7fe"> 1609</a></span> <span class="preprocessor">#define wcssub_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01610"></a><span class="lineno"><a class="line" href="wcs_8h.html#ae1738854472218541bda531653ef2709"> 1610</a></span> <span class="preprocessor">#define wcscopy_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01611"></a><span class="lineno"><a class="line" href="wcs_8h.html#a3d64b57cec404114c75bd25a562e8053"> 1611</a></span> <span class="preprocessor">#define wcsfree_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01612"></a><span class="lineno"><a class="line" href="wcs_8h.html#a8f5c31a6983b17abbe2fead61550d55c"> 1612</a></span> <span class="preprocessor">#define wcsprt_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01613"></a><span class="lineno"><a class="line" href="wcs_8h.html#a84a67c964e212bbf004c264b3ca70fee"> 1613</a></span> <span class="preprocessor">#define wcsset_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"><a class="line" href="wcs_8h.html#ade3959355dc9d0987e7ccc4070795c38"> 1614</a></span> <span class="preprocessor">#define wcsp2s_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01615"></a><span class="lineno"><a class="line" href="wcs_8h.html#a37c4884cf58baf25b2984ec3bccb80a5"> 1615</a></span> <span class="preprocessor">#define wcss2p_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01616"></a><span class="lineno"><a class="line" href="wcs_8h.html#acfbadc770489b6b5186b95eaa35467f1"> 1616</a></span> <span class="preprocessor">#define wcsmix_errmsg wcs_errmsg</span></div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> </div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> <span class="preprocessor">#undef wtbarr</span></div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> }</div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> </div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCS */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69">WCSERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1411</div></div>
-<div class="ttc" id="structwcsprm_html_aad387ccbd7847672b5dc2223d9124120"><div class="ttname"><a href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120">wcsprm::dateobs</a></div><div class="ttdeci">char dateobs[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1509</div></div>
+<div class="line"><a name="l01607"></a><span class="lineno"><a class="line" href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b"> 1607</a></span>   char   (*<a class="code" href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b">cname</a>)[72];</div>
+<div class="line"><a name="l01608"></a><span class="lineno"><a class="line" href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4"> 1608</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4">crder</a>;</div>
+<div class="line"><a name="l01609"></a><span class="lineno"><a class="line" href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f"> 1609</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f">csyer</a>;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63"> 1610</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63">dateavg</a>[72];</div>
+<div class="line"><a name="l01611"></a><span class="lineno"><a class="line" href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120"> 1611</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120">dateobs</a>[72];</div>
+<div class="line"><a name="l01612"></a><span class="lineno"><a class="line" href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864"> 1612</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864">equinox</a>;</div>
+<div class="line"><a name="l01613"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8"> 1613</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">mjdavg</a>;</div>
+<div class="line"><a name="l01614"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa"> 1614</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa">mjdobs</a>;</div>
+<div class="line"><a name="l01615"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb"> 1615</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb">obsgeo</a>[3];</div>
+<div class="line"><a name="l01616"></a><span class="lineno"><a class="line" href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48"> 1616</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48">radesys</a>[72];</div>
+<div class="line"><a name="l01617"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea"> 1617</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea">specsys</a>[72];</div>
+<div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223"> 1618</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223">ssysobs</a>[72];</div>
+<div class="line"><a name="l01619"></a><span class="lineno"><a class="line" href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83"> 1619</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83">velosys</a>;</div>
+<div class="line"><a name="l01620"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1"> 1620</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">zsource</a>;</div>
+<div class="line"><a name="l01621"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20"> 1621</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20">ssyssrc</a>[72];</div>
+<div class="line"><a name="l01622"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4"> 1622</a></span>   <span class="keywordtype">double</span> <a class="code" href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4">velangl</a>;</div>
+<div class="line"><a name="l01623"></a><span class="lineno"><a class="line" href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66"> 1623</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66">wcsname</a>[72];</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>   <span class="comment">/* Coordinate lookup tables (see the prologue above).                     */</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"><a class="line" href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241"> 1627</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241">ntab</a>;                  <span class="comment">/* Number of separate tables.               */</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"><a class="line" href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801"> 1628</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801">nwtb</a>;                  <span class="comment">/* Number of wtbarr structs.                */</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"><a class="line" href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709"> 1629</a></span>   <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> *<a class="code" href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709">tab</a>;           <span class="comment">/* Tabular transformation parameters.       */</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"><a class="line" href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2"> 1630</a></span>   <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> *<a class="code" href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2">wtb</a>;           <span class="comment">/* Array of wtbarr structs.                 */</span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> </div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>   <span class="comment">/* Information derived from the FITS header keyvalues by wcsset().        */</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c"> 1634</a></span>   <span class="keywordtype">char</span>   <a class="code" href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c">lngtyp</a>[8], <a class="code" href="structwcsprm.html#ae352318ce3202dab1b5db8b9ceec7703">lattyp</a>[8];  <span class="comment">/* Celestial axis types, e.g. RA, DEC.      */</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"><a class="line" href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b"> 1635</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a08098820949433d1336841d32d0b62b5">lng</a>, <a class="code" href="structwcsprm.html#ab7f7173e6d2b1b8028a3275bdd751e79">lat</a>, <a class="code" href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b">spec</a>;        <span class="comment">/* Longitud [...]
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>                                 <span class="comment">/* indices (0-relative).                    */</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"><a class="line" href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708"> 1637</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708">cubeface</a>;              <span class="comment">/* True if there is a CUBEFACE axis.        */</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"><a class="line" href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef"> 1638</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef">types</a>;                <span class="comment">/* Coordinate type codes for each axis.     */</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"><a class="line" href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4"> 1639</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4">padding</a>;              <span class="comment">/* (Dummy inserted for alignment purposes.) */</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> </div>
+<div class="line"><a name="l01641"></a><span class="lineno"><a class="line" href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8"> 1641</a></span>   <span class="keyword">struct </span><a class="code" href="structlinprm.html">linprm</a> <a class="code" href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8">lin</a>;            <span class="comment">/* Linear    transformation parameters.     */</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"><a class="line" href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba"> 1642</a></span>   <span class="keyword">struct </span><a class="code" href="structcelprm.html">celprm</a> <a class="code" href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba">cel</a>;            <span class="comment">/* Celestial transformation parameters.     */</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7"> 1643</a></span>   <span class="keyword">struct </span><a class="code" href="structspcprm.html">spcprm</a> <a class="code" href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7">spc</a>;            <span class="comment">/* Spectral  transformation parameters.     */</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> </div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>   <span class="comment">/* Error handling, if enabled.                                            */</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"><a class="line" href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed"> 1647</a></span>   <span class="keyword">struct </span><a class="code" href="structwcserr.html">wcserr</a> *<a class="code" href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed">err</a>;</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> </div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>   <span class="comment">/* Private - the remainder are for memory management.                     */</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>   <span class="comment">/*------------------------------------------------------------------------*/</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563"> 1651</a></span>   <span class="keywordtype">void</span>   *<a class="code" href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">m_padding</a>;</div>
+<div class="line"><a name="l01652"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d"> 1652</a></span>   <span class="keywordtype">int</span>    <a class="code" href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">m_flag</a>, <a class="code" href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">m_naxis</a>;</div>
+<div class="line"><a name="l01653"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03"> 1653</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a164e3852bcd2dea8b5f73e1dff79ddf5">m_crpix</a>, *<a class="code" href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">m_pc</a>, *<a class="code" href="structwcsprm.html#a42e0ff2da3b0c1ca0a9509f787ed1951">m_cdelt</a>, *<a class="code" href="struct [...]
+<div class="line"><a name="l01654"></a><span class="lineno"><a class="line" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95"> 1654</a></span>   char  (*<a class="code" href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">m_cunit</a>)[72], (*m_ctype)[72];</div>
+<div class="line"><a name="l01655"></a><span class="lineno"><a class="line" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986"> 1655</a></span>   <span class="keyword">struct </span><a class="code" href="structpvcard.html">pvcard</a> *<a class="code" href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">m_pv</a>;</div>
+<div class="line"><a name="l01656"></a><span class="lineno"><a class="line" href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374"> 1656</a></span>   <span class="keyword">struct </span><a class="code" href="structpscard.html">pscard</a> *<a class="code" href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374">m_ps</a>;</div>
+<div class="line"><a name="l01657"></a><span class="lineno"><a class="line" href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d"> 1657</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">m_cd</a>, *<a class="code" href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d">m_crota</a>;</div>
+<div class="line"><a name="l01658"></a><span class="lineno"><a class="line" href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7"> 1658</a></span>   <span class="keywordtype">int</span>    *<a class="code" href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7">m_colax</a>;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"><a class="line" href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582"> 1659</a></span>   char  (*<a class="code" href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582">m_cname</a>)[72];</div>
+<div class="line"><a name="l01660"></a><span class="lineno"><a class="line" href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac"> 1660</a></span>   <span class="keywordtype">double</span> *<a class="code" href="structwcsprm.html#a0d15534535c7f9308c9daa2cceff29e7">m_crder</a>, *<a class="code" href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac">m_csyer</a>;</div>
+<div class="line"><a name="l01661"></a><span class="lineno"><a class="line" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8"> 1661</a></span>   <span class="keyword">struct </span><a class="code" href="structtabprm.html">tabprm</a> *<a class="code" href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">m_tab</a>;</div>
+<div class="line"><a name="l01662"></a><span class="lineno"><a class="line" href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f"> 1662</a></span>   <span class="keyword">struct </span><a class="code" href="structwtbarr.html">wtbarr</a> *<a class="code" href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f">m_wtb</a>;</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> };</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> </div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> <span class="comment">/* Size of the wcsprm struct in int units, used by the Fortran wrappers. */</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"><a class="line" href="wcs_8h.html#a6852f6dd2883c82296f1108b897d337e"> 1666</a></span> <span class="preprocessor">#define WCSLEN (sizeof(struct wcsprm)/sizeof(int))</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> </div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> </div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a42b2578d76ace7ca6114d82b7ae46a89">wcsnpv</a>(<span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> </div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ae790c9ce6c9b7a4845cf1c3c97b1e97a">wcsnps</a>(<span class="keywordtype">int</span> n);</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> </div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcsini</a>(<span class="keywordtype">int</span> alloc, <span class="keywordtype">int</span> naxis, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> </div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a864c99fef9f3eee29085ce42d0ee0d64">wcssub</a>(<span class="keywordtype">int</span> alloc, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcssrc, <span class="keywordtype">int</span> *nsub, <span class="keywordtype">int</span> axes[],</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>            <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcsdst);</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a78d5d27f74218723acde6d3aa232c4a5">wcscompare</a>(<span class="keywordtype">int</span> cmp, <span class="keywordtype">double</span> tol, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs1,</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>                <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs2, <span class="keywordtype">int</span> *equal);</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> </div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> </div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ab9aeb8cf1afb1bfb22e989580d90fca8">wcsprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> </div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keyword">const</span> <span class="keywordtype">char</span> *prefix);</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> </div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#af226d8537fbc578d63f1ba5601078398">wcsbchk</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> bounds);</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> </div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> </div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a27d3dd209db3e76cf4c50f48c01ba986">wcsp2s</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> pixcrd[],</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>            <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> world[],</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>            <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> </div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a60673d05a3513659ac848a9cb3d0cb07">wcss2p</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> ncoord, <span class="keywordtype">int</span> nelem, <span class="keyword">const</span> <span class="keywordtype">double</span> world[],</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>            <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> pixcrd[],</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>            <span class="keywordtype">int</span> stat[]);</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> </div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81">wcsmix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> mixpix, <span class="keywordtype">int</span> mixcel, <span class="keyword">const</span> <span class="keywordtype">double</span> vspan[],</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>            <span class="keywordtype">double</span> vstep, <span class="keywordtype">int</span> viter, <span class="keywordtype">double</span> world[], <span class="keywordtype">double</span> phi[],</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>            <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> imgcrd[], <span class="keywordtype">double</span> pixcrd[]);</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> </div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="keywordtype">int</span> <a class="code" href="wcs_8h.html#a57975833fe0588eb7c7b6d79f13a7693">wcssptr</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> *<a class="code" href="structwtbarr.html#a8743b84c99b4b5e7ab7bf0653507a180">i</a>, <span class="keywordtype">char</span> ctype[9]);</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> </div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcslib_version</a>(<span class="keywordtype">int</span> vers[3]);</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment">/* Defined mainly for backwards compatibility, use wcssub() instead. */</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"><a class="line" href="wcs_8h.html#ac55946dadc53ac592cb686275902ae7b"> 1708</a></span> <span class="preprocessor">#define wcscopy(alloc, wcssrc, wcsdst) wcssub(alloc, wcssrc, 0x0, 0x0, wcsdst)</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> </div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> </div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <span class="comment">/* Deprecated. */</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"><a class="line" href="wcs_8h.html#a1bcf49cfe1ed1bb2bc4c930f98d808fa"> 1712</a></span> <span class="preprocessor">#define wcsini_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"><a class="line" href="wcs_8h.html#a465ef3c77aaf546324dae0692e6de7fe"> 1713</a></span> <span class="preprocessor">#define wcssub_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"><a class="line" href="wcs_8h.html#ae1738854472218541bda531653ef2709"> 1714</a></span> <span class="preprocessor">#define wcscopy_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"><a class="line" href="wcs_8h.html#a3d64b57cec404114c75bd25a562e8053"> 1715</a></span> <span class="preprocessor">#define wcsfree_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"><a class="line" href="wcs_8h.html#a8f5c31a6983b17abbe2fead61550d55c"> 1716</a></span> <span class="preprocessor">#define wcsprt_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"><a class="line" href="wcs_8h.html#a84a67c964e212bbf004c264b3ca70fee"> 1717</a></span> <span class="preprocessor">#define wcsset_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"><a class="line" href="wcs_8h.html#ade3959355dc9d0987e7ccc4070795c38"> 1718</a></span> <span class="preprocessor">#define wcsp2s_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"><a class="line" href="wcs_8h.html#a37c4884cf58baf25b2984ec3bccb80a5"> 1719</a></span> <span class="preprocessor">#define wcss2p_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"><a class="line" href="wcs_8h.html#acfbadc770489b6b5186b95eaa35467f1"> 1720</a></span> <span class="preprocessor">#define wcsmix_errmsg wcs_errmsg</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> </div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="preprocessor">#undef wtbarr</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> }</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> </div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCS */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa08306533cf0c7555dad662e82e8a4a69">WCSERR_BAD_PIX</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1513</div></div>
+<div class="ttc" id="structwcsprm_html_aad387ccbd7847672b5dc2223d9124120"><div class="ttname"><a href="structwcsprm.html#aad387ccbd7847672b5dc2223d9124120">wcsprm::dateobs</a></div><div class="ttdeci">char dateobs[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1611</div></div>
 <div class="ttc" id="wcs_8h_html_a4ab38bc642c4656f62c43acf84a849f1"><div class="ttname"><a href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a></div><div class="ttdeci">int wcsfree(struct wcsprm *wcs)</div><div class="ttdoc">Destructor for the wcsprm struct. </div></div>
-<div class="ttc" id="structwcsprm_html_a65801f93622504672ee3faf8f2110e48"><div class="ttname"><a href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48">wcsprm::radesys</a></div><div class="ttdeci">char radesys[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1514</div></div>
-<div class="ttc" id="structwcsprm_html_ace7e0986c79d73bd3a0613034b71974f"><div class="ttname"><a href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f">wcsprm::m_wtb</a></div><div class="ttdeci">struct wtbarr * m_wtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1560</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af">WCSERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1401</div></div>
+<div class="ttc" id="structwcsprm_html_a65801f93622504672ee3faf8f2110e48"><div class="ttname"><a href="structwcsprm.html#a65801f93622504672ee3faf8f2110e48">wcsprm::radesys</a></div><div class="ttdeci">char radesys[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1616</div></div>
+<div class="ttc" id="structwcsprm_html_ace7e0986c79d73bd3a0613034b71974f"><div class="ttname"><a href="structwcsprm.html#ace7e0986c79d73bd3a0613034b71974f">wcsprm::m_wtb</a></div><div class="ttdeci">struct wtbarr * m_wtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1662</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5c58d5530bc7577a70185376c15180af">WCSERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1503</div></div>
 <div class="ttc" id="wcs_8h_html_a864c99fef9f3eee29085ce42d0ee0d64"><div class="ttname"><a href="wcs_8h.html#a864c99fef9f3eee29085ce42d0ee0d64">wcssub</a></div><div class="ttdeci">int wcssub(int alloc, const struct wcsprm *wcssrc, int *nsub, int axes[], struct wcsprm *wcsdst)</div><div class="ttdoc">Subimage extraction routine for the wcsprm struct. </div></div>
 <div class="ttc" id="structwtbarr_html_af8ea7b15992ab7a86be63ff83318be41"><div class="ttname"><a href="structwtbarr.html#af8ea7b15992ab7a86be63ff83318be41">wtbarr::kind</a></div><div class="ttdeci">int kind</div><div class="ttdef"><b>Definition:</b> getwcstab.h:169</div></div>
-<div class="ttc" id="structwcsprm_html_a5072893bd9beddb33967697d501acdce"><div class="ttname"><a href="structwcsprm.html#a5072893bd9beddb33967697d501acdce">wcsprm::m_crval</a></div><div class="ttdeci">double * m_crval</div><div class="ttdef"><b>Definition:</b> wcs.h:1551</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7">WCSERR_NON_SEPARABLE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1419</div></div>
-<div class="ttc" id="structwcsprm_html_afd2f31d782b3becce4ca2f9b495ec0b1"><div class="ttname"><a href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1">wcsprm::cd</a></div><div class="ttdeci">double * cd</div><div class="ttdef"><b>Definition:</b> wcs.h:1492</div></div>
-<div class="ttc" id="structwcsprm_html_a4ed527b90d49e8365c1b727f7bec29c7"><div class="ttname"><a href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7">wcsprm::m_colax</a></div><div class="ttdeci">int * m_colax</div><div class="ttdef"><b>Definition:</b> wcs.h:1556</div></div>
-<div class="ttc" id="structwcsprm_html_a9eca2fcc30058310d020181ae16bf256"><div class="ttname"><a href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256">wcsprm::ps</a></div><div class="ttdeci">struct pscard * ps</div><div class="ttdef"><b>Definition:</b> wcs.h:1488</div></div>
-<div class="ttc" id="structwcsprm_html_ade355cdce054938cfa36e06ef9c51446"><div class="ttname"><a href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446">wcsprm::cdelt</a></div><div class="ttdeci">double * cdelt</div><div class="ttdef"><b>Definition:</b> wcs.h:1470</div></div>
-<div class="ttc" id="structpvcard_html_a88fa516543184eaffe6bd2c57946d9a7"><div class="ttname"><a href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7">pvcard::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> wcs.h:1426</div></div>
+<div class="ttc" id="structwcsprm_html_a5072893bd9beddb33967697d501acdce"><div class="ttname"><a href="structwcsprm.html#a5072893bd9beddb33967697d501acdce">wcsprm::m_crval</a></div><div class="ttdeci">double * m_crval</div><div class="ttdef"><b>Definition:</b> wcs.h:1653</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa37c8aa0aedc12c63df08f39cb7177ff7">WCSERR_NON_SEPARABLE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1521</div></div>
+<div class="ttc" id="structwcsprm_html_afd2f31d782b3becce4ca2f9b495ec0b1"><div class="ttname"><a href="structwcsprm.html#afd2f31d782b3becce4ca2f9b495ec0b1">wcsprm::cd</a></div><div class="ttdeci">double * cd</div><div class="ttdef"><b>Definition:</b> wcs.h:1594</div></div>
+<div class="ttc" id="structwcsprm_html_a4ed527b90d49e8365c1b727f7bec29c7"><div class="ttname"><a href="structwcsprm.html#a4ed527b90d49e8365c1b727f7bec29c7">wcsprm::m_colax</a></div><div class="ttdeci">int * m_colax</div><div class="ttdef"><b>Definition:</b> wcs.h:1658</div></div>
+<div class="ttc" id="structwcsprm_html_a9eca2fcc30058310d020181ae16bf256"><div class="ttname"><a href="structwcsprm.html#a9eca2fcc30058310d020181ae16bf256">wcsprm::ps</a></div><div class="ttdeci">struct pscard * ps</div><div class="ttdef"><b>Definition:</b> wcs.h:1590</div></div>
+<div class="ttc" id="structwcsprm_html_ade355cdce054938cfa36e06ef9c51446"><div class="ttname"><a href="structwcsprm.html#ade355cdce054938cfa36e06ef9c51446">wcsprm::cdelt</a></div><div class="ttdeci">double * cdelt</div><div class="ttdef"><b>Definition:</b> wcs.h:1572</div></div>
+<div class="ttc" id="structpvcard_html_a88fa516543184eaffe6bd2c57946d9a7"><div class="ttname"><a href="structpvcard.html#a88fa516543184eaffe6bd2c57946d9a7">pvcard::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> wcs.h:1528</div></div>
 <div class="ttc" id="lin_8h_html"><div class="ttname"><a href="lin_8h.html">lin.h</a></div></div>
-<div class="ttc" id="structwcsprm_html_a0e31f1eef036258c2957da9b985945dd"><div class="ttname"><a href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd">wcsprm::npv</a></div><div class="ttdeci">int npv</div><div class="ttdef"><b>Definition:</b> wcs.h:1482</div></div>
+<div class="ttc" id="structwcsprm_html_a0e31f1eef036258c2957da9b985945dd"><div class="ttname"><a href="structwcsprm.html#a0e31f1eef036258c2957da9b985945dd">wcsprm::npv</a></div><div class="ttdeci">int npv</div><div class="ttdef"><b>Definition:</b> wcs.h:1584</div></div>
 <div class="ttc" id="cel_8h_html"><div class="ttname"><a href="cel_8h.html">cel.h</a></div></div>
-<div class="ttc" id="structwcsprm_html_a292133b2b7143b969a3af6a3f2cf3709"><div class="ttname"><a href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709">wcsprm::tab</a></div><div class="ttdeci">struct tabprm * tab</div><div class="ttdef"><b>Definition:</b> wcs.h:1527</div></div>
+<div class="ttc" id="structwcsprm_html_a292133b2b7143b969a3af6a3f2cf3709"><div class="ttname"><a href="structwcsprm.html#a292133b2b7143b969a3af6a3f2cf3709">wcsprm::tab</a></div><div class="ttdeci">struct tabprm * tab</div><div class="ttdef"><b>Definition:</b> wcs.h:1629</div></div>
 <div class="ttc" id="structwtbarr_html_a750832793167bbeebd1074e29844415d"><div class="ttname"><a href="structwtbarr.html#a750832793167bbeebd1074e29844415d">wtbarr::ttype</a></div><div class="ttdeci">char ttype[72]</div><div class="ttdef"><b>Definition:</b> getwcstab.h:173</div></div>
-<div class="ttc" id="structwcsprm_html_af54ce939604be183231f0ee006e2f8ed"><div class="ttname"><a href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed">wcsprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> wcs.h:1545</div></div>
-<div class="ttc" id="structwcsprm_html_a08098820949433d1336841d32d0b62b5"><div class="ttname"><a href="structwcsprm.html#a08098820949433d1336841d32d0b62b5">wcsprm::lng</a></div><div class="ttdeci">int lng</div><div class="ttdef"><b>Definition:</b> wcs.h:1533</div></div>
-<div class="ttc" id="structwcsprm_html_af1cb3e68560d1ac42c620cfe3900af95"><div class="ttname"><a href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">wcsprm::m_cunit</a></div><div class="ttdeci">char(* m_cunit)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1552</div></div>
-<div class="ttc" id="structwcsprm_html_a42052d557bdef2c5640a6d19b6d9ed8b"><div class="ttname"><a href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b">wcsprm::npsmax</a></div><div class="ttdeci">int npsmax</div><div class="ttdef"><b>Definition:</b> wcs.h:1487</div></div>
-<div class="ttc" id="structwcsprm_html_ae7609283351ea46484690f873f8ea9c3"><div class="ttname"><a href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3">wcsprm::alt</a></div><div class="ttdeci">char alt[4]</div><div class="ttdef"><b>Definition:</b> wcs.h:1501</div></div>
-<div class="ttc" id="structwcsprm_html_a092c11d209ecdd16bb79858c68e4d582"><div class="ttname"><a href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582">wcsprm::m_cname</a></div><div class="ttdeci">char(* m_cname)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1557</div></div>
+<div class="ttc" id="structwcsprm_html_af54ce939604be183231f0ee006e2f8ed"><div class="ttname"><a href="structwcsprm.html#af54ce939604be183231f0ee006e2f8ed">wcsprm::err</a></div><div class="ttdeci">struct wcserr * err</div><div class="ttdef"><b>Definition:</b> wcs.h:1647</div></div>
+<div class="ttc" id="structwcsprm_html_a08098820949433d1336841d32d0b62b5"><div class="ttname"><a href="structwcsprm.html#a08098820949433d1336841d32d0b62b5">wcsprm::lng</a></div><div class="ttdeci">int lng</div><div class="ttdef"><b>Definition:</b> wcs.h:1635</div></div>
+<div class="ttc" id="structwcsprm_html_af1cb3e68560d1ac42c620cfe3900af95"><div class="ttname"><a href="structwcsprm.html#af1cb3e68560d1ac42c620cfe3900af95">wcsprm::m_cunit</a></div><div class="ttdeci">char(* m_cunit)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1654</div></div>
+<div class="ttc" id="structwcsprm_html_a42052d557bdef2c5640a6d19b6d9ed8b"><div class="ttname"><a href="structwcsprm.html#a42052d557bdef2c5640a6d19b6d9ed8b">wcsprm::npsmax</a></div><div class="ttdeci">int npsmax</div><div class="ttdef"><b>Definition:</b> wcs.h:1589</div></div>
+<div class="ttc" id="structwcsprm_html_ae7609283351ea46484690f873f8ea9c3"><div class="ttname"><a href="structwcsprm.html#ae7609283351ea46484690f873f8ea9c3">wcsprm::alt</a></div><div class="ttdeci">char alt[4]</div><div class="ttdef"><b>Definition:</b> wcs.h:1603</div></div>
+<div class="ttc" id="structwcsprm_html_a092c11d209ecdd16bb79858c68e4d582"><div class="ttname"><a href="structwcsprm.html#a092c11d209ecdd16bb79858c68e4d582">wcsprm::m_cname</a></div><div class="ttdeci">char(* m_cname)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1659</div></div>
 <div class="ttc" id="structwcserr_html"><div class="ttname"><a href="structwcserr.html">wcserr</a></div><div class="ttdoc">Error message handling. </div><div class="ttdef"><b>Definition:</b> wcserr.h:221</div></div>
 <div class="ttc" id="structwtbarr_html_a8743b84c99b4b5e7ab7bf0653507a180"><div class="ttname"><a href="structwtbarr.html#a8743b84c99b4b5e7ab7bf0653507a180">wtbarr::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> getwcstab.h:167</div></div>
-<div class="ttc" id="structwcsprm_html_ae83952aec7c1ac76c090bc89bf4eeea7"><div class="ttname"><a href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7">wcsprm::spc</a></div><div class="ttdeci">struct spcprm spc</div><div class="ttdef"><b>Definition:</b> wcs.h:1541</div></div>
-<div class="ttc" id="structwcsprm_html_ade8495d3ca5047eeadba5934d0bb2708"><div class="ttname"><a href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708">wcsprm::cubeface</a></div><div class="ttdeci">int cubeface</div><div class="ttdef"><b>Definition:</b> wcs.h:1535</div></div>
-<div class="ttc" id="structwcsprm_html_a35bff8de85e5a8892e1b68db69ca7a68"><div class="ttname"><a href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68">wcsprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> wcs.h:1463</div></div>
-<div class="ttc" id="structwcsprm_html_a88b55f6c8d122f3ff63532de85698864"><div class="ttname"><a href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864">wcsprm::equinox</a></div><div class="ttdeci">double equinox</div><div class="ttdef"><b>Definition:</b> wcs.h:1510</div></div>
+<div class="ttc" id="structwcsprm_html_ae83952aec7c1ac76c090bc89bf4eeea7"><div class="ttname"><a href="structwcsprm.html#ae83952aec7c1ac76c090bc89bf4eeea7">wcsprm::spc</a></div><div class="ttdeci">struct spcprm spc</div><div class="ttdef"><b>Definition:</b> wcs.h:1643</div></div>
+<div class="ttc" id="structwcsprm_html_ade8495d3ca5047eeadba5934d0bb2708"><div class="ttname"><a href="structwcsprm.html#ade8495d3ca5047eeadba5934d0bb2708">wcsprm::cubeface</a></div><div class="ttdeci">int cubeface</div><div class="ttdef"><b>Definition:</b> wcs.h:1637</div></div>
+<div class="ttc" id="structwcsprm_html_a35bff8de85e5a8892e1b68db69ca7a68"><div class="ttname"><a href="structwcsprm.html#a35bff8de85e5a8892e1b68db69ca7a68">wcsprm::flag</a></div><div class="ttdeci">int flag</div><div class="ttdef"><b>Definition:</b> wcs.h:1565</div></div>
+<div class="ttc" id="structwcsprm_html_a88b55f6c8d122f3ff63532de85698864"><div class="ttname"><a href="structwcsprm.html#a88b55f6c8d122f3ff63532de85698864">wcsprm::equinox</a></div><div class="ttdeci">double equinox</div><div class="ttdef"><b>Definition:</b> wcs.h:1612</div></div>
 <div class="ttc" id="wcs_8h_html_a60673d05a3513659ac848a9cb3d0cb07"><div class="ttname"><a href="wcs_8h.html#a60673d05a3513659ac848a9cb3d0cb07">wcss2p</a></div><div class="ttdeci">int wcss2p(struct wcsprm *wcs, int ncoord, int nelem, const double world[], double phi[], double theta[], double imgcrd[], double pixcrd[], int stat[])</div><div class="ttdoc">World-to-pixel transformation. </div></div>
-<div class="ttc" id="structpvcard_html_af011f1972d6d345540f36a5c08a30d1f"><div class="ttname"><a href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f">pvcard::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> wcs.h:1427</div></div>
+<div class="ttc" id="structpvcard_html_af011f1972d6d345540f36a5c08a30d1f"><div class="ttname"><a href="structpvcard.html#af011f1972d6d345540f36a5c08a30d1f">pvcard::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> wcs.h:1529</div></div>
 <div class="ttc" id="wcs_8h_html_af226d8537fbc578d63f1ba5601078398"><div class="ttname"><a href="wcs_8h.html#af226d8537fbc578d63f1ba5601078398">wcsbchk</a></div><div class="ttdeci">int wcsbchk(struct wcsprm *wcs, int bounds)</div><div class="ttdoc">Enable/disable bounds checking. </div></div>
-<div class="ttc" id="structwcsprm_html_a6a88e64207df5007151c2c25028ce3eb"><div class="ttname"><a href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb">wcsprm::obsgeo</a></div><div class="ttdeci">double obsgeo[3]</div><div class="ttdef"><b>Definition:</b> wcs.h:1513</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e">WCSERR_BAD_SUBIMAGE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1418</div></div>
-<div class="ttc" id="structwcsprm_html_af8f679749574250cb9ba09e1f05fab5d"><div class="ttname"><a href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d">wcsprm::lonpole</a></div><div class="ttdeci">double lonpole</div><div class="ttdef"><b>Definition:</b> wcs.h:1476</div></div>
-<div class="ttc" id="structwcsprm_html_a4c89dafecd036e169f96cb84d53ace65"><div class="ttname"><a href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">wcsprm::nps</a></div><div class="ttdeci">int nps</div><div class="ttdef"><b>Definition:</b> wcs.h:1486</div></div>
-<div class="ttc" id="structwcsprm_html_a04fbd6ed1b338e225f2291523e64be2c"><div class="ttname"><a href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c">wcsprm::pv</a></div><div class="ttdeci">struct pvcard * pv</div><div class="ttdef"><b>Definition:</b> wcs.h:1484</div></div>
+<div class="ttc" id="structwcsprm_html_a6a88e64207df5007151c2c25028ce3eb"><div class="ttname"><a href="structwcsprm.html#a6a88e64207df5007151c2c25028ce3eb">wcsprm::obsgeo</a></div><div class="ttdeci">double obsgeo[3]</div><div class="ttdef"><b>Definition:</b> wcs.h:1615</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa88e600163f719a759d3569bf1548109e">WCSERR_BAD_SUBIMAGE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1520</div></div>
+<div class="ttc" id="structwcsprm_html_af8f679749574250cb9ba09e1f05fab5d"><div class="ttname"><a href="structwcsprm.html#af8f679749574250cb9ba09e1f05fab5d">wcsprm::lonpole</a></div><div class="ttdeci">double lonpole</div><div class="ttdef"><b>Definition:</b> wcs.h:1578</div></div>
+<div class="ttc" id="structwcsprm_html_a4c89dafecd036e169f96cb84d53ace65"><div class="ttname"><a href="structwcsprm.html#a4c89dafecd036e169f96cb84d53ace65">wcsprm::nps</a></div><div class="ttdeci">int nps</div><div class="ttdef"><b>Definition:</b> wcs.h:1588</div></div>
+<div class="ttc" id="structwcsprm_html_a04fbd6ed1b338e225f2291523e64be2c"><div class="ttname"><a href="structwcsprm.html#a04fbd6ed1b338e225f2291523e64be2c">wcsprm::pv</a></div><div class="ttdeci">struct pvcard * pv</div><div class="ttdef"><b>Definition:</b> wcs.h:1586</div></div>
 <div class="ttc" id="structwtbarr_html_a1e88ad32570534a006e96cba721489b5"><div class="ttname"><a href="structwtbarr.html#a1e88ad32570534a006e96cba721489b5">wtbarr::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> getwcstab.h:168</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0">WCSERR_SINGULAR_MTX</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1402</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8">WCSERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1399</div></div>
-<div class="ttc" id="structspcprm_html"><div class="ttname"><a href="structspcprm.html">spcprm</a></div><div class="ttdoc">Spectral transformation parameters. </div><div class="ttdef"><b>Definition:</b> spc.h:774</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9">WCSERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1406</div></div>
-<div class="ttc" id="structwcsprm_html_ae09d5bf005e3bd7ee880353e8816ceb8"><div class="ttname"><a href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">wcsprm::m_tab</a></div><div class="ttdeci">struct tabprm * m_tab</div><div class="ttdef"><b>Definition:</b> wcs.h:1559</div></div>
-<div class="ttc" id="structcelprm_html"><div class="ttname"><a href="structcelprm.html">celprm</a></div><div class="ttdoc">Celestial transformation parameters. </div><div class="ttdef"><b>Definition:</b> cel.h:371</div></div>
-<div class="ttc" id="structlinprm_html"><div class="ttname"><a href="structlinprm.html">linprm</a></div><div class="ttdoc">Linear transformation parameters. </div><div class="ttdef"><b>Definition:</b> lin.h:381</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25f"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f">wcs_errmsg_enum</a></div><div class="ttdeci">wcs_errmsg_enum</div><div class="ttdef"><b>Definition:</b> wcs.h:1398</div></div>
-<div class="ttc" id="structwcsprm_html_a042875def8cab8354c5b2c40ab9fa374"><div class="ttname"><a href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374">wcsprm::m_ps</a></div><div class="ttdeci">struct pscard * m_ps</div><div class="ttdef"><b>Definition:</b> wcs.h:1554</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa2904278d916c820236347783312a7ce0">WCSERR_SINGULAR_MTX</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1504</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa8b87c21d4a2cab41d4eea0a95378fca8">WCSERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1501</div></div>
+<div class="ttc" id="structspcprm_html"><div class="ttname"><a href="structspcprm.html">spcprm</a></div><div class="ttdoc">Spectral transformation parameters. </div><div class="ttdef"><b>Definition:</b> spc.h:773</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fafe9ed842ea8f525c7b8fed2f60015dd9">WCSERR_BAD_PARAM</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1508</div></div>
+<div class="ttc" id="structwcsprm_html_ae09d5bf005e3bd7ee880353e8816ceb8"><div class="ttname"><a href="structwcsprm.html#ae09d5bf005e3bd7ee880353e8816ceb8">wcsprm::m_tab</a></div><div class="ttdeci">struct tabprm * m_tab</div><div class="ttdef"><b>Definition:</b> wcs.h:1661</div></div>
+<div class="ttc" id="structcelprm_html"><div class="ttname"><a href="structcelprm.html">celprm</a></div><div class="ttdoc">Celestial transformation parameters. </div><div class="ttdef"><b>Definition:</b> cel.h:392</div></div>
+<div class="ttc" id="structlinprm_html"><div class="ttname"><a href="structlinprm.html">linprm</a></div><div class="ttdoc">Linear transformation parameters. </div><div class="ttdef"><b>Definition:</b> lin.h:505</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25f"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25f">wcs_errmsg_enum</a></div><div class="ttdeci">wcs_errmsg_enum</div><div class="ttdef"><b>Definition:</b> wcs.h:1500</div></div>
+<div class="ttc" id="structwcsprm_html_a042875def8cab8354c5b2c40ab9fa374"><div class="ttname"><a href="structwcsprm.html#a042875def8cab8354c5b2c40ab9fa374">wcsprm::m_ps</a></div><div class="ttdeci">struct pscard * m_ps</div><div class="ttdef"><b>Definition:</b> wcs.h:1656</div></div>
 <div class="ttc" id="wcs_8h_html_ab9aeb8cf1afb1bfb22e989580d90fca8"><div class="ttname"><a href="wcs_8h.html#ab9aeb8cf1afb1bfb22e989580d90fca8">wcsprt</a></div><div class="ttdeci">int wcsprt(const struct wcsprm *wcs)</div><div class="ttdoc">Print routine for the wcsprm struct. </div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f">WCSERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1400</div></div>
-<div class="ttc" id="structwcsprm_html_aa0ae3f3605566be2e85e51e5b52c3b52"><div class="ttname"><a href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52">wcsprm::cunit</a></div><div class="ttdeci">char(* cunit)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1473</div></div>
-<div class="ttc" id="structwcsprm_html_a94c26ce331cc876d63baeeada9820241"><div class="ttname"><a href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241">wcsprm::ntab</a></div><div class="ttdeci">int ntab</div><div class="ttdef"><b>Definition:</b> wcs.h:1525</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fac51c733d8a719dd698f9e96e9a4fa83f">WCSERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1502</div></div>
+<div class="ttc" id="structwcsprm_html_aa0ae3f3605566be2e85e51e5b52c3b52"><div class="ttname"><a href="structwcsprm.html#aa0ae3f3605566be2e85e51e5b52c3b52">wcsprm::cunit</a></div><div class="ttdeci">char(* cunit)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1575</div></div>
+<div class="ttc" id="structwcsprm_html_a94c26ce331cc876d63baeeada9820241"><div class="ttname"><a href="structwcsprm.html#a94c26ce331cc876d63baeeada9820241">wcsprm::ntab</a></div><div class="ttdeci">int ntab</div><div class="ttdef"><b>Definition:</b> wcs.h:1627</div></div>
 <div class="ttc" id="spc_8h_html"><div class="ttname"><a href="spc_8h.html">spc.h</a></div></div>
-<div class="ttc" id="structwcsprm_html_af124a4259475ea355ced38e73a05363a"><div class="ttname"><a href="structwcsprm.html#af124a4259475ea355ced38e73a05363a">wcsprm::crota</a></div><div class="ttdeci">double * crota</div><div class="ttdef"><b>Definition:</b> wcs.h:1493</div></div>
+<div class="ttc" id="structwcsprm_html_af124a4259475ea355ced38e73a05363a"><div class="ttname"><a href="structwcsprm.html#af124a4259475ea355ced38e73a05363a">wcsprm::crota</a></div><div class="ttdeci">double * crota</div><div class="ttdef"><b>Definition:</b> wcs.h:1595</div></div>
 <div class="ttc" id="wcs_8h_html_a78d5d27f74218723acde6d3aa232c4a5"><div class="ttname"><a href="wcs_8h.html#a78d5d27f74218723acde6d3aa232c4a5">wcscompare</a></div><div class="ttdeci">int wcscompare(int cmp, double tol, const struct wcsprm *wcs1, const struct wcsprm *wcs2, int *equal)</div><div class="ttdoc">Compare two wcsprm structs for equality. </div></div>
-<div class="ttc" id="structwcsprm_html_a5ed753e401cda620a04adfb4ebfb8e0d"><div class="ttname"><a href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">wcsprm::m_naxis</a></div><div class="ttdeci">int m_naxis</div><div class="ttdef"><b>Definition:</b> wcs.h:1550</div></div>
-<div class="ttc" id="structwcsprm_html_a7a88af56c4c978c6d4213ae1f4bec87a"><div class="ttname"><a href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">wcsprm::m_cd</a></div><div class="ttdeci">double * m_cd</div><div class="ttdef"><b>Definition:</b> wcs.h:1555</div></div>
+<div class="ttc" id="structwcsprm_html_a5ed753e401cda620a04adfb4ebfb8e0d"><div class="ttname"><a href="structwcsprm.html#a5ed753e401cda620a04adfb4ebfb8e0d">wcsprm::m_naxis</a></div><div class="ttdeci">int m_naxis</div><div class="ttdef"><b>Definition:</b> wcs.h:1652</div></div>
+<div class="ttc" id="structwcsprm_html_a7a88af56c4c978c6d4213ae1f4bec87a"><div class="ttname"><a href="structwcsprm.html#a7a88af56c4c978c6d4213ae1f4bec87a">wcsprm::m_cd</a></div><div class="ttdeci">double * m_cd</div><div class="ttdef"><b>Definition:</b> wcs.h:1657</div></div>
 <div class="ttc" id="structwtbarr_html_a2ff7c235353320c6dd98951484012ee7"><div class="ttname"><a href="structwtbarr.html#a2ff7c235353320c6dd98951484012ee7">wtbarr::row</a></div><div class="ttdeci">long row</div><div class="ttdef"><b>Definition:</b> getwcstab.h:174</div></div>
-<div class="ttc" id="structwcsprm_html_ada1b98589c0127d34766b4c6b5d6cb41"><div class="ttname"><a href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41">wcsprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> wcs.h:1479</div></div>
-<div class="ttc" id="structwcsprm_html_ac089e5d0e3191255ceaea7f8591b27ea"><div class="ttname"><a href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea">wcsprm::specsys</a></div><div class="ttdeci">char specsys[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1515</div></div>
-<div class="ttc" id="structwcsprm_html_ab63cdcf6ff8febd1b40d0e044ca7d7ef"><div class="ttname"><a href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef">wcsprm::types</a></div><div class="ttdeci">int * types</div><div class="ttdef"><b>Definition:</b> wcs.h:1536</div></div>
+<div class="ttc" id="structwcsprm_html_ada1b98589c0127d34766b4c6b5d6cb41"><div class="ttname"><a href="structwcsprm.html#ada1b98589c0127d34766b4c6b5d6cb41">wcsprm::restfrq</a></div><div class="ttdeci">double restfrq</div><div class="ttdef"><b>Definition:</b> wcs.h:1581</div></div>
+<div class="ttc" id="structwcsprm_html_ac089e5d0e3191255ceaea7f8591b27ea"><div class="ttname"><a href="structwcsprm.html#ac089e5d0e3191255ceaea7f8591b27ea">wcsprm::specsys</a></div><div class="ttdeci">char specsys[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1617</div></div>
+<div class="ttc" id="structwcsprm_html_ab63cdcf6ff8febd1b40d0e044ca7d7ef"><div class="ttname"><a href="structwcsprm.html#ab63cdcf6ff8febd1b40d0e044ca7d7ef">wcsprm::types</a></div><div class="ttdeci">int * types</div><div class="ttdef"><b>Definition:</b> wcs.h:1638</div></div>
 <div class="ttc" id="wcs_8h_html_a57975833fe0588eb7c7b6d79f13a7693"><div class="ttname"><a href="wcs_8h.html#a57975833fe0588eb7c7b6d79f13a7693">wcssptr</a></div><div class="ttdeci">int wcssptr(struct wcsprm *wcs, int *i, char ctype[9])</div><div class="ttdoc">Spectral axis translation. </div></div>
-<div class="ttc" id="structpscard_html_a9986f2ace84978f6cc543224b57592c9"><div class="ttname"><a href="structpscard.html#a9986f2ace84978f6cc543224b57592c9">pscard::value</a></div><div class="ttdeci">char value[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1435</div></div>
-<div class="ttc" id="structwcsprm_html_a8625c0a6ff99c754566c46c2372df801"><div class="ttname"><a href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801">wcsprm::nwtb</a></div><div class="ttdeci">int nwtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1526</div></div>
-<div class="ttc" id="structwcsprm_html_ae6b40e2adeb31414871c7cae68619d63"><div class="ttname"><a href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63">wcsprm::dateavg</a></div><div class="ttdeci">char dateavg[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1508</div></div>
-<div class="ttc" id="structwcsprm_html_a9eac54f497e1244c8106dd3ebba12223"><div class="ttname"><a href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223">wcsprm::ssysobs</a></div><div class="ttdeci">char ssysobs[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1516</div></div>
-<div class="ttc" id="structwcsprm_html_a922f0f57b8c35cad3d01ceedeba01d4b"><div class="ttname"><a href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b">wcsprm::cname</a></div><div class="ttdeci">char(* cname)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1505</div></div>
+<div class="ttc" id="structpscard_html_a9986f2ace84978f6cc543224b57592c9"><div class="ttname"><a href="structpscard.html#a9986f2ace84978f6cc543224b57592c9">pscard::value</a></div><div class="ttdeci">char value[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1537</div></div>
+<div class="ttc" id="structwcsprm_html_a8625c0a6ff99c754566c46c2372df801"><div class="ttname"><a href="structwcsprm.html#a8625c0a6ff99c754566c46c2372df801">wcsprm::nwtb</a></div><div class="ttdeci">int nwtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1628</div></div>
+<div class="ttc" id="structwcsprm_html_ae6b40e2adeb31414871c7cae68619d63"><div class="ttname"><a href="structwcsprm.html#ae6b40e2adeb31414871c7cae68619d63">wcsprm::dateavg</a></div><div class="ttdeci">char dateavg[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1610</div></div>
+<div class="ttc" id="structwcsprm_html_a9eac54f497e1244c8106dd3ebba12223"><div class="ttname"><a href="structwcsprm.html#a9eac54f497e1244c8106dd3ebba12223">wcsprm::ssysobs</a></div><div class="ttdeci">char ssysobs[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1618</div></div>
+<div class="ttc" id="structwcsprm_html_a922f0f57b8c35cad3d01ceedeba01d4b"><div class="ttname"><a href="structwcsprm.html#a922f0f57b8c35cad3d01ceedeba01d4b">wcsprm::cname</a></div><div class="ttdeci">char(* cname)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1607</div></div>
 <div class="ttc" id="structwtbarr_html_a41c30234dbdf18ac094872cf39562172"><div class="ttname"><a href="structwtbarr.html#a41c30234dbdf18ac094872cf39562172">wtbarr::arrayp</a></div><div class="ttdeci">double ** arrayp</div><div class="ttdef"><b>Definition:</b> getwcstab.h:177</div></div>
 <div class="ttc" id="wcs_8h_html_ae5cc3f5d249755583403cdf54d2ebb91"><div class="ttname"><a href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a></div><div class="ttdeci">int wcsset(struct wcsprm *wcs)</div><div class="ttdoc">Setup routine for the wcsprm struct. </div></div>
-<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1460</div></div>
-<div class="ttc" id="structwcsprm_html_a9ee8fb568ca75874bab00825b768f8ca"><div class="ttname"><a href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca">wcsprm::colnum</a></div><div class="ttdeci">int colnum</div><div class="ttdef"><b>Definition:</b> wcs.h:1502</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007">WCSERR_BAD_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1407</div></div>
-<div class="ttc" id="structwcsprm_html_a6778d31ec5a2ee643dc5f0a8af630b03"><div class="ttname"><a href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">wcsprm::m_pc</a></div><div class="ttdeci">double * m_pc</div><div class="ttdef"><b>Definition:</b> wcs.h:1551</div></div>
+<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1562</div></div>
+<div class="ttc" id="structwcsprm_html_a9ee8fb568ca75874bab00825b768f8ca"><div class="ttname"><a href="structwcsprm.html#a9ee8fb568ca75874bab00825b768f8ca">wcsprm::colnum</a></div><div class="ttdeci">int colnum</div><div class="ttdef"><b>Definition:</b> wcs.h:1604</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa71cb7eaa633d9e0f560555a016f1f007">WCSERR_BAD_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1509</div></div>
+<div class="ttc" id="structwcsprm_html_a6778d31ec5a2ee643dc5f0a8af630b03"><div class="ttname"><a href="structwcsprm.html#a6778d31ec5a2ee643dc5f0a8af630b03">wcsprm::m_pc</a></div><div class="ttdeci">double * m_pc</div><div class="ttdef"><b>Definition:</b> wcs.h:1653</div></div>
 <div class="ttc" id="wcs_8h_html_a27d3dd209db3e76cf4c50f48c01ba986"><div class="ttname"><a href="wcs_8h.html#a27d3dd209db3e76cf4c50f48c01ba986">wcsp2s</a></div><div class="ttdeci">int wcsp2s(struct wcsprm *wcs, int ncoord, int nelem, const double pixcrd[], double imgcrd[], double phi[], double theta[], double world[], int stat[])</div><div class="ttdoc">Pixel-to-world transformation. </div></div>
-<div class="ttc" id="structwcsprm_html_a9fd60ce9e6bc31df07ed02ce64b48be4"><div class="ttname"><a href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4">wcsprm::velangl</a></div><div class="ttdeci">double velangl</div><div class="ttdef"><b>Definition:</b> wcs.h:1520</div></div>
-<div class="ttc" id="structwcsprm_html_a9063e8d0c956e9eae7f7d6f3608b9ed2"><div class="ttname"><a href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2">wcsprm::wtb</a></div><div class="ttdeci">struct wtbarr * wtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1528</div></div>
-<div class="ttc" id="structwcsprm_html_a49eee6450b1a646d3fe01b8965a63af4"><div class="ttname"><a href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4">wcsprm::crder</a></div><div class="ttdeci">double * crder</div><div class="ttdef"><b>Definition:</b> wcs.h:1506</div></div>
-<div class="ttc" id="structwcsprm_html_a5d0b60efc55a61525b9beb26ead4859e"><div class="ttname"><a href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e">wcsprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> wcs.h:1480</div></div>
-<div class="ttc" id="structwcsprm_html_a0d15534535c7f9308c9daa2cceff29e7"><div class="ttname"><a href="structwcsprm.html#a0d15534535c7f9308c9daa2cceff29e7">wcsprm::m_crder</a></div><div class="ttdeci">double * m_crder</div><div class="ttdef"><b>Definition:</b> wcs.h:1558</div></div>
-<div class="ttc" id="structwcsprm_html_a5b56e1b378a6ae9f8dfff5c364f0653c"><div class="ttname"><a href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c">wcsprm::lngtyp</a></div><div class="ttdeci">char lngtyp[8]</div><div class="ttdef"><b>Definition:</b> wcs.h:1532</div></div>
+<div class="ttc" id="structwcsprm_html_a9fd60ce9e6bc31df07ed02ce64b48be4"><div class="ttname"><a href="structwcsprm.html#a9fd60ce9e6bc31df07ed02ce64b48be4">wcsprm::velangl</a></div><div class="ttdeci">double velangl</div><div class="ttdef"><b>Definition:</b> wcs.h:1622</div></div>
+<div class="ttc" id="structwcsprm_html_a9063e8d0c956e9eae7f7d6f3608b9ed2"><div class="ttname"><a href="structwcsprm.html#a9063e8d0c956e9eae7f7d6f3608b9ed2">wcsprm::wtb</a></div><div class="ttdeci">struct wtbarr * wtb</div><div class="ttdef"><b>Definition:</b> wcs.h:1630</div></div>
+<div class="ttc" id="structwcsprm_html_a49eee6450b1a646d3fe01b8965a63af4"><div class="ttname"><a href="structwcsprm.html#a49eee6450b1a646d3fe01b8965a63af4">wcsprm::crder</a></div><div class="ttdeci">double * crder</div><div class="ttdef"><b>Definition:</b> wcs.h:1608</div></div>
+<div class="ttc" id="structwcsprm_html_a5d0b60efc55a61525b9beb26ead4859e"><div class="ttname"><a href="structwcsprm.html#a5d0b60efc55a61525b9beb26ead4859e">wcsprm::restwav</a></div><div class="ttdeci">double restwav</div><div class="ttdef"><b>Definition:</b> wcs.h:1582</div></div>
+<div class="ttc" id="structwcsprm_html_a0d15534535c7f9308c9daa2cceff29e7"><div class="ttname"><a href="structwcsprm.html#a0d15534535c7f9308c9daa2cceff29e7">wcsprm::m_crder</a></div><div class="ttdeci">double * m_crder</div><div class="ttdef"><b>Definition:</b> wcs.h:1660</div></div>
+<div class="ttc" id="structwcsprm_html_a5b56e1b378a6ae9f8dfff5c364f0653c"><div class="ttname"><a href="structwcsprm.html#a5b56e1b378a6ae9f8dfff5c364f0653c">wcsprm::lngtyp</a></div><div class="ttdeci">char lngtyp[8]</div><div class="ttdef"><b>Definition:</b> wcs.h:1634</div></div>
 <div class="ttc" id="wcs_8h_html_a42b2578d76ace7ca6114d82b7ae46a89"><div class="ttname"><a href="wcs_8h.html#a42b2578d76ace7ca6114d82b7ae46a89">wcsnpv</a></div><div class="ttdeci">int wcsnpv(int n)</div><div class="ttdoc">Memory allocation for PVi_ma. </div></div>
-<div class="ttc" id="structwcsprm_html_a70cac2976524a5f0a6aeb2b3fcb95834"><div class="ttname"><a href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">wcsprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> wcs.h:1467</div></div>
-<div class="ttc" id="structpscard_html_a71912f084bc3cadeb0758756a723071a"><div class="ttname"><a href="structpscard.html#a71912f084bc3cadeb0758756a723071a">pscard::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> wcs.h:1434</div></div>
+<div class="ttc" id="structwcsprm_html_a70cac2976524a5f0a6aeb2b3fcb95834"><div class="ttname"><a href="structwcsprm.html#a70cac2976524a5f0a6aeb2b3fcb95834">wcsprm::naxis</a></div><div class="ttdeci">int naxis</div><div class="ttdef"><b>Definition:</b> wcs.h:1569</div></div>
+<div class="ttc" id="structpscard_html_a71912f084bc3cadeb0758756a723071a"><div class="ttname"><a href="structpscard.html#a71912f084bc3cadeb0758756a723071a">pscard::m</a></div><div class="ttdeci">int m</div><div class="ttdef"><b>Definition:</b> wcs.h:1536</div></div>
 <div class="ttc" id="wcs_8h_html_af3f00b876c8212d43f32a51feeadaa81"><div class="ttname"><a href="wcs_8h.html#af3f00b876c8212d43f32a51feeadaa81">wcsmix</a></div><div class="ttdeci">int wcsmix(struct wcsprm *wcs, int mixpix, int mixcel, const double vspan[], double vstep, int viter, double world[], double phi[], double theta[], double imgcrd[], double pixcrd[])</div><div class="ttdoc">Hybrid coordinate transformation. </div></div>
-<div class="ttc" id="structwcsprm_html_ab9729795155b8f37afd80784fb70068b"><div class="ttname"><a href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b">wcsprm::spec</a></div><div class="ttdeci">int spec</div><div class="ttdef"><b>Definition:</b> wcs.h:1533</div></div>
+<div class="ttc" id="structwcsprm_html_ab9729795155b8f37afd80784fb70068b"><div class="ttname"><a href="structwcsprm.html#ab9729795155b8f37afd80784fb70068b">wcsprm::spec</a></div><div class="ttdeci">int spec</div><div class="ttdef"><b>Definition:</b> wcs.h:1635</div></div>
 <div class="ttc" id="wcs_8h_html_ad16bd8db875ee05b014429efdc1f3471"><div class="ttname"><a href="wcs_8h.html#ad16bd8db875ee05b014429efdc1f3471">wcs_errmsg</a></div><div class="ttdeci">const char * wcs_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d">WCSERR_BAD_WORLD_COORD</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1415</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa5d662102c172495df1f9bb03cedd701d">WCSERR_BAD_WORLD_COORD</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1517</div></div>
 <div class="ttc" id="structwtbarr_html"><div class="ttname"><a href="structwtbarr.html">wtbarr</a></div><div class="ttdoc">Extraction of coordinate lookup tables from BINTABLE. </div><div class="ttdef"><b>Definition:</b> getwcstab.h:166</div></div>
 <div class="ttc" id="wcs_8h_html_a8fe5dcd9927240dc0348b850ee662367"><div class="ttname"><a href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a></div><div class="ttdeci">int wcsperr(const struct wcsprm *wcs, const char *prefix)</div><div class="ttdoc">Print error messages from a wcsprm struct. </div></div>
-<div class="ttc" id="structwcsprm_html_a5e04127eb71da6e1350467a7a6d236f5"><div class="ttname"><a href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5">wcsprm::latpole</a></div><div class="ttdeci">double latpole</div><div class="ttdef"><b>Definition:</b> wcs.h:1477</div></div>
-<div class="ttc" id="structwcsprm_html_a164e3852bcd2dea8b5f73e1dff79ddf5"><div class="ttname"><a href="structwcsprm.html#a164e3852bcd2dea8b5f73e1dff79ddf5">wcsprm::m_crpix</a></div><div class="ttdeci">double * m_crpix</div><div class="ttdef"><b>Definition:</b> wcs.h:1551</div></div>
-<div class="ttc" id="structwcsprm_html_af300da5a94594a9769ab312bb56dde83"><div class="ttname"><a href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83">wcsprm::velosys</a></div><div class="ttdeci">double velosys</div><div class="ttdef"><b>Definition:</b> wcs.h:1517</div></div>
-<div class="ttc" id="structwcsprm_html_a13fab263ca03f35844fdaca289b7dfac"><div class="ttname"><a href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac">wcsprm::m_csyer</a></div><div class="ttdeci">double * m_csyer</div><div class="ttdef"><b>Definition:</b> wcs.h:1558</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020">WCSERR_ILL_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1409</div></div>
-<div class="ttc" id="structtabprm_html"><div class="ttname"><a href="structtabprm.html">tabprm</a></div><div class="ttdoc">Tabular transformation parameters. </div><div class="ttdef"><b>Definition:</b> tab.h:526</div></div>
-<div class="ttc" id="structwcsprm_html_ac3c9c869bef4e4850dfd9762b33ce908"><div class="ttname"><a href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908">wcsprm::velref</a></div><div class="ttdeci">int velref</div><div class="ttdef"><b>Definition:</b> wcs.h:1498</div></div>
-<div class="ttc" id="structpscard_html_a37a06c885cf73736f2eb5e78bd1034a1"><div class="ttname"><a href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1">pscard::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> wcs.h:1433</div></div>
-<div class="ttc" id="structwcsprm_html_a15485177ea8bbacefc29a5a5cba98c8f"><div class="ttname"><a href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f">wcsprm::csyer</a></div><div class="ttdeci">double * csyer</div><div class="ttdef"><b>Definition:</b> wcs.h:1507</div></div>
-<div class="ttc" id="structwcsprm_html_a5c80dded8a6e9bbb9e26c32c17443563"><div class="ttname"><a href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">wcsprm::m_padding</a></div><div class="ttdeci">void * m_padding</div><div class="ttdef"><b>Definition:</b> wcs.h:1549</div></div>
-<div class="ttc" id="structwcsprm_html_ab7f7173e6d2b1b8028a3275bdd751e79"><div class="ttname"><a href="structwcsprm.html#ab7f7173e6d2b1b8028a3275bdd751e79">wcsprm::lat</a></div><div class="ttdeci">int lat</div><div class="ttdef"><b>Definition:</b> wcs.h:1533</div></div>
-<div class="ttc" id="structpvcard_html"><div class="ttname"><a href="structpvcard.html">pvcard</a></div><div class="ttdoc">Store for PVi_ma keyrecords. </div><div class="ttdef"><b>Definition:</b> wcs.h:1425</div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313">WCSERR_BAD_CTYPE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1404</div></div>
-<div class="ttc" id="structwcsprm_html_aadad828f07e3affd1511e533b00da19f"><div class="ttname"><a href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f">wcsprm::crpix</a></div><div class="ttdeci">double * crpix</div><div class="ttdef"><b>Definition:</b> wcs.h:1468</div></div>
-<div class="ttc" id="structwcsprm_html_a0730c37f09502eb364f4e7d7addb8ab8"><div class="ttname"><a href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">wcsprm::mjdavg</a></div><div class="ttdeci">double mjdavg</div><div class="ttdef"><b>Definition:</b> wcs.h:1511</div></div>
-<div class="ttc" id="structwcsprm_html_ac8391dd770637dbb841067996b7777ba"><div class="ttname"><a href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba">wcsprm::cel</a></div><div class="ttdeci">struct celprm cel</div><div class="ttdef"><b>Definition:</b> wcs.h:1540</div></div>
+<div class="ttc" id="structwcsprm_html_a5e04127eb71da6e1350467a7a6d236f5"><div class="ttname"><a href="structwcsprm.html#a5e04127eb71da6e1350467a7a6d236f5">wcsprm::latpole</a></div><div class="ttdeci">double latpole</div><div class="ttdef"><b>Definition:</b> wcs.h:1579</div></div>
+<div class="ttc" id="structwcsprm_html_a164e3852bcd2dea8b5f73e1dff79ddf5"><div class="ttname"><a href="structwcsprm.html#a164e3852bcd2dea8b5f73e1dff79ddf5">wcsprm::m_crpix</a></div><div class="ttdeci">double * m_crpix</div><div class="ttdef"><b>Definition:</b> wcs.h:1653</div></div>
+<div class="ttc" id="structwcsprm_html_af300da5a94594a9769ab312bb56dde83"><div class="ttname"><a href="structwcsprm.html#af300da5a94594a9769ab312bb56dde83">wcsprm::velosys</a></div><div class="ttdeci">double velosys</div><div class="ttdef"><b>Definition:</b> wcs.h:1619</div></div>
+<div class="ttc" id="structwcsprm_html_a13fab263ca03f35844fdaca289b7dfac"><div class="ttname"><a href="structwcsprm.html#a13fab263ca03f35844fdaca289b7dfac">wcsprm::m_csyer</a></div><div class="ttdeci">double * m_csyer</div><div class="ttdef"><b>Definition:</b> wcs.h:1660</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fadfa2a8cf8021827378091315b8e0a020">WCSERR_ILL_COORD_TRANS</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1511</div></div>
+<div class="ttc" id="structtabprm_html"><div class="ttname"><a href="structtabprm.html">tabprm</a></div><div class="ttdoc">Tabular transformation parameters. </div><div class="ttdef"><b>Definition:</b> tab.h:524</div></div>
+<div class="ttc" id="structwcsprm_html_ac3c9c869bef4e4850dfd9762b33ce908"><div class="ttname"><a href="structwcsprm.html#ac3c9c869bef4e4850dfd9762b33ce908">wcsprm::velref</a></div><div class="ttdeci">int velref</div><div class="ttdef"><b>Definition:</b> wcs.h:1600</div></div>
+<div class="ttc" id="structpscard_html_a37a06c885cf73736f2eb5e78bd1034a1"><div class="ttname"><a href="structpscard.html#a37a06c885cf73736f2eb5e78bd1034a1">pscard::i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> wcs.h:1535</div></div>
+<div class="ttc" id="wcs_8h_html_a319c3945e70d0bb10587e4925b589229"><div class="ttname"><a href="wcs_8h.html#a319c3945e70d0bb10587e4925b589229">wcslib_version</a></div><div class="ttdeci">const char * wcslib_version(int vers[3])</div></div>
+<div class="ttc" id="structwcsprm_html_a15485177ea8bbacefc29a5a5cba98c8f"><div class="ttname"><a href="structwcsprm.html#a15485177ea8bbacefc29a5a5cba98c8f">wcsprm::csyer</a></div><div class="ttdeci">double * csyer</div><div class="ttdef"><b>Definition:</b> wcs.h:1609</div></div>
+<div class="ttc" id="structwcsprm_html_a5c80dded8a6e9bbb9e26c32c17443563"><div class="ttname"><a href="structwcsprm.html#a5c80dded8a6e9bbb9e26c32c17443563">wcsprm::m_padding</a></div><div class="ttdeci">void * m_padding</div><div class="ttdef"><b>Definition:</b> wcs.h:1651</div></div>
+<div class="ttc" id="structwcsprm_html_ab7f7173e6d2b1b8028a3275bdd751e79"><div class="ttname"><a href="structwcsprm.html#ab7f7173e6d2b1b8028a3275bdd751e79">wcsprm::lat</a></div><div class="ttdeci">int lat</div><div class="ttdef"><b>Definition:</b> wcs.h:1635</div></div>
+<div class="ttc" id="structpvcard_html"><div class="ttname"><a href="structpvcard.html">pvcard</a></div><div class="ttdoc">Store for PVi_ma keyrecords. </div><div class="ttdef"><b>Definition:</b> wcs.h:1527</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa598db0fcc4961aa3c5e0a296bec2b313">WCSERR_BAD_CTYPE</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1506</div></div>
+<div class="ttc" id="structwcsprm_html_aadad828f07e3affd1511e533b00da19f"><div class="ttname"><a href="structwcsprm.html#aadad828f07e3affd1511e533b00da19f">wcsprm::crpix</a></div><div class="ttdeci">double * crpix</div><div class="ttdef"><b>Definition:</b> wcs.h:1570</div></div>
+<div class="ttc" id="structwcsprm_html_a0730c37f09502eb364f4e7d7addb8ab8"><div class="ttname"><a href="structwcsprm.html#a0730c37f09502eb364f4e7d7addb8ab8">wcsprm::mjdavg</a></div><div class="ttdeci">double mjdavg</div><div class="ttdef"><b>Definition:</b> wcs.h:1613</div></div>
+<div class="ttc" id="structwcsprm_html_ac8391dd770637dbb841067996b7777ba"><div class="ttname"><a href="structwcsprm.html#ac8391dd770637dbb841067996b7777ba">wcsprm::cel</a></div><div class="ttdeci">struct celprm cel</div><div class="ttdef"><b>Definition:</b> wcs.h:1642</div></div>
 <div class="ttc" id="wcs_8h_html_a2afc8255fde0965dddaa374463666d45"><div class="ttname"><a href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcsini</a></div><div class="ttdeci">int wcsini(int alloc, int naxis, struct wcsprm *wcs)</div><div class="ttdoc">Default constructor for the wcsprm struct. </div></div>
 <div class="ttc" id="structwtbarr_html_a9f1fcad814aa3da08dfa75ede2a07deb"><div class="ttname"><a href="structwtbarr.html#a9f1fcad814aa3da08dfa75ede2a07deb">wtbarr::extnam</a></div><div class="ttdeci">char extnam[72]</div><div class="ttdef"><b>Definition:</b> getwcstab.h:170</div></div>
-<div class="ttc" id="structwcsprm_html_a42e0ff2da3b0c1ca0a9509f787ed1951"><div class="ttname"><a href="structwcsprm.html#a42e0ff2da3b0c1ca0a9509f787ed1951">wcsprm::m_cdelt</a></div><div class="ttdeci">double * m_cdelt</div><div class="ttdef"><b>Definition:</b> wcs.h:1551</div></div>
-<div class="ttc" id="structwcsprm_html_a912eed291f15134e8cfb8750acc6c4bc"><div class="ttname"><a href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc">wcsprm::npvmax</a></div><div class="ttdeci">int npvmax</div><div class="ttdef"><b>Definition:</b> wcs.h:1483</div></div>
-<div class="ttc" id="structpvcard_html_a5c97562bbadb55b8a2db59d9c7878059"><div class="ttname"><a href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059">pvcard::value</a></div><div class="ttdeci">double value</div><div class="ttdef"><b>Definition:</b> wcs.h:1428</div></div>
-<div class="ttc" id="structpscard_html"><div class="ttname"><a href="structpscard.html">pscard</a></div><div class="ttdoc">Store for PSi_ma keyrecords. </div><div class="ttdef"><b>Definition:</b> wcs.h:1432</div></div>
+<div class="ttc" id="structwcsprm_html_a42e0ff2da3b0c1ca0a9509f787ed1951"><div class="ttname"><a href="structwcsprm.html#a42e0ff2da3b0c1ca0a9509f787ed1951">wcsprm::m_cdelt</a></div><div class="ttdeci">double * m_cdelt</div><div class="ttdef"><b>Definition:</b> wcs.h:1653</div></div>
+<div class="ttc" id="structwcsprm_html_a912eed291f15134e8cfb8750acc6c4bc"><div class="ttname"><a href="structwcsprm.html#a912eed291f15134e8cfb8750acc6c4bc">wcsprm::npvmax</a></div><div class="ttdeci">int npvmax</div><div class="ttdef"><b>Definition:</b> wcs.h:1585</div></div>
+<div class="ttc" id="structpvcard_html_a5c97562bbadb55b8a2db59d9c7878059"><div class="ttname"><a href="structpvcard.html#a5c97562bbadb55b8a2db59d9c7878059">pvcard::value</a></div><div class="ttdeci">double value</div><div class="ttdef"><b>Definition:</b> wcs.h:1530</div></div>
+<div class="ttc" id="structpscard_html"><div class="ttname"><a href="structpscard.html">pscard</a></div><div class="ttdoc">Store for PSi_ma keyrecords. </div><div class="ttdef"><b>Definition:</b> wcs.h:1534</div></div>
 <div class="ttc" id="structwtbarr_html_af862b4f90b0406ed8dd0c240768d4bd3"><div class="ttname"><a href="structwtbarr.html#af862b4f90b0406ed8dd0c240768d4bd3">wtbarr::ndim</a></div><div class="ttdeci">int ndim</div><div class="ttdef"><b>Definition:</b> getwcstab.h:175</div></div>
-<div class="ttc" id="structwcsprm_html_a7a0a1ce2432cef9377f70367ea1fd18c"><div class="ttname"><a href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c">wcsprm::crval</a></div><div class="ttdeci">double * crval</div><div class="ttdef"><b>Definition:</b> wcs.h:1471</div></div>
-<div class="ttc" id="structwcsprm_html_a7320fc64e7705cc7495eba07482b5c55"><div class="ttname"><a href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55">wcsprm::colax</a></div><div class="ttdeci">int * colax</div><div class="ttdef"><b>Definition:</b> wcs.h:1503</div></div>
-<div class="ttc" id="structwcsprm_html_a8b3a65921acc0dabfa4efd19a003ea6e"><div class="ttname"><a href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">wcsprm::altlin</a></div><div class="ttdeci">int altlin</div><div class="ttdef"><b>Definition:</b> wcs.h:1494</div></div>
-<div class="ttc" id="structwcsprm_html_a3224bd06f8f4d2d7d398533eb44a49e8"><div class="ttname"><a href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8">wcsprm::lin</a></div><div class="ttdeci">struct linprm lin</div><div class="ttdef"><b>Definition:</b> wcs.h:1539</div></div>
-<div class="ttc" id="structwcsprm_html_ae1f462606974e1324cd38f143eda691e"><div class="ttname"><a href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e">wcsprm::ctype</a></div><div class="ttdeci">char(* ctype)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1474</div></div>
-<div class="ttc" id="structwcsprm_html_a3495a5b0ef529706ec9a0af5c3163d63"><div class="ttname"><a href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63">wcsprm::pc</a></div><div class="ttdeci">double * pc</div><div class="ttdef"><b>Definition:</b> wcs.h:1469</div></div>
-<div class="ttc" id="structwcsprm_html_ac0cb013b1505fb7abd4167ac0db0e0aa"><div class="ttname"><a href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa">wcsprm::mjdobs</a></div><div class="ttdeci">double mjdobs</div><div class="ttdef"><b>Definition:</b> wcs.h:1512</div></div>
+<div class="ttc" id="structwcsprm_html_a7a0a1ce2432cef9377f70367ea1fd18c"><div class="ttname"><a href="structwcsprm.html#a7a0a1ce2432cef9377f70367ea1fd18c">wcsprm::crval</a></div><div class="ttdeci">double * crval</div><div class="ttdef"><b>Definition:</b> wcs.h:1573</div></div>
+<div class="ttc" id="structwcsprm_html_a7320fc64e7705cc7495eba07482b5c55"><div class="ttname"><a href="structwcsprm.html#a7320fc64e7705cc7495eba07482b5c55">wcsprm::colax</a></div><div class="ttdeci">int * colax</div><div class="ttdef"><b>Definition:</b> wcs.h:1605</div></div>
+<div class="ttc" id="structwcsprm_html_a8b3a65921acc0dabfa4efd19a003ea6e"><div class="ttname"><a href="structwcsprm.html#a8b3a65921acc0dabfa4efd19a003ea6e">wcsprm::altlin</a></div><div class="ttdeci">int altlin</div><div class="ttdef"><b>Definition:</b> wcs.h:1596</div></div>
+<div class="ttc" id="structwcsprm_html_a3224bd06f8f4d2d7d398533eb44a49e8"><div class="ttname"><a href="structwcsprm.html#a3224bd06f8f4d2d7d398533eb44a49e8">wcsprm::lin</a></div><div class="ttdeci">struct linprm lin</div><div class="ttdef"><b>Definition:</b> wcs.h:1641</div></div>
+<div class="ttc" id="structwcsprm_html_ae1f462606974e1324cd38f143eda691e"><div class="ttname"><a href="structwcsprm.html#ae1f462606974e1324cd38f143eda691e">wcsprm::ctype</a></div><div class="ttdeci">char(* ctype)[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1576</div></div>
+<div class="ttc" id="structwcsprm_html_a3495a5b0ef529706ec9a0af5c3163d63"><div class="ttname"><a href="structwcsprm.html#a3495a5b0ef529706ec9a0af5c3163d63">wcsprm::pc</a></div><div class="ttdeci">double * pc</div><div class="ttdef"><b>Definition:</b> wcs.h:1571</div></div>
+<div class="ttc" id="structwcsprm_html_ac0cb013b1505fb7abd4167ac0db0e0aa"><div class="ttname"><a href="structwcsprm.html#ac0cb013b1505fb7abd4167ac0db0e0aa">wcsprm::mjdobs</a></div><div class="ttdeci">double mjdobs</div><div class="ttdef"><b>Definition:</b> wcs.h:1614</div></div>
 <div class="ttc" id="structwtbarr_html_a24487eda7b17800f41bd4a452c6306d5"><div class="ttname"><a href="structwtbarr.html#a24487eda7b17800f41bd4a452c6306d5">wtbarr::extver</a></div><div class="ttdeci">int extver</div><div class="ttdef"><b>Definition:</b> getwcstab.h:171</div></div>
-<div class="ttc" id="structwcsprm_html_a5444415c94c7ab0226788f5efe93221d"><div class="ttname"><a href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d">wcsprm::m_crota</a></div><div class="ttdeci">double * m_crota</div><div class="ttdef"><b>Definition:</b> wcs.h:1555</div></div>
-<div class="ttc" id="wcserr_8h_html"><div class="ttname"><a href="wcserr_8h.html">wcserr.h</a></div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a">WCSERR_NO_SOLUTION</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1416</div></div>
+<div class="ttc" id="structwcsprm_html_a5444415c94c7ab0226788f5efe93221d"><div class="ttname"><a href="structwcsprm.html#a5444415c94c7ab0226788f5efe93221d">wcsprm::m_crota</a></div><div class="ttdeci">double * m_crota</div><div class="ttdef"><b>Definition:</b> wcs.h:1657</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa832122bb304560f92df91e391d55948a">WCSERR_NO_SOLUTION</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1518</div></div>
 <div class="ttc" id="structwtbarr_html_a901403d05f985d4a1fbd2fdc9585bd50"><div class="ttname"><a href="structwtbarr.html#a901403d05f985d4a1fbd2fdc9585bd50">wtbarr::dimlen</a></div><div class="ttdeci">int * dimlen</div><div class="ttdef"><b>Definition:</b> getwcstab.h:176</div></div>
-<div class="ttc" id="structwcsprm_html_a8715975565c8bbd0c562a32eee40fd20"><div class="ttname"><a href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20">wcsprm::ssyssrc</a></div><div class="ttdeci">char ssyssrc[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1519</div></div>
-<div class="ttc" id="structwcsprm_html_ae352318ce3202dab1b5db8b9ceec7703"><div class="ttname"><a href="structwcsprm.html#ae352318ce3202dab1b5db8b9ceec7703">wcsprm::lattyp</a></div><div class="ttdeci">char lattyp[8]</div><div class="ttdef"><b>Definition:</b> wcs.h:1532</div></div>
-<div class="ttc" id="tab_8h_html"><div class="ttname"><a href="tab_8h.html">tab.h</a></div></div>
-<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804">WCSERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1413</div></div>
-<div class="ttc" id="structwcsprm_html_a6a3fa7adc304567271c5cc0eda3ac986"><div class="ttname"><a href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">wcsprm::m_pv</a></div><div class="ttdeci">struct pvcard * m_pv</div><div class="ttdef"><b>Definition:</b> wcs.h:1553</div></div>
-<div class="ttc" id="structwcsprm_html_a5780880281f2f9d085d2e06919b7647a"><div class="ttname"><a href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">wcsprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> wcs.h:1550</div></div>
+<div class="ttc" id="structwcsprm_html_a8715975565c8bbd0c562a32eee40fd20"><div class="ttname"><a href="structwcsprm.html#a8715975565c8bbd0c562a32eee40fd20">wcsprm::ssyssrc</a></div><div class="ttdeci">char ssyssrc[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1621</div></div>
+<div class="ttc" id="structwcsprm_html_ae352318ce3202dab1b5db8b9ceec7703"><div class="ttname"><a href="structwcsprm.html#ae352318ce3202dab1b5db8b9ceec7703">wcsprm::lattyp</a></div><div class="ttdeci">char lattyp[8]</div><div class="ttdef"><b>Definition:</b> wcs.h:1634</div></div>
+<div class="ttc" id="wcs_8h_html_a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804"><div class="ttname"><a href="wcs_8h.html#a158615aa1622d8feedd228795ff9a25fa03824b7b5c22e5f0cc91363eb695a804">WCSERR_BAD_WORLD</a></div><div class="ttdef"><b>Definition:</b> wcs.h:1515</div></div>
+<div class="ttc" id="structwcsprm_html_a6a3fa7adc304567271c5cc0eda3ac986"><div class="ttname"><a href="structwcsprm.html#a6a3fa7adc304567271c5cc0eda3ac986">wcsprm::m_pv</a></div><div class="ttdeci">struct pvcard * m_pv</div><div class="ttdef"><b>Definition:</b> wcs.h:1655</div></div>
+<div class="ttc" id="structwcsprm_html_a5780880281f2f9d085d2e06919b7647a"><div class="ttname"><a href="structwcsprm.html#a5780880281f2f9d085d2e06919b7647a">wcsprm::m_flag</a></div><div class="ttdeci">int m_flag</div><div class="ttdef"><b>Definition:</b> wcs.h:1652</div></div>
 <div class="ttc" id="structwtbarr_html_a10c8dba85b62e2794071dd50a41c4bb1"><div class="ttname"><a href="structwtbarr.html#a10c8dba85b62e2794071dd50a41c4bb1">wtbarr::extlev</a></div><div class="ttdeci">int extlev</div><div class="ttdef"><b>Definition:</b> getwcstab.h:172</div></div>
-<div class="ttc" id="structwcsprm_html_a0936d10c2ac93d13d096b1711ac639a1"><div class="ttname"><a href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">wcsprm::zsource</a></div><div class="ttdeci">double zsource</div><div class="ttdef"><b>Definition:</b> wcs.h:1518</div></div>
-<div class="ttc" id="structwcsprm_html_a0cc4f20f62b3473d2ff3756bdfff6fd4"><div class="ttname"><a href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4">wcsprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> wcs.h:1537</div></div>
-<div class="ttc" id="structwcsprm_html_a2166fb650f937d8870711d8be5986b66"><div class="ttname"><a href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66">wcsprm::wcsname</a></div><div class="ttdeci">char wcsname[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1521</div></div>
+<div class="ttc" id="structwcsprm_html_a0936d10c2ac93d13d096b1711ac639a1"><div class="ttname"><a href="structwcsprm.html#a0936d10c2ac93d13d096b1711ac639a1">wcsprm::zsource</a></div><div class="ttdeci">double zsource</div><div class="ttdef"><b>Definition:</b> wcs.h:1620</div></div>
+<div class="ttc" id="structwcsprm_html_a0cc4f20f62b3473d2ff3756bdfff6fd4"><div class="ttname"><a href="structwcsprm.html#a0cc4f20f62b3473d2ff3756bdfff6fd4">wcsprm::padding</a></div><div class="ttdeci">void * padding</div><div class="ttdef"><b>Definition:</b> wcs.h:1639</div></div>
+<div class="ttc" id="structwcsprm_html_a2166fb650f937d8870711d8be5986b66"><div class="ttname"><a href="structwcsprm.html#a2166fb650f937d8870711d8be5986b66">wcsprm::wcsname</a></div><div class="ttdeci">char wcsname[72]</div><div class="ttdef"><b>Definition:</b> wcs.h:1623</div></div>
 <div class="ttc" id="wcs_8h_html_ae790c9ce6c9b7a4845cf1c3c97b1e97a"><div class="ttname"><a href="wcs_8h.html#ae790c9ce6c9b7a4845cf1c3c97b1e97a">wcsnps</a></div><div class="ttdeci">int wcsnps(int n)</div><div class="ttdoc">Memory allocation for PSi_ma. </div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcserr_8h.html b/html/wcserr_8h.html
index def9c2b..ae76731 100644
--- a/html/wcserr_8h.html
+++ b/html/wcserr_8h.html
@@ -355,7 +355,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcserr_8h_source.html b/html/wcserr_8h_source.html
index 7859360..00f63ec 100644
--- a/html/wcserr_8h_source.html
+++ b/html/wcserr_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcserr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -76,7 +76,7 @@
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  Module author: Michael Droettboom</span></div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">  $Id: wcserr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">  $Id: wcserr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* Summary of the wcserr routines</span></div>
@@ -318,7 +318,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsfix_8h.html b/html/wcsfix_8h.html
index c11c3c9..d6a5d04 100644
--- a/html/wcsfix_8h.html
+++ b/html/wcsfix_8h.html
@@ -669,7 +669,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsfix_8h_source.html b/html/wcsfix_8h_source.html
index f1dfeae..43d2cd9 100644
--- a/html/wcsfix_8h_source.html
+++ b/html/wcsfix_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcsfix_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsfix.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsfix.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -463,7 +463,7 @@
 <div class="ttc" id="wcsfix_8h_html_a0399bbea1e28abad3259a8ea05b25183"><div class="ttname"><a href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183">wcsfix_errmsg_enum</a></div><div class="ttdeci">wcsfix_errmsg_enum</div><div class="ttdef"><b>Definition:</b> wcsfix.h:352</div></div>
 <div class="ttc" id="wcsfix_8h_html_a0399bbea1e28abad3259a8ea05b25183a1e255b3aa269ff0c251ada8a6c3f9602"><div class="ttname"><a href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183a1e255b3aa269ff0c251ada8a6c3f9602">FIXERR_UNITS_ALIAS</a></div><div class="ttdef"><b>Definition:</b> wcsfix.h:355</div></div>
 <div class="ttc" id="wcsfix_8h_html_a256ce6281894f65dd15396cc0994e875"><div class="ttname"><a href="wcsfix_8h.html#a256ce6281894f65dd15396cc0994e875">wcsfix_errmsg</a></div><div class="ttdeci">const char * wcsfix_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
-<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1460</div></div>
+<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1562</div></div>
 <div class="ttc" id="wcsfix_8h_html_a0399bbea1e28abad3259a8ea05b25183a7906f35912dd0fb39954bfd5140672a7"><div class="ttname"><a href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183a7906f35912dd0fb39954bfd5140672a7">FIXERR_SPC_UPDATE</a></div><div class="ttdef"><b>Definition:</b> wcsfix.h:354</div></div>
 <div class="ttc" id="wcsfix_8h_html_a0399bbea1e28abad3259a8ea05b25183a1e4cf4eeb3cd2f4d8c2c1f040aa62f6c"><div class="ttname"><a href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183a1e4cf4eeb3cd2f4d8c2c1f040aa62f6c">FIXERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> wcsfix.h:359</div></div>
 <div class="ttc" id="wcsfix_8h_html_a0399bbea1e28abad3259a8ea05b25183aee9fbc64e56bb6d307d06d8ef8e8b244"><div class="ttname"><a href="wcsfix_8h.html#a0399bbea1e28abad3259a8ea05b25183aee9fbc64e56bb6d307d06d8ef8e8b244">FIXERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> wcsfix.h:357</div></div>
@@ -482,7 +482,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcshdr_8h.html b/html/wcshdr_8h.html
index 4ee14ea..d8bc41a 100644
--- a/html/wcshdr_8h.html
+++ b/html/wcshdr_8h.html
@@ -71,6 +71,8 @@ Macros</h2></td></tr>
 <tr class="memitem:afd6d52bed79bd48230f651ac48eb5ca6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6">WCSHDR_reject</a>   0x10000000</td></tr>
 <tr class="memdesc:afd6d52bed79bd48230f651ac48eb5ca6"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - reject non-standard keywords.  <a href="#afd6d52bed79bd48230f651ac48eb5ca6"> [...]
 <tr class="separator:afd6d52bed79bd48230f651ac48eb5ca6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7b0e2f1a88e02909ea6366d3a18d6a84"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a7b0e2f1a88e02909ea6366d3a18d6a84">WCSHDR_strict</a>   0x20000000</td></tr>
+<tr class="separator:a7b0e2f1a88e02909ea6366d3a18d6a84"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a017f1e817bdb2114ba765e7a9ef73bac"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a017f1e817bdb2114ba765e7a9ef73bac">WCSHDR_CROTAia</a>   0x00000001</td></tr>
 <tr class="memdesc:a017f1e817bdb2114ba765e7a9ef73bac"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code><b>CROTA</b>ia</code>, <code>i<b>CROT</b>na</code>, <code><b>TC [...]
 <tr class="separator:a017f1e817bdb2114ba765e7a9ef73bac"><td class="memSeparator" colspan="2"> </td></tr>
@@ -89,34 +91,42 @@ Macros</h2></td></tr>
 <tr class="memitem:aee4fe41274945f9e34009d2eb309c922"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#aee4fe41274945f9e34009d2eb309c922">WCSHDR_PROJPn</a>   0x00000020</td></tr>
 <tr class="memdesc:aee4fe41274945f9e34009d2eb309c922"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code><b>PROJP</b>n</code>.  <a href="#aee4fe41274945f9e34009d2eb309c [...]
 <tr class="separator:aee4fe41274945f9e34009d2eb309c922"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1d506ef2ad493a963426e0732a6328ca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca">WCSHDR_RADECSYS</a>   0x00000040</td></tr>
+<tr class="memitem:a859baeb46a09ce21b6dbff40fe6c8f4a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a859baeb46a09ce21b6dbff40fe6c8f4a">WCSHDR_CD0i_0ja</a>   0x00000040</td></tr>
+<tr class="separator:a859baeb46a09ce21b6dbff40fe6c8f4a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa2e6d72be227da4c8c7d6d47a7274e59"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#aa2e6d72be227da4c8c7d6d47a7274e59">WCSHDR_PC0i_0ja</a>   0x00000080</td></tr>
+<tr class="separator:aa2e6d72be227da4c8c7d6d47a7274e59"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af84f778ea111ae655505a1899a06b063"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#af84f778ea111ae655505a1899a06b063">WCSHDR_PV0i_0ma</a>   0x00000100</td></tr>
+<tr class="separator:af84f778ea111ae655505a1899a06b063"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae695c1dc3fb7785cdaa24e2fcc906074"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#ae695c1dc3fb7785cdaa24e2fcc906074">WCSHDR_PS0i_0ma</a>   0x00000200</td></tr>
+<tr class="separator:ae695c1dc3fb7785cdaa24e2fcc906074"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1d506ef2ad493a963426e0732a6328ca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca">WCSHDR_RADECSYS</a>   0x00000400</td></tr>
 <tr class="memdesc:a1d506ef2ad493a963426e0732a6328ca"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code><b>RADECSYS</b></code>.  <a href="#a1d506ef2ad493a963426e0732a6 [...]
 <tr class="separator:a1d506ef2ad493a963426e0732a6328ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a1b66d50d7f1927222a170bc88f9db51e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a1b66d50d7f1927222a170bc88f9db51e">WCSHDR_VSOURCE</a>   0x00000080</td></tr>
+<tr class="memitem:a1b66d50d7f1927222a170bc88f9db51e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a1b66d50d7f1927222a170bc88f9db51e">WCSHDR_VSOURCE</a>   0x00000800</td></tr>
 <tr class="memdesc:a1b66d50d7f1927222a170bc88f9db51e"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code><b>VSOURCE</b>a</code>.  <a href="#a1b66d50d7f1927222a170bc88f9 [...]
 <tr class="separator:a1b66d50d7f1927222a170bc88f9db51e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adff9a101a373a634f3a1baab29e92534"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#adff9a101a373a634f3a1baab29e92534">WCSHDR_DOBSn</a>   0x00000100</td></tr>
+<tr class="memitem:adff9a101a373a634f3a1baab29e92534"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#adff9a101a373a634f3a1baab29e92534">WCSHDR_DOBSn</a>   0x00001000</td></tr>
 <tr class="memdesc:adff9a101a373a634f3a1baab29e92534"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code><b>DOBS</b>n</code>.  <a href="#adff9a101a373a634f3a1baab29e925 [...]
 <tr class="separator:adff9a101a373a634f3a1baab29e92534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae8a768f544fe3ae81436b73dca3099fb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#ae8a768f544fe3ae81436b73dca3099fb">WCSHDR_LONGKEY</a>   0x00000200</td></tr>
+<tr class="memitem:ae8a768f544fe3ae81436b73dca3099fb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#ae8a768f544fe3ae81436b73dca3099fb">WCSHDR_LONGKEY</a>   0x00002000</td></tr>
 <tr class="memdesc:ae8a768f544fe3ae81436b73dca3099fb"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept long forms of the alternate binary table and pixel list WCS keywords. [...]
 <tr class="separator:ae8a768f544fe3ae81436b73dca3099fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:adf57a609a5c3f7288452cce86210260e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e">WCSHDR_CNAMn</a>   0x00000400</td></tr>
+<tr class="memitem:adf57a609a5c3f7288452cce86210260e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e">WCSHDR_CNAMn</a>   0x00004000</td></tr>
 <tr class="memdesc:adf57a609a5c3f7288452cce86210260e"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - accept <code>i<b>CNAM</b>n</code>, <code><b>TCNAM</b>n</code>, <code>i<b>CRD [...]
 <tr class="separator:adf57a609a5c3f7288452cce86210260e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0e8eb873389e9c15bd6079a96c41ad60"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a0e8eb873389e9c15bd6079a96c41ad60">WCSHDR_AUXIMG</a>   0x00000800</td></tr>
+<tr class="memitem:a0e8eb873389e9c15bd6079a96c41ad60"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a0e8eb873389e9c15bd6079a96c41ad60">WCSHDR_AUXIMG</a>   0x00008000</td></tr>
 <tr class="memdesc:a0e8eb873389e9c15bd6079a96c41ad60"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - allow the image-header form of an auxiliary WCS keyword to provide a default [...]
 <tr class="separator:a0e8eb873389e9c15bd6079a96c41ad60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a33d67fd81c52448aead9e09f32ba9cca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a33d67fd81c52448aead9e09f32ba9cca">WCSHDR_ALLIMG</a>   0x00001000</td></tr>
+<tr class="memitem:a33d67fd81c52448aead9e09f32ba9cca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a33d67fd81c52448aead9e09f32ba9cca">WCSHDR_ALLIMG</a>   0x00010000</td></tr>
 <tr class="memdesc:a33d67fd81c52448aead9e09f32ba9cca"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a> and <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - allow the image-header form of <em>all</em> image header WCS keywords to pro [...]
 <tr class="separator:a33d67fd81c52448aead9e09f32ba9cca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab65e929c7d525d735ae240046d4f0d9c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#ab65e929c7d525d735ae240046d4f0d9c">WCSHDR_IMGHEAD</a>   0x00010000</td></tr>
+<tr class="memitem:ab65e929c7d525d735ae240046d4f0d9c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#ab65e929c7d525d735ae240046d4f0d9c">WCSHDR_IMGHEAD</a>   0x00100000</td></tr>
 <tr class="memdesc:ab65e929c7d525d735ae240046d4f0d9c"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - restrict to image header keywords only.  <a href="#ab65e929c7d525d735ae240046d4f0d9c">More...</a><br /></td></tr>
 <tr class="separator:ab65e929c7d525d735ae240046d4f0d9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa7c5021293b0db20ece0e82c3702a159"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#aa7c5021293b0db20ece0e82c3702a159">WCSHDR_BIMGARR</a>   0x00020000</td></tr>
+<tr class="memitem:aa7c5021293b0db20ece0e82c3702a159"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#aa7c5021293b0db20ece0e82c3702a159">WCSHDR_BIMGARR</a>   0x00200000</td></tr>
 <tr class="memdesc:aa7c5021293b0db20ece0e82c3702a159"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - restrict to binary table image array keywords only.  <a href="#aa7c5021293b0db20ece0e82c3702a159">More...</a><br /></td></tr>
 <tr class="separator:aa7c5021293b0db20ece0e82c3702a159"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a7bf13ab87b23ecdbbb4b4847d4944070"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070">WCSHDR_PIXLIST</a>   0x00040000</td></tr>
+<tr class="memitem:a7bf13ab87b23ecdbbb4b4847d4944070"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070">WCSHDR_PIXLIST</a>   0x00400000</td></tr>
 <tr class="memdesc:a7bf13ab87b23ecdbbb4b4847d4944070"><td class="mdescLeft"> </td><td class="mdescRight">Bit mask for <a class="el" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633" title="FITS WCS parser routine for binary table and image headers. ">wcsbth()</a> - restrict to pixel list keywords only.  <a href="#a7bf13ab87b23ecdbbb4b4847d4944070">More...</a><br /></td></tr>
 <tr class="separator:a7bf13ab87b23ecdbbb4b4847d4944070"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:a54634ed49425e8842874e9e2b77899df"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wcshdr_8h.html#a54634ed49425e8842874e9e2b77899df">WCSHDO_none</a>   0x00</td></tr>
@@ -271,6 +281,18 @@ Variables</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a7b0e2f1a88e02909ea6366d3a18d6a84"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WCSHDR_strict   0x20000000</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
 <a class="anchor" id="a017f1e817bdb2114ba765e7a9ef73bac"></a>
 <div class="memitem">
 <div class="memproto">
@@ -355,12 +377,60 @@ Variables</h2></td></tr>
 
 </div>
 </div>
+<a class="anchor" id="a859baeb46a09ce21b6dbff40fe6c8f4a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WCSHDR_CD0i_0ja   0x00000040</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa2e6d72be227da4c8c7d6d47a7274e59"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WCSHDR_PC0i_0ja   0x00000080</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af84f778ea111ae655505a1899a06b063"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WCSHDR_PV0i_0ma   0x00000100</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae695c1dc3fb7785cdaa24e2fcc906074"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define WCSHDR_PS0i_0ma   0x00000200</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
 <a class="anchor" id="a1d506ef2ad493a963426e0732a6328ca"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_RADECSYS   0x00000040</td>
+          <td class="memname">#define WCSHDR_RADECSYS   0x00000400</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -374,7 +444,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_VSOURCE   0x00000080</td>
+          <td class="memname">#define WCSHDR_VSOURCE   0x00000800</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -388,7 +458,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_DOBSn   0x00000100</td>
+          <td class="memname">#define WCSHDR_DOBSn   0x00001000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -402,7 +472,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_LONGKEY   0x00000200</td>
+          <td class="memname">#define WCSHDR_LONGKEY   0x00002000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -416,7 +486,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_CNAMn   0x00000400</td>
+          <td class="memname">#define WCSHDR_CNAMn   0x00004000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -430,7 +500,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_AUXIMG   0x00000800</td>
+          <td class="memname">#define WCSHDR_AUXIMG   0x00008000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -444,7 +514,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_ALLIMG   0x00001000</td>
+          <td class="memname">#define WCSHDR_ALLIMG   0x00010000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -458,7 +528,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_IMGHEAD   0x00010000</td>
+          <td class="memname">#define WCSHDR_IMGHEAD   0x00100000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -471,7 +541,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_BIMGARR   0x00020000</td>
+          <td class="memname">#define WCSHDR_BIMGARR   0x00200000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -484,7 +554,7 @@ Variables</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define WCSHDR_PIXLIST   0x00040000</td>
+          <td class="memname">#define WCSHDR_PIXLIST   0x00400000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -719,6 +789,7 @@ Fine-grained control of the degree of permissiveness is also possible as explain
 <li>1: Produce a one-line message stating the number of WCS keyrecords rejected (nreject).</li>
 <li>2: Report each rejected keyrecord and the reason why it was rejected.</li>
 <li>3: As above, but also report all non-WCS keyrecords that were discarded, and the number of coordinate representations (nwcs) found.</li>
+<li>4: As above, but also report the accepted WCS keyrecords, with a summary of the number accepted as well as rejected.</li>
 </ul>
 The report is written to stderr by default, or the stream set by <a class="el" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6" title="Set output disposition for wcsprintf() and wcsfprintf(). ">wcsprintf_set()</a>. <br />
  For ctrl < 0, WCS keyrecords processed by <b>wcspih</b>() are removed from header[]:<ul>
@@ -835,6 +906,7 @@ Fine-grained control of the degree of permissiveness is also possible, as explai
 <li>1: Produce a one-line message stating the number of WCS keyrecords rejected (nreject).</li>
 <li>2: Report each rejected keyrecord and the reason why it was rejected.</li>
 <li>3: As above, but also report all non-WCS keyrecords that were discarded, and the number of coordinate representations (nwcs) found.</li>
+<li>4: As above, but also report the accepted WCS keyrecords, with a summary of the number accepted as well as rejected.</li>
 </ul>
 The report is written to stderr by default, or the stream set by <a class="el" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6" title="Set output disposition for wcsprintf() and wcsfprintf(). ">wcsprintf_set()</a>. <br />
  For ctrl < 0, WCS keyrecords processed by <b>wcsbth</b>() are removed from header[]:<ul>
@@ -900,7 +972,7 @@ The highest axis number in any parameterized WCS keyword. The keyvalue, as well
 <p class="endli"></p>
 </li>
 <li>
-<p class="startli">WCS Paper I mistakenly defined the pixel list form of <code><b>WCSNAME</b>a</code> as <code><b>TWCS</b>na</code> instead of <code><b>WCSN</b>na</code>; the <code>'<b>T</b>'</code> is meant to substitute for the axis number in the binary table form of the keyword - note that keywords defined in WCS Papers II and III that are not parameterised by axis number have identical forms for binary tables and pixel lists. Consequently <b>wcsbth</b>() always treats <code><b>WCSN</ [...]
+<p class="startli">WCS Paper I mistakenly defined the pixel list form of <code><b>WCSNAME</b>a</code> as <code><b>TWCS</b>na</code> instead of <code><b>WCSN</b>na</code>; the <code>'<b>T</b>'</code> is meant to substitute for the axis number in the binary table form of the keyword - note that keywords defined in WCS Papers II and III that are not parameterized by axis number have identical forms for binary tables and pixel lists. Consequently <b>wcsbth</b>() always treats <code><b>WCSN</ [...]
 <p class="endli"></p>
 </li>
 <li>
@@ -915,9 +987,25 @@ The highest axis number in any parameterized WCS keyword. The keyvalue, as well
 <p class="endli"></p>
 </li>
 <li>
-<p class="startli"><a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6" title="Bit mask for wcspih() and wcsbth() - reject non-standard keywords. ">WCSHDR_reject</a>: Reject non-standard keywords (that are not otherwise accepted). A message will optionally be printed on stderr by default, or the stream set by <a class="el" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6" title="Set output disposition for wcsprintf() and wcsfprintf(). ">wcsprintf_set()</a>, as d [...]
-<p>This flag may be used to signal the presence of non-standard keywords, otherwise they are simply passed over as though they did not exist in the header.</p>
-<p>Useful for testing conformance of a FITS header to the WCS standard.</p>
+<p class="startli"><a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6" title="Bit mask for wcspih() and wcsbth() - reject non-standard keywords. ">WCSHDR_reject</a>: Reject non-standard keyrecords (that are not otherwise explicitly accepted by one of the flags below). A message will optionally be printed on stderr by default, or the stream set by <a class="el" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6" title="Set output disposition for wcsprintf() and wc [...]
+<p>This flag may be used to signal the presence of non-standard keywords, otherwise they are simply passed over as though they did not exist in the header. It is mainly intended for testing conformance of a FITS header to the WCS standard.</p>
+<p>Keyrecords may be non-standard in several ways:</p>
+<ul>
+<li>
+<p class="startli">The keyword may be syntactically valid but with keyvalue of incorrect type or invalid syntax, or the keycomment may be malformed.</p>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli">The keyword may strongly resemble a WCS keyword but not, in fact, be one because it does not conform to the standard. For example, "CRPIX01" looks like a <code><b>CRPIX</b>ja</code> keyword, but in fact the leading zero on the axis number violates the basic FITS standard. Likewise, "LONPOLE2" is not a valid <code><b>LONPOLE</b>a</code> keyword in the WCS standard, and indeed there is nothing the parser can sensibly do with it.</p>
+<p class="endli"></p>
+</li>
+<li>
+Use of the keyword may be deprecated by the standard. Such will be rejected if not explicitly accepted via one of the flags below. </li>
+</ul>
+<p class="endli"></p>
+</li>
+<li>
+<p class="startli"><a class="el" href="wcshdr_8h.html#a7b0e2f1a88e02909ea6366d3a18d6a84">WCSHDR_strict</a>: As for <a class="el" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6" title="Bit mask for wcspih() and wcsbth() - reject non-standard keywords. ">WCSHDR_reject</a>, but also reject AIPS-convention keywords and all other deprecated usage that is not explicitly accepted.</p>
 <p class="endli"></p>
 </li>
 <li>
@@ -938,6 +1026,16 @@ The highest axis number in any parameterized WCS keyword. The keyvalue, as well
 <p class="endli"></p>
 </li>
 <li>
+<a class="el" href="wcshdr_8h.html#a859baeb46a09ce21b6dbff40fe6c8f4a">WCSHDR_CD0i_0ja</a>: Accept CD0i_0ja (<a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a>). </li>
+<li>
+<a class="el" href="wcshdr_8h.html#aa2e6d72be227da4c8c7d6d47a7274e59">WCSHDR_PC0i_0ja</a>: Accept PC0i_0ja (<a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a>). </li>
+<li>
+<a class="el" href="wcshdr_8h.html#af84f778ea111ae655505a1899a06b063">WCSHDR_PV0i_0ma</a>: Accept PV0i_0ja (<a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a>). </li>
+<li>
+<p class="startli"><a class="el" href="wcshdr_8h.html#ae695c1dc3fb7785cdaa24e2fcc906074">WCSHDR_PS0i_0ma</a>: Accept PS0i_0ja (<a class="el" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60" title="FITS WCS parser routine for image headers. ">wcspih()</a>). Allow the numerical index to have a leading zero in doubly- parameterized keywords, for example, PC01_01. WCS Paper I (Sects 2.1.2 & 2.1.4) explicitly disallows leading zeroes. The FITS 3.0 standard document (Sect. 4.1.2.1)  [...]
+<p class="endli"></p>
+</li>
+<li>
 <p class="startli"><a class="el" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca" title="Bit mask for wcspih() and wcsbth() - accept RADECSYS. ">WCSHDR_RADECSYS</a>: Accept <code><b>RADECSYS</b></code>. This appeared in early drafts of WCS Paper I+II and was subsequently replaced by <code><b>RADESYS</b>a</code>.</p>
 <p><b>wcsbth</b>() accepts <code><b>RADECSYS</b></code> only if <a class="el" href="wcshdr_8h.html#a0e8eb873389e9c15bd6079a96c41ad60" title="Bit mask for wcspih() and wcsbth() - allow the image-header form of an auxiliary WCS keyword to provi...">WCSHDR_AUXIMG</a> is also enabled.</p>
 <p class="endli"></p>
@@ -1346,7 +1444,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in,out]</td><td class="paramname">nwcs</td><td>Number of coordinate representations found; set to 0 on return. </td></tr>
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">wcs</td><td>Pointer to the array of <a class="el" href="structwcsprm.html" title="Coordinate transformation parameters. ">wcsprm</a> structs; set to 0 on return.</td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">wcs</td><td>Pointer to the array of <a class="el" href="structwcsprm.html" title="Coordinate transformation parameters. ">wcsprm</a> structs; set to 0x0 on return.</td></tr>
   </table>
   </dd>
 </dl>
@@ -1541,7 +1639,7 @@ For returns > 1, a detailed error message is set in <a class="el" href="struc
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcshdr_8h_source.html b/html/wcshdr_8h_source.html
index 364e28d..10db2a6 100644
--- a/html/wcshdr_8h_source.html
+++ b/html/wcshdr_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcshdr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcshdr.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcshdr.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -210,997 +210,1042 @@
 <div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">*                           3: As above, but also report all non-WCS</span></div>
 <div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">*                              keyrecords that were discarded, and the number</span></div>
 <div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">*                              of coordinate representations (nwcs) found.</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">*                       The report is written to stderr by default, or the</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*                       stream set by wcsprintf_set().</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*                       For ctrl < 0, WCS keyrecords processed by wcspih()</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*                       are removed from header[]:</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*                          -1: Remove only valid WCS keyrecords whose values</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*                              were successfully extracted, nothing is</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*                              reported.</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*                          -2: Also remove WCS keyrecords that were rejected,</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*                              reporting each one and the reason that it was</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*                              rejected.</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*                          -3: As above, and also report the number of</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*                              coordinate representations (nwcs) found.</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">*                         -11: Same as -1 but preserving the basic keywords</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">*                              '{DATE,MJD}-{OBS,AVG}' and 'OBSGEO-{X,Y,Z}'.</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">*                       If any keyrecords are removed from header[] it will</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">*                       be null-terminated (NUL not being a legal FITS header</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">*                       character), otherwise it will contain its original</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*                       complement of nkeyrec keyrecords and possibly not be</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*                       null-terminated.</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*   nreject   int*      Number of WCS keywords rejected for syntax errors,</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*                       illegal values, etc.  Keywords not recognized as WCS</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">*                       keywords are simply ignored.  Refer also to wcsbth()</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*                       note 5.</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found.</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">*                       Pointer to an array of wcsprm structs containing up to</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">*                       27 coordinate representations.</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">*                       Memory for the array is allocated by wcspih() which</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">*                       also invokes wcsini() for each struct to allocate</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">*                       memory for internal arrays and initialize their</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*                       members to default values.  Refer also to wcsbth()</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*                       note 8.  Note that wcsset() is not invoked on these</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">*                       structs.</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*                       This allocated memory must be freed by the user, first</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*                       by invoking wcsfree() for each struct, and then by</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">*                       freeing the array itself.  A routine, wcsvfree(), is</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*                       provided to do this (see below).</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*                         4: Fatal error returned by Flex parser.</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*   Refer to wcsbth() notes 1, 2, 3, 5, 7, and 8.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">*                           4: As above, but also report the accepted WCS</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">*                              keyrecords, with a summary of the number</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">*                              accepted as well as rejected.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">*                       The report is written to stderr by default, or the</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">*                       stream set by wcsprintf_set().</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">*                       For ctrl < 0, WCS keyrecords processed by wcspih()</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">*                       are removed from header[]:</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">*                          -1: Remove only valid WCS keyrecords whose values</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">*                              were successfully extracted, nothing is</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">*                              reported.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">*                          -2: Also remove WCS keyrecords that were rejected,</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">*                              reporting each one and the reason that it was</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">*                              rejected.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">*                          -3: As above, and also report the number of</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">*                              coordinate representations (nwcs) found.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">*                         -11: Same as -1 but preserving the basic keywords</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">*                              '{DATE,MJD}-{OBS,AVG}' and 'OBSGEO-{X,Y,Z}'.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">*                       If any keyrecords are removed from header[] it will</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">*                       be null-terminated (NUL not being a legal FITS header</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">*                       character), otherwise it will contain its original</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">*                       complement of nkeyrec keyrecords and possibly not be</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">*                       null-terminated.</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">*   nreject   int*      Number of WCS keywords rejected for syntax errors,</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">*                       illegal values, etc.  Keywords not recognized as WCS</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">*                       keywords are simply ignored.  Refer also to wcsbth()</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">*                       note 5.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">*                       Pointer to an array of wcsprm structs containing up to</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">*                       27 coordinate representations.</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">*                       Memory for the array is allocated by wcspih() which</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">*                       also invokes wcsini() for each struct to allocate</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">*                       memory for internal arrays and initialize their</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">*                       members to default values.  Refer also to wcsbth()</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">*                       note 8.  Note that wcsset() is not invoked on these</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">*                       structs.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">*                       This allocated memory must be freed by the user, first</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">*                       by invoking wcsfree() for each struct, and then by</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">*                       freeing the array itself.  A routine, wcsvfree(), is</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">*                       provided to do this (see below).</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">*                         4: Fatal error returned by Flex parser.</span></div>
 <div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">* wcsbth() - FITS WCS parser routine for binary table and image headers</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">* ---------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">* wcsbth() is a high-level FITS WCS routine that parses a binary table header.</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">* It handles image array and pixel list WCS keywords which may be present</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">* together in one header.</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">* As an extension of the FITS WCS standard, wcsbth() also recognizes image</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">* header keywords in a binary table header.  These may be used to provide</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">* default values via an inheritance mechanism discussed in note 5 (c.f.</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">* WCSHDR_AUXIMG and WCSHDR_ALLIMG), or may instead result in wcsprm structs</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">* that are not associated with any particular column.  Thus wcsbth() can</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">* handle primary image and image extension headers in addition to binary table</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* headers (it ignores NAXIS and does not rely on the presence of the TFIELDS</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">* keyword).</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">* All WCS keywords defined in Papers I, II, and III are recognized, and also</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">* those used by the AIPS convention and certain other keywords that existed in</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">* early drafts of the WCS papers as explained in note 5 below.</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">* wcsbth() sets the colnum or colax[] members of the wcsprm structs that it</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">* returns with the column number of an image array or the column numbers</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">* associated with each pixel coordinate element in a pixel list.  wcsprm</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">* structs that are not associated with any particular column, as may be</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">* derived from image header keywords, have colnum == 0.</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">* Note 6 below discusses the number of wcsprm structs returned by wcsbth(),</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">* and the circumstances in which image header keywords cause a struct to be</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">* created.  See also note 9 concerning the number of separate images that may</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">* be stored in a pixel list.</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">* The API to wcsbth() is similar to that of wcspih() except for the addition</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">* of extra arguments that may be used to restrict its operation.  Like</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">* wcspih(), wcsbth() invokes wcstab() on each of the wcsprm structs that it</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">* returns.</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">*   header    char[]    Character array containing the (entire) FITS binary</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*                       table, primary image, or image extension header from</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">*                       which to identify and construct the coordinate</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*                       representations, for example, as might be obtained</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*                       conveniently via the CFITSIO routine fits_hdr2str().</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*                       Each header "keyrecord" (formerly "card image")</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       consists of exactly 80 7-bit ASCII printing</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*                       characters in the range 0x20 to 0x7e (which excludes</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*                       NUL, BS, TAB, LF, FF and CR) especially noting that</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*                       the keyrecords are NOT null-terminated.</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*                       For negative values of ctrl (see below), header[] is</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*                       modified so that WCS keyrecords processed by wcsbth()</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*                       are removed from it.</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*   nkeyrec   int       Number of keyrecords in header[].</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">*   Refer to wcsbth() notes 1, 2, 3, 5, 7, and 8.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">* wcsbth() - FITS WCS parser routine for binary table and image headers</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">* ---------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">* wcsbth() is a high-level FITS WCS routine that parses a binary table header.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">* It handles image array and pixel list WCS keywords which may be present</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">* together in one header.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">* As an extension of the FITS WCS standard, wcsbth() also recognizes image</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">* header keywords in a binary table header.  These may be used to provide</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">* default values via an inheritance mechanism discussed in note 5 (c.f.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">* WCSHDR_AUXIMG and WCSHDR_ALLIMG), or may instead result in wcsprm structs</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">* that are not associated with any particular column.  Thus wcsbth() can</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">* handle primary image and image extension headers in addition to binary table</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">* headers (it ignores NAXIS and does not rely on the presence of the TFIELDS</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">* keyword).</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">* All WCS keywords defined in Papers I, II, and III are recognized, and also</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">* those used by the AIPS convention and certain other keywords that existed in</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">* early drafts of the WCS papers as explained in note 5 below.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">* wcsbth() sets the colnum or colax[] members of the wcsprm structs that it</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">* returns with the column number of an image array or the column numbers</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">* associated with each pixel coordinate element in a pixel list.  wcsprm</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">* structs that are not associated with any particular column, as may be</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">* derived from image header keywords, have colnum == 0.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">* Note 6 below discusses the number of wcsprm structs returned by wcsbth(),</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">* and the circumstances in which image header keywords cause a struct to be</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">* created.  See also note 9 concerning the number of separate images that may</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">* be stored in a pixel list.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">* The API to wcsbth() is similar to that of wcspih() except for the addition</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">* of extra arguments that may be used to restrict its operation.  Like</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">* wcspih(), wcsbth() invokes wcstab() on each of the wcsprm structs that it</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">* returns.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">*   header    char[]    Character array containing the (entire) FITS binary</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">*                       table, primary image, or image extension header from</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">*                       which to identify and construct the coordinate</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">*                       representations, for example, as might be obtained</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">*                       conveniently via the CFITSIO routine fits_hdr2str().</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">*                       Each header "keyrecord" (formerly "card image")</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">*                       consists of exactly 80 7-bit ASCII printing</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">*                       characters in the range 0x20 to 0x7e (which excludes</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">*                       NUL, BS, TAB, LF, FF and CR) especially noting that</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">*                       the keyrecords are NOT null-terminated.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">*                       For negative values of ctrl (see below), header[] is</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">*                       modified so that WCS keyrecords processed by wcsbth()</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">*                       are removed from it.</span></div>
 <div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">*   relax     int       Degree of permissiveness:</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*                         0: Recognize only FITS keywords defined by the</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*                            published WCS standard.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*                         WCSHDR_all: Admit all recognized informal</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*                            extensions of the WCS standard.</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*                       Fine-grained control of the degree of permissiveness</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*                       is also possible, as explained in note 5 below.</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*   ctrl      int       Error reporting and other control options for invalid</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*                       WCS and other header keyrecords:</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*                           0: Do not report any rejected header keyrecords.</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*                           1: Produce a one-line message stating the number</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*                              of WCS keyrecords rejected (nreject).</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*                           2: Report each rejected keyrecord and the reason</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*                              why it was rejected.</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*                           3: As above, but also report all non-WCS</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*                              keyrecords that were discarded, and the number</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*                              of coordinate representations (nwcs) found.</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*                       The report is written to stderr by default, or the</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*                       stream set by wcsprintf_set().</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*                       For ctrl < 0, WCS keyrecords processed by wcsbth()</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*                       are removed from header[]:</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*                          -1: Remove only valid WCS keyrecords whose values</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*                              were successfully extracted, nothing is</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*                              reported.</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*                          -2: Also remove WCS keyrecords that were rejected,</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*                              reporting each one and the reason that it was</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*                              rejected.</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*                          -3: As above, and also report the number of</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*                              coordinate representations (nwcs) found.</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*                         -11: Same as -1 but preserving the basic keywords</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*                              '{DATE,MJD}-{OBS,AVG}' and 'OBSGEO-{X,Y,Z}'.</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*                       If any keyrecords are removed from header[] it will</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*                       be null-terminated (NUL not being a legal FITS header</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*                       character), otherwise it will contain its original</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*                       complement of nkeyrec keyrecords and possibly not be</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*                       null-terminated.</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*   keysel    int       Vector of flag bits that may be used to restrict the</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*                       keyword types considered:</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*                         WCSHDR_IMGHEAD: Image header keywords.</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*                         WCSHDR_BIMGARR: Binary table image array.</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*                         WCSHDR_PIXLIST: Pixel list keywords.</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*                       If zero, there is no restriction.</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*                       Keywords such as EQUIna or RFRQna that are common to</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*                       binary table image arrays and pixel lists (including</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*                       WCSNna and TWCSna, as explained in note 4 below) are</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*                       selected by both WCSHDR_BIMGARR and WCSHDR_PIXLIST.</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*                       Thus if inheritance via WCSHDR_ALLIMG is enabled as</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*                       discussed in note 5 and one of these shared keywords</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*                       is present, then WCSHDR_IMGHEAD and WCSHDR_PIXLIST</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*                       alone may be sufficient to cause the construction of</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*                       coordinate descriptions for binary table image arrays.</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*   colsel    int*      Pointer to an array of table column numbers used to</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*                       restrict the keywords considered by wcsbth().</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*                       A null pointer may be specified to indicate that there</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*                       is no restriction.  Otherwise, the magnitude of</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*                       cols[0] specifies the length of the array:</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*                         cols[0] > 0: the columns are included,</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*                         cols[0] < 0: the columns are excluded.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">*   nkeyrec   int       Number of keyrecords in header[].</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">*   relax     int       Degree of permissiveness:</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">*                         0: Recognize only FITS keywords defined by the</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">*                            published WCS standard.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">*                         WCSHDR_all: Admit all recognized informal</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">*                            extensions of the WCS standard.</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">*                       Fine-grained control of the degree of permissiveness</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">*                       is also possible, as explained in note 5 below.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">*   ctrl      int       Error reporting and other control options for invalid</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">*                       WCS and other header keyrecords:</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">*                           0: Do not report any rejected header keyrecords.</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">*                           1: Produce a one-line message stating the number</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">*                              of WCS keyrecords rejected (nreject).</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">*                           2: Report each rejected keyrecord and the reason</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">*                              why it was rejected.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">*                           3: As above, but also report all non-WCS</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">*                              keyrecords that were discarded, and the number</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">*                              of coordinate representations (nwcs) found.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">*                           4: As above, but also report the accepted WCS</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">*                              keyrecords, with a summary of the number</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">*                              accepted as well as rejected.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">*                       The report is written to stderr by default, or the</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">*                       stream set by wcsprintf_set().</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">*                       For ctrl < 0, WCS keyrecords processed by wcsbth()</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">*                       are removed from header[]:</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">*                          -1: Remove only valid WCS keyrecords whose values</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">*                              were successfully extracted, nothing is</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">*                              reported.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">*                          -2: Also remove WCS keyrecords that were rejected,</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">*                              reporting each one and the reason that it was</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">*                              rejected.</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">*                          -3: As above, and also report the number of</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">*                              coordinate representations (nwcs) found.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">*                         -11: Same as -1 but preserving the basic keywords</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">*                              '{DATE,MJD}-{OBS,AVG}' and 'OBSGEO-{X,Y,Z}'.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">*                       If any keyrecords are removed from header[] it will</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">*                       be null-terminated (NUL not being a legal FITS header</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">*                       character), otherwise it will contain its original</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">*                       complement of nkeyrec keyrecords and possibly not be</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">*                       null-terminated.</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">*   keysel    int       Vector of flag bits that may be used to restrict the</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">*                       keyword types considered:</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">*                         WCSHDR_IMGHEAD: Image header keywords.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">*                         WCSHDR_BIMGARR: Binary table image array.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">*                         WCSHDR_PIXLIST: Pixel list keywords.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">*                       If zero, there is no restriction.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">*                       Keywords such as EQUIna or RFRQna that are common to</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">*                       binary table image arrays and pixel lists (including</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">*                       WCSNna and TWCSna, as explained in note 4 below) are</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">*                       selected by both WCSHDR_BIMGARR and WCSHDR_PIXLIST.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">*                       Thus if inheritance via WCSHDR_ALLIMG is enabled as</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">*                       discussed in note 5 and one of these shared keywords</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">*                       is present, then WCSHDR_IMGHEAD and WCSHDR_PIXLIST</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">*                       alone may be sufficient to cause the construction of</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">*                       coordinate descriptions for binary table image arrays.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">*   colsel    int*      Pointer to an array of table column numbers used to</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">*                       restrict the keywords considered by wcsbth().</span></div>
 <div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*                       For the pixel list keywords TPn_ka and TCn_ka (and</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*                       TPCn_ka and TCDn_ka if WCSHDR_LONGKEY is enabled), it</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*                       is an error for one column to be selected but not the</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*                       other.  This is unlike the situation with invalid</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*                       keyrecords, which are simply rejected, because the</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*                       error is not intrinsic to the header itself but</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*                       arises in the way that it is processed.</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*   nreject   int*      Number of WCS keywords rejected for syntax errors,</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*                       illegal values, etc.  Keywords not recognized as WCS</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*                       keywords are simply ignored, refer also to note 5</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*                       below.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">*                       A null pointer may be specified to indicate that there</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">*                       is no restriction.  Otherwise, the magnitude of</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">*                       cols[0] specifies the length of the array:</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">*                         cols[0] > 0: the columns are included,</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">*                         cols[0] < 0: the columns are excluded.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">*                       For the pixel list keywords TPn_ka and TCn_ka (and</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">*                       TPCn_ka and TCDn_ka if WCSHDR_LONGKEY is enabled), it</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">*                       is an error for one column to be selected but not the</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">*                       other.  This is unlike the situation with invalid</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">*                       keyrecords, which are simply rejected, because the</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">*                       error is not intrinsic to the header itself but</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">*                       arises in the way that it is processed.</span></div>
 <div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found.</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*                       Pointer to an array of wcsprm structs containing up</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*                       to 27027 coordinate representations, refer to note 6</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*                       below.</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*                       Memory for the array is allocated by wcsbth() which</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">*                       also invokes wcsini() for each struct to allocate</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">*                       memory for internal arrays and initialize their</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">*                       members to default values.  Refer also to note 8</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">*                       below.  Note that wcsset() is not invoked on these</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">*                       structs.</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">*                       This allocated memory must be freed by the user, first</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">*                       by invoking wcsfree() for each struct, and then by</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">*                       freeing the array itself.  A routine, wcsvfree(), is</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">*                       provided to do this (see below).</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*                         3: Invalid column selection.</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">*                         4: Fatal error returned by Flex parser.</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*   1: wcspih() determines the number of coordinate axes independently for</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">*      each alternate coordinate representation (denoted by the "a" value in</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*      keywords like CTYPEia) from the higher of</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*        a: NAXIS,</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">*        b: WCSAXESa,</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">*        c: The highest axis number in any parameterized WCS keyword.  The</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">*           keyvalue, as well as the keyword, must be syntactically valid</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">*           otherwise it will not be considered.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">*   nreject   int*      Number of WCS keywords rejected for syntax errors,</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">*                       illegal values, etc.  Keywords not recognized as WCS</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">*                       keywords are simply ignored, refer also to note 5</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">*                       below.</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found.</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">*                       Pointer to an array of wcsprm structs containing up</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">*                       to 27027 coordinate representations, refer to note 6</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">*                       below.</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">*                       Memory for the array is allocated by wcsbth() which</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">*                       also invokes wcsini() for each struct to allocate</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">*                       memory for internal arrays and initialize their</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">*                       members to default values.  Refer also to note 8</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">*                       below.  Note that wcsset() is not invoked on these</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">*                       structs.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">*                       This allocated memory must be freed by the user, first</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">*                       by invoking wcsfree() for each struct, and then by</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">*                       freeing the array itself.  A routine, wcsvfree(), is</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">*                       provided to do this (see below).</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">*                         3: Invalid column selection.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">*                         4: Fatal error returned by Flex parser.</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">*   1: wcspih() determines the number of coordinate axes independently for</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">*      each alternate coordinate representation (denoted by the "a" value in</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">*      keywords like CTYPEia) from the higher of</span></div>
 <div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">*      If none of these keyword types is present, i.e. if the header only</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*      contains auxiliary WCS keywords for a particular coordinate</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">*      representation, then no coordinate description is constructed for it.</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">*      wcsbth() is similar except that it ignores the NAXIS keyword if given</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">*      an image header to process.</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">*      The number of axes, which is returned as a member of the wcsprm</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">*      struct, may differ for different coordinate representations of the</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">*      same image.</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">*   2: wcspih() and wcsbth() enforce correct FITS "keyword = value" syntax</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">*      with regard to "= " occurring in columns 9 and 10.</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">*      However, they do recognize free-format character (NOST 100-2.0,</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*      Sect. 5.2.1), integer (Sect. 5.2.3), and floating-point values</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">*      (Sect. 5.2.4) for all keywords.</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*   3: Where CROTAn, CDi_ja, and PCi_ja occur together in one header wcspih()</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*      and wcsbth() treat them as described in the prologue to wcs.h.</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*   4: WCS Paper I mistakenly defined the pixel list form of WCSNAMEa as</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*      TWCSna instead of WCSNna; the 'T' is meant to substitute for the axis</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*      number in the binary table form of the keyword - note that keywords</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">*      defined in WCS Papers II and III that are not parameterised by axis</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*      number have identical forms for binary tables and pixel lists.</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">*      Consequently wcsbth() always treats WCSNna and TWCSna as equivalent.</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">*   5: wcspih() and wcsbth() interpret the "relax" argument as a vector of</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">*      flag bits to provide fine-grained control over what non-standard WCS</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">*      keywords to accept.  The flag bits are subject to change in future and</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">*      should be set by using the preprocessor macros (see below) for the</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">*      purpose.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">*        a: NAXIS,</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">*        b: WCSAXESa,</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">*        c: The highest axis number in any parameterized WCS keyword.  The</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">*           keyvalue, as well as the keyword, must be syntactically valid</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">*           otherwise it will not be considered.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">*      If none of these keyword types is present, i.e. if the header only</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">*      contains auxiliary WCS keywords for a particular coordinate</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">*      representation, then no coordinate description is constructed for it.</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">*      wcsbth() is similar except that it ignores the NAXIS keyword if given</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">*      an image header to process.</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">*      The number of axes, which is returned as a member of the wcsprm</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">*      struct, may differ for different coordinate representations of the</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">*      same image.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">*   2: wcspih() and wcsbth() enforce correct FITS "keyword = value" syntax</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">*      with regard to "= " occurring in columns 9 and 10.</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">*      However, they do recognize free-format character (NOST 100-2.0,</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">*      Sect. 5.2.1), integer (Sect. 5.2.3), and floating-point values</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">*      (Sect. 5.2.4) for all keywords.</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">*   3: Where CROTAn, CDi_ja, and PCi_ja occur together in one header wcspih()</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">*      and wcsbth() treat them as described in the prologue to wcs.h.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment">*   4: WCS Paper I mistakenly defined the pixel list form of WCSNAMEa as</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment">*      TWCSna instead of WCSNna; the 'T' is meant to substitute for the axis</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">*      number in the binary table form of the keyword - note that keywords</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">*      defined in WCS Papers II and III that are not parameterized by axis</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">*      number have identical forms for binary tables and pixel lists.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment">*      Consequently wcsbth() always treats WCSNna and TWCSna as equivalent.</span></div>
 <div class="line"><a name="l00421"></a><span class="lineno">  421</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">*      - WCSHDR_none: Don't accept any extensions (not even those in the</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">*              errata).  Treat non-conformant keywords in the same way as</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">*              non-WCS keywords in the header, i.e. simply ignore them.</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">*      - WCSHDR_all: Accept all extensions recognized by the parser.</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">*   5: wcspih() and wcsbth() interpret the "relax" argument as a vector of</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> <span class="comment">*      flag bits to provide fine-grained control over what non-standard WCS</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="comment">*      keywords to accept.  The flag bits are subject to change in future and</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> <span class="comment">*      should be set by using the preprocessor macros (see below) for the</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">*      purpose.</span></div>
 <div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">*      - WCSHDR_reject: Reject non-standard keywords (that are not otherwise</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*              accepted).  A message will optionally be printed on stderr by</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">*              default, or the stream set by wcsprintf_set(), as determined by</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*              the ctrl argument, and nreject will be incremented.</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*              This flag may be used to signal the presence of non-standard</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*              keywords, otherwise they are simply passed over as though they</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*              did not exist in the header.</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*              Useful for testing conformance of a FITS header to the WCS</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*              standard.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> <span class="comment">*      - WCSHDR_none: Don't accept any extensions (not even those in the</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="comment">*              errata).  Treat non-conformant keywords in the same way as</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment">*              non-WCS keywords in the header, i.e. simply ignore them.</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">*      - WCSHDR_all: Accept all extensions recognized by the parser.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">*      - WCSHDR_reject: Reject non-standard keyrecords (that are not otherwise</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">*              explicitly accepted by one of the flags below).  A message will</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">*              optionally be printed on stderr by default, or the stream set</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment">*              by wcsprintf_set(), as determined by the ctrl argument, and</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">*              nreject will be incremented.</span></div>
 <div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*      - WCSHDR_CROTAia: Accept CROTAia (wcspih()),</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*                               iCROTna (wcsbth()),</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">*                               TCROTna (wcsbth()).</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">*      - WCSHDR_EPOCHa:  Accept EPOCHa.</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*      - WCSHDR_VELREFa: Accept VELREFa.</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">*              wcspih() always recognizes the AIPS-convention keywords,</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*              CROTAn, EPOCH, and VELREF for the primary representation</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*              (a = ' ') but alternates are non-standard.</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">*              wcsbth() accepts EPOCHa and VELREFa only if WCSHDR_AUXIMG is</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">*              also enabled.</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">*      - WCSHDR_CD00i00j: Accept CD00i00j (wcspih()).</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">*      - WCSHDR_PC00i00j: Accept PC00i00j (wcspih()).</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">*      - WCSHDR_PROJPn:   Accept PROJPn   (wcspih()).</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">*              These appeared in early drafts of WCS Paper I+II (before they</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">*              were split) and are equivalent to CDi_ja, PCi_ja, and PVi_ma</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">*              for the primary representation (a = ' ').  PROJPn is</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">*              equivalent to PVi_ma with m = n <= 9, and is associated</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">*              exclusively with the latitude axis.</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">*      - WCSHDR_RADECSYS: Accept RADECSYS.  This appeared in early drafts of</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">*              WCS Paper I+II and was subsequently replaced by RADESYSa.</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*              wcsbth() accepts RADECSYS only if WCSHDR_AUXIMG is also</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">*              enabled.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">*              This flag may be used to signal the presence of non-standard</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">*              keywords, otherwise they are simply passed over as though they</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">*              did not exist in the header.  It is mainly intended for testing</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">*              conformance of a FITS header to the WCS standard.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment">*              Keyrecords may be non-standard in several ways:</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">*                - The keyword may be syntactically valid but with keyvalue of</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">*                  incorrect type or invalid syntax, or the keycomment may be</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">*                  malformed.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">*                - The keyword may strongly resemble a WCS keyword but not, in</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">*                  fact, be one because it does not conform to the standard.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">*                  For example, "CRPIX01" looks like a CRPIXja keyword, but in</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment">*                  fact the leading zero on the axis number violates the basic</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment">*                  FITS standard.  Likewise, "LONPOLE2" is not a valid</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">*                  LONPOLEa keyword in the WCS standard, and indeed there is</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">*                  nothing the parser can sensibly do with it.</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment">*                - Use of the keyword may be deprecated by the standard.  Such</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">*                  will be rejected if not explicitly accepted via one of the</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">*                  flags below.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">*      - WCSHDR_strict: As for WCSHDR_reject, but also reject AIPS-convention</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">*              keywords and all other deprecated usage that is not explicitly</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">*              accepted.</span></div>
 <div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">*      - WCSHDR_VSOURCE: Accept VSOURCEa or VSOUna (wcsbth()).  This appeared</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">*              in early drafts of WCS Paper III and was subsequently dropped</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">*              in favour of ZSOURCEa and ZSOUna.</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*              wcsbth() accepts VSOURCEa only if WCSHDR_AUXIMG is also</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*              enabled.</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*      - WCSHDR_DOBSn (wcsbth() only): Allow DOBSn, the column-specific analogue</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*              of DATE-OBS.  By an oversight this was never formally defined</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">*              in the standard.</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">*      - WCSHDR_LONGKEY (wcsbth() only): Accept long forms of the alternate</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">*              binary table and pixel list WCS keywords, i.e. with "a" non-</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">*              blank.  Specifically</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">#                jCRPXna  TCRPXna  :  jCRPXn  jCRPna  TCRPXn  TCRPna  CRPIXja</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">#                   -     TPCn_ka  :    -     ijPCna    -     TPn_ka  PCi_ja</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">#                   -     TCDn_ka  :    -     ijCDna    -     TCn_ka  CDi_ja</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">#                iCDLTna  TCDLTna  :  iCDLTn  iCDEna  TCDLTn  TCDEna  CDELTia</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">#                iCUNIna  TCUNIna  :  iCUNIn  iCUNna  TCUNIn  TCUNna  CUNITia</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">#                iCTYPna  TCTYPna  :  iCTYPn  iCTYna  TCTYPn  TCTYna  CTYPEia</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">#                iCRVLna  TCRVLna  :  iCRVLn  iCRVna  TCRVLn  TCRVna  CRVALia</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">#                iPVn_ma  TPVn_ma  :    -     iVn_ma    -     TVn_ma  PVi_ma</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">#                iPSn_ma  TPSn_ma  :    -     iSn_ma    -     TSn_ma  PSi_ma</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">*              where the primary and standard alternate forms together with</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">*              the image-header equivalent are shown rightwards of the colon.</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">*              The long form of these keywords could be described as quasi-</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*              standard.  TPCn_ka, iPVn_ma, and TPVn_ma appeared by mistake</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">*              in the examples in WCS Paper II and subsequently these and</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*              also TCDn_ka, iPSn_ma and TPSn_ma were legitimized by the</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">*              errata to the WCS papers.</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">*      - WCSHDR_CROTAia: Accept CROTAia (wcspih()),</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">*                               iCROTna (wcsbth()),</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">*                               TCROTna (wcsbth()).</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">*      - WCSHDR_EPOCHa:  Accept EPOCHa.</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">*      - WCSHDR_VELREFa: Accept VELREFa.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">*              wcspih() always recognizes the AIPS-convention keywords,</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">*              CROTAn, EPOCH, and VELREF for the primary representation</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">*              (a = ' ') but alternates are non-standard.</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">*              wcsbth() accepts EPOCHa and VELREFa only if WCSHDR_AUXIMG is</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">*              also enabled.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">*      - WCSHDR_CD00i00j: Accept CD00i00j (wcspih()).</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">*      - WCSHDR_PC00i00j: Accept PC00i00j (wcspih()).</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">*      - WCSHDR_PROJPn:   Accept PROJPn   (wcspih()).</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">*              These appeared in early drafts of WCS Paper I+II (before they</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">*              were split) and are equivalent to CDi_ja, PCi_ja, and PVi_ma</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">*              for the primary representation (a = ' ').  PROJPn is</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">*              equivalent to PVi_ma with m = n <= 9, and is associated</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">*              exclusively with the latitude axis.</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">*      - WCSHDR_CD0i_0ja: Accept CD0i_0ja (wcspih()).</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">*      - WCSHDR_PC0i_0ja: Accept PC0i_0ja (wcspih()).</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">*      - WCSHDR_PV0i_0ma: Accept PV0i_0ja (wcspih()).</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">*      - WCSHDR_PS0i_0ma: Accept PS0i_0ja (wcspih()).</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">*              Allow the numerical index to have a leading zero in doubly-</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">*              parameterized keywords, for example, PC01_01.  WCS Paper I</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">*              (Sects 2.1.2 & 2.1.4) explicitly disallows leading zeroes.</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">*              The FITS 3.0 standard document (Sect. 4.1.2.1) states that the</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">*              index in singly-parameterized keywords (e.g. CTYPEia) "shall</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">*              not have leading zeroes", and later in Sect. 8.1 that "leading</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">*              zeroes must not be used" on PVi_ma and PSi_ma.  However, by an</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">*              oversight, it is silent on PCi_ja and CDi_ja.</span></div>
 <div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*              Strictly speaking, the other long forms are non-standard and</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*              in fact have never appeared in any draft of the WCS papers nor</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*              in the errata.  However, as natural extensions of the primary</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*              form they are unlikely to be written with any other intention.</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*              Thus it should be safe to accept them provided, of course,</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*              that the resulting keyword does not exceed the 8-character</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*              limit.</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*              If WCSHDR_CNAMn is enabled then also accept</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">*      - WCSHDR_RADECSYS: Accept RADECSYS.  This appeared in early drafts of</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">*              WCS Paper I+II and was subsequently replaced by RADESYSa.</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">*              wcsbth() accepts RADECSYS only if WCSHDR_AUXIMG is also</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">*              enabled.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">*      - WCSHDR_VSOURCE: Accept VSOURCEa or VSOUna (wcsbth()).  This appeared</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">*              in early drafts of WCS Paper III and was subsequently dropped</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment">*              in favour of ZSOURCEa and ZSOUna.</span></div>
 <div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">#                iCNAMna  TCNAMna  :   ---   iCNAna    ---   TCNAna  CNAMEia</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">#                iCRDEna  TCRDEna  :   ---   iCRDna    ---   TCRDna  CRDERia</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">#                iCSYEna  TCSYEna  :   ---   iCSYna    ---   TCSYna  CSYERia</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">*              Note that CNAMEia, CRDERia, CSYERia, and their variants are</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">*              not used by WCSLIB but are stored in the wcsprm struct as</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">*              auxiliary information.</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*      - WCSHDR_CNAMn (wcsbth() only): Accept iCNAMn, iCRDEn, iCSYEn, TCNAMn,</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*              TCRDEn, and TCSYEn, i.e. with "a" blank.  While non-standard,</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*              these are the obvious analogues of iCTYPn, TCTYPn, etc.</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">*      - WCSHDR_AUXIMG (wcsbth() only): Allow the image-header form of an</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">*              auxiliary WCS keyword with representation-wide scope to</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">*              provide a default value for all images.  This default may be</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">*              overridden by the column-specific form of the keyword.</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">*              For example, a keyword like EQUINOXa would apply to all image</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">*              arrays in a binary table, or all pixel list columns with</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">*              alternate representation "a" unless overridden by EQUIna.</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment">*              wcsbth() accepts VSOURCEa only if WCSHDR_AUXIMG is also</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment">*              enabled.</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment">*      - WCSHDR_DOBSn (wcsbth() only): Allow DOBSn, the column-specific</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment">*              analogue of DATE-OBS.  By an oversight this was never formally</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">*              defined in the standard.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">*      - WCSHDR_LONGKEY (wcsbth() only): Accept long forms of the alternate</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">*              binary table and pixel list WCS keywords, i.e. with "a" non-</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment">*              blank.  Specifically</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">#                jCRPXna  TCRPXna  :  jCRPXn  jCRPna  TCRPXn  TCRPna  CRPIXja</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">#                   -     TPCn_ka  :    -     ijPCna    -     TPn_ka  PCi_ja</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment">#                   -     TCDn_ka  :    -     ijCDna    -     TCn_ka  CDi_ja</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">#                iCDLTna  TCDLTna  :  iCDLTn  iCDEna  TCDLTn  TCDEna  CDELTia</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">#                iCUNIna  TCUNIna  :  iCUNIn  iCUNna  TCUNIn  TCUNna  CUNITia</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">#                iCTYPna  TCTYPna  :  iCTYPn  iCTYna  TCTYPn  TCTYna  CTYPEia</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">#                iCRVLna  TCRVLna  :  iCRVLn  iCRVna  TCRVLn  TCRVna  CRVALia</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">#                iPVn_ma  TPVn_ma  :    -     iVn_ma    -     TVn_ma  PVi_ma</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">#                iPSn_ma  TPSn_ma  :    -     iSn_ma    -     TSn_ma  PSi_ma</span></div>
 <div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*              Specifically the keywords are:</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">#                LATPOLEa  for LATPna</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">#                LONPOLEa  for LONPna</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">#                RESTFREQ  for RFRQna</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">#                RESTFRQa  for RFRQna</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">#                RESTWAVa  for RWAVna</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*              whose keyvalues are actually used by WCSLIB, and also keywords</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*              that provide auxiliary information that is simply stored in</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*              the wcsprm struct:</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">#                EPOCH         -       ... (No column-specific form.)</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">#                EPOCHa        -       ... Only if WCSHDR_EPOCHa is set.</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">#                EQUINOXa  for EQUIna</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">#                RADESYSa  for RADEna</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">#                RADECSYS  for RADEna  ... Only if WCSHDR_RADECSYS is set.</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">#                SPECSYSa  for SPECna</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">#                SSYSOBSa  for SOBSna</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">#                SSYSSRCa  for SSRCna</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">#                VELOSYSa  for VSYSna</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">#                VELANGLa  for VANGna</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">#                VELREF        -       ... (No column-specific form.)</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">#                VELREFa       -       ... Only if WCSHDR_VELREFa is set.</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">#                VSOURCEa  for VSOUna  ... Only if WCSHDR_VSOURCE is set.</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">#                WCSNAMEa  for WCSNna  ... Or TWCSna (see below).</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">#                ZSOURCEa  for ZSOUna</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">#                DATE-AVG  for DAVGn</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">#                DATE-OBS  for DOBSn</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">#                MJD-AVG   for MJDAn</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">#                MJD-OBS   for MJDOBn</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">#                OBSGEO-X  for OBSGXn</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">#                OBSGEO-Y  for OBSGYn</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">#                OBSGEO-Z  for OBSGZn</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">*              where the primary and standard alternate forms together with</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">*              the image-header equivalent are shown rightwards of the colon.</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">*              The long form of these keywords could be described as quasi-</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">*              standard.  TPCn_ka, iPVn_ma, and TPVn_ma appeared by mistake</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">*              in the examples in WCS Paper II and subsequently these and</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">*              also TCDn_ka, iPSn_ma and TPSn_ma were legitimized by the</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">*              errata to the WCS papers.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">*              Strictly speaking, the other long forms are non-standard and</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">*              in fact have never appeared in any draft of the WCS papers nor</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">*              in the errata.  However, as natural extensions of the primary</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">*              form they are unlikely to be written with any other intention.</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">*              Thus it should be safe to accept them provided, of course,</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">*              that the resulting keyword does not exceed the 8-character</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">*              limit.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">*              If WCSHDR_CNAMn is enabled then also accept</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">#                iCNAMna  TCNAMna  :   ---   iCNAna    ---   TCNAna  CNAMEia</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment">#                iCRDEna  TCRDEna  :   ---   iCRDna    ---   TCRDna  CRDERia</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">#                iCSYEna  TCSYEna  :   ---   iCSYna    ---   TCSYna  CSYERia</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">*              Note that CNAMEia, CRDERia, CSYERia, and their variants are</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">*              not used by WCSLIB but are stored in the wcsprm struct as</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">*              auxiliary information.</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">*      - WCSHDR_CNAMn (wcsbth() only): Accept iCNAMn, iCRDEn, iCSYEn, TCNAMn,</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">*              TCRDEn, and TCSYEn, i.e. with "a" blank.  While non-standard,</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment">*              these are the obvious analogues of iCTYPn, TCTYPn, etc.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">*      - WCSHDR_AUXIMG (wcsbth() only): Allow the image-header form of an</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">*              auxiliary WCS keyword with representation-wide scope to</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">*              provide a default value for all images.  This default may be</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">*              overridden by the column-specific form of the keyword.</span></div>
 <div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*              where the image-header keywords on the left provide default</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*              values for the column specific keywords on the right.</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*              Keywords in the last group, such as MJD-OBS, apply to all</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">*              alternate representations, so MJD-OBS would provide a default</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*              value for all images in the header.</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">*              This auxiliary inheritance mechanism applies to binary table</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">*              image arrays and pixel lists alike.  Most of these keywords</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">*              have no default value, the exceptions being LONPOLEa and</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">*              LATPOLEa, and also RADESYSa and EQUINOXa which provide</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*              defaults for each other.  Thus the only potential difficulty</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*              in using WCSHDR_AUXIMG is that of erroneously inheriting one</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*              of these four keywords.</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">*              Unlike WCSHDR_ALLIMG, the existence of one (or all) of these</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">*              auxiliary WCS image header keywords will not by itself cause a</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">*              wcsprm struct to be created for alternate representation "a".</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">*              This is because they do not provide sufficient information to</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">*              create a non-trivial coordinate representation when used in</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">*              conjunction with the default values of those keywords, such as</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">*              CTYPEia, that are parameterized by axis number.</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment">*      - WCSHDR_ALLIMG (wcsbth() only): Allow the image-header form of *all*</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">*              image header WCS keywords to provide a default value for all</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">*              image arrays in a binary table (n.b. not pixel list).  This</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment">*              default may be overridden by the column-specific form of the</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment">*              keyword.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment">*              For example, a keyword like CRPIXja would apply to all image</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">*              arrays in a binary table with alternate representation "a"</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">*              unless overridden by jCRPna.</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="comment">*              Specifically the keywords are those listed above for</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="comment">*              WCSHDR_AUXIMG plus</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment">#                WCSAXESa  for WCAXna</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">*              which defines the coordinate dimensionality, and the following</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment">*              keywords which are parameterized by axis number:</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">#                CRPIXja   for jCRPna</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">#                PCi_ja    for ijPCna</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment">#                CDi_ja    for ijCDna</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">#                CDELTia   for iCDEna</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment">#                CROTAi    for iCROTn</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment">#                CROTAia        -      ... Only if WCSHDR_CROTAia is set.</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">#                CUNITia   for iCUNna</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">#                CTYPEia   for iCTYna</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">#                CRVALia   for iCRVna</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">#                PVi_ma    for iVn_ma</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">#                PSi_ma    for iSn_ma</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment">#                CNAMEia   for iCNAna</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">#                CRDERia   for iCRDna</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">#                CSYERia   for iCSYna</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">*              where the image-header keywords on the left provide default</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">*              values for the column specific keywords on the right.</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">*              This full inheritance mechanism only applies to binary table</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">*              image arrays, not pixel lists, because in the latter case</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">*              there is no well-defined association between coordinate axis</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment">*              number and column number.</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">*              Note that CNAMEia, CRDERia, CSYERia, and their variants are</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">*              not used by WCSLIB but are stored in the wcsprm struct as</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">*              auxiliary information.</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">*              For example, a keyword like EQUINOXa would apply to all image</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment">*              arrays in a binary table, or all pixel list columns with</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">*              alternate representation "a" unless overridden by EQUIna.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">*              Specifically the keywords are:</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> <span class="comment">#                LATPOLEa  for LATPna</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment">#                LONPOLEa  for LONPna</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">#                RESTFREQ  for RFRQna</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment">#                RESTFRQa  for RFRQna</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">#                RESTWAVa  for RWAVna</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">*              whose keyvalues are actually used by WCSLIB, and also keywords</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">*              that provide auxiliary information that is simply stored in</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">*              the wcsprm struct:</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment">#                EPOCH         -       ... (No column-specific form.)</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">#                EPOCHa        -       ... Only if WCSHDR_EPOCHa is set.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">#                EQUINOXa  for EQUIna</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">#                RADESYSa  for RADEna</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">#                RADECSYS  for RADEna  ... Only if WCSHDR_RADECSYS is set.</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">#                SPECSYSa  for SPECna</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment">#                SSYSOBSa  for SOBSna</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment">#                SSYSSRCa  for SSRCna</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">#                VELOSYSa  for VSYSna</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">#                VELANGLa  for VANGna</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment">#                VELREF        -       ... (No column-specific form.)</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment">#                VELREFa       -       ... Only if WCSHDR_VELREFa is set.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">#                VSOURCEa  for VSOUna  ... Only if WCSHDR_VSOURCE is set.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment">#                WCSNAMEa  for WCSNna  ... Or TWCSna (see below).</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">#                ZSOURCEa  for ZSOUna</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">#                DATE-AVG  for DAVGn</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="comment">#                DATE-OBS  for DOBSn</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="comment">#                MJD-AVG   for MJDAn</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="comment">#                MJD-OBS   for MJDOBn</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment">#                OBSGEO-X  for OBSGXn</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">#                OBSGEO-Y  for OBSGYn</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">#                OBSGEO-Z  for OBSGZn</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">*              where the image-header keywords on the left provide default</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">*              values for the column specific keywords on the right.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment">*              Keywords in the last group, such as MJD-OBS, apply to all</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">*              alternate representations, so MJD-OBS would provide a default</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment">*              value for all images in the header.</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">*              This auxiliary inheritance mechanism applies to binary table</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">*              image arrays and pixel lists alike.  Most of these keywords</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">*              have no default value, the exceptions being LONPOLEa and</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">*              LATPOLEa, and also RADESYSa and EQUINOXa which provide</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">*              defaults for each other.  Thus the only potential difficulty</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment">*              in using WCSHDR_AUXIMG is that of erroneously inheriting one</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment">*              of these four keywords.</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">*              Unlike WCSHDR_ALLIMG, the existence of one (or all) of these</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">*              auxiliary WCS image header keywords will not by itself cause a</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">*              wcsprm struct to be created for alternate representation "a".</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">*              This is because they do not provide sufficient information to</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment">*              create a non-trivial coordinate representation when used in</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">*              conjunction with the default values of those keywords, such as</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">*              CTYPEia, that are parameterized by axis number.</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment">*      - WCSHDR_ALLIMG (wcsbth() only): Allow the image-header form of *all*</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment">*              image header WCS keywords to provide a default value for all</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">*              image arrays in a binary table (n.b. not pixel list).  This</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">*              default may be overridden by the column-specific form of the</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">*              keyword.</span></div>
 <div class="line"><a name="l00636"></a><span class="lineno">  636</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment">*              Note especially that at least one wcsprm struct will be</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">*              returned for each "a" found in one of the image header</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment">*              keywords listed above:</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment">*              For example, a keyword like CRPIXja would apply to all image</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">*              arrays in a binary table with alternate representation "a"</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment">*              unless overridden by jCRPna.</span></div>
 <div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment">*              - If the image header keywords for "a" ARE NOT inherited by a</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment">*                binary table, then the struct will not be associated with</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment">*                any particular table column number and it is up to the user</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment">*                to provide an association.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment">*              Specifically the keywords are those listed above for</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment">*              WCSHDR_AUXIMG plus</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment">#                WCSAXESa  for WCAXna</span></div>
 <div class="line"><a name="l00645"></a><span class="lineno">  645</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="comment">*              - If the image header keywords for "a" ARE inherited by a</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment">*                binary table image array, then those keywords are considered</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">*                to be "exhausted" and do not result in a separate wcsprm</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">*                struct.</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">*      For example, to accept CD00i00j and PC00i00j and reject all other</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">*      extensions, use</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment">=        relax = WCSHDR_reject | WCSHDR_CD00i00j | WCSHDR_PC00i00j;</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">*      The parser always treats EPOCH as subordinate to EQUINOXa if both are</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">*      present, and VSOURCEa is always subordinate to ZSOURCEa.</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">*      Likewise, VELREF is subordinate to the formalism of WCS Paper III, see</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">*      spcaips().</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">*      Neither wcspih() nor wcsbth() currently recognize the AIPS-convention</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">*      keywords ALTRPIX or ALTRVAL which effectively define an alternative</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">*      representation for a spectral axis.</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment">*   6: Depending on what flags have been set in its "relax" argument,</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment">*      wcsbth() could return as many as 27027 wcsprm structs:</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">*      - Up to 27 unattached representations derived from image header</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment">*        keywords.</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">*      - Up to 27 structs for each of up to 999 columns containing an image</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span> <span class="comment">*        arrays.</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span> <span class="comment">*      - Up to 27 structs for a pixel list.</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="comment">*              which defines the coordinate dimensionality, and the following</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment">*              keywords which are parameterized by axis number:</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">#                CRPIXja   for jCRPna</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">#                PCi_ja    for ijPCna</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">#                CDi_ja    for ijCDna</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">#                CDELTia   for iCDEna</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">#                CROTAi    for iCROTn</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment">#                CROTAia        -      ... Only if WCSHDR_CROTAia is set.</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">#                CUNITia   for iCUNna</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">#                CTYPEia   for iCTYna</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">#                CRVALia   for iCRVna</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment">#                PVi_ma    for iVn_ma</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">#                PSi_ma    for iSn_ma</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">#                CNAMEia   for iCNAna</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">#                CRDERia   for iCRDna</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">#                CSYERia   for iCSYna</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">*              where the image-header keywords on the left provide default</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment">*              values for the column specific keywords on the right.</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">*              This full inheritance mechanism only applies to binary table</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">*              image arrays, not pixel lists, because in the latter case</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment">*              there is no well-defined association between coordinate axis</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">*              number and column number.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span> <span class="comment">*              Note that CNAMEia, CRDERia, CSYERia, and their variants are</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> <span class="comment">*              not used by WCSLIB but are stored in the wcsprm struct as</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span> <span class="comment">*              auxiliary information.</span></div>
 <div class="line"><a name="l00676"></a><span class="lineno">  676</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">*      Note that it is considered legitimate for a column to contain an image</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">*      array and also form part of a pixel list, and in particular that</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">*      wcsbth() does not check the TFORM keyword for a pixel list column to</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">*      check that it is scalar.</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">*      In practice, of course, a realistic binary table header is unlikely to</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">*      contain more than a handful of images.</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="comment">*      In order for wcsbth() to create a wcsprm struct for a particular</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">*      coordinate representation, at least one WCS keyword that defines an</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment">*      axis number must be present, either directly or by inheritance if</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">*      WCSHDR_ALLIMG is set.</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment">*      When the image header keywords for an alternate representation are</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="comment">*      inherited by a binary table image array via WCSHDR_ALLIMG, those</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="comment">*      keywords are considered to be "exhausted" and do not result in a</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="comment">*      separate wcsprm struct.  Otherwise they do.</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment">*   7: Neither wcspih() nor wcsbth() check for duplicated keywords, in most</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">*      cases they accept the last encountered.</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="comment">*   8: wcspih() and wcsbth() use wcsnpv() and wcsnps() (refer to the prologue</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="comment">*      of wcs.h) to match the size of the pv[] and ps[] arrays in the wcsprm</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="comment">*      structs to the number in the header.  Consequently there are no unused</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="comment">*      elements in the pv[] and ps[] arrays, indeed they will often be of</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="comment">*      zero length.</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="comment">*   9: The FITS WCS standard for pixel lists assumes that a pixel list</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment">*      defines one and only one image, i.e. that each row of the binary table</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="comment">*      refers to just one event, e.g. the detection of a single photon or</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="comment">*      neutrino.</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">*              Note especially that at least one wcsprm struct will be</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">*              returned for each "a" found in one of the image header</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">*              keywords listed above:</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">*              - If the image header keywords for "a" ARE NOT inherited by a</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">*                binary table, then the struct will not be associated with</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">*                any particular table column number and it is up to the user</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="comment">*                to provide an association.</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">*              - If the image header keywords for "a" ARE inherited by a</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment">*                binary table image array, then those keywords are considered</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">*                to be "exhausted" and do not result in a separate wcsprm</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">*                struct.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="comment">*      For example, to accept CD00i00j and PC00i00j and reject all other</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="comment">*      extensions, use</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="comment">=        relax = WCSHDR_reject | WCSHDR_CD00i00j | WCSHDR_PC00i00j;</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">*      The parser always treats EPOCH as subordinate to EQUINOXa if both are</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment">*      present, and VSOURCEa is always subordinate to ZSOURCEa.</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="comment">*      Likewise, VELREF is subordinate to the formalism of WCS Paper III, see</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="comment">*      spcaips().</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> <span class="comment">*      Neither wcspih() nor wcsbth() currently recognize the AIPS-convention</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="comment">*      keywords ALTRPIX or ALTRVAL which effectively define an alternative</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="comment">*      representation for a spectral axis.</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="comment">*   6: Depending on what flags have been set in its "relax" argument,</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="comment">*      wcsbth() could return as many as 27027 wcsprm structs:</span></div>
 <div class="line"><a name="l00708"></a><span class="lineno">  708</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="comment">*      In the absence of a formal mechanism for identifying the columns</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="comment">*      containing pixel coordinates (as opposed to pixel values or ancillary</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="comment">*      data recorded at the time the photon or neutrino was detected),</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="comment">*      Paper I discusses how the WCS keywords themselves may be used to</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="comment">*      identify them.</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span> <span class="comment">*      - Up to 27 unattached representations derived from image header</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span> <span class="comment">*        keywords.</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="comment">*      - Up to 27 structs for each of up to 999 columns containing an image</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="comment">*        arrays.</span></div>
 <div class="line"><a name="l00714"></a><span class="lineno">  714</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="comment">*      In practice, however, pixel lists have been used to store multiple</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="comment">*      images.  Besides not specifying how to identify columns, the pixel</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="comment">*      list convention is also silent on the method to be used to associate</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="comment">*      table columns with image axes.</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="comment">*      wcsbth() simply collects all WCS keywords for a particular coordinate</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">*      representation (i.e. the "a" value in TCTYna) into one wcsprm struct.</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*      However, these alternates need not be associated with the same table</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="comment">*      columns and this allows a pixel list to contain up to 27 separate</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="comment">*      images.  As usual, if one of these representations happened to contain</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="comment">*      more than two celestial axes, for example, then an error would result</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="comment">*      when wcsset() is invoked on it.  In this case the "colsel" argument</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="comment">*      could be used to restrict the columns used to construct the</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="comment">*      representation so that it only contained one pair of celestial axes.</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="comment">*      - Up to 27 structs for a pixel list.</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> <span class="comment">*      Note that it is considered legitimate for a column to contain an image</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span> <span class="comment">*      array and also form part of a pixel list, and in particular that</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span> <span class="comment">*      wcsbth() does not check the TFORM keyword for a pixel list column to</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span> <span class="comment">*      check that it is scalar.</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> <span class="comment">*      In practice, of course, a realistic binary table header is unlikely to</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span> <span class="comment">*      contain more than a handful of images.</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> <span class="comment">*      In order for wcsbth() to create a wcsprm struct for a particular</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="comment">*      coordinate representation, at least one WCS keyword that defines an</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="comment">*      axis number must be present, either directly or by inheritance if</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="comment">*      WCSHDR_ALLIMG is set.</span></div>
 <div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="comment">* wcstab() - Tabular construction routine</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="comment">* ---------------------------------------</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="comment">* wcstab() assists in filling in the information in the wcsprm struct relating</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="comment">* to coordinate lookup tables.</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="comment">* Tabular coordinates ('TAB') present certain difficulties in that the main</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="comment">* components of the lookup table - the multidimensional coordinate array plus</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment">* an index vector for each dimension - are stored in a FITS binary table</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">* extension (BINTABLE).  Information required to locate these arrays is stored</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">* in PVi_ma and PSi_ma keywords in the image header.</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">* wcstab() parses the PVi_ma and PSi_ma keywords associated with each 'TAB'</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment">* axis and allocates memory in the wcsprm struct for the required number of</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="comment">* tabprm structs.  It sets as much of the tabprm struct as can be gleaned from</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="comment">* the image header, and also sets up an array of wtbarr structs (described in</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="comment">* the prologue of wcs.h) to assist in extracting the required arrays from the</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment">* BINTABLE extension(s).</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span> <span class="comment">*      When the image header keywords for an alternate representation are</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="comment">*      inherited by a binary table image array via WCSHDR_ALLIMG, those</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="comment">*      keywords are considered to be "exhausted" and do not result in a</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="comment">*      separate wcsprm struct.  Otherwise they do.</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="comment">*   7: Neither wcspih() nor wcsbth() check for duplicated keywords, in most</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="comment">*      cases they accept the last encountered.</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment">*   8: wcspih() and wcsbth() use wcsnpv() and wcsnps() (refer to the prologue</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">*      of wcs.h) to match the size of the pv[] and ps[] arrays in the wcsprm</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">*      structs to the number in the header.  Consequently there are no unused</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">*      elements in the pv[] and ps[] arrays, indeed they will often be of</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">*      zero length.</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="comment">*   9: The FITS WCS standard for pixel lists assumes that a pixel list</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="comment">*      defines one and only one image, i.e. that each row of the binary table</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="comment">*      refers to just one event, e.g. the detection of a single photon or</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment">*      neutrino.</span></div>
 <div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">* It is then up to the user to allocate memory for, and copy arrays from the</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">* BINTABLE extension(s) into the tabprm structs.  A CFITSIO routine,</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">* fits_read_wcstab(), has been provided for this purpose, see getwcstab.h.</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">* wcsset() will automatically take control of this allocated memory, in</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">* particular causing it to be free'd by wcsfree(); the user must not attempt</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">* to free it after wcsset() has been called.</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment">* Note that wcspih() and wcsbth() automatically invoke wcstab() on each of the</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">* wcsprm structs that they return.</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="comment">*                       Coordinate transformation parameters (see below).</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="comment">*                       wcstab() sets ntab, tab, nwtb and wtb, allocating</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment">*                       memory for the tab and wtb arrays.  This allocated</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">*                       memory will be free'd automatically by wcsfree().</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="comment">*                         3: Invalid tabular parameters.</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">* wcsidx() - Index alternate coordinate representations</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">* -----------------------------------------------------</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">* wcsidx() returns an array of 27 indices for the alternate coordinate</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">* representations in the array of wcsprm structs returned by wcspih().  For</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment">* the array returned by wcsbth() it returns indices for the unattached</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">* (colnum == 0) representations derived from image header keywords - use</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">* wcsbdx() for those derived from binary table image arrays or pixel lists</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="comment">* keywords.</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">*   nwcs      int       Number of coordinate representations in the array.</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">*   wcs       const struct wcsprm**</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">*                       Pointer to an array of wcsprm structs returned by</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">*                       wcspih() or wcsbth().</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment">*   alts      int[27]   Index of each alternate coordinate representation in</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="comment">*                       the array: alts[0] for the primary, alts[1] for 'A',</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="comment">*                       etc., set to -1 if not present.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">*      In the absence of a formal mechanism for identifying the columns</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">*      containing pixel coordinates (as opposed to pixel values or ancillary</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">*      data recorded at the time the photon or neutrino was detected),</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">*      Paper I discusses how the WCS keywords themselves may be used to</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">*      identify them.</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">*      In practice, however, pixel lists have been used to store multiple</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment">*      images.  Besides not specifying how to identify columns, the pixel</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">*      list convention is also silent on the method to be used to associate</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">*      table columns with image axes.</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">*      wcsbth() simply collects all WCS keywords for a particular coordinate</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="comment">*      representation (i.e. the "a" value in TCTYna) into one wcsprm struct.</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="comment">*      However, these alternates need not be associated with the same table</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="comment">*      columns and this allows a pixel list to contain up to 27 separate</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment">*      images.  As usual, if one of these representations happened to contain</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">*      more than two celestial axes, for example, then an error would result</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="comment">*      when wcsset() is invoked on it.  In this case the "colsel" argument</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">*      could be used to restrict the columns used to construct the</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">*      representation so that it only contained one pair of celestial axes.</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">* wcstab() - Tabular construction routine</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="comment">* ---------------------------------------</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="comment">* wcstab() assists in filling in the information in the wcsprm struct relating</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="comment">* to coordinate lookup tables.</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment">* Tabular coordinates ('TAB') present certain difficulties in that the main</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">* components of the lookup table - the multidimensional coordinate array plus</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">* an index vector for each dimension - are stored in a FITS binary table</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">* extension (BINTABLE).  Information required to locate these arrays is stored</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">* in PVi_ma and PSi_ma keywords in the image header.</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment">* wcstab() parses the PVi_ma and PSi_ma keywords associated with each 'TAB'</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">* axis and allocates memory in the wcsprm struct for the required number of</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">* tabprm structs.  It sets as much of the tabprm struct as can be gleaned from</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="comment">* the image header, and also sets up an array of wtbarr structs (described in</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">* the prologue of wcs.h) to assist in extracting the required arrays from the</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">* BINTABLE extension(s).</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">* It is then up to the user to allocate memory for, and copy arrays from the</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">* BINTABLE extension(s) into the tabprm structs.  A CFITSIO routine,</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">* fits_read_wcstab(), has been provided for this purpose, see getwcstab.h.</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">* wcsset() will automatically take control of this allocated memory, in</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">* particular causing it to be free'd by wcsfree(); the user must not attempt</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">* to free it after wcsset() has been called.</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="comment">* Note that wcspih() and wcsbth() automatically invoke wcstab() on each of the</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="comment">* wcsprm structs that they return.</span></div>
 <div class="line"><a name="l00798"></a><span class="lineno">  798</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span> <span class="comment">*                       For example, if there was no 'P' representation then</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="comment">=                         alts['P'-'A'+1] == -1;</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span> <span class="comment">*                       Coordinate transformation parameters (see below).</span></div>
 <div class="line"><a name="l00802"></a><span class="lineno">  802</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="comment">*                       Otherwise, the address of its wcsprm struct would be</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">=                         wcs + alts['P'-'A'+1];</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> <span class="comment">*                       wcstab() sets ntab, tab, nwtb and wtb, allocating</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment">*                       memory for the tab and wtb arrays.  This allocated</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">*                       memory will be free'd automatically by wcsfree().</span></div>
 <div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00807"></a><span class="lineno">  807</span> <span class="comment">* Function return value:</span></div>
 <div class="line"><a name="l00808"></a><span class="lineno">  808</span> <span class="comment">*             int       Status return value:</span></div>
 <div class="line"><a name="l00809"></a><span class="lineno">  809</span> <span class="comment">*                         0: Success.</span></div>
 <div class="line"><a name="l00810"></a><span class="lineno">  810</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment">* wcsbdx() - Index alternate coordinate representions</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment">* ---------------------------------------------------</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment">* wcsbdx() returns an array of 999 x 27 indices for the alternate coordinate</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">* representions for binary table image arrays xor pixel lists in the array of</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment">* wcsprm structs returned by wcsbth().  Use wcsidx() for the unattached</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span> <span class="comment">* representations derived from image header keywords.</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span> <span class="comment">*   nwcs      int       Number of coordinate representations in the array.</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">*   wcs       const struct wcsprm**</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment">*                       Pointer to an array of wcsprm structs returned by</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span> <span class="comment">*                       wcsbth().</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">*                         3: Invalid tabular parameters.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span> <span class="comment">* wcsidx() - Index alternate coordinate representations</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span> <span class="comment">* -----------------------------------------------------</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span> <span class="comment">* wcsidx() returns an array of 27 indices for the alternate coordinate</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span> <span class="comment">* representations in the array of wcsprm structs returned by wcspih().  For</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> <span class="comment">* the array returned by wcsbth() it returns indices for the unattached</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">* (colnum == 0) representations derived from image header keywords - use</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment">* wcsbdx() for those derived from binary table image arrays or pixel lists</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span> <span class="comment">* keywords.</span></div>
 <div class="line"><a name="l00826"></a><span class="lineno">  826</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span> <span class="comment">*   type      int       Select the type of coordinate representation:</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="comment">*                         0: binary table image arrays,</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment">*                         1: pixel lists.</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment">*   alts      short[1000][28]</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment">*                       Index of each alternate coordinate represention in the</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">*                       array: alts[col][0] for the primary, alts[col][1] for</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">*                       'A', to alts[col][26] for 'Z', where col is the</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment">*                       1-relative column number, and col == 0 is used for</span></div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment">*                       unattached image headers.  Set to -1 if not present.</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="comment">*   nwcs      int       Number of coordinate representations in the array.</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">*   wcs       const struct wcsprm**</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment">*                       Pointer to an array of wcsprm structs returned by</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment">*                       wcspih() or wcsbth().</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">*   alts      int[27]   Index of each alternate coordinate representation in</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment">*                       the array: alts[0] for the primary, alts[1] for 'A',</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment">*                       etc., set to -1 if not present.</span></div>
 <div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">*                       alts[col][27] counts the number of coordinate</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">*                       representations of the chosen type for each column.</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">*                       For example, if there was no 'P' represention for</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment">*                       column 13 then</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">*                       For example, if there was no 'P' representation then</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">=                         alts['P'-'A'+1] == -1;</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment">*                       Otherwise, the address of its wcsprm struct would be</span></div>
 <div class="line"><a name="l00844"></a><span class="lineno">  844</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="comment">=                         alts[13]['P'-'A'+1] == -1;</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="comment">=                         wcs + alts['P'-'A'+1];</span></div>
 <div class="line"><a name="l00846"></a><span class="lineno">  846</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="comment">*                       Otherwise, the address of its wcsprm struct would be</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment">=                         wcs + alts[13]['P'-'A'+1];</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">* wcsvfree() - Free the array of wcsprm structs</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">* ---------------------------------------------</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment">* wcsvfree() frees the memory allocated by wcspih() or wcsbth() for the array</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">* of wcsprm structs, first invoking wcsfree() on each of the array members.</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found; set to 0</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">*                       on return.</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">*                       Pointer to the array of wcsprm structs; set to 0 on</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment">*                       return.</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span> <span class="comment">*             int       Status return value:</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="comment">* wcshdo() - Write out a wcsprm struct as a FITS header</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span> <span class="comment">* -----------------------------------------------------</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span> <span class="comment">* wcshdo() translates a wcsprm struct into a FITS header.  If the colnum</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span> <span class="comment">* member of the struct is non-zero then a binary table image array header will</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span> <span class="comment">* be produced.  Otherwise, if the colax[] member of the struct is set non-zero</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span> <span class="comment">* then a pixel list header will be produced.  Otherwise, a primary image or</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="comment">* image extension header will be produced.</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="comment">* If the struct was originally constructed from a header, e.g. by wcspih(),</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span> <span class="comment">* the output header will almost certainly differ in a number of respects:</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment">* wcsbdx() - Index alternate coordinate representions</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment">* ---------------------------------------------------</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">* wcsbdx() returns an array of 999 x 27 indices for the alternate coordinate</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment">* representions for binary table image arrays xor pixel lists in the array of</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">* wcsprm structs returned by wcsbth().  Use wcsidx() for the unattached</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">* representations derived from image header keywords.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">*   nwcs      int       Number of coordinate representations in the array.</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment">*   wcs       const struct wcsprm**</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">*                       Pointer to an array of wcsprm structs returned by</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">*                       wcsbth().</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">*   type      int       Select the type of coordinate representation:</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment">*                         0: binary table image arrays,</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="comment">*                         1: pixel lists.</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span> <span class="comment">*   alts      short[1000][28]</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="comment">*                       Index of each alternate coordinate represention in the</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span> <span class="comment">*                       array: alts[col][0] for the primary, alts[col][1] for</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="comment">*                       'A', to alts[col][26] for 'Z', where col is the</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="comment">*                       1-relative column number, and col == 0 is used for</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span> <span class="comment">*                       unattached image headers.  Set to -1 if not present.</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> <span class="comment">*                       alts[col][27] counts the number of coordinate</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span> <span class="comment">*                       representations of the chosen type for each column.</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> <span class="comment">*                       For example, if there was no 'P' represention for</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> <span class="comment">*                       column 13 then</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span> <span class="comment">=                         alts[13]['P'-'A'+1] == -1;</span></div>
 <div class="line"><a name="l00886"></a><span class="lineno">  886</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span> <span class="comment">*   - The output header only contains WCS-related keywords.  In particular, it</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span> <span class="comment">*     does not contain syntactically-required keywords such as SIMPLE, NAXIS,</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span> <span class="comment">*     BITPIX, or END.</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span> <span class="comment">*                       Otherwise, the address of its wcsprm struct would be</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span> <span class="comment">=                         wcs + alts[13]['P'-'A'+1];</span></div>
 <div class="line"><a name="l00890"></a><span class="lineno">  890</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span> <span class="comment">*   - Deprecated (e.g. CROTAn) or non-standard usage will be translated to</span></div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span> <span class="comment">*     standard (this is partially dependent on whether wcsfix() was applied).</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span> <span class="comment">*   - Quantities will be converted to the units used internally, basically SI</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span> <span class="comment">*     with the addition of degrees.</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00896"></a><span class="lineno">  896</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span> <span class="comment">*   - Floating-point quantities may be given to a different decimal precision.</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span> <span class="comment">*   - Elements of the PCi_ja matrix will be written if and only if they differ</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="comment">*     from the unit matrix.  Thus, if the matrix is unity then no elements</span></div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment">*     will be written.</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span> <span class="comment">*   - Additional keywords such as WCSAXESa, CUNITia, LONPOLEa and LATPOLEa may</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span> <span class="comment">*     appear.</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span> <span class="comment">* wcsvfree() - Free the array of wcsprm structs</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span> <span class="comment">* ---------------------------------------------</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span> <span class="comment">* wcsvfree() frees the memory allocated by wcspih() or wcsbth() for the array</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="comment">* of wcsprm structs, first invoking wcsfree() on each of the array members.</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span> <span class="comment">*   nwcs      int*      Number of coordinate representations found; set to 0</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span> <span class="comment">*                       on return.</span></div>
 <div class="line"><a name="l00905"></a><span class="lineno">  905</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span> <span class="comment">*   - The original keycomments will be lost, although wcshdo() tries hard to</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment">*     write meaningful comments.</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span> <span class="comment">*   - Keyword order may be changed.</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span> <span class="comment">* Keywords can be translated between the image array, binary table, and pixel</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span> <span class="comment">* lists forms by manipulating the colnum or colax[] members of the wcsprm</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span> <span class="comment">* struct.</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span> <span class="comment">*   wcs       struct wcsprm**</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment">*                       Pointer to the array of wcsprm structs; set to 0x0 on</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">*                       return.</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span> <span class="comment">*             int       Status return value:</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
 <div class="line"><a name="l00914"></a><span class="lineno">  914</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span> <span class="comment">* Given:</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="comment">*   relax     int       Degree of permissiveness:</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span> <span class="comment">*                          0: Recognize only FITS keywords defined by the</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span> <span class="comment">*                             published WCS standard.</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span> <span class="comment">*                         -1: Admit all informal extensions of the WCS</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment">*                             standard.</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">*                       Fine-grained control of the degree of permissiveness</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span> <span class="comment">*                       is also possible as explained in the notes below.</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="comment">* wcshdo() - Write out a wcsprm struct as a FITS header</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span> <span class="comment">* -----------------------------------------------------</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span> <span class="comment">* wcshdo() translates a wcsprm struct into a FITS header.  If the colnum</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span> <span class="comment">* member of the struct is non-zero then a binary table image array header will</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment">* be produced.  Otherwise, if the colax[] member of the struct is set non-zero</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">* then a pixel list header will be produced.  Otherwise, a primary image or</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span> <span class="comment">* image extension header will be produced.</span></div>
 <div class="line"><a name="l00923"></a><span class="lineno">  923</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment">* Given and returned:</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment">*                       Pointer to a wcsprm struct containing coordinate</span></div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="comment">*                       transformation parameters.  Will be initialized if</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="comment">*                       necessary.</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment">* Returned:</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span> <span class="comment">*   nkeyrec   int*      Number of FITS header keyrecords returned in the</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="comment">*                       "header" array.</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment">* If the struct was originally constructed from a header, e.g. by wcspih(),</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">* the output header will almost certainly differ in a number of respects:</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="comment">*   - The output header only contains WCS-related keywords.  In particular, it</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="comment">*     does not contain syntactically-required keywords such as SIMPLE, NAXIS,</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="comment">*     BITPIX, or END.</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span> <span class="comment">*   - Deprecated (e.g. CROTAn) or non-standard usage will be translated to</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="comment">*     standard (this is partially dependent on whether wcsfix() was applied).</span></div>
 <div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="comment">*   header    char**    Pointer to an array of char holding the header.</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="comment">*                       Storage for the array is allocated by wcshdo() in</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment">*                       blocks of 2880 bytes (32 x 80-character keyrecords)</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">*                       and must be free'd by the user to avoid memory leaks.</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="comment">*   - Quantities will be converted to the units used internally, basically SI</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="comment">*     with the addition of degrees.</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">*   - Floating-point quantities may be given to a different decimal precision.</span></div>
 <div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment">*                       Each keyrecord is 80 characters long and is *NOT*</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="comment">*                       null-terminated, so the first keyrecord starts at</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span> <span class="comment">*                       (*header)[0], the second at (*header)[80], etc.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment">*   - Elements of the PCi_ja matrix will be written if and only if they differ</span></div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="comment">*     from the unit matrix.  Thus, if the matrix is unity then no elements</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span> <span class="comment">*     will be written.</span></div>
 <div class="line"><a name="l00942"></a><span class="lineno">  942</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span> <span class="comment">* Function return value:</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span> <span class="comment">*             int       Status return value (associated with wcs_errmsg[]):</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">*                         0: Success.</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span> <span class="comment">*                            types.</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span> <span class="comment">*                            parameters.</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span> <span class="comment">* Notes:</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span> <span class="comment">*   wcshdo() interprets the "relax" argument as a vector of flag bits to</span></div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span> <span class="comment">*   provide fine-grained control over what non-standard WCS keywords to write.</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span> <span class="comment">*   The flag bits are subject to change in future and should be set by using</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span> <span class="comment">*   the preprocessor macros (see below) for the purpose.</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span> <span class="comment">*   - WCSHDO_none: Don't use any extensions.</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">*   - WCSHDO_all: Write all recognized extensions, equivalent to setting each</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="comment">*           flag bit.</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span> <span class="comment">*   - Additional keywords such as WCSAXESa, CUNITia, LONPOLEa and LATPOLEa may</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> <span class="comment">*     appear.</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span> <span class="comment">*   - The original keycomments will be lost, although wcshdo() tries hard to</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment">*     write meaningful comments.</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">*   - Keyword order may be changed.</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span> <span class="comment">* Keywords can be translated between the image array, binary table, and pixel</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span> <span class="comment">* lists forms by manipulating the colnum or colax[] members of the wcsprm</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span> <span class="comment">* struct.</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span> <span class="comment">* Given:</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span> <span class="comment">*   relax     int       Degree of permissiveness:</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span> <span class="comment">*                          0: Recognize only FITS keywords defined by the</span></div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span> <span class="comment">*                             published WCS standard.</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span> <span class="comment">*                         -1: Admit all informal extensions of the WCS</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span> <span class="comment">*                             standard.</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span> <span class="comment">*                       Fine-grained control of the degree of permissiveness</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span> <span class="comment">*                       is also possible as explained in the notes below.</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span> <span class="comment">* Given and returned:</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span> <span class="comment">*   wcs       struct wcsprm*</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span> <span class="comment">*                       Pointer to a wcsprm struct containing coordinate</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">*                       transformation parameters.  Will be initialized if</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="comment">*                       necessary.</span></div>
 <div class="line"><a name="l00969"></a><span class="lineno">  969</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span> <span class="comment">*   - WCSHDO_safe: Write all extensions that are considered to be safe and</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment">*           recommended.</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">*   - WCSHDO_DOBSn: Write DOBSn, the column-specific analogue of DATE-OBS for</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">*           use in binary tables and pixel lists.  WCS Paper III introduced</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">*           DATE-AVG and DAVGn but by an oversight DOBSn (the obvious analogy)</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">*           was never formally defined by the standard.  The alternative to</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span> <span class="comment">*           using DOBSn is to write DATE-OBS which applies to the whole table.</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span> <span class="comment">*           This usage is considered to be safe and is recommended.</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">*   - WCSHDO_TPCn_ka: WCS Paper I defined</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span> <span class="comment">*           - TPn_ka and TCn_ka for pixel lists</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span> <span class="comment">*           but WCS Paper II uses TPCn_ka in one example and subsequently the</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="comment">*           errata for the WCS papers legitimized the use of</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span> <span class="comment">*           - TPCn_ka and TCDn_ka for pixel lists</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span> <span class="comment">*           provided that the keyword does not exceed eight characters.  This</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span> <span class="comment">*           usage is considered to be safe and is recommended because of the</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno">  991</span> <span class="comment">*           non-mnemonic terseness of the shorter forms.</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span> <span class="comment">*   - WCSHDO_PVn_ma: WCS Paper I defined</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span> <span class="comment">*           - iVn_ma and iSn_ma for bintables and</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span> <span class="comment">*           - TVn_ma and TSn_ma for pixel lists</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span> <span class="comment">*           but WCS Paper II uses iPVn_ma and TPVn_ma in the examples and</span></div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">*           subsequently the errata for the WCS papers legitimized the use of</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">*           - iPVn_ma and iPSn_ma for bintables and</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">*           - TPVn_ma and TPSn_ma for pixel lists</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment">*           provided that the keyword does not exceed eight characters.  This</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment">*           usage is considered to be safe and is recommended because of the</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment">*           non-mnemonic terseness of the shorter forms.</span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">*   - WCSHDO_CRPXna: For historical reasons WCS Paper I defined</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span> <span class="comment">* Returned:</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment">*   nkeyrec   int*      Number of FITS header keyrecords returned in the</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span> <span class="comment">*                       "header" array.</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">*   header    char**    Pointer to an array of char holding the header.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">*                       Storage for the array is allocated by wcshdo() in</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">*                       blocks of 2880 bytes (32 x 80-character keyrecords)</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span> <span class="comment">*                       and must be free'd by the user to avoid memory leaks.</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment">*                       Each keyrecord is 80 characters long and is *NOT*</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">*                       null-terminated, so the first keyrecord starts at</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="comment">*                       (*header)[0], the second at (*header)[80], etc.</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span> <span class="comment">* Function return value:</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> <span class="comment">*             int       Status return value (associated with wcs_errmsg[]):</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="comment">*                         0: Success.</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment">*                         1: Null wcsprm pointer passed.</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> <span class="comment">*                         2: Memory allocation failed.</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="comment">*                         3: Linear transformation matrix is singular.</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span> <span class="comment">*                            types.</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span> <span class="comment">*                         5: Invalid parameter value.</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span> <span class="comment">*                         6: Invalid coordinate transformation parameters.</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span> <span class="comment">*                         7: Ill-conditioned coordinate transformation</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span> <span class="comment">*                            parameters.</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span> <span class="comment">*                       For returns > 1, a detailed error message is set in</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span> <span class="comment">*</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">* Notes:</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">*   wcshdo() interprets the "relax" argument as a vector of flag bits to</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">*   provide fine-grained control over what non-standard WCS keywords to write.</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">*   The flag bits are subject to change in future and should be set by using</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment">*   the preprocessor macros (see below) for the purpose.</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment">*   - WCSHDO_none: Don't use any extensions.</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">*   - WCSHDO_all: Write all recognized extensions, equivalent to setting each</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment">*           flag bit.</span></div>
 <div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">*           - jCRPXn, iCDLTn, iCUNIn, iCTYPn, and iCRVLn for bintables and</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">*           - TCRPXn, TCDLTn, TCUNIn, TCTYPn, and TCRVLn for pixel lists</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">*   - WCSHDO_safe: Write all extensions that are considered to be safe and</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">*           recommended.</span></div>
 <div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">*           for use without an alternate version specifier.  However, because</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment">*           of the eight-character keyword constraint, in order to accommodate</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">*           column numbers greater than 99 WCS Paper I also defined</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">*           - jCRPna, iCDEna, iCUNna, iCTYna and iCRVna for bintables and</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">*           - TCRPna, TCDEna, TCUNna, TCTYna and TCRVna for pixel lists</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">*   - WCSHDO_DOBSn: Write DOBSn, the column-specific analogue of DATE-OBS for</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment">*           use in binary tables and pixel lists.  WCS Paper III introduced</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">*           DATE-AVG and DAVGn but by an oversight DOBSn (the obvious analogy)</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">*           was never formally defined by the standard.  The alternative to</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">*           using DOBSn is to write DATE-OBS which applies to the whole table.</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">*           This usage is considered to be safe and is recommended.</span></div>
 <div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">*           for use with an alternate version specifier (the "a").  Like the</span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment">*           PC, CD, PV, and PS keywords there is an obvious tendency to</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">*           confuse these two forms for column numbers up to 99.  It is very</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">*           unlikely that any parser would reject keywords in the first set</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">*           with a non-blank alternate version specifier so this usage is</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">*           considered to be safe and is recommended.</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">*   - WCSHDO_TPCn_ka: WCS Paper I defined</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">*           - TPn_ka and TCn_ka for pixel lists</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">*           but WCS Paper II uses TPCn_ka in one example and subsequently the</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">*           errata for the WCS papers legitimized the use of</span></div>
 <div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment">*   - WCSHDO_CNAMna: WCS Papers I and III defined</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment">*           - TPCn_ka and TCDn_ka for pixel lists</span></div>
 <div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">*           - iCNAna,  iCRDna,  and iCSYna  for bintables and</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">*           - TCNAna,  TCRDna,  and TCSYna  for pixel lists</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">*           By analogy with the above, the long forms would be</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">*           - iCNAMna, iCRDEna, and iCSYEna for bintables and</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">*           - TCNAMna, TCRDEna, and TCSYEna for pixel lists</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">*           Note that these keywords provide auxiliary information only, none</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">*           of them are needed to compute world coordinates.  This usage is</span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">*           potentially unsafe and is not recommended at this time.</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">*           provided that the keyword does not exceed eight characters.  This</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">*           usage is considered to be safe and is recommended because of the</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">*           non-mnemonic terseness of the shorter forms.</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">*   - WCSHDO_PVn_ma: WCS Paper I defined</span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">*           - iVn_ma and iSn_ma for bintables and</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">*           - TVn_ma and TSn_ma for pixel lists</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">*           but WCS Paper II uses iPVn_ma and TPVn_ma in the examples and</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">*           subsequently the errata for the WCS papers legitimized the use of</span></div>
 <div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">*   - WCSHDO_WCSNna: In light of wcsbth() note 4, write WCSNna instead of</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">*           TWCSna for pixel lists.  While wcsbth() treats WCSNna and TWCSna</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">*           as equivalent, other parsers may not.  Consequently, this usage</span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">*           is potentially unsafe and is not recommended at this time.</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">* Global variable: const char *wcshdr_errmsg[] - Status return messages</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">* ---------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">* Use wcs_errmsg[] for status returns from wcshdo().</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">*</span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">*===========================================================================*/</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="preprocessor">#ifndef WCSLIB_WCSHDR</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="preprocessor">#define WCSLIB_WCSHDR</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="preprocessor">#include "<a class="code" href="wcs_8h.html">wcs.h</a>"</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
-<div class="line"><a name="l01063"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a92a0007f672a5498ab1b6ccc6a4a002b"> 1063</a></span> <span class="preprocessor">#define WCSHDR_none     0x00000000</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a0b9b53e5cfd05653cbca75cf1aa8b2ed"> 1064</a></span> <span class="preprocessor">#define WCSHDR_all      0x000FFFFF</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6"> 1065</a></span> <span class="preprocessor">#define WCSHDR_reject   0x10000000</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> </div>
-<div class="line"><a name="l01067"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a017f1e817bdb2114ba765e7a9ef73bac"> 1067</a></span> <span class="preprocessor">#define WCSHDR_CROTAia  0x00000001</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a5feeef18919b1cbb79729bbfa75976ec"> 1068</a></span> <span class="preprocessor">#define WCSHDR_EPOCHa   0x00000002</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#afc0a5a6b475a8e50b77d4be099790985"> 1069</a></span> <span class="preprocessor">#define WCSHDR_VELREFa  0x00000004</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a63eb554461f3df5dc64a25f71891b9f1"> 1070</a></span> <span class="preprocessor">#define WCSHDR_CD00i00j 0x00000008</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a3dea9d7548bdbc9a7cc8d0a04cdd46fb"> 1071</a></span> <span class="preprocessor">#define WCSHDR_PC00i00j 0x00000010</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aee4fe41274945f9e34009d2eb309c922"> 1072</a></span> <span class="preprocessor">#define WCSHDR_PROJPn   0x00000020</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca"> 1073</a></span> <span class="preprocessor">#define WCSHDR_RADECSYS 0x00000040</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a1b66d50d7f1927222a170bc88f9db51e"> 1074</a></span> <span class="preprocessor">#define WCSHDR_VSOURCE  0x00000080</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#adff9a101a373a634f3a1baab29e92534"> 1075</a></span> <span class="preprocessor">#define WCSHDR_DOBSn    0x00000100</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae8a768f544fe3ae81436b73dca3099fb"> 1076</a></span> <span class="preprocessor">#define WCSHDR_LONGKEY  0x00000200</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e"> 1077</a></span> <span class="preprocessor">#define WCSHDR_CNAMn    0x00000400</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a0e8eb873389e9c15bd6079a96c41ad60"> 1078</a></span> <span class="preprocessor">#define WCSHDR_AUXIMG   0x00000800</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a33d67fd81c52448aead9e09f32ba9cca"> 1079</a></span> <span class="preprocessor">#define WCSHDR_ALLIMG   0x00001000</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
-<div class="line"><a name="l01081"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ab65e929c7d525d735ae240046d4f0d9c"> 1081</a></span> <span class="preprocessor">#define WCSHDR_IMGHEAD  0x00010000</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aa7c5021293b0db20ece0e82c3702a159"> 1082</a></span> <span class="preprocessor">#define WCSHDR_BIMGARR  0x00020000</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070"> 1083</a></span> <span class="preprocessor">#define WCSHDR_PIXLIST  0x00040000</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
-<div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a54634ed49425e8842874e9e2b77899df"> 1085</a></span> <span class="preprocessor">#define WCSHDO_none     0x00</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a5592649ee4c25e118559c6d283c51930"> 1086</a></span> <span class="preprocessor">#define WCSHDO_all      0xFF</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a446914676e0b3f55ac6a080015a52b43"> 1087</a></span> <span class="preprocessor">#define WCSHDO_safe     0x0F</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a6779d48001260a0011b3dcffdcb64cb6"> 1088</a></span> <span class="preprocessor">#define WCSHDO_DOBSn    0x01</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a96b787f84207faa42599e50e6e078d21"> 1089</a></span> <span class="preprocessor">#define WCSHDO_TPCn_ka  0x02</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a222a5bd7659f3e1ea1a9ed21f54c50ef"> 1090</a></span> <span class="preprocessor">#define WCSHDO_PVn_ma   0x04</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aace96fb8c1499616dd1333af3e8340b0"> 1091</a></span> <span class="preprocessor">#define WCSHDO_CRPXna   0x08</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a95325b53ebd8d7d0a371a65b27b3d04a"> 1092</a></span> <span class="preprocessor">#define WCSHDO_CNAMna   0x10</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a9a70ad2a355a9736711d8017535bf72b"> 1093</a></span> <span class="preprocessor">#define WCSHDO_WCSNna   0x20</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> </div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> </div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="wcshdr_8h.html#a06cd9297f8315235ba1cf13d1cc115e1">wcshdr_errmsg</a>[];</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> </div>
-<div class="line"><a name="l01098"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae"> 1098</a></span> <span class="keyword">enum</span> <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae">wcshdr_errmsg_enum</a> {</div>
-<div class="line"><a name="l01099"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1"> 1099</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1">WCSHDRERR_SUCCESS</a>            = 0,     <span class="comment">/* Success. */</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded"> 1100</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded">WCSHDRERR_NULL_POINTER</a>       = 1,     <span class="comment">/* Null wcsprm pointer passed. */</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f"> 1101</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f">WCSHDRERR_MEMORY</a>             = 2,     <span class="comment">/* Memory allocation failed. */</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459"> 1102</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459">WCSHDRERR_BAD_COLUMN</a>         = 3,     <span class="comment">/* Invalid column selection. */</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b"> 1103</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b">WCSHDRERR_PARSER</a>             = 4,     <span class="comment">/* Fatal error returned by Flex</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">                                           parser. */</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508"> 1105</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508">WCSHDRERR_BAD_TABULAR_PARAMS</a> = 5      <span class="comment">/* Invalid tabular parameters. */</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> };</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment">*           - iPVn_ma and iPSn_ma for bintables and</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">*           - TPVn_ma and TPSn_ma for pixel lists</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">*           provided that the keyword does not exceed eight characters.  This</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">*           usage is considered to be safe and is recommended because of the</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">*           non-mnemonic terseness of the shorter forms.</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">*   - WCSHDO_CRPXna: For historical reasons WCS Paper I defined</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">*           - jCRPXn, iCDLTn, iCUNIn, iCTYPn, and iCRVLn for bintables and</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">*           - TCRPXn, TCDLTn, TCUNIn, TCTYPn, and TCRVLn for pixel lists</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment">*           for use without an alternate version specifier.  However, because</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment">*           of the eight-character keyword constraint, in order to accommodate</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">*           column numbers greater than 99 WCS Paper I also defined</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">*           - jCRPna, iCDEna, iCUNna, iCTYna and iCRVna for bintables and</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">*           - TCRPna, TCDEna, TCUNna, TCTYna and TCRVna for pixel lists</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">*           for use with an alternate version specifier (the "a").  Like the</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">*           PC, CD, PV, and PS keywords there is an obvious tendency to</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">*           confuse these two forms for column numbers up to 99.  It is very</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">*           unlikely that any parser would reject keywords in the first set</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">*           with a non-blank alternate version specifier so this usage is</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">*           considered to be safe and is recommended.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">*   - WCSHDO_CNAMna: WCS Papers I and III defined</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">*           - iCNAna,  iCRDna,  and iCSYna  for bintables and</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">*           - TCNAna,  TCRDna,  and TCSYna  for pixel lists</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment">*           By analogy with the above, the long forms would be</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">*           - iCNAMna, iCRDEna, and iCSYEna for bintables and</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">*           - TCNAMna, TCRDEna, and TCSYEna for pixel lists</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">*           Note that these keywords provide auxiliary information only, none</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">*           of them are needed to compute world coordinates.  This usage is</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">*           potentially unsafe and is not recommended at this time.</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">*   - WCSHDO_WCSNna: In light of wcsbth() note 4, write WCSNna instead of</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">*           TWCSna for pixel lists.  While wcsbth() treats WCSNna and TWCSna</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">*           as equivalent, other parsers may not.  Consequently, this usage</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">*           is potentially unsafe and is not recommended at this time.</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">* Global variable: const char *wcshdr_errmsg[] - Status return messages</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">* ---------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">* Error messages to match the status value returned from each function.</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">* Use wcs_errmsg[] for status returns from wcshdo().</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">*</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">*===========================================================================*/</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="preprocessor">#ifndef WCSLIB_WCSHDR</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="preprocessor">#define WCSLIB_WCSHDR</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="preprocessor">#include "<a class="code" href="wcs_8h.html">wcs.h</a>"</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> </div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a name="l01103"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a92a0007f672a5498ab1b6ccc6a4a002b"> 1103</a></span> <span class="preprocessor">#define WCSHDR_none     0x00000000</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a0b9b53e5cfd05653cbca75cf1aa8b2ed"> 1104</a></span> <span class="preprocessor">#define WCSHDR_all      0x000FFFFF</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#afd6d52bed79bd48230f651ac48eb5ca6"> 1105</a></span> <span class="preprocessor">#define WCSHDR_reject   0x10000000</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a7b0e2f1a88e02909ea6366d3a18d6a84"> 1106</a></span> <span class="preprocessor">#define WCSHDR_strict   0x20000000</span></div>
 <div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> </div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60">wcspih</a>(<span class="keywordtype">char</span> *header, <span class="keywordtype">int</span> nkeyrec, <span class="keywordtype">int</span> relax, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> *nreject,</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>            <span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> </div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633">wcsbth</a>(<span class="keywordtype">char</span> *header, <span class="keywordtype">int</span> nkeyrec, <span class="keywordtype">int</span> relax, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> keysel,</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>            <span class="keywordtype">int</span> *colsel, <span class="keywordtype">int</span> *nreject, <span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a6dd857f7b61a5b349cc8af5a4b6d8a1c">wcstab</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> </div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a6174a483baad91dae3fa1c30b0e4cde5">wcsidx</a>(<span class="keywordtype">int</span> nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs, <span class="keywordtype">int</span> alts[27]);</div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> </div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a16e35904c64fe6b0aab144bd022c722f">wcsbdx</a>(<span class="keywordtype">int</span> nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs, <span class="keywordtype">int</span> type, <span class="keywordtype">short</span> alts[1000][28]);</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> </div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a27465844aaeea0623133f8151ca4fd9b">wcsvfree</a>(<span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a0b8372e555a2e2bcc63a11f3dc7a1bf6">wcshdo</a>(<span class="keywordtype">int</span> relax, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> *nkeyrec, <span class="keywordtype">char</span> **header);</div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> </div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> </div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> }</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCSHDR */</span><span class="preprocessor"></span></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f">WCSHDRERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1101</div></div>
+<div class="line"><a name="l01108"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a017f1e817bdb2114ba765e7a9ef73bac"> 1108</a></span> <span class="preprocessor">#define WCSHDR_CROTAia  0x00000001</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a5feeef18919b1cbb79729bbfa75976ec"> 1109</a></span> <span class="preprocessor">#define WCSHDR_EPOCHa   0x00000002</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#afc0a5a6b475a8e50b77d4be099790985"> 1110</a></span> <span class="preprocessor">#define WCSHDR_VELREFa  0x00000004</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a63eb554461f3df5dc64a25f71891b9f1"> 1111</a></span> <span class="preprocessor">#define WCSHDR_CD00i00j 0x00000008</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a3dea9d7548bdbc9a7cc8d0a04cdd46fb"> 1112</a></span> <span class="preprocessor">#define WCSHDR_PC00i00j 0x00000010</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aee4fe41274945f9e34009d2eb309c922"> 1113</a></span> <span class="preprocessor">#define WCSHDR_PROJPn   0x00000020</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a859baeb46a09ce21b6dbff40fe6c8f4a"> 1114</a></span> <span class="preprocessor">#define WCSHDR_CD0i_0ja 0x00000040</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aa2e6d72be227da4c8c7d6d47a7274e59"> 1115</a></span> <span class="preprocessor">#define WCSHDR_PC0i_0ja 0x00000080</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#af84f778ea111ae655505a1899a06b063"> 1116</a></span> <span class="preprocessor">#define WCSHDR_PV0i_0ma 0x00000100</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae695c1dc3fb7785cdaa24e2fcc906074"> 1117</a></span> <span class="preprocessor">#define WCSHDR_PS0i_0ma 0x00000200</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a1d506ef2ad493a963426e0732a6328ca"> 1118</a></span> <span class="preprocessor">#define WCSHDR_RADECSYS 0x00000400</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a1b66d50d7f1927222a170bc88f9db51e"> 1119</a></span> <span class="preprocessor">#define WCSHDR_VSOURCE  0x00000800</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#adff9a101a373a634f3a1baab29e92534"> 1120</a></span> <span class="preprocessor">#define WCSHDR_DOBSn    0x00001000</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae8a768f544fe3ae81436b73dca3099fb"> 1121</a></span> <span class="preprocessor">#define WCSHDR_LONGKEY  0x00002000</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#adf57a609a5c3f7288452cce86210260e"> 1122</a></span> <span class="preprocessor">#define WCSHDR_CNAMn    0x00004000</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a0e8eb873389e9c15bd6079a96c41ad60"> 1123</a></span> <span class="preprocessor">#define WCSHDR_AUXIMG   0x00008000</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a33d67fd81c52448aead9e09f32ba9cca"> 1124</a></span> <span class="preprocessor">#define WCSHDR_ALLIMG   0x00010000</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div>
+<div class="line"><a name="l01126"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ab65e929c7d525d735ae240046d4f0d9c"> 1126</a></span> <span class="preprocessor">#define WCSHDR_IMGHEAD  0x00100000</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aa7c5021293b0db20ece0e82c3702a159"> 1127</a></span> <span class="preprocessor">#define WCSHDR_BIMGARR  0x00200000</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a7bf13ab87b23ecdbbb4b4847d4944070"> 1128</a></span> <span class="preprocessor">#define WCSHDR_PIXLIST  0x00400000</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> </div>
+<div class="line"><a name="l01130"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a54634ed49425e8842874e9e2b77899df"> 1130</a></span> <span class="preprocessor">#define WCSHDO_none     0x00</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a5592649ee4c25e118559c6d283c51930"> 1131</a></span> <span class="preprocessor">#define WCSHDO_all      0xFF</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a446914676e0b3f55ac6a080015a52b43"> 1132</a></span> <span class="preprocessor">#define WCSHDO_safe     0x0F</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a6779d48001260a0011b3dcffdcb64cb6"> 1133</a></span> <span class="preprocessor">#define WCSHDO_DOBSn    0x01</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a96b787f84207faa42599e50e6e078d21"> 1134</a></span> <span class="preprocessor">#define WCSHDO_TPCn_ka  0x02</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a222a5bd7659f3e1ea1a9ed21f54c50ef"> 1135</a></span> <span class="preprocessor">#define WCSHDO_PVn_ma   0x04</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#aace96fb8c1499616dd1333af3e8340b0"> 1136</a></span> <span class="preprocessor">#define WCSHDO_CRPXna   0x08</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a95325b53ebd8d7d0a371a65b27b3d04a"> 1137</a></span> <span class="preprocessor">#define WCSHDO_CNAMna   0x10</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#a9a70ad2a355a9736711d8017535bf72b"> 1138</a></span> <span class="preprocessor">#define WCSHDO_WCSNna   0x20</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="wcshdr_8h.html#a06cd9297f8315235ba1cf13d1cc115e1">wcshdr_errmsg</a>[];</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> </div>
+<div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae"> 1143</a></span> <span class="keyword">enum</span> <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae">wcshdr_errmsg_enum</a> {</div>
+<div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1"> 1144</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1">WCSHDRERR_SUCCESS</a>            = 0,     <span class="comment">/* Success. */</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded"> 1145</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded">WCSHDRERR_NULL_POINTER</a>       = 1,     <span class="comment">/* Null wcsprm pointer passed. */</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f"> 1146</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f">WCSHDRERR_MEMORY</a>             = 2,     <span class="comment">/* Memory allocation failed. */</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459"> 1147</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459">WCSHDRERR_BAD_COLUMN</a>         = 3,     <span class="comment">/* Invalid column selection. */</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b"> 1148</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b">WCSHDRERR_PARSER</a>             = 4,     <span class="comment">/* Fatal error returned by Flex</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">                                           parser. */</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"><a class="line" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508"> 1150</a></span>   <a class="code" href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508">WCSHDRERR_BAD_TABULAR_PARAMS</a> = 5      <span class="comment">/* Invalid tabular parameters. */</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> };</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> </div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60">wcspih</a>(<span class="keywordtype">char</span> *header, <span class="keywordtype">int</span> nkeyrec, <span class="keywordtype">int</span> relax, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> *nreject,</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>            <span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633">wcsbth</a>(<span class="keywordtype">char</span> *header, <span class="keywordtype">int</span> nkeyrec, <span class="keywordtype">int</span> relax, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> keysel,</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>            <span class="keywordtype">int</span> *colsel, <span class="keywordtype">int</span> *nreject, <span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> </div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a6dd857f7b61a5b349cc8af5a4b6d8a1c">wcstab</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs);</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> </div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a6174a483baad91dae3fa1c30b0e4cde5">wcsidx</a>(<span class="keywordtype">int</span> nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs, <span class="keywordtype">int</span> alts[27]);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> </div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a16e35904c64fe6b0aab144bd022c722f">wcsbdx</a>(<span class="keywordtype">int</span> nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs, <span class="keywordtype">int</span> type, <span class="keywordtype">short</span> alts[1000][28]);</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a27465844aaeea0623133f8151ca4fd9b">wcsvfree</a>(<span class="keywordtype">int</span> *nwcs, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> **wcs);</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> </div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="keywordtype">int</span> <a class="code" href="wcshdr_8h.html#a0b8372e555a2e2bcc63a11f3dc7a1bf6">wcshdo</a>(<span class="keywordtype">int</span> relax, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html">wcsprm</a> *wcs, <span class="keywordtype">int</span> *nkeyrec, <span class="keywordtype">char</span> **header);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> </div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> </div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> }</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> </div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCSHDR */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0a858638ef0dd0dc9b529f98b14cc46f">WCSHDRERR_MEMORY</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1146</div></div>
 <div class="ttc" id="wcshdr_8h_html_a27465844aaeea0623133f8151ca4fd9b"><div class="ttname"><a href="wcshdr_8h.html#a27465844aaeea0623133f8151ca4fd9b">wcsvfree</a></div><div class="ttdeci">int wcsvfree(int *nwcs, struct wcsprm **wcs)</div><div class="ttdoc">Free the array of wcsprm structs. </div></div>
 <div class="ttc" id="wcshdr_8h_html_a06cd9297f8315235ba1cf13d1cc115e1"><div class="ttname"><a href="wcshdr_8h.html#a06cd9297f8315235ba1cf13d1cc115e1">wcshdr_errmsg</a></div><div class="ttdeci">const char * wcshdr_errmsg[]</div><div class="ttdoc">Status return messages. </div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b">WCSHDRERR_PARSER</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1103</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea218297c7a2a4d405c251e9ed239e615b">WCSHDRERR_PARSER</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1148</div></div>
 <div class="ttc" id="wcshdr_8h_html_ac75623ee805ab7d43b0bba684c719a60"><div class="ttname"><a href="wcshdr_8h.html#ac75623ee805ab7d43b0bba684c719a60">wcspih</a></div><div class="ttdeci">int wcspih(char *header, int nkeyrec, int relax, int ctrl, int *nreject, int *nwcs, struct wcsprm **wcs)</div><div class="ttdoc">FITS WCS parser routine for image headers. </div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdae"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae">wcshdr_errmsg_enum</a></div><div class="ttdeci">wcshdr_errmsg_enum</div><div class="ttdef"><b>Definition:</b> wcshdr.h:1098</div></div>
-<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1460</div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1">WCSHDRERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1099</div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded">WCSHDRERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1100</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdae"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdae">wcshdr_errmsg_enum</a></div><div class="ttdeci">wcshdr_errmsg_enum</div><div class="ttdef"><b>Definition:</b> wcshdr.h:1143</div></div>
+<div class="ttc" id="structwcsprm_html"><div class="ttname"><a href="structwcsprm.html">wcsprm</a></div><div class="ttdoc">Coordinate transformation parameters. </div><div class="ttdef"><b>Definition:</b> wcs.h:1562</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeabfe69dd9e4c486f856a5dc44b02e79a1">WCSHDRERR_SUCCESS</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1144</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea99dd31e274ec97542e650ff89357cded">WCSHDRERR_NULL_POINTER</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1145</div></div>
 <div class="ttc" id="wcshdr_8h_html_a16e35904c64fe6b0aab144bd022c722f"><div class="ttname"><a href="wcshdr_8h.html#a16e35904c64fe6b0aab144bd022c722f">wcsbdx</a></div><div class="ttdeci">int wcsbdx(int nwcs, struct wcsprm **wcs, int type, short alts[1000][28])</div><div class="ttdoc">Index alternate coordinate representions. </div></div>
 <div class="ttc" id="wcshdr_8h_html_adc053d80a9c4da454a52eed34e123633"><div class="ttname"><a href="wcshdr_8h.html#adc053d80a9c4da454a52eed34e123633">wcsbth</a></div><div class="ttdeci">int wcsbth(char *header, int nkeyrec, int relax, int ctrl, int keysel, int *colsel, int *nreject, int *nwcs, struct wcsprm **wcs)</div><div class="ttdoc">FITS WCS parser routine for binary table and image headers. </div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459">WCSHDRERR_BAD_COLUMN</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1102</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaea0c926e2cc98a8c39585aa0e212423459">WCSHDRERR_BAD_COLUMN</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1147</div></div>
 <div class="ttc" id="wcs_8h_html"><div class="ttname"><a href="wcs_8h.html">wcs.h</a></div></div>
-<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508">WCSHDRERR_BAD_TABULAR_PARAMS</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1105</div></div>
+<div class="ttc" id="wcshdr_8h_html_ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508"><div class="ttname"><a href="wcshdr_8h.html#ae2dfc36c150d3a16a5e83131d32ecdaeaeae58359638c0c631e6c7c573a343508">WCSHDRERR_BAD_TABULAR_PARAMS</a></div><div class="ttdef"><b>Definition:</b> wcshdr.h:1150</div></div>
 <div class="ttc" id="wcshdr_8h_html_a6dd857f7b61a5b349cc8af5a4b6d8a1c"><div class="ttname"><a href="wcshdr_8h.html#a6dd857f7b61a5b349cc8af5a4b6d8a1c">wcstab</a></div><div class="ttdeci">int wcstab(struct wcsprm *wcs)</div><div class="ttdoc">Tabular construction routine. </div></div>
 <div class="ttc" id="wcshdr_8h_html_a6174a483baad91dae3fa1c30b0e4cde5"><div class="ttname"><a href="wcshdr_8h.html#a6174a483baad91dae3fa1c30b0e4cde5">wcsidx</a></div><div class="ttdeci">int wcsidx(int nwcs, struct wcsprm **wcs, int alts[27])</div><div class="ttdoc">Index alternate coordinate representations. </div></div>
 <div class="ttc" id="wcshdr_8h_html_a0b8372e555a2e2bcc63a11f3dc7a1bf6"><div class="ttname"><a href="wcshdr_8h.html#a0b8372e555a2e2bcc63a11f3dc7a1bf6">wcshdo</a></div><div class="ttdeci">int wcshdo(int relax, struct wcsprm *wcs, int *nkeyrec, char **header)</div><div class="ttdoc">Write out a wcsprm struct as a FITS header. </div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcslib_8h.html b/html/wcslib_8h.html
index f0d8c64..d8835c7 100644
--- a/html/wcslib_8h.html
+++ b/html/wcslib_8h.html
@@ -48,6 +48,7 @@
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include "<a class="el" href="cel_8h_source.html">cel.h</a>"</code><br />
+<code>#include "<a class="el" href="dis_8h_source.html">dis.h</a>"</code><br />
 <code>#include "<a class="el" href="fitshdr_8h_source.html">fitshdr.h</a>"</code><br />
 <code>#include "<a class="el" href="lin_8h_source.html">lin.h</a>"</code><br />
 <code>#include "<a class="el" href="log_8h_source.html">log.h</a>"</code><br />
@@ -72,7 +73,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcslib_8h_source.html b/html/wcslib_8h_source.html
index 3abb139..3870be0 100644
--- a/html/wcslib_8h_source.html
+++ b/html/wcslib_8h_source.html
@@ -49,7 +49,7 @@
 <div class="contents">
 <a href="wcslib_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -71,10 +71,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcslib.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcslib.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">* Summary of wcslib.h</span></div>
@@ -88,70 +88,72 @@
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="preprocessor">#define WCSLIB_WCSLIB</span></div>
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="preprocessor">#include "<a class="code" href="cel_8h.html">cel.h</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "<a class="code" href="fitshdr_8h.html">fitshdr.h</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="preprocessor">#include "<a class="code" href="lin_8h.html">lin.h</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="preprocessor">#include "<a class="code" href="log_8h.html">log.h</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="preprocessor">#include "<a class="code" href="prj_8h.html">prj.h</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="preprocessor">#include "<a class="code" href="spc_8h.html">spc.h</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">#include "<a class="code" href="sph_8h.html">sph.h</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor">#include "<a class="code" href="spx_8h.html">spx.h</a>"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="preprocessor">#include "<a class="code" href="tab_8h.html">tab.h</a>"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="preprocessor">#include "<a class="code" href="wcs_8h.html">wcs.h</a>"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="preprocessor">#include "<a class="code" href="wcsfix_8h.html">wcsfix.h</a>"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="preprocessor">#include "<a class="code" href="wcshdr_8h.html">wcshdr.h</a>"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="preprocessor">#include "<a class="code" href="wcsmath_8h.html">wcsmath.h</a>"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="preprocessor">#include "<a class="code" href="wcsprintf_8h.html">wcsprintf.h</a>"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="preprocessor">#include "<a class="code" href="wcstrig_8h.html">wcstrig.h</a>"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="preprocessor">#include "<a class="code" href="wcsunits_8h.html">wcsunits.h</a>"</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="preprocessor">#include "<a class="code" href="wcsutil_8h.html">wcsutil.h</a>"</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCSLIB */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>   <a class="code" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a>(1);</div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>   <a class="code" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6">wcsprintf_set</a>(stderr);</div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> </div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>   ...</div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> </div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>   <span class="keywordflow">if</span> (<a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(&wcs) {</div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>     <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>(&wcs);</div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>     <span class="keywordflow">return</span> wcs.err->status;</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>   }</div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="keyword">@end</span>verbatim</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> In <span class="keyword">this</span> example, <span class="keywordflow">if</span> an error was generated in one of the <a class="code" href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f">prjset</a>() functions,</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>() would print an error traceback starting with <a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(), then</div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <a class="code" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a>(), and finally the particular projection-setting function that</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> generated the error.  For each of them it would print the status return value,</div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> function name, source file, line number, and an error message which may be</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> more specific and informative than the general error messages reported in the</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> first example.  For example, in response to a deliberately generated error,</div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> the @c twcs test program, which tests <a class="code" href="structwcserr.html">wcserr</a> among other things, produces a</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> traceback similar to this:</div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> @verbatim</div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> ERROR 5 in wcsset() at line 1564 of file wcs.c:</div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>   Invalid parameter value.</div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> ERROR 2 in celset() at line 196 of file cel.c:</div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>   Invalid projection parameters.</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> ERROR 2 in <a class="code" href="prj_8h.html#aaec02a8e47d68e126983e9bb07a0c0aa">bonset</a>() at line 5727 of file prj.c:</div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>   Invalid parameters for Bonne's projection.</div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> @endverbatim</div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> Each of the @ref structs "structs" in @ref overview "WCSLIB" includes a</div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> pointer, called @a err, to a <a class="code" href="structwcserr.html">wcserr</a> struct.  When an error occurs, a struct is</div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> allocated and error information stored in it.  The <a class="code" href="structwcserr.html">wcserr</a> pointers and the</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> @ref memory "memory" allocated for them are managed by the routines that</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> manage the various structs such as <a class="code" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcsini</a>() and <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>().</div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> </div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <a class="code" href="structwcserr.html">wcserr</a> messaging is an opt-in system enabled via <a class="code" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a>(), as in the</div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> example above.  If enabled, when an error occurs it is the user's</div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> responsibility to free the memory allocated for the error message using</div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>(), <a class="code" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a>(), <a class="code" href="prj_8h.html#a50db1538981df162709b81be0b2961ab">prjfree</a>(), etc.  Failure to do so before the struct goes</div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> out of scope will result in memory leaks (if execution continues beyond the</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> error).</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> */</div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> </div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "<a class="code" href="dis_8h.html">dis.h</a>"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="preprocessor">#include "<a class="code" href="fitshdr_8h.html">fitshdr.h</a>"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="preprocessor">#include "<a class="code" href="lin_8h.html">lin.h</a>"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="preprocessor">#include "<a class="code" href="log_8h.html">log.h</a>"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="preprocessor">#include "<a class="code" href="prj_8h.html">prj.h</a>"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">#include "<a class="code" href="spc_8h.html">spc.h</a>"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor">#include "<a class="code" href="sph_8h.html">sph.h</a>"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="preprocessor">#include "<a class="code" href="spx_8h.html">spx.h</a>"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="preprocessor">#include "<a class="code" href="tab_8h.html">tab.h</a>"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="preprocessor">#include "<a class="code" href="wcs_8h.html">wcs.h</a>"</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="preprocessor">#include "<a class="code" href="wcsfix_8h.html">wcsfix.h</a>"</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="preprocessor">#include "<a class="code" href="wcshdr_8h.html">wcshdr.h</a>"</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="preprocessor">#include "<a class="code" href="wcsmath_8h.html">wcsmath.h</a>"</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="preprocessor">#include "<a class="code" href="wcsprintf_8h.html">wcsprintf.h</a>"</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="preprocessor">#include "<a class="code" href="wcstrig_8h.html">wcstrig.h</a>"</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="preprocessor">#include "<a class="code" href="wcsunits_8h.html">wcsunits.h</a>"</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="preprocessor">#include "<a class="code" href="wcsutil_8h.html">wcsutil.h</a>"</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCSLIB */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>   <a class="code" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a>(1);</div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>   <a class="code" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6">wcsprintf_set</a>(stderr);</div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span> </div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>   ...</div>
+<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span> </div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>   <span class="keywordflow">if</span> (<a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(&wcs) {</div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>     <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>(&wcs);</div>
+<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>     <span class="keywordflow">return</span> wcs.err->status;</div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>   }</div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span> <span class="keyword">@end</span>verbatim</div>
+<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span> In <span class="keyword">this</span> example, <span class="keywordflow">if</span> an error was generated in one of the <a class="code" href="prj_8h.html#ad43dbc765c63162d0af2b9285b8a434f">prjset</a>() functions,</div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span> <a class="code" href="wcs_8h.html#a8fe5dcd9927240dc0348b850ee662367">wcsperr</a>() would print an error traceback starting with <a class="code" href="wcs_8h.html#ae5cc3f5d249755583403cdf54d2ebb91">wcsset</a>(), then</div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span> <a class="code" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a>(), and finally the particular projection-setting function that</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span> generated the error.  For each of them it would print the status return value,</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span> function name, source file, line number, and an error message which may be</div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span> more specific and informative than the general error messages reported in the</div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span> first example.  For example, in response to a deliberately generated error,</div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span> the @c twcs test program, which tests <a class="code" href="structwcserr.html">wcserr</a> among other things, produces a</div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span> traceback similar to this:</div>
+<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span> @verbatim</div>
+<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span> ERROR 5 in wcsset() at line 1564 of file wcs.c:</div>
+<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>   Invalid parameter value.</div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span> ERROR 2 in celset() at line 196 of file cel.c:</div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>   Invalid projection parameters.</div>
+<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span> ERROR 2 in <a class="code" href="prj_8h.html#aaec02a8e47d68e126983e9bb07a0c0aa">bonset</a>() at line 5727 of file prj.c:</div>
+<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>   Invalid parameters for Bonne's projection.</div>
+<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span> @endverbatim</div>
+<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span> </div>
+<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span> Each of the @ref structs "structs" in @ref overview "WCSLIB" includes a</div>
+<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span> pointer, called @a err, to a <a class="code" href="structwcserr.html">wcserr</a> struct.  When an error occurs, a struct is</div>
+<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span> allocated and error information stored in it.  The <a class="code" href="structwcserr.html">wcserr</a> pointers and the</div>
+<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span> @ref memory "memory" allocated for them are managed by the routines that</div>
+<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span> manage the various structs such as <a class="code" href="wcs_8h.html#a2afc8255fde0965dddaa374463666d45">wcsini</a>() and <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>().</div>
+<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span> </div>
+<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span> <a class="code" href="structwcserr.html">wcserr</a> messaging is an opt-in system enabled via <a class="code" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a>(), as in the</div>
+<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span> example above.  If enabled, when an error occurs it is the user's</div>
+<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span> responsibility to free the memory allocated for the error message using</div>
+<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span> <a class="code" href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a>(), <a class="code" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a>(), <a class="code" href="prj_8h.html#a50db1538981df162709b81be0b2961ab">prjfree</a>(), etc.  Failure to do so before the struct goes</div>
+<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span> out of scope will result in memory leaks (if execution continues beyond the</div>
+<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span> error).</div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span> */</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span> </div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span> </div>
 <div class="ttc" id="wcs_8h_html_a4ab38bc642c4656f62c43acf84a849f1"><div class="ttname"><a href="wcs_8h.html#a4ab38bc642c4656f62c43acf84a849f1">wcsfree</a></div><div class="ttdeci">int wcsfree(struct wcsprm *wcs)</div><div class="ttdoc">Destructor for the wcsprm struct. </div></div>
+<div class="ttc" id="dis_8h_html"><div class="ttname"><a href="dis_8h.html">dis.h</a></div></div>
 <div class="ttc" id="wcshdr_8h_html"><div class="ttname"><a href="wcshdr_8h.html">wcshdr.h</a></div></div>
 <div class="ttc" id="lin_8h_html"><div class="ttname"><a href="lin_8h.html">lin.h</a></div></div>
 <div class="ttc" id="cel_8h_html"><div class="ttname"><a href="cel_8h.html">cel.h</a></div></div>
@@ -184,7 +186,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsmath_8h.html b/html/wcsmath_8h.html
index eef1b05..68b8dfc 100644
--- a/html/wcsmath_8h.html
+++ b/html/wcsmath_8h.html
@@ -177,7 +177,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsmath_8h_source.html b/html/wcsmath_8h_source.html
index ae55b90..32292f4 100644
--- a/html/wcsmath_8h_source.html
+++ b/html/wcsmath_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcsmath_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,7 +75,7 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsmath.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsmath.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* Summary of wcsmath.h</span></div>
@@ -124,7 +124,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsprintf_8h.html b/html/wcsprintf_8h.html
index 27c2f6f..7504bc9 100644
--- a/html/wcsprintf_8h.html
+++ b/html/wcsprintf_8h.html
@@ -249,7 +249,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsprintf_8h_source.html b/html/wcsprintf_8h_source.html
index 1afa1d9..e98a1a7 100644
--- a/html/wcsprintf_8h_source.html
+++ b/html/wcsprintf_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcsprintf_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsprintf.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsprintf.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">* Summary of the wcsprintf routines</span></div>
@@ -208,7 +208,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcstrig_8h.html b/html/wcstrig_8h.html
index 22abbbc..0768e4a 100644
--- a/html/wcstrig_8h.html
+++ b/html/wcstrig_8h.html
@@ -354,7 +354,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcstrig_8h_source.html b/html/wcstrig_8h_source.html
index faa6234..477b134 100644
--- a/html/wcstrig_8h_source.html
+++ b/html/wcstrig_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcstrig_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,7 +75,7 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcstrig.h,v 4.25.1.3 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcstrig.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* Summary of the wcstrig routines</span></div>
@@ -275,7 +275,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsunits_8h.html b/html/wcsunits_8h.html
index 46f3896..8b26948 100644
--- a/html/wcsunits_8h.html
+++ b/html/wcsunits_8h.html
@@ -896,7 +896,7 @@ Function types log(), ln() and exp() may only occur at the start of the units sp
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsunits_8h_source.html b/html/wcsunits_8h_source.html
index 9167d38..5fe6c27 100644
--- a/html/wcsunits_8h_source.html
+++ b/html/wcsunits_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcsunits_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,10 +75,10 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsunits.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsunits.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 4.25 - C routines that implement the FITS World Coordinate System</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* WCSLIB 5.0 - C routines that implement the FITS World Coordinate System</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">* (WCS) standard.  Refer to</span></div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">*   "Representations of world coordinates in FITS",</span></div>
@@ -490,7 +490,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsutil_8h.html b/html/wcsutil_8h.html
index dc33bde..cf70496 100644
--- a/html/wcsutil_8h.html
+++ b/html/wcsutil_8h.html
@@ -644,7 +644,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/html/wcsutil_8h_source.html b/html/wcsutil_8h_source.html
index 71f3774..4969adb 100644
--- a/html/wcsutil_8h_source.html
+++ b/html/wcsutil_8h_source.html
@@ -53,7 +53,7 @@
 <div class="contents">
 <a href="wcsutil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">/*============================================================================</span></div>
 <div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment"></span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 4.25 - an implementation of the FITS WCS standard.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">  WCSLIB 5.0 - an implementation of the FITS WCS standard.</span></div>
 <div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">  Copyright (C) 1995-2015, Mark Calabretta</span></div>
 <div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment"></span></div>
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">  This file is part of WCSLIB.</span></div>
@@ -75,7 +75,7 @@
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">  http://www.atnf.csiro.au/people/Mark.Calabretta</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsutil.h,v 4.25.1.2 2015/01/06 01:01:06 mcalabre Exp mcalabre $</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">  $Id: wcsutil.h,v 5.0 2015/04/05 09:18:13 mcalabre Exp $</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">*=============================================================================</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">*</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">* Summary of the wcsutil routines</span></div>
@@ -412,7 +412,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 6 2015 12:18:19 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
+Generated on Sun Apr 5 2015 19:18:31 for WCSLIB by  <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.9.1
 </small></address>
diff --git a/makedefs.in b/makedefs.in
index 770ffb3..1249c9e 100644
--- a/makedefs.in
+++ b/makedefs.in
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile definitions for building WCSLIB 4.25
+# GNU makefile definitions for building WCSLIB 5.0
 #
 # makedefs is generated from makedefs.in by configure.  It contains variable
 # definitions and some general-purpose rules for building WCSLIB.
@@ -39,11 +39,11 @@
 #      compiled separately without this option.
 #
 #      The shared library will be installed with version number, e.g. as
-#      libwcs.so.4.25 or libwcs.4.25.dylib with or without the symlink
+#      libwcs.so.5.0 or libwcs.5.0.dylib with or without the symlink
 #      required to make it visible to the linker (controlled by the SHRLN
 #      variable).  On Macs it is deliberately not created because its very
 #      existence precludes static linking with the cctools linker.  You can
-#      still link dynamically by using -lwcs.4.25.
+#      still link dynamically by using -lwcs.5.0.
 #
 #   4) PGPLOT is Tim Pearson's Fortran graphics library with separate C
 #      interface available from astro.caltech.edu.  It is only required by
@@ -74,7 +74,7 @@
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: makedefs.in,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+# $Id: makedefs.in,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Version.
   LIBVER    := @LIBVER@
diff --git a/pgsbox/GNUmakefile b/pgsbox/GNUmakefile
index edcbfd3..4cd1688 100644
--- a/pgsbox/GNUmakefile
+++ b/pgsbox/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for building PGSBOX 4.25
+# GNU makefile for building PGSBOX 5.0
 #
 # Summary of the main targets
 # ---------------------------
@@ -26,12 +26,12 @@
 #      instead and re-run configure.
 #
 #   2) In compiling the test programs, this makefile assumes that the
-#      WCSLIB 4.25 sources reside in ../C and ../Fortran (as in the
+#      WCSLIB 5.0 sources reside in ../C and ../Fortran (as in the
 #      distribution kit).
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.1 2014/12/14 14:32:48 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include ../makedefs
diff --git a/pgsbox/cpgsbox.c b/pgsbox/cpgsbox.c
index 5abf838..cf0d42d 100644
--- a/pgsbox/cpgsbox.c
+++ b/pgsbox/cpgsbox.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+  PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
   Copyright (C) 1997-2015, Mark Calabretta
 
   This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cpgsbox.c,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+  $Id: cpgsbox.c,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 #include <string.h>
diff --git a/pgsbox/cpgsbox.h b/pgsbox/cpgsbox.h
index a12e9e3..6d8e65e 100644
--- a/pgsbox/cpgsbox.h
+++ b/pgsbox/cpgsbox.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+  PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
   Copyright (C) 1997-2015, Mark Calabretta
 
   This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cpgsbox.h,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+  $Id: cpgsbox.h,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=============================================================================
 *
 * cpgsbox() and cpglbox() are C wrappers for PGSBOX and PGLBOX.  Refer to the
diff --git a/pgsbox/cpgtest.c b/pgsbox/cpgtest.c
index 762bb22..e0e9281 100644
--- a/pgsbox/cpgtest.c
+++ b/pgsbox/cpgtest.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+  PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
   Copyright (C) 1997-2015, Mark Calabretta
 
   This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: cpgtest.c,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+  $Id: cpgtest.c,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=============================================================================
 *
 *   cpgtest
diff --git a/pgsbox/fscan.f b/pgsbox/fscan.f
index 6ce32a8..d719d30 100644
--- a/pgsbox/fscan.f
+++ b/pgsbox/fscan.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+* PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
 * Copyright (C) 1997-2015, Mark Calabretta
 *
 * This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: fscan.f,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+* $Id: fscan.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 *
 * FSCAN defines an azimuth/frequency coordinate system for PGSBOX.
diff --git a/pgsbox/lngvel.f b/pgsbox/lngvel.f
index 8f2a786..c5f0d45 100644
--- a/pgsbox/lngvel.f
+++ b/pgsbox/lngvel.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+* PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
 * Copyright (C) 1997-2015, Mark Calabretta
 *
 * This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: lngvel.f,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+* $Id: lngvel.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 *
 * LNGVEL defines a longitude/velocity coordinate system for PGSBOX.
diff --git a/pgsbox/pgcrfn.f b/pgsbox/pgcrfn.f
index 0cedf71..00ba7f1 100644
--- a/pgsbox/pgcrfn.f
+++ b/pgsbox/pgcrfn.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+* PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
 * Copyright (C) 1997-2015, Mark Calabretta
 *
 * This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: pgcrfn.f,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+* $Id: pgcrfn.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 *
 * PGCRFN defines separable pairs of non-linear coordinate systems for
diff --git a/pgsbox/pgcrvl.f b/pgsbox/pgcrvl.f
index c635a10..32d00c5 100644
--- a/pgsbox/pgcrvl.f
+++ b/pgsbox/pgcrvl.f
@@ -1,5 +1,5 @@
 *=======================================================================
-*                              PGSBOX 4.25
+*                              PGSBOX 5.0
 *-----------------------------------------------------------------------
 *
 * ATTENTION!
@@ -21,7 +21,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: pgcrvl.f,v 4.25.1.1 2014/12/14 14:32:48 mcalabre Exp mcalabre $
+* $Id: pgcrvl.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
       SUBROUTINE PGCRVL (AXEN, IDENTS, OPT, LABCTL, LABDEN, CI, GCODE,
      :   TIKLEN, NG1, GRID1, NG2, GRID2, DOEQ, NLFUNC, NLC, NLI, NLD,
diff --git a/pgsbox/pgsbox.f b/pgsbox/pgsbox.f
index ccac1d8..3ed3774 100644
--- a/pgsbox/pgsbox.f
+++ b/pgsbox/pgsbox.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+* PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
 * Copyright (C) 1997-2015, Mark Calabretta
 *
 * This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: pgsbox.f,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+* $Id: pgsbox.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
 *
 * PGSBOX draws and labels a curvilinear coordinate grid.  The caller
@@ -1958,7 +1958,7 @@
           IWRLD = NINT(CACHE(3,J))
           IF (.NOT.SEXA(IWRLD)) GO TO 210
 
-          L = NINT(100*MOD(CACHE(1,J),1.0)) - 10
+          L = NINT(100*MOD(CACHE(1,J),1D0)) - 10
           IF (L.LE.LMAG(IWRLD)) THEN
 *           Wanted.
             CACHE(1,J) = EDGE
diff --git a/pgsbox/pgtest.f b/pgsbox/pgtest.f
index 29862a1..5d96e20 100644
--- a/pgsbox/pgtest.f
+++ b/pgsbox/pgtest.f
@@ -1,6 +1,6 @@
 *=======================================================================
 *
-* PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+* PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
 * Copyright (C) 1997-2015, Mark Calabretta
 *
 * This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: pgtest.f,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+* $Id: pgtest.f,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=======================================================================
       PROGRAM PGTEST
 *=======================================================================
diff --git a/pgsbox/pgwcsl.c b/pgsbox/pgwcsl.c
index 45c87f4..d8b5193 100644
--- a/pgsbox/pgwcsl.c
+++ b/pgsbox/pgwcsl.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+  PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
   Copyright (C) 1997-2015, Mark Calabretta
 
   This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: pgwcsl.c,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+  $Id: pgwcsl.c,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/pgsbox/pgwcsl.h b/pgsbox/pgwcsl.h
index ef4b943..fed6ad1 100644
--- a/pgsbox/pgwcsl.h
+++ b/pgsbox/pgwcsl.h
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  PGSBOX 4.25 - draw curvilinear coordinate axes for PGPLOT.
+  PGSBOX 5.0 - draw curvilinear coordinate axes for PGPLOT.
   Copyright (C) 1997-2015, Mark Calabretta
 
   This file is part of PGSBOX.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: pgwcsl.h,v 4.25.1.2 2015/01/06 01:03:14 mcalabre Exp mcalabre $
+  $Id: pgwcsl.h,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *=============================================================================
 *
 *   pgwcsl_() is an NLFUNC for PGSBOX that defines curvilinear celestial
diff --git a/utils/GNUmakefile b/utils/GNUmakefile
index 6ec9261..5a642ec 100644
--- a/utils/GNUmakefile
+++ b/utils/GNUmakefile
@@ -1,5 +1,5 @@
 #-----------------------------------------------------------------------------
-# GNU makefile for WCSLIB 4.25 utilities: fitshdr, HPXcvt, wcsgrid and wcsware.
+# GNU makefile for WCSLIB 5.0 utilities: fitshdr, HPXcvt, wcsgrid and wcsware.
 #
 # Summary of the main targets
 # ---------------------------
@@ -12,12 +12,12 @@
 #   1: If you need to make changes then preferably modify ../makedefs.in
 #      instead and re-run configure.
 #
-#   2: In compiling these utilities, this makefile assumes that the WCSLIB 4.25
+#   2: In compiling these utilities, this makefile assumes that the WCSLIB 5.0
 #      sources reside in ../{pgsbox,C} (as in the distribution kit).
 #
 # Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 # http://www.atnf.csiro.au/people/Mark.Calabretta
-# $Id: GNUmakefile,v 4.25.1.1 2014/12/14 14:32:48 mcalabre Exp mcalabre $
+# $Id: GNUmakefile,v 5.0 2015/04/05 09:18:17 mcalabre Exp $
 #-----------------------------------------------------------------------------
 # Get configure settings.
 include ../makedefs
@@ -131,11 +131,11 @@ fitshdr.1 : fitshdr
 
 wcsware.1 : wcsware
 	help2man --no-discard-stderr --version-string=$(LIBVER) \
-	  -n "Extract WCS keywords for an image" -N ./$< > $@
+	  -n "Extract FITS WCS keywords for an image" -N ./$< > $@
 
 wcsgrid.1 : wcsgrid
 	help2man --no-discard-stderr --version-string=$(LIBVER) \
-	  -n "Extract WCS keywords for an image" -N ./$< > $@
+	  -n "Extract FITS WCS keywords and plot graticule" -N ./$< > $@
 
 HPXcvt.1 : HPXcvt
 	help2man --no-discard-stderr --version-string=$(LIBVER) \
diff --git a/utils/HPXcvt.1 b/utils/HPXcvt.1
index 69176b8..d7c0e10 100644
--- a/utils/HPXcvt.1
+++ b/utils/HPXcvt.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH HPXCVT "1" "January 2015" "HPXcvt 4.25.1" "User Commands"
+.TH HPXCVT "1" "April 2015" "HPXcvt 5.0" "User Commands"
 .SH NAME
 HPXcvt \- Reorganise HEALPix data into a 2-D FITS image
 .SH SYNOPSIS
diff --git a/utils/HPXcvt.c b/utils/HPXcvt.c
index 59a468a..f631eec 100644
--- a/utils/HPXcvt.c
+++ b/utils/HPXcvt.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: HPXcvt.c,v 4.25.1.2 2015/01/06 01:03:31 mcalabre Exp mcalabre $
+  $Id: HPXcvt.c,v 5.0 2015/04/05 09:18:17 mcalabre Exp $
 *=============================================================================
 *
 * HPXcvt reorganises HEALPix data into a 2-D FITS image.  Refer to the usage
@@ -855,7 +855,7 @@ int HPXhdr(fitsfile *fptr, struct healpix *hpxdat)
 
   if (hpxdat->layout) {
     lonpole = 180.0f;
-    sprintf(comment, "[deg] Native longitude of the celestial pole", descr1);
+    sprintf(comment, "[deg] Native longitude of the celestial pole");
     fits_write_key(fptr, TFLOAT, "LONPOLE", &lonpole, comment, &status);
   }
 
diff --git a/utils/fitshdr.1 b/utils/fitshdr.1
index 8e79184..1f8f8f3 100644
--- a/utils/fitshdr.1
+++ b/utils/fitshdr.1
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH FITSHDR "1" "January 2015" "fitshdr 4.25.1" "User Commands"
+.TH FITSHDR "1" "April 2015" "fitshdr 5.0" "User Commands"
 .SH NAME
 fitshdr \- List headers from a FITS file
 .SH SYNOPSIS
diff --git a/utils/fitshdr.c b/utils/fitshdr.c
index 642983d..4c1ebb5 100644
--- a/utils/fitshdr.c
+++ b/utils/fitshdr.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: fitshdr.c,v 4.25.1.2 2015/01/06 01:03:31 mcalabre Exp mcalabre $
+  $Id: fitshdr.c,v 5.0 2015/04/05 09:18:17 mcalabre Exp $
 *=============================================================================
 * Usage: fitshdr [infile]
 *-----------------------------------------------------------------------------
@@ -283,7 +283,7 @@ int main(int argc, char **argv)
 
   if (feof(stdin)) {
     nbyte = blksiz * nblock;
-    printf("Skipped %lld block%s of data of size %d bytes (%lld bytes). \n",
+    printf("Skipped %lld block%s of data of size %d bytes (%lld bytes).\n",
       nblock, (nblock == 1)?"":"s", blksiz, nbyte);
 
     nbyte = blksiz * iblock;
diff --git a/utils/wcsgrid.1 b/utils/wcsgrid.1
index a13ae23..a8ce07f 100644
--- a/utils/wcsgrid.1
+++ b/utils/wcsgrid.1
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH WCSGRID "1" "January 2015" "wcsgrid 4.25.1" "User Commands"
+.TH WCSGRID "1" "April 2015" "wcsgrid 5.0" "User Commands"
 .SH NAME
-wcsgrid \- Extract WCS keywords for an image
+wcsgrid \- Extract FITS WCS keywords and plot graticule
 .SH SYNOPSIS
 .B wcsgrid
 [\fI-a<alt>\fR] [\fI-d<pgdev>\fR] [\fI-h<hdu>\fR] [\fI<fitsfile>\fR]
diff --git a/utils/wcsgrid.c b/utils/wcsgrid.c
index bd5e3e1..15632d5 100644
--- a/utils/wcsgrid.c
+++ b/utils/wcsgrid.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsgrid.c,v 4.25.1.2 2015/01/06 01:03:31 mcalabre Exp mcalabre $
+  $Id: wcsgrid.c,v 5.0 2015/04/05 09:18:17 mcalabre Exp $
 *=============================================================================
 *
 * wcsgrid extracts the WCS keywords for an image from the specified FITS file
diff --git a/utils/wcsware.1 b/utils/wcsware.1
index 00bb442..7888e45 100644
--- a/utils/wcsware.1
+++ b/utils/wcsware.1
@@ -1,14 +1,19 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH WCSWARE "1" "January 2015" "wcsware 4.25.1" "User Commands"
+.TH WCSWARE "1" "April 2015" "wcsware 5.0" "User Commands"
 .SH NAME
-wcsware \- Extract WCS keywords for an image
+wcsware \- Extract FITS WCS keywords for an image
 .SH SYNOPSIS
 .B wcsware
-[\fI-a<alt>\fR] [\fI-f\fR] [\fI-h<hdu>\fR] [\fI-p\fR] [\fI-x\fR] [\fI<fitsfile>\fR]
+[\fIOPTION\fR]... [\fIFITSFILE\fR]
 .SH DESCRIPTION
 wcsware extracts the WCS keywords for an image from the specified FITS
 file, constructs wcsprm structs for each coordinate representation found
-and performs a variety of operations using them.
+and performs a variety of operations using them.  It features a "lint"
+capability as one of its more useful operations.
+.PP
+By default, all known extensions to the FITS WCS standard are allowed,
+including deprecated usage.  However, in "lint" mode, strict conformance
+to the standard is enforced.
 .PP
 The FITS file may be specified according to the syntax understood by
 cfitsio, for example "file.fits.gz+1" refers to the first extension of
@@ -19,6 +24,10 @@ a gzip'd FITS file.  Use "\-" or omit the file name for input from stdin.
 Specify an alternate coordinate representation to be used
 (ignored if there is only one).
 .TP
+\fB\-b\fR
+Use wcsbth() for primary image headers, normally wcspih()
+is used.  (Implies \fB\-i\fR.)
+.TP
 \fB\-f\fR
 Apply wcsfix() to the header.
 .TP
@@ -26,16 +35,39 @@ Apply wcsfix() to the header.
 Move to HDU number (1\-relative) which is expected to
 contain an image array.  (Useful for input from stdin.)
 .TP
+\fB\-i\fR
+Allow image header WCS keywords in binary table headers.
+.TP
+\fB\-l\fR
+Validate (lint) the WCS keyrecords in the specified FITS
+header for conformance to the WCS standard.  (Implies \fB\-s\fR.)
+.TP
 \fB\-p\fR
 Print the struct(s) using wcsprt() (default operation).
 .TP
 \fB\-P\fR
 Same as \fB\-p\fR but don't print a default struct.
 .TP
-\fB\-x\fR
-Convert pixel coordinates, obtained from stdin, to world
-coordinates using wcsp2s().
+\fB\-r\fR
+Require strict adherence to the FITS WCS standard, though
+allowing the deprecated AIPS\-convention keywords, CROTAn,
+EPOCH, and VELREF, and also some other deprecated usage.
+(Must follow \fB\-l\fR if relaxed linting is required.)
+.TP
+\fB\-s\fR
+Require strict adherence to the FITS WCS standard,
+disallowing all deprecated features.
+.TP
+\fB\-t\fR
+Terse (with \fB\-l\fR), report rejected WCS keyrecords only.
+.TP
+\fB\-v\fR
+Verbose (with \fB\-l\fR), report recognised WCS keyrecords as well.
 .TP
 \fB\-w\fR
 Convert world coordinates, obtained from stdin, to pixel
 coordinates using wcss2p().
+.TP
+\fB\-x\fR
+Convert pixel coordinates, obtained from stdin, to world
+coordinates using wcsp2s().
diff --git a/utils/wcsware.c b/utils/wcsware.c
index d558116..36ff83f 100644
--- a/utils/wcsware.c
+++ b/utils/wcsware.c
@@ -1,6 +1,6 @@
 /*============================================================================
 
-  WCSLIB 4.25 - an implementation of the FITS WCS standard.
+  WCSLIB 5.0 - an implementation of the FITS WCS standard.
   Copyright (C) 1995-2015, Mark Calabretta
 
   This file is part of WCSLIB.
@@ -22,7 +22,7 @@
 
   Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
   http://www.atnf.csiro.au/people/Mark.Calabretta
-  $Id: wcsware.c,v 4.25.1.2 2015/01/06 01:03:31 mcalabre Exp mcalabre $
+  $Id: wcsware.c,v 5.0 2015/04/05 09:18:17 mcalabre Exp $
 *=============================================================================
 * wcsware extracts the WCS keywords for an image from the specified FITS file,
 * constructs wcsprm structs for each coordinate representation found and
@@ -30,11 +30,15 @@
 *---------------------------------------------------------------------------*/
 
 char usage[] =
-"Usage: wcsware [-a<alt>] [-f] [-h<hdu>] [-p] [-x] [<fitsfile>]\n"
+"Usage: wcsware [OPTION]... [FITSFILE]\n"
 "\n"
 "wcsware extracts the WCS keywords for an image from the specified FITS\n"
 "file, constructs wcsprm structs for each coordinate representation found\n"
-"and performs a variety of operations using them.\n\n"
+"and performs a variety of operations using them.  It features a \"lint\"\n"
+"capability as one of its more useful operations.\n\n"
+"By default, all known extensions to the FITS WCS standard are allowed,\n"
+"including deprecated usage.  However, in \"lint\" mode, strict conformance\n"
+"to the standard is enforced.\n\n"
 "The FITS file may be specified according to the syntax understood by\n"
 "cfitsio, for example \"file.fits.gz+1\" refers to the first extension of\n"
 "a gzip'd FITS file.  Use \"-\" or omit the file name for input from stdin.\n"
@@ -42,15 +46,28 @@ char usage[] =
 "Options:\n"
 "  -a<alt>      Specify an alternate coordinate representation to be used\n"
 "               (ignored if there is only one).\n"
+"  -b           Use wcsbth() for primary image headers, normally wcspih()\n"
+"               is used.  (Implies -i.)\n"
 "  -f           Apply wcsfix() to the header.\n"
 "  -h<hdu>      Move to HDU number (1-relative) which is expected to\n"
 "               contain an image array.  (Useful for input from stdin.)\n"
+"  -i           Allow image header WCS keywords in binary table headers.\n"
+"  -l           Validate (lint) the WCS keyrecords in the specified FITS\n"
+"               header for conformance to the WCS standard.  (Implies -s.)\n"
 "  -p           Print the struct(s) using wcsprt() (default operation).\n"
 "  -P           Same as -p but don't print a default struct.\n"
-"  -x           Convert pixel coordinates, obtained from stdin, to world\n"
-"               coordinates using wcsp2s().\n"
+"  -r           Require strict adherence to the FITS WCS standard, though\n"
+"               allowing the deprecated AIPS-convention keywords, CROTAn,\n"
+"               EPOCH, and VELREF, and also some other deprecated usage.\n"
+"               (Must follow -l if relaxed linting is required.)\n"
+"  -s           Require strict adherence to the FITS WCS standard,\n"
+"               disallowing all deprecated features.\n"
+"  -t           Terse (with -l), report rejected WCS keyrecords only.\n"
+"  -v           Verbose (with -l), report recognised WCS keyrecords as well.\n"
 "  -w           Convert world coordinates, obtained from stdin, to pixel\n"
-"               coordinates using wcss2p().\n";
+"               coordinates using wcss2p().\n"
+"  -x           Convert pixel coordinates, obtained from stdin, to world\n"
+"               coordinates using wcsp2s().\n";
 
 #include <ctype.h>
 #include <stdio.h>
@@ -60,21 +77,35 @@ char usage[] =
 
 #include <fitsio.h>
 
+#include <wcs.h>
 #include <wcshdr.h>
 #include <wcsfix.h>
-#include <wcs.h>
+#include <wcsprintf.h>
 #include <getwcstab.h>
 
 int main(int argc, char **argv)
 
 {
   char alt = ' ', *header, *infile, wcsname[72];
-  int  alts[27], c, dofix = 0, doprt = 0, dopix = 0, doworld = 0, hdunum = 1,
-       hdutype, i, j, nelem, nkeyrec, nreject, nwcs, *stat = 0x0, status;
+  int  allimg, alts[27], c, ctrl, dobth, dofix, dolint, doprt, dopix, dowrld,
+       hdunum, hdutype, i, j, keysel, nelem, nkeyrec, nreject, nwcs, relax,
+       *stat = 0x0, status, strict;
   double *imgcrd = 0x0, phi, *pixcrd = 0x0, theta, *world = 0x0;
   struct wcsprm *wcs;
   fitsfile *fptr;
 
+  /* Initialise control variables. */
+  allimg = 0;
+  ctrl   = -3;
+  dobth  = 0;
+  dofix  = 0;
+  dolint = 0;
+  dopix  = 0;
+  doprt  = 0;
+  dowrld = 0;
+  hdunum = 1;
+  relax  = WCSHDR_all;
+  strict = 0;
 
   /* Parse options. */
   for (i = 1; i < argc && argv[i][0] == '-'; i++) {
@@ -82,44 +113,94 @@ int main(int argc, char **argv)
 
     switch (argv[i][1]) {
     case 'a':
+      /* Select an alternate WCS. */
       alt = toupper(argv[i][2]);
       break;
 
+    case 'b':
+      /* Use wcsbth() for image headers. */
+      dobth  = 1;
+      allimg = 1;
+      break;
+
     case 'f':
-      dofix = 1;
+      /* Apply wcsfix(). */
+      dofix  = 1;
       break;
 
     case 'h':
+      /* Move to HDU number. */
       hdunum = atoi(argv[i]+2);
       break;
 
+    case 'i':
+      /* Allow image header keywords in bintables. */
+      allimg = 1;
+      break;
+
+    case 'l':
+      /* Lint. */
+      strict = 1;
+      relax  = WCSHDR_strict;
+      ctrl   = 3;
+      dolint = 1;
+      break;
+
     case 'p':
-      doprt = 1;
+      /* Print structs. */
+      doprt  = 1;
       break;
 
     case 'P':
-      doprt = -1;
+      /* Print non-default structs. */
+      doprt  = -1;
       break;
 
-    case 'x':
-      dopix = 1;
+    case 'r':
+      /* Strict, but allow some deprecated usage. */
+      strict = 0;
+      relax  = WCSHDR_reject;
+      break;
+
+    case 's':
+      /* Strict, really strict. */
+      strict = 1;
+      relax  = WCSHDR_strict;
+      break;
+
+    case 't':
+      /* Terse. */
+      ctrl   = 2;
+      break;
+
+    case 'v':
+      /* Verbose. */
+      ctrl   = 4;
       break;
 
     case 'w':
-      doworld = 1;
+      dowrld = 1;
+      break;
+
+    case 'x':
+      dopix  = 1;
       break;
 
     default:
-      fprintf(stderr, "%s", usage);
+      wcsfprintf(stderr, "%s", usage);
       return 1;
     }
   }
 
+  if (allimg) {
+    relax |= WCSHDR_ALLIMG;
+  }
+
   if (i < argc) {
     infile = argv[i++];
 
     if (i < argc) {
-      fprintf(stderr, "%s", usage);
+      wcsfprintf(stderr, "%s", usage);
       return 1;
     }
   } else {
@@ -128,22 +209,17 @@ int main(int argc, char **argv)
 
   /* Check accessibility of the input file. */
   if (strcmp(infile, "-") && access(infile, R_OK) == -1) {
-    printf("wcsware: Cannot access %s.\n", infile);
+    wcsfprintf(stderr, "wcsware: Cannot access %s.\n", infile);
     return 1;
   }
 
-  if (!dopix && !doworld && !doprt) doprt = 1;
+  if (!(dolint || doprt || dopix || dowrld)) doprt = 1;
 
 
   /* Open the FITS file and move to the required HDU. */
   status = 0;
   if (fits_open_file(&fptr, infile, READONLY, &status)) goto fitserr;
   if (fits_movabs_hdu(fptr, hdunum, &hdutype, &status)) goto fitserr;
-  if (hdutype != IMAGE_HDU) {
-    fprintf(stderr, "ERROR, HDU number %d does not contain an image array.\n",
-      hdunum);
-    return 1;
-  }
 
   /* Read in the FITS header, excluding COMMENT and HISTORY keyrecords. */
   if (fits_hdr2str(fptr, 1, NULL, 0, &header, &nkeyrec, &status)) {
@@ -152,18 +228,46 @@ int main(int argc, char **argv)
 
 
   /* Interpret the WCS keywords. */
-  if ((status = wcspih(header, nkeyrec, WCSHDR_all, -3, &nreject, &nwcs,
-                       &wcs))) {
-    fprintf(stderr, "wcspih ERROR %d: %s.\n", status, wcshdr_errmsg[status]);
+  if ((hdutype == BINARY_TBL) ||
+     ((hdutype == IMAGE_HDU) && dobth)) {
+    keysel = (hdutype == BINARY_TBL) ? 0 : WCSHDR_IMGHEAD;
+    if ((status = wcsbth(header, nkeyrec, relax, ctrl, keysel, 0x0, &nreject,
+                    &nwcs, &wcs))) {
+      wcsfprintf(stderr, "wcsbth ERROR %d: %s.\n", status,
+                 wcshdr_errmsg[status]);
+      return 1;
+    }
+  } else if (hdutype == IMAGE_HDU) {
+    if ((status = wcspih(header, nkeyrec, relax, ctrl, &nreject,
+                    &nwcs, &wcs))) {
+      wcsfprintf(stderr, "wcspih ERROR %d: %s.\n", status,
+                 wcshdr_errmsg[status]);
+      return 1;
+    }
+  } else {
+    wcsfprintf(stderr, "wcslint: Invalid FITS extension type.\n");
     return 1;
   }
+
   free(header);
 
-  if (wcs == 0x0) {
-    fprintf(stderr, "No world coordinate systems found.\n");
-    return 1;
+  if (nreject) {
+    if (ctrl <= 3) {
+      wcsprintf("\n%d WCS keyrecords were rejected.\n", nreject);
+    }
+    wcsprintf("\nThe rejected keyrecords do not conform%s to the FITS WCS "
+              "standard.\n", strict?" strictly":"");
+  } else if (nwcs == 0) {
+    if (2 < ctrl) wcsprintf("\n");
+    wcsprintf("No world coordinate systems found.\n");
+    fits_close_file(fptr, &status);
+    return 0;
+
+  } else if (2 < ctrl) {
+    wcsprintf("\nNo invalid WCS keyrecords were found.\n");
   }
 
+
   /* Read -TAB arrays from the binary table extension (if necessary). */
   if (fits_read_wcstab(fptr, wcs->nwtb, (wtbarr *)wcs->wtb, &status)) {
     goto fitserr;
@@ -178,8 +282,8 @@ int main(int argc, char **argv)
     if ((status = wcsfix(7, 0, wcs, stat))) {
       for (i = 0; i < NWCSFIX; i++) {
         if (stat[i] > 0) {
-           fprintf(stderr, "wcsfix ERROR %d: %s.\n", status,
-                   wcsfix_errmsg[stat[i]]);
+           wcsfprintf(stderr, "wcsfix ERROR %d: %s.\n", status,
+                      wcsfix_errmsg[stat[i]]);
         }
       }
 
@@ -193,18 +297,18 @@ int main(int argc, char **argv)
 
     if (alt == ' ') {
       if (alts[0] == -1) {
-        fprintf(stderr, "WARNING, no primary coordinate representation.\n");
+        wcsfprintf(stderr, "WARNING, no primary coordinate representation.\n");
         alt = '\0';
       }
 
     } else if (alt < 'A' || alt > 'Z') {
-      fprintf(stderr, "WARNING, alternate specifier \"%c\" is invalid.\n",
+      wcsfprintf(stderr, "WARNING, alternate specifier \"%c\" is invalid.\n",
         alt);
       alt = '\0';
 
     } else {
       if (alts[alt - 'A' + 1] == -1) {
-        fprintf(stderr, "WARNING, no alternate coordinate representation "
+        wcsfprintf(stderr, "WARNING, no alternate coordinate representation "
                         "\"%c\".\n", alt);
         alt = '\0';
       }
@@ -217,12 +321,12 @@ int main(int argc, char **argv)
     if (alt && (wcs+i)->alt[0] != alt) {
       continue;
     } else if (i) {
-      printf("\nType <CR> for next: ");
+      wcsprintf("\nType <CR> for next: ");
       fgetc(stdin);
     }
 
     if ((status = wcsset(wcs+i))) {
-      fprintf(stderr, "wcsset ERROR %d: %s.\n", status, wcs_errmsg[status]);
+      wcsfprintf(stderr, "wcsset ERROR %d: %s.\n", status, wcs_errmsg[status]);
       continue;
     }
 
@@ -233,7 +337,7 @@ int main(int argc, char **argv)
     if (doprt) {
       if (doprt == 1 || strcmp(wcsname, "DEFAULTS")) {
         if (strlen(wcsname)) {
-          printf("\n%s\n", wcsname);
+          wcsprintf("\n%s\n", wcsname);
         }
 
         wcsprt(wcs+i);
@@ -241,9 +345,9 @@ int main(int argc, char **argv)
     }
 
     /* Transform coordinates? */
-    if (dopix || doworld) {
+    if (dopix || dowrld) {
       if (strlen(wcsname)) {
-        printf("\n%s\n", wcsname);
+        wcsprintf("\n%s\n", wcsname);
       }
 
       nelem = (wcs+i)->naxis;
@@ -255,11 +359,11 @@ int main(int argc, char **argv)
       if (dopix) {
         /* Transform pixel coordinates. */
         while (1) {
-          printf("\nEnter %d pixel coordinate element%s: ", nelem,
+          wcsprintf("\nEnter %d pixel coordinate element%s: ", nelem,
             (nelem==1)?"":"s");
           c = fgetc(stdin);
           if (c == EOF || c == '\n') {
-            if (c == EOF) printf("\n");
+            if (c == EOF) wcsprintf("\n");
             break;
           }
           ungetc(c, stdin);
@@ -270,50 +374,50 @@ int main(int argc, char **argv)
           }
           while (fgetc(stdin) != '\n');
 
-          printf("Pixel: ");
+          wcsprintf("Pixel: ");
           for (j = 0; j < nelem; j++) {
-            printf("%s%14.9g", j?", ":"", pixcrd[j]);
+            wcsprintf("%s%14.9g", j?", ":"", pixcrd[j]);
           }
 
           if ((status = wcsp2s(wcs+i, 1, nelem, pixcrd, imgcrd, &phi, &theta,
                                world, stat))) {
-            fprintf(stderr, "wcsp2s ERROR %d: %s.\n", status,
+            wcsfprintf(stderr, "wcsp2s ERROR %d: %s.\n", status,
               wcs_errmsg[status]);
 
           } else {
-            printf("\nImage: ");
+            wcsprintf("\nImage: ");
             for (j = 0; j < nelem; j++) {
               if (j == (wcs+i)->lng || j == (wcs+i)->lat) {
                 /* Print angles in fixed format. */
-                printf("%s%14.6f", j?", ":"", imgcrd[j]);
+                wcsprintf("%s%14.6f", j?", ":"", imgcrd[j]);
               } else {
-                printf("%s%14.9g", j?", ":"", imgcrd[j]);
+                wcsprintf("%s%14.9g", j?", ":"", imgcrd[j]);
               }
             }
 
-            printf("\nWorld: ");
+            wcsprintf("\nWorld: ");
             for (j = 0; j < nelem; j++) {
               if (j == (wcs+i)->lng || j == (wcs+i)->lat) {
                 /* Print angles in fixed format. */
-                printf("%s%14.6f", j?", ":"", world[j]);
+                wcsprintf("%s%14.6f", j?", ":"", world[j]);
               } else {
-                printf("%s%14.9g", j?", ":"", world[j]);
+                wcsprintf("%s%14.9g", j?", ":"", world[j]);
               }
             }
-            printf("\n");
+            wcsprintf("\n");
           }
         }
       }
 
 
-      if (doworld) {
+      if (dowrld) {
         /* Transform world coordinates. */
         while (1) {
-          printf("\nEnter %d world coordinate element%s: ", nelem,
+          wcsprintf("\nEnter %d world coordinate element%s: ", nelem,
             (nelem==1)?"":"s");
           c = fgetc(stdin);
           if (c == EOF || c == '\n') {
-            if (c == EOF) printf("\n");
+            if (c == EOF) wcsprintf("\n");
             break;
           }
           ungetc(c, stdin);
@@ -324,37 +428,37 @@ int main(int argc, char **argv)
           }
           while (fgetc(stdin) != '\n');
 
-          printf("World: ");
+          wcsprintf("World: ");
           for (j = 0; j < nelem; j++) {
             if (j == (wcs+i)->lng || j == (wcs+i)->lat) {
               /* Print angles in fixed format. */
-              printf("%s%14.6f", j?", ":"", world[j]);
+              wcsprintf("%s%14.6f", j?", ":"", world[j]);
             } else {
-              printf("%s%14.9g", j?", ":"", world[j]);
+              wcsprintf("%s%14.9g", j?", ":"", world[j]);
             }
           }
 
           if ((status = wcss2p(wcs+i, 1, nelem, world, &phi, &theta, imgcrd,
                                pixcrd, stat))) {
-            fprintf(stderr, "wcss2p ERROR %d: %s.\n", status,
+            wcsfprintf(stderr, "wcss2p ERROR %d: %s.\n", status,
               wcs_errmsg[status]);
 
           } else {
-            printf("\nImage: ");
+            wcsprintf("\nImage: ");
             for (j = 0; j < nelem; j++) {
               if (j == (wcs+i)->lng || j == (wcs+i)->lat) {
                 /* Print angles in fixed format. */
-                printf("%s%14.6f", j?", ":"", imgcrd[j]);
+                wcsprintf("%s%14.6f", j?", ":"", imgcrd[j]);
               } else {
-                printf("%s%14.9g", j?", ":"", imgcrd[j]);
+                wcsprintf("%s%14.9g", j?", ":"", imgcrd[j]);
               }
             }
 
-            printf("\nPixel: ");
+            wcsprintf("\nPixel: ");
             for (j = 0; j < nelem; j++) {
-              printf("%s%14.9g", j?", ":"", pixcrd[j]);
+              wcsprintf("%s%14.9g", j?", ":"", pixcrd[j]);
             }
-            printf("\n");
+            wcsprintf("\n");
           }
         }
       }
diff --git a/wcsconfig.h.in b/wcsconfig.h.in
index 117106a..3193fd7 100644
--- a/wcsconfig.h.in
+++ b/wcsconfig.h.in
@@ -1,11 +1,11 @@
 /*============================================================================
 *
 * wcsconfig.h is generated from wcsconfig.h.in by 'configure'.  It contains
-* C preprocessor macro definitions for compiling WCSLIB 4.25
+* C preprocessor macro definitions for compiling WCSLIB 5.0
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsconfig.h.in,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+* $Id: wcsconfig.h.in,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 /* WCSLIB library version number. */
diff --git a/wcsconfig_f77.h.in b/wcsconfig_f77.h.in
index 1374d34..f3cfe67 100644
--- a/wcsconfig_f77.h.in
+++ b/wcsconfig_f77.h.in
@@ -1,12 +1,12 @@
 /*============================================================================
 *
 * wcsconfig_f77.h is generated from wcsconfig_f77.h.in by 'configure'.  It
-* contains C preprocessor definitions for building the WCSLIB 4.25 Fortran
+* contains C preprocessor definitions for building the WCSLIB 5.0 Fortran
 * wrappers.
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsconfig_f77.h.in,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+* $Id: wcsconfig_f77.h.in,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 /* Integer array type large enough to hold an address.  Set here to int[2] for
diff --git a/wcsconfig_tests.h.in b/wcsconfig_tests.h.in
index d58de94..c73f309 100644
--- a/wcsconfig_tests.h.in
+++ b/wcsconfig_tests.h.in
@@ -1,12 +1,12 @@
 /*============================================================================
 *
 * wcsconfig_test.h is generated from wcsconfig_test.h.in by 'configure'.  It
-* contains C preprocessor definitions for compiling the WCSLIB 4.25 test/demo
+* contains C preprocessor definitions for compiling the WCSLIB 5.0 test/demo
 * programs.
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsconfig_tests.h.in,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+* $Id: wcsconfig_tests.h.in,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 #include <wcsconfig.h>
diff --git a/wcsconfig_utils.h.in b/wcsconfig_utils.h.in
index eff06f2..af5eea0 100644
--- a/wcsconfig_utils.h.in
+++ b/wcsconfig_utils.h.in
@@ -1,12 +1,12 @@
 /*============================================================================
 *
 * wcsconfig_utils.h is generated from wcsconfig_utils.h.in by 'configure'.
-* It contains C preprocessor macro definitions for compiling the WCSLIB 4.25
+* It contains C preprocessor macro definitions for compiling the WCSLIB 5.0
 * utilities.
 *
 * Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
 * http://www.atnf.csiro.au/people/Mark.Calabretta
-* $Id: wcsconfig_utils.h.in,v 4.25.1.1 2014/12/14 14:32:47 mcalabre Exp mcalabre $
+* $Id: wcsconfig_utils.h.in,v 5.0 2015/04/05 09:18:16 mcalabre Exp $
 *===========================================================================*/
 
 #include <wcsconfig.h>
diff --git a/wcslib.pdf b/wcslib.pdf
index cdaa6cc..3de58ad 100644
Binary files a/wcslib.pdf and b/wcslib.pdf differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-astro/packages/wcslib.git



More information about the debian-science-commits mailing list