]> granicus.if.org Git - php/commitdiff
Revert "Upgrade timelib to 2017.05beta7"
authorDerick Rethans <github@derickrethans.nl>
Wed, 16 Aug 2017 14:19:18 +0000 (15:19 +0100)
committerDerick Rethans <github@derickrethans.nl>
Wed, 16 Aug 2017 14:19:18 +0000 (15:19 +0100)
This reverts commit bdd56f31078bf1f34341943603cf6aaa72e0db5c.

49 files changed:
ext/date/lib/LICENSE.rst
ext/date/lib/astro.c
ext/date/lib/dow.c
ext/date/lib/fallbackmap.h
ext/date/lib/interval.c
ext/date/lib/parse_date.c
ext/date/lib/parse_date.re
ext/date/lib/parse_iso_intervals.c
ext/date/lib/parse_iso_intervals.re
ext/date/lib/parse_tz.c
ext/date/lib/timelib.c
ext/date/lib/timelib.h
ext/date/lib/timelib.m4
ext/date/lib/timelib_private.h [deleted file]
ext/date/lib/timelib_structs.h [new file with mode: 0644]
ext/date/lib/timezonemap.h
ext/date/lib/tm2unixtime.c
ext/date/lib/unixtime2tm.c
ext/date/php_date.c
ext/date/tests/010.phpt
ext/date/tests/DateTimeZone_getLocation.phpt
ext/date/tests/DateTimeZone_listAbbreviations_basic1.phpt
ext/date/tests/bug35499.phpt
ext/date/tests/bug41964.phpt
ext/date/tests/bug45081.phpt
ext/date/tests/bug68078_negative.phpt
ext/date/tests/date_parse_001.phpt
ext/date/tests/date_sun_info_001.phpt
ext/date/tests/date_sun_info_002.phpt
ext/date/tests/date_sun_info_variation1.phpt
ext/date/tests/date_sun_info_variation2.phpt
ext/date/tests/date_sun_info_variation3.phpt
ext/date/tests/date_sunrise_variation1.phpt
ext/date/tests/date_sunrise_variation3.phpt
ext/date/tests/date_sunrise_variation4.phpt
ext/date/tests/date_sunrise_variation5.phpt
ext/date/tests/date_sunrise_variation6.phpt
ext/date/tests/date_sunrise_variation7.phpt
ext/date/tests/date_sunset_variation1.phpt
ext/date/tests/date_sunset_variation3.phpt
ext/date/tests/date_sunset_variation4.phpt
ext/date/tests/date_sunset_variation5.phpt
ext/date/tests/date_sunset_variation6.phpt
ext/date/tests/date_sunset_variation7.phpt
ext/date/tests/sunfuncts.phpt
ext/date/tests/timezone_abbreviations_list_basic1.phpt
ext/date/tests/timezone_name_from_abbr_basic1.phpt
ext/intl/common/common_date.cpp
ext/intl/timezone/timezone_class.cpp

index 70bf7b00bde2b5cec83732bd48f117c5d260c888..cde273c6a9039a47616ae20258b88627a7d60e79 100644 (file)
@@ -1,7 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2015-2017 Derick Rethans
-Copyright (c) 2017 MongoDB, Inc.
+Copyright (c) 2015 Derick Rethans
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index bae96e205746394494b0c3ed643545dfa828f08f..69ff6c2056be7d5609c2a085e62a7b8541943dfd 100644 (file)
    | Schlyter, who wrote this in December 1992                            |
  */
 
-#include "timelib.h"
 #include <stdio.h>
 #include <math.h>
+#include "timelib.h"
 
 #define days_since_2000_Jan_0(y,m,d) \
        (367L*(y)-((7*((y)+(((m)+9)/12)))/4)+((275*(m))/9)+(d)-730530L)
 
 #ifndef PI
-define PI        3.1415926535897932384
+ #define PI        3.1415926535897932384
 #endif
 
 #define RADEG     ( 180.0 / PI )
@@ -230,8 +230,7 @@ int timelib_astro_rise_set_altitude(timelib_time *t_loc, double lon, double lat,
        t_loc->i = t_loc->s = 0;
        timelib_update_ts(t_loc, NULL);
 
-       /* Calculate TS belonging to UTC 00:00 of the current day, for input into
-        * the algorithm */
+       /* Calculate TS belonging to UTC 00:00 of the current day */
        t_utc = timelib_time_ctor();
        t_utc->y = t_loc->y;
        t_utc->m = t_loc->m;
@@ -240,8 +239,8 @@ int timelib_astro_rise_set_altitude(timelib_time *t_loc, double lon, double lat,
        timelib_update_ts(t_utc, NULL);
 
        /* Compute d of 12h local mean solar time */
-       timestamp = t_utc->sse;
-       d = timelib_ts_to_j2000(timestamp) + 2 - lon/360.0;
+       timestamp = t_loc->sse;
+       d = timelib_ts_to_juliandate(timestamp) - lon/360.0;
 
        /* Compute local sidereal time of this moment */
        sidtime = astro_revolution(astro_GMST0(d) + 180.0 + lon);
@@ -296,18 +295,14 @@ int timelib_astro_rise_set_altitude(timelib_time *t_loc, double lon, double lat,
        return rc;
 }
 
-double timelib_ts_to_julianday(timelib_sll ts)
+double timelib_ts_to_juliandate(timelib_sll ts)
 {
        double tmp;
 
-       tmp = (double) ts;
-       tmp /= (double) 86400;
-       tmp += (double) 2440587.5;
+       tmp = ts;
+       tmp /= 86400;
+       tmp += 2440587.5;
+       tmp -= 2451543;
 
        return tmp;
 }
-
-double timelib_ts_to_j2000(timelib_sll ts)
-{
-       return timelib_ts_to_julianday(ts) - 2451545;
-}
index 33553e7806f4dd8ca29c77cb7d7cb2a13237480d..78aca8c7024ae6cb150cd7890fb00f33434a55be 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
 static int m_table_common[13] = { -1, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */
 static int m_table_leap[13] =   { -1, 6, 2, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 }; /* 1 = jan */
@@ -138,71 +137,17 @@ void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, time
        }
 }
 
-void timelib_isodate_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iy, timelib_sll *iw, timelib_sll *id)
-{
-       timelib_isoweek_from_date(y, m, d, iw, iy);
-       *id = timelib_day_of_week_ex(y, m, d, 1);
-}
-
-static timelib_sll timelib_daynr_from_weeknr_ex(timelib_sll iy, timelib_sll iw, timelib_sll id, timelib_sll *y)
+timelib_sll timelib_daynr_from_weeknr(timelib_sll y, timelib_sll w, timelib_sll d)
 {
        timelib_sll dow, day;
 
        /* Figure out the dayofweek for y-1-1 */
-       dow = timelib_day_of_week(iy, 1, 1);
+       dow = timelib_day_of_week(y, 1, 1);
        /* then use that to figure out the offset for day 1 of week 1 */
        day = 0 - (dow > 4 ? dow - 7 : dow);
-       /* and adjust the year to the natural year if we need to */
-       *y = (iw == 1 && day < 0 && id < dow) ? iy - 1 : iy;
 
        /* Add weeks and days */
-       return day + ((iw - 1) * 7) + id;
-}
-
-timelib_sll timelib_daynr_from_weeknr(timelib_sll iy, timelib_sll iw, timelib_sll id)
-{
-       timelib_sll dummy_iso_year;
-
-       return timelib_daynr_from_weeknr_ex(iy, iw, id, &dummy_iso_year);
-}
-
-void timelib_date_from_isodate(timelib_sll iy, timelib_sll iw, timelib_sll id, timelib_sll *y, timelib_sll *m, timelib_sll *d)
-{
-       timelib_sll daynr = timelib_daynr_from_weeknr_ex(iy, iw, id, y) + 1;
-       int *table;
-
-       *m = 0;
-
-       if (daynr <= 0) {
-               *y += 1;
-       }
-
-       if (timelib_is_leap(*y)) {
-               table = ml_table_leap;
-               if (daynr > 366) {
-                       *y += 1;
-                       daynr -= 366;
-               }
-       } else {
-               table = ml_table_common;
-               if (daynr > 365) {
-                       *y += 1;
-                       daynr -= 365;
-               }
-       }
-
-       do {
-               daynr -= table[*m];
-               (*m)++;
-       } while (daynr > table[*m]);
-
-       if (daynr <= 0) {
-               daynr += 31;
-               *y -= 1;
-               *m = 12;
-       }
-
-       *d = daynr;
+       return day + ((w - 1) * 7) + d;
 }
 
 int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s)
index 5a4c6123c3a5bb1d31d9daa9f94a217a1a8f411b..af69482c0cb8d5ba0dab944a287833ccaebac740 100644 (file)
@@ -1,42 +1,42 @@
-       { "sst",   0, -660 * 60, "Pacific/Apia" },
-       { "hst",   0, -600 * 60, "Pacific/Honolulu" },
-       { "akst",  0, -540 * 60, "America/Anchorage" },
-       { "akdt",  1, -480 * 60, "America/Anchorage" },
-       { "pst",   0, -480 * 60, "America/Los_Angeles" },
-       { "pdt",   1, -420 * 60, "America/Los_Angeles" },
-       { "mst",   0, -420 * 60, "America/Denver" },
-       { "mdt",   1, -360 * 60, "America/Denver" },
-       { "cst",   0, -360 * 60, "America/Chicago" },
-       { "cdt",   1, -300 * 60, "America/Chicago" },
-       { "est",   0, -300 * 60, "America/New_York" },
-       { "vet",   0, -270 * 60, "America/Caracas" },
-       { "edt",   1, -240 * 60, "America/New_York" },
-       { "ast",   0, -240 * 60, "America/Halifax" },
-       { "adt",   1, -180 * 60, "America/Halifax" },
-       { "brt",   0, -180 * 60, "America/Sao_Paulo" },
-       { "brst",  1, -120 * 60, "America/Sao_Paulo" },
-       { "azost", 0,  -60 * 60, "Atlantic/Azores" },
-       { "azodt", 1,    0 * 60, "Atlantic/Azores" },
-       { "gmt",   0,    0 * 60, "Europe/London" },
-       { "bst",   1,   60 * 60, "Europe/London" },
-       { "cet",   0,   60 * 60, "Europe/Paris" },
-       { "cest",  1,  120 * 60, "Europe/Paris" },
-       { "eet",   0,  120 * 60, "Europe/Helsinki" },
-       { "eest",  1,  180 * 60, "Europe/Helsinki" },
-       { "msk",   0,  180 * 60, "Europe/Moscow" },
-       { "msd",   1,  240 * 60, "Europe/Moscow" },
-       { "gst",   0,  240 * 60, "Asia/Dubai" },
-       { "pkt",   0,  300 * 60, "Asia/Karachi" },
-       { "ist",   0,  330 * 60, "Asia/Kolkata" },
-       { "npt",   0,  345 * 60, "Asia/Katmandu" },
-       { "yekt",  1,  360 * 60, "Asia/Yekaterinburg" },
-       { "novst", 1,  420 * 60, "Asia/Novosibirsk" },
-       { "krat",  0,  420 * 60, "Asia/Krasnoyarsk" },
-       { "cst",   0,  480 * 60, "Asia/Shanghai" },
-       { "krast", 1,  480 * 60, "Asia/Krasnoyarsk" },
-       { "jst",   0,  540 * 60, "Asia/Tokyo" },
-       { "est",   0,  600 * 60, "Australia/Melbourne" },
-       { "cst",   1,  630 * 60, "Australia/Adelaide" },
-       { "est",   1,  660 * 60, "Australia/Melbourne" },
-       { "nzst",  0,  720 * 60, "Pacific/Auckland" },
-       { "nzdt",  1,  780 * 60, "Pacific/Auckland" },
+       { "sst",   0, -660, "Pacific/Apia" },
+       { "hst",   0, -600, "Pacific/Honolulu" },
+       { "akst",  0, -540, "America/Anchorage" },
+       { "akdt",  1, -480, "America/Anchorage" },
+       { "pst",   0, -480, "America/Los_Angeles" },
+       { "pdt",   1, -420, "America/Los_Angeles" },
+       { "mst",   0, -420, "America/Denver" },
+       { "mdt",   1, -360, "America/Denver" },
+       { "cst",   0, -360, "America/Chicago" },
+       { "cdt",   1, -300, "America/Chicago" },
+       { "est",   0, -300, "America/New_York" },
+       { "vet",   0, -270, "America/Caracas" },
+       { "edt",   1, -240, "America/New_York" },
+       { "ast",   0, -240, "America/Halifax" },
+       { "adt",   1, -180, "America/Halifax" },
+       { "brt",   0, -180, "America/Sao_Paulo" },
+       { "brst",  1, -120, "America/Sao_Paulo" },
+       { "azost", 0,  -60, "Atlantic/Azores" },
+       { "azodt", 1,    0, "Atlantic/Azores" },
+       { "gmt",   0,    0, "Europe/London" },
+       { "bst",   1,   60, "Europe/London" },
+       { "cet",   0,   60, "Europe/Paris" },
+       { "cest",  1,  120, "Europe/Paris" },
+       { "eet",   0,  120, "Europe/Helsinki" },
+       { "eest",  1,  180, "Europe/Helsinki" },
+       { "msk",   0,  180, "Europe/Moscow" },
+       { "msd",   1,  240, "Europe/Moscow" },
+       { "gst",   0,  240, "Asia/Dubai" },
+       { "pkt",   0,  300, "Asia/Karachi" },
+       { "ist",   0,  330, "Asia/Kolkata" },
+       { "npt",   0,  345, "Asia/Katmandu" },
+       { "yekt",  1,  360, "Asia/Yekaterinburg" },
+       { "novst", 1,  420, "Asia/Novosibirsk" },
+       { "krat",  0,  420, "Asia/Krasnoyarsk" },
+       { "cst",   0,  480, "Asia/Shanghai" },
+       { "krast", 1,  480, "Asia/Krasnoyarsk" },
+       { "jst",   0,  540, "Asia/Tokyo" },
+       { "est",   0,  600, "Australia/Melbourne" },
+       { "cst",   1,  630, "Australia/Adelaide" },
+       { "est",   1,  660, "Australia/Melbourne" },
+       { "nzst",  0,  720, "Pacific/Auckland" },
+       { "nzdt",  1,  780, "Pacific/Auckland" },
index e034392a0f9874bebe0d9ff37d8d9a607ff35ee1..9c1cc3b273d8059d2fe57d653d0f451d3f4ca45e 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
 #include <math.h>
 
 timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two)
@@ -66,7 +65,6 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two)
        rt->h = two->h - one->h;
        rt->i = two->i - one->i;
        rt->s = two->s - one->s;
-       rt->us = two->us - one->us;
        if (one_backup.dst == 0 && two_backup.dst == 1 && two->sse >= one->sse + 86400 - dst_corr) {
                rt->h += dst_h_corr;
                rt->i += dst_m_corr;
@@ -112,7 +110,6 @@ timelib_time *timelib_add(timelib_time *old_time, timelib_rel_time *interval)
                t->relative.h = interval->h * bias;
                t->relative.i = interval->i * bias;
                t->relative.s = interval->s * bias;
-               t->relative.us = interval->us * bias;
        }
        t->have_relative = 1;
        t->sse_uptodate = 0;
@@ -148,7 +145,6 @@ timelib_time *timelib_sub(timelib_time *old_time, timelib_rel_time *interval)
        t->relative.h = 0 - (interval->h * bias);
        t->relative.i = 0 - (interval->i * bias);
        t->relative.s = 0 - (interval->s * bias);
-       t->relative.us = 0 - (interval->us * bias);
        t->have_relative = 1;
        t->sse_uptodate = 0;
 
index 710c6f20f36332c7b055d1d587534b8f1ef13fb2..aebd2b20874858e4c8a8385dc661001e90f2a98a 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.15.3 on Mon Aug 14 16:35:21 2017 */
+/* Generated by re2c 0.15.3 on Tue Jul  4 19:43:56 2017 */
 #line 1 "ext/date/lib/parse_date.re"
 /*
  * The MIT License (MIT)
 /* $Id$ */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
+#include <stdio.h>
 #include <ctype.h>
 #include <math.h>
 #include <assert.h>
 
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
 #if defined(_MSC_VER)
 # define strtoll(s, f, b) _atoi64(s)
 #elif !defined(HAVE_STRTOLL)
 # endif
 #endif
 
+#define TIMELIB_UNSET   -99999
+
+#define TIMELIB_SECOND  1
+#define TIMELIB_MINUTE  2
+#define TIMELIB_HOUR    3
+#define TIMELIB_DAY     4
+#define TIMELIB_MONTH   5
+#define TIMELIB_YEAR    6
+#define TIMELIB_WEEKDAY 7
+#define TIMELIB_SPECIAL 8
+
 #define EOI      257
 #define TIME     258
 #define DATE     259
@@ -94,14 +114,14 @@ typedef unsigned char uchar;
 
 #define timelib_string_free timelib_free
 
-#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->us = 0; } }
-#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->us = 0; }
-#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, TIMELIB_ERR_DOUBLE_DATE, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
+#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
+#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; }
+#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
 #define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; }
 #define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; }
 #define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; }
 #define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; }
-#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, TIMELIB_ERR_DOUBLE_TZ, "Double timezone specification") : add_warning(s, TIMELIB_WARN_DOUBLE_TZ, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } }
+#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } }
 
 #define TIMELIB_INIT  s->cur = cursor; str = timelib_string(s); ptr = str
 #define TIMELIB_DEINIT timelib_string_free(str)
@@ -127,6 +147,8 @@ typedef unsigned char uchar;
 #define YYDEBUG(s,c)
 #endif
 
+#include "timelib_structs.h"
+
 typedef struct timelib_elems {
        unsigned int   c; /* Number of elements */
        char         **v; /* Values */
@@ -155,33 +177,21 @@ typedef struct _timelib_relunit {
 } timelib_relunit;
 
 /* The timezone table. */
-static const timelib_tz_lookup_table timelib_timezone_lookup[] = {
+const static timelib_tz_lookup_table timelib_timezone_lookup[] = {
 #include "timezonemap.h"
        { NULL, 0, 0, NULL },
 };
 
-static const timelib_tz_lookup_table timelib_timezone_fallbackmap[] = {
+const static timelib_tz_lookup_table timelib_timezone_fallbackmap[] = {
 #include "fallbackmap.h"
        { NULL, 0, 0, NULL },
 };
 
-static const timelib_tz_lookup_table timelib_timezone_utc[] = {
+const static timelib_tz_lookup_table timelib_timezone_utc[] = {
        { "utc", 0, 0, "UTC" },
 };
 
 static timelib_relunit const timelib_relunit_lookup[] = {
-       { "ms",           TIMELIB_MICROSEC, 1000 },
-       { "msec",         TIMELIB_MICROSEC, 1000 },
-       { "msecs",        TIMELIB_MICROSEC, 1000 },
-       { "millisecond",  TIMELIB_MICROSEC, 1000 },
-       { "milliseconds", TIMELIB_MICROSEC, 1000 },
-       { "µs",           TIMELIB_MICROSEC,    1 },
-       { "usec",         TIMELIB_MICROSEC,    1 },
-       { "usecs",        TIMELIB_MICROSEC,    1 },
-       { "µsec",         TIMELIB_MICROSEC,    1 },
-       { "µsecs",        TIMELIB_MICROSEC,    1 },
-       { "microsecond",  TIMELIB_MICROSEC,    1 },
-       { "microseconds", TIMELIB_MICROSEC,    1 },
        { "sec",         TIMELIB_SECOND,  1 },
        { "secs",        TIMELIB_SECOND,  1 },
        { "second",      TIMELIB_SECOND,  1 },
@@ -334,41 +344,37 @@ uchar *fill(Scanner *s, uchar *cursor){
 }
 #endif
 
-static void add_warning(Scanner *s, int error_code, char *error)
+static void add_warning(Scanner *s, char *error)
 {
        s->errors->warning_count++;
        s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
-       s->errors->warning_messages[s->errors->warning_count - 1].error_code = error_code;
        s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
        s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
        s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
 }
 
-static void add_error(Scanner *s, int error_code, char *error)
+static void add_error(Scanner *s, char *error)
 {
        s->errors->error_count++;
        s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
-       s->errors->error_messages[s->errors->error_count - 1].error_code = error_code;
        s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
        s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0;
        s->errors->error_messages[s->errors->error_count - 1].message = timelib_strdup(error);
 }
 
-static void add_pbf_warning(Scanner *s, int error_code, char *error, char *sptr, char *cptr)
+static void add_pbf_warning(Scanner *s, char *error, char *sptr, char *cptr)
 {
        s->errors->warning_count++;
        s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
-       s->errors->warning_messages[s->errors->warning_count - 1].error_code = error_code;
        s->errors->warning_messages[s->errors->warning_count - 1].position = cptr - sptr;
        s->errors->warning_messages[s->errors->warning_count - 1].character = *cptr;
        s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
 }
 
-static void add_pbf_error(Scanner *s, int error_code, char *error, char *sptr, char *cptr)
+static void add_pbf_error(Scanner *s, char *error, char *sptr, char *cptr)
 {
        s->errors->error_count++;
        s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
-       s->errors->error_messages[s->errors->error_count - 1].error_code = error_code;
        s->errors->error_messages[s->errors->error_count - 1].position = cptr - sptr;
        s->errors->error_messages[s->errors->error_count - 1].character = *cptr;
        s->errors->error_messages[s->errors->error_count - 1].message = timelib_strdup(error);
@@ -488,7 +494,7 @@ static void timelib_skip_day_suffix(char **ptr)
        }
 }
 
-static timelib_sll timelib_get_frac_nr(char **ptr, int max_length)
+static double timelib_get_frac_nr(char **ptr, int max_length)
 {
        char *begin, *end, *str;
        double tmp_nr = TIMELIB_UNSET;
@@ -506,9 +512,12 @@ static timelib_sll timelib_get_frac_nr(char **ptr, int max_length)
                ++len;
        }
        end = *ptr;
-       str = timelib_calloc(1, end - begin);
-       memcpy(str, begin + 1, end - begin - 1);
-       tmp_nr = strtod(str, NULL) * pow(10, 7 - (end - begin));
+       str = timelib_calloc(1, end - begin + 1);
+       memcpy(str, begin, end - begin);
+       if (str[0] == ':') {
+               str[0] = '.';
+       }
+       tmp_nr = strtod(str, NULL);
        timelib_free(str);
        return tmp_nr;
 }
@@ -648,13 +657,12 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
        }
 
        switch (relunit->unit) {
-               case TIMELIB_MICROSEC: s->time->relative.us += amount * relunit->multiplier; break;
-               case TIMELIB_SECOND:   s->time->relative.s += amount * relunit->multiplier; break;
-               case TIMELIB_MINUTE:   s->time->relative.i += amount * relunit->multiplier; break;
-               case TIMELIB_HOUR:     s->time->relative.h += amount * relunit->multiplier; break;
-               case TIMELIB_DAY:      s->time->relative.d += amount * relunit->multiplier; break;
-               case TIMELIB_MONTH:    s->time->relative.m += amount * relunit->multiplier; break;
-               case TIMELIB_YEAR:     s->time->relative.y += amount * relunit->multiplier; break;
+               case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break;
+               case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break;
+               case TIMELIB_HOUR:   s->time->relative.h += amount * relunit->multiplier; break;
+               case TIMELIB_DAY:    s->time->relative.d += amount * relunit->multiplier; break;
+               case TIMELIB_MONTH:  s->time->relative.m += amount * relunit->multiplier; break;
+               case TIMELIB_YEAR:   s->time->relative.y += amount * relunit->multiplier; break;
 
                case TIMELIB_WEEKDAY:
                        TIMELIB_HAVE_WEEKDAY_RELATIVE();
@@ -672,7 +680,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
        }
 }
 
-static const timelib_tz_lookup_table* abbr_search(const char *word, timelib_long gmtoffset, int isdst)
+const static timelib_tz_lookup_table* abbr_search(const char *word, timelib_long gmtoffset, int isdst)
 {
        int first_found = 0;
        const timelib_tz_lookup_table  *tp, *first_found_elem = NULL;
@@ -703,7 +711,7 @@ static const timelib_tz_lookup_table* abbr_search(const char *word, timelib_long
        /* Still didn't find anything, let's find the zone solely based on
         * offset/isdst then */
        for (fmp = timelib_timezone_fallbackmap; fmp->name; fmp++) {
-               if (fmp->gmtoffset == gmtoffset && fmp->type == isdst) {
+               if ((fmp->gmtoffset * 60) == gmtoffset && fmp->type == isdst) {
                        return fmp;
                }
        }
@@ -725,9 +733,9 @@ static timelib_long timelib_lookup_abbr(char **ptr, int *dst, char **tz_abbr, in
        memcpy(word, begin, end - begin);
 
        if ((tp = abbr_search(word, -1, 0))) {
-               value = tp->gmtoffset;
+               value = -tp->gmtoffset / 60;
                *dst = tp->type;
-               value -= tp->type * 3600;
+               value += tp->type * 60;
                *found = 1;
        } else {
                *found = 0;
@@ -737,42 +745,6 @@ static timelib_long timelib_lookup_abbr(char **ptr, int *dst, char **tz_abbr, in
        return value;
 }
 
-#define sHOUR(a) (int)(a * 3600)
-#define sMIN(a) (int)(a * 60)
-
-static timelib_long timelib_parse_tz_cor(char **ptr)
-{
-       char *begin = *ptr, *end;
-       timelib_long  tmp;
-
-       while (isdigit(**ptr) || **ptr == ':') {
-               ++*ptr;
-       }
-       end = *ptr;
-       switch (end - begin) {
-               case 1: /* H */
-               case 2: /* HH */
-                       return sHOUR(strtol(begin, NULL, 10));
-                       break;
-               case 3: /* H:M */
-               case 4: /* H:MM, HH:M, HHMM */
-                       if (begin[1] == ':') {
-                               tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 2, NULL, 10));
-                               return tmp;
-                       } else if (begin[2] == ':') {
-                               tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 3, NULL, 10));
-                               return tmp;
-                       } else {
-                               tmp = strtol(begin, NULL, 10);
-                               return sHOUR(tmp / 100) + sMIN(tmp % 100);
-                       }
-               case 5: /* HH:MM */
-                       tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 3, NULL, 10));
-                       return tmp;
-       }
-       return 0;
-}
-
 timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper)
 {
        timelib_tzinfo *res;
@@ -793,7 +765,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
                *tz_not_found = 0;
                t->dst = 0;
 
-               retval = timelib_parse_tz_cor(ptr);
+               retval = -1 * timelib_parse_tz_cor(ptr);
        } else if (**ptr == '-') {
                ++*ptr;
                t->is_localtime = 1;
@@ -801,7 +773,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
                *tz_not_found = 0;
                t->dst = 0;
 
-               retval = -1 * timelib_parse_tz_cor(ptr);
+               retval = timelib_parse_tz_cor(ptr);
        } else {
                int found = 0;
                timelib_long offset = 0;
@@ -818,9 +790,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
 
                /* Otherwise, we look if we have a TimeZone identifier */
                if (!found || strcmp("UTC", tz_abbr) == 0) {
-                       int dummy_error_code;
-
-                       if ((res = tz_wrapper(tz_abbr, tzdb, &dummy_error_code)) != NULL) {
+                       if ((res = tz_wrapper(tz_abbr, tzdb)) != NULL) {
                                t->tz_info = res;
                                t->zone_type = TIMELIB_ZONETYPE_ID;
                                found++;
@@ -854,11 +824,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
 std:
        s->tok = cursor;
        s->len = 0;
-#line 981 "ext/date/lib/parse_date.re"
+#line 950 "ext/date/lib/parse_date.re"
 
 
 
-#line 862 "<stdout>"
+#line 832 "ext/date/lib/parse_date.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -896,7 +866,6 @@ std:
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-       YYDEBUG(0, *YYCURSOR);
        if ((YYLIMIT - YYCURSOR) < 33) YYFILL(33);
        yych = *YYCURSOR;
        switch (yych) {
@@ -975,28 +944,26 @@ std:
        default:        goto yy53;
        }
 yy2:
-       YYDEBUG(2, *YYCURSOR);
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= 'E') {
                if (yych <= ')') {
-                       if (yych >= ')') goto yy164;
+                       if (yych >= ')') goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy1523;
+                       if (yych <= 'D') goto yy140;
+                       goto yy1463;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
-                       if (yych >= 'a') goto yy170;
+                       if (yych <= 'Z') goto yy140;
+                       if (yych >= 'a') goto yy145;
                } else {
-                       if (yych <= 'e') goto yy1532;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'e') goto yy1472;
+                       if (yych <= 'z') goto yy145;
                }
        }
 yy3:
-       YYDEBUG(3, *YYCURSOR);
-#line 1689 "ext/date/lib/parse_date.re"
+#line 1630 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("tzcorrection | tz");
@@ -1004,187 +971,181 @@ yy3:
                TIMELIB_HAVE_TZ();
                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                if (tz_not_found) {
-                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                       add_error(s, "The timezone could not be found in the database");
                }
                TIMELIB_DEINIT;
                return TIMELIB_TIMEZONE;
        }
-#line 1013 "<stdout>"
+#line 980 "ext/date/lib/parse_date.c"
 yy4:
-       YYDEBUG(4, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy1523;
+                       if (yych <= 'D') goto yy140;
+                       goto yy1463;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
-                       if (yych <= 'e') goto yy1523;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'e') goto yy1463;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy5:
-       YYDEBUG(5, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= 'D') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'H') {
-                               if (yych <= 'E') goto yy1494;
-                               goto yy165;
+                               if (yych <= 'E') goto yy1434;
+                               goto yy140;
                        } else {
-                               if (yych <= 'I') goto yy1495;
-                               if (yych <= 'N') goto yy165;
-                               goto yy1493;
+                               if (yych <= 'I') goto yy1435;
+                               if (yych <= 'N') goto yy140;
+                               goto yy1433;
                        }
                }
        } else {
                if (yych <= 'h') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych == 'e') goto yy1510;
-                               goto yy170;
+                               if (yych == 'e') goto yy1450;
+                               goto yy145;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'i') goto yy1511;
-                               goto yy170;
+                               if (yych <= 'i') goto yy1451;
+                               goto yy145;
                        } else {
-                               if (yych <= 'o') goto yy1509;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'o') goto yy1449;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy6:
-       YYDEBUG(6, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= 'D') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'H') {
-                               if (yych <= 'E') goto yy1494;
-                               goto yy165;
+                               if (yych <= 'E') goto yy1434;
+                               goto yy140;
                        } else {
-                               if (yych <= 'I') goto yy1495;
-                               if (yych <= 'N') goto yy165;
-                               goto yy1493;
+                               if (yych <= 'I') goto yy1435;
+                               if (yych <= 'N') goto yy140;
+                               goto yy1433;
                        }
                }
        } else {
                if (yych <= 'h') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych == 'e') goto yy1494;
-                               goto yy165;
+                               if (yych == 'e') goto yy1434;
+                               goto yy140;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'i') goto yy1495;
-                               goto yy165;
+                               if (yych <= 'i') goto yy1435;
+                               goto yy140;
                        } else {
-                               if (yych <= 'o') goto yy1493;
-                               if (yych <= 'z') goto yy165;
+                               if (yych <= 'o') goto yy1433;
+                               if (yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
        }
 yy7:
-       YYDEBUG(7, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= 'A') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy1463;
+                       goto yy1403;
                } else {
-                       if (yych == 'I') goto yy1464;
-                       if (yych <= 'N') goto yy165;
-                       goto yy1465;
+                       if (yych == 'I') goto yy1404;
+                       if (yych <= 'N') goto yy140;
+                       goto yy1405;
                }
        } else {
                if (yych <= 'h') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1478;
-                       goto yy170;
+                       if (yych <= 'a') goto yy1418;
+                       goto yy145;
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'i') goto yy1479;
-                               goto yy170;
+                               if (yych <= 'i') goto yy1419;
+                               goto yy145;
                        } else {
-                               if (yych <= 'o') goto yy1480;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'o') goto yy1420;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy8:
-       YYDEBUG(8, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= 'A') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy1463;
+                       goto yy1403;
                } else {
-                       if (yych == 'I') goto yy1464;
-                       if (yych <= 'N') goto yy165;
-                       goto yy1465;
+                       if (yych == 'I') goto yy1404;
+                       if (yych <= 'N') goto yy140;
+                       goto yy1405;
                }
        } else {
                if (yych <= 'h') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1463;
-                       goto yy165;
+                       if (yych <= 'a') goto yy1403;
+                       goto yy140;
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'i') goto yy1464;
-                               goto yy165;
+                               if (yych <= 'i') goto yy1404;
+                               goto yy140;
                        } else {
-                               if (yych <= 'o') goto yy1465;
-                               if (yych <= 'z') goto yy165;
+                               if (yych <= 'o') goto yy1405;
+                               if (yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
        }
 yy9:
-       YYDEBUG(9, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case ')':       goto yy164;
+       case ')':       goto yy139;
        case '0':
-       case '1':       goto yy1393;
-       case '2':       goto yy1394;
+       case '1':       goto yy1333;
+       case '2':       goto yy1334;
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy1395;
+       case '9':       goto yy1335;
        case 'A':
        case 'B':
        case 'C':
@@ -1205,12 +1166,12 @@ yy9:
        case 'V':
        case 'X':
        case 'Y':
-       case 'Z':       goto yy165;
-       case 'E':       goto yy1388;
-       case 'H':       goto yy1389;
-       case 'O':       goto yy1390;
-       case 'U':       goto yy1391;
-       case 'W':       goto yy1392;
+       case 'Z':       goto yy140;
+       case 'E':       goto yy1328;
+       case 'H':       goto yy1329;
+       case 'O':       goto yy1330;
+       case 'U':       goto yy1331;
+       case 'W':       goto yy1332;
        case 'a':
        case 'b':
        case 'c':
@@ -1231,30 +1192,29 @@ yy9:
        case 'v':
        case 'x':
        case 'y':
-       case 'z':       goto yy170;
-       case 'e':       goto yy1431;
-       case 'h':       goto yy1432;
-       case 'o':       goto yy1433;
-       case 'u':       goto yy1434;
-       case 'w':       goto yy1435;
+       case 'z':       goto yy145;
+       case 'e':       goto yy1371;
+       case 'h':       goto yy1372;
+       case 'o':       goto yy1373;
+       case 'u':       goto yy1374;
+       case 'w':       goto yy1375;
        default:        goto yy3;
        }
 yy10:
-       YYDEBUG(10, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case ')':       goto yy164;
+       case ')':       goto yy139;
        case '0':
-       case '1':       goto yy1393;
-       case '2':       goto yy1394;
+       case '1':       goto yy1333;
+       case '2':       goto yy1334;
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy1395;
+       case '9':       goto yy1335;
        case 'A':
        case 'B':
        case 'C':
@@ -1296,832 +1256,619 @@ yy10:
        case 'v':
        case 'x':
        case 'y':
-       case 'z':       goto yy165;
+       case 'z':       goto yy140;
        case 'E':
-       case 'e':       goto yy1388;
+       case 'e':       goto yy1328;
        case 'H':
-       case 'h':       goto yy1389;
+       case 'h':       goto yy1329;
        case 'O':
-       case 'o':       goto yy1390;
+       case 'o':       goto yy1330;
        case 'U':
-       case 'u':       goto yy1391;
+       case 'u':       goto yy1331;
        case 'W':
-       case 'w':       goto yy1392;
+       case 'w':       goto yy1332;
        default:        goto yy3;
        }
 yy11:
-       YYDEBUG(11, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '-') goto yy1376;
+       if (yych == '-') goto yy1324;
        if (yych <= '/') goto yy12;
-       if (yych <= '9') goto yy1377;
+       if (yych <= '9') goto yy1325;
 yy12:
-       YYDEBUG(12, *YYCURSOR);
-#line 1784 "ext/date/lib/parse_date.re"
+#line 1725 "ext/date/lib/parse_date.re"
        {
-               add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character");
+               add_error(s, "Unexpected character");
                goto std;
        }
-#line 1327 "<stdout>"
+#line 1285 "ext/date/lib/parse_date.c"
 yy13:
-       YYDEBUG(13, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= 'E') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'D') goto yy165;
-                               goto yy1311;
+                               if (yych <= 'D') goto yy140;
+                               goto yy1260;
                        }
                } else {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy1312;
-                               goto yy165;
+                               if (yych == 'I') goto yy1261;
+                               goto yy140;
                        } else {
-                               if (yych <= 'O') goto yy1313;
-                               if (yych <= 'Q') goto yy165;
-                               goto yy1314;
+                               if (yych <= 'O') goto yy1262;
+                               if (yych <= 'Q') goto yy140;
+                               goto yy1263;
                        }
                }
        } else {
                if (yych <= 'i') {
                        if (yych <= 'd') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                if (yych <= '`') goto yy3;
-                               goto yy170;
+                               goto yy145;
                        } else {
-                               if (yych <= 'e') goto yy1353;
-                               if (yych <= 'h') goto yy170;
-                               goto yy1354;
+                               if (yych <= 'e') goto yy1301;
+                               if (yych <= 'h') goto yy145;
+                               goto yy1302;
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych == 'o') goto yy1355;
-                               goto yy170;
+                               if (yych == 'o') goto yy1303;
+                               goto yy145;
                        } else {
-                               if (yych <= 'r') goto yy1356;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'r') goto yy1304;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy14:
-       YYDEBUG(14, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= 'E') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'D') goto yy165;
-                               goto yy1311;
+                               if (yych <= 'D') goto yy140;
+                               goto yy1260;
                        }
                } else {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy1312;
-                               goto yy165;
+                               if (yych == 'I') goto yy1261;
+                               goto yy140;
                        } else {
-                               if (yych <= 'O') goto yy1313;
-                               if (yych <= 'Q') goto yy165;
-                               goto yy1314;
+                               if (yych <= 'O') goto yy1262;
+                               if (yych <= 'Q') goto yy140;
+                               goto yy1263;
                        }
                }
        } else {
                if (yych <= 'i') {
                        if (yych <= 'd') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                if (yych <= '`') goto yy3;
-                               goto yy165;
+                               goto yy140;
                        } else {
-                               if (yych <= 'e') goto yy1311;
-                               if (yych <= 'h') goto yy165;
-                               goto yy1312;
+                               if (yych <= 'e') goto yy1260;
+                               if (yych <= 'h') goto yy140;
+                               goto yy1261;
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych == 'o') goto yy1313;
-                               goto yy165;
+                               if (yych == 'o') goto yy1262;
+                               goto yy140;
                        } else {
-                               if (yych <= 'r') goto yy1314;
-                               if (yych <= 'z') goto yy165;
+                               if (yych <= 'r') goto yy1263;
+                               if (yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
        }
 yy15:
-       YYDEBUG(15, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy1297;
+               goto yy1246;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1308;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'a') goto yy1257;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy16:
-       YYDEBUG(16, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy1297;
+               goto yy1246;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1297;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'a') goto yy1246;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy17:
-       YYDEBUG(17, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy1276;
+               goto yy1226;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1294;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'a') goto yy1243;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy18:
-       YYDEBUG(18, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy1276;
+               goto yy1226;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1276;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'a') goto yy1226;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy19:
-       YYDEBUG(19, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'D') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'A') goto yy1219;
-                               goto yy165;
+                               if (yych <= 'A') goto yy1169;
+                               goto yy140;
                        }
                } else {
                        if (yych <= 'H') {
-                               if (yych <= 'E') goto yy1218;
-                               goto yy165;
+                               if (yych <= 'E') goto yy1168;
+                               goto yy140;
                        } else {
-                               if (yych <= 'I') goto yy1220;
-                               if (yych <= 'T') goto yy165;
-                               goto yy1221;
+                               if (yych <= 'I') goto yy1170;
+                               if (yych <= 'T') goto yy140;
+                               goto yy1171;
                        }
                }
        } else {
                if (yych <= 'e') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych <= 'a') goto yy1248;
-                               if (yych <= 'd') goto yy170;
-                               goto yy1247;
+                               if (yych <= 'a') goto yy1198;
+                               if (yych <= 'd') goto yy145;
+                               goto yy1197;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych == 'i') goto yy1249;
-                               goto yy170;
+                               if (yych == 'i') goto yy1199;
+                               goto yy145;
                        } else {
-                               if (yych <= 'u') goto yy1250;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'u') goto yy1200;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy20:
-       YYDEBUG(20, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'D') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'A') goto yy1219;
-                               goto yy165;
+                               if (yych <= 'A') goto yy1169;
+                               goto yy140;
                        }
                } else {
                        if (yych <= 'H') {
-                               if (yych <= 'E') goto yy1218;
-                               goto yy165;
+                               if (yych <= 'E') goto yy1168;
+                               goto yy140;
                        } else {
-                               if (yych <= 'I') goto yy1220;
-                               if (yych <= 'T') goto yy165;
-                               goto yy1221;
+                               if (yych <= 'I') goto yy1170;
+                               if (yych <= 'T') goto yy140;
+                               goto yy1171;
                        }
                }
        } else {
                if (yych <= 'e') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych <= 'a') goto yy1219;
-                               if (yych <= 'd') goto yy165;
-                               goto yy1218;
+                               if (yych <= 'a') goto yy1169;
+                               if (yych <= 'd') goto yy140;
+                               goto yy1168;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych == 'i') goto yy1220;
-                               goto yy165;
+                               if (yych == 'i') goto yy1170;
+                               goto yy140;
                        } else {
-                               if (yych <= 'u') goto yy1221;
-                               if (yych <= 'z') goto yy165;
+                               if (yych <= 'u') goto yy1171;
+                               if (yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
        }
 yy21:
-       YYDEBUG(21, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'I') goto yy1188;
-                       if (yych <= 'K') goto yy165;
-                       goto yy1189;
+                       if (yych == 'I') goto yy1138;
+                       if (yych <= 'K') goto yy140;
+                       goto yy1139;
                }
        } else {
                if (yych <= 'i') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'h') goto yy170;
-                       goto yy1206;
+                       if (yych <= 'h') goto yy145;
+                       goto yy1156;
                } else {
-                       if (yych == 'l') goto yy1207;
-                       if (yych <= 'z') goto yy170;
+                       if (yych == 'l') goto yy1157;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy22:
-       YYDEBUG(22, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'I') goto yy1188;
-                       if (yych <= 'K') goto yy165;
-                       goto yy1189;
+                       if (yych == 'I') goto yy1138;
+                       if (yych <= 'K') goto yy140;
+                       goto yy1139;
                }
        } else {
                if (yych <= 'i') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'h') goto yy165;
-                       goto yy1188;
+                       if (yych <= 'h') goto yy140;
+                       goto yy1138;
                } else {
-                       if (yych == 'l') goto yy1189;
-                       if (yych <= 'z') goto yy165;
+                       if (yych == 'l') goto yy1139;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy23:
-       YYDEBUG(23, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy165;
-                       goto yy1062;
+                       if (yych <= 'Q') goto yy140;
+                       goto yy1037;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy170;
+                       goto yy145;
                } else {
-                       if (yych <= 'r') goto yy1181;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'r') goto yy1131;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy24:
-       YYDEBUG(24, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy165;
-                       goto yy1062;
+                       if (yych <= 'Q') goto yy140;
+                       goto yy1037;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
-                       if (yych <= 'r') goto yy1062;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'r') goto yy1037;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy25:
-       YYDEBUG(25, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '`') {
-               if (yych <= '@') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy1016;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= ' ') goto yy1018;
-                                       if (yych <= ',') goto yy12;
-                                       goto yy437;
-                               }
-                       } else {
-                               if (yych <= '0') {
-                                       if (yych <= '.') goto yy1028;
-                                       if (yych <= '/') goto yy436;
-                                       goto yy1061;
-                               } else {
-                                       if (yych <= '9') goto yy1060;
-                                       if (yych <= ':') goto yy1029;
-                                       goto yy12;
-                               }
-                       }
-               } else {
-                       if (yych <= 'G') {
-                               if (yych <= 'D') {
-                                       if (yych <= 'A') goto yy1018;
-                                       if (yych <= 'C') goto yy12;
-                                       goto yy1018;
-                               } else {
-                                       if (yych == 'F') goto yy1018;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'O') {
-                                       if (yych <= 'J') goto yy1018;
-                                       if (yych <= 'L') goto yy12;
-                                       goto yy1018;
-                               } else {
-                                       if (yych <= 'R') goto yy12;
-                                       if (yych <= 'Y') goto yy1018;
-                                       goto yy12;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'n') {
-                       if (yych <= 'g') {
-                               if (yych <= 'd') {
-                                       if (yych <= 'a') goto yy1018;
-                                       if (yych <= 'c') goto yy12;
-                                       goto yy1018;
-                               } else {
-                                       if (yych == 'f') goto yy1018;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'j') {
-                                       if (yych == 'i') goto yy12;
-                                       goto yy1018;
-                               } else {
-                                       if (yych <= 'l') goto yy12;
-                                       if (yych <= 'm') goto yy1018;
-                                       goto yy434;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'o') goto yy1018;
-                                       if (yych <= 'q') goto yy12;
-                                       goto yy435;
-                               } else {
-                                       if (yych <= 's') goto yy429;
-                                       if (yych <= 't') goto yy432;
-                                       goto yy1018;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy1018;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= 'y') goto yy1018;
-                                       if (yych == 0xC2) goto yy1018;
-                                       goto yy12;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':      goto yy991;
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'o':
+       case 'w':
+       case 'y':       goto yy993;
+       case '-':       goto yy412;
+       case '.':       goto yy1003;
+       case '/':       goto yy411;
+       case '0':       goto yy1036;
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy1035;
+       case ':':       goto yy1004;
+       case 'n':       goto yy409;
+       case 'r':       goto yy410;
+       case 's':       goto yy403;
+       case 't':       goto yy407;
+       default:        goto yy12;
        }
 yy26:
-       YYDEBUG(26, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '`') {
-               if (yych <= '@') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy424;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= ' ') goto yy426;
-                                       if (yych <= ',') goto yy12;
-                                       goto yy437;
-                               }
-                       } else {
-                               if (yych <= '2') {
-                                       if (yych <= '.') goto yy438;
-                                       if (yych <= '/') goto yy436;
-                                       goto yy1060;
-                               } else {
-                                       if (yych <= '9') goto yy1027;
-                                       if (yych <= ':') goto yy447;
-                                       goto yy12;
-                               }
-                       }
-               } else {
-                       if (yych <= 'G') {
-                               if (yych <= 'D') {
-                                       if (yych <= 'A') goto yy426;
-                                       if (yych <= 'C') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'F') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'P') {
-                                       if (yych <= 'J') goto yy426;
-                                       if (yych <= 'L') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'R') goto yy12;
-                                       if (yych <= 'Y') goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'n') {
-                       if (yych <= 'g') {
-                               if (yych <= 'd') {
-                                       if (yych <= 'a') goto yy426;
-                                       if (yych <= 'c') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'f') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'j') {
-                                       if (yych == 'i') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'l') goto yy12;
-                                       if (yych <= 'm') goto yy426;
-                                       goto yy434;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'p') goto yy426;
-                                       if (yych <= 'q') goto yy12;
-                                       goto yy435;
-                               } else {
-                                       if (yych <= 's') goto yy429;
-                                       if (yych <= 't') goto yy432;
-                                       goto yy426;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= 'y') goto yy426;
-                                       if (yych == 0xC2) goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':      goto yy399;
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'o':
+       case 'p':
+       case 'w':
+       case 'y':       goto yy401;
+       case '-':       goto yy412;
+       case '.':       goto yy413;
+       case '/':       goto yy411;
+       case '0':
+       case '1':
+       case '2':       goto yy1035;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy1002;
+       case ':':       goto yy422;
+       case 'n':       goto yy409;
+       case 'r':       goto yy410;
+       case 's':       goto yy403;
+       case 't':       goto yy407;
+       default:        goto yy12;
        }
 yy27:
-       YYDEBUG(27, *YYCURSOR);
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '`') {
-               if (yych <= '@') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy424;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= ' ') goto yy426;
-                                       if (yych <= ',') goto yy12;
-                                       goto yy437;
-                               }
-                       } else {
-                               if (yych <= '4') {
-                                       if (yych <= '.') goto yy438;
-                                       if (yych <= '/') goto yy436;
-                                       goto yy1027;
-                               } else {
-                                       if (yych <= '9') goto yy1014;
-                                       if (yych <= ':') goto yy447;
-                                       goto yy12;
-                               }
-                       }
-               } else {
-                       if (yych <= 'G') {
-                               if (yych <= 'D') {
-                                       if (yych <= 'A') goto yy426;
-                                       if (yych <= 'C') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'F') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'P') {
-                                       if (yych <= 'J') goto yy426;
-                                       if (yych <= 'L') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'R') goto yy12;
-                                       if (yych <= 'Y') goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'n') {
-                       if (yych <= 'g') {
-                               if (yych <= 'd') {
-                                       if (yych <= 'a') goto yy426;
-                                       if (yych <= 'c') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'f') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'j') {
-                                       if (yych == 'i') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'l') goto yy12;
-                                       if (yych <= 'm') goto yy426;
-                                       goto yy434;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'p') goto yy426;
-                                       if (yych <= 'q') goto yy12;
-                                       goto yy435;
-                               } else {
-                                       if (yych <= 's') goto yy429;
-                                       if (yych <= 't') goto yy432;
-                                       goto yy426;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= 'y') goto yy426;
-                                       if (yych == 0xC2) goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
-       }
-yy28:
-       YYDEBUG(28, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '`') {
-               if (yych <= '@') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy424;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= ' ') goto yy426;
-                                       if (yych <= ',') goto yy12;
-                                       goto yy437;
-                               }
-                       } else {
-                               if (yych <= '1') {
-                                       if (yych <= '.') goto yy438;
-                                       if (yych <= '/') goto yy436;
-                                       goto yy1014;
-                               } else {
-                                       if (yych <= '9') goto yy433;
-                                       if (yych <= ':') goto yy447;
-                                       goto yy12;
-                               }
-                       }
-               } else {
-                       if (yych <= 'G') {
-                               if (yych <= 'D') {
-                                       if (yych <= 'A') goto yy426;
-                                       if (yych <= 'C') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'F') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'P') {
-                                       if (yych <= 'J') goto yy426;
-                                       if (yych <= 'L') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'R') goto yy12;
-                                       if (yych <= 'Y') goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'n') {
-                       if (yych <= 'g') {
-                               if (yych <= 'd') {
-                                       if (yych <= 'a') goto yy426;
-                                       if (yych <= 'c') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 'f') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'j') {
-                                       if (yych == 'i') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych <= 'l') goto yy12;
-                                       if (yych <= 'm') goto yy426;
-                                       goto yy434;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'p') goto yy426;
-                                       if (yych <= 'q') goto yy12;
-                                       goto yy435;
-                               } else {
-                                       if (yych <= 's') goto yy429;
-                                       if (yych <= 't') goto yy432;
-                                       goto yy426;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= 'y') goto yy426;
-                                       if (yych == 0xC2) goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':      goto yy399;
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'o':
+       case 'p':
+       case 'w':
+       case 'y':       goto yy401;
+       case '-':       goto yy412;
+       case '.':       goto yy413;
+       case '/':       goto yy411;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy1002;
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy989;
+       case ':':       goto yy422;
+       case 'n':       goto yy409;
+       case 'r':       goto yy410;
+       case 's':       goto yy403;
+       case 't':       goto yy407;
+       default:        goto yy12;
+       }
+yy28:
+       yyaccept = 1;
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case '\t':      goto yy399;
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'o':
+       case 'p':
+       case 'w':
+       case 'y':       goto yy401;
+       case '-':       goto yy412;
+       case '.':       goto yy413;
+       case '/':       goto yy411;
+       case '0':
+       case '1':       goto yy989;
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy408;
+       case ':':       goto yy422;
+       case 'n':       goto yy409;
+       case 'r':       goto yy410;
+       case 's':       goto yy403;
+       case 't':       goto yy407;
+       default:        goto yy12;
        }
 yy29:
-       YYDEBUG(29, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'a') {
-               if (yych <= 'A') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy424;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= ' ') goto yy426;
-                                       if (yych <= ',') goto yy12;
-                                       goto yy437;
-                               }
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '.') goto yy438;
-                                       if (yych <= '/') goto yy436;
-                                       goto yy433;
-                               } else {
-                                       if (yych <= ':') goto yy447;
-                                       if (yych <= '@') goto yy12;
-                                       goto yy426;
-                               }
-                       }
-               } else {
-                       if (yych <= 'J') {
-                               if (yych <= 'E') {
-                                       if (yych == 'D') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych == 'G') goto yy12;
-                                       goto yy426;
-                               }
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'L') goto yy12;
-                                       if (yych <= 'P') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych <= 'Y') goto yy426;
-                                       if (yych <= '`') goto yy12;
-                                       goto yy426;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'p') {
-                       if (yych <= 'h') {
-                               if (yych <= 'e') {
-                                       if (yych == 'd') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych == 'g') goto yy12;
-                                       goto yy426;
-                               }
-                       } else {
-                               if (yych <= 'l') {
-                                       if (yych == 'j') goto yy426;
-                                       goto yy12;
-                               } else {
-                                       if (yych == 'n') goto yy434;
-                                       goto yy426;
-                               }
-                       }
-               } else {
-                       if (yych <= 'v') {
-                               if (yych <= 's') {
-                                       if (yych <= 'q') goto yy12;
-                                       if (yych <= 'r') goto yy435;
-                                       goto yy429;
-                               } else {
-                                       if (yych <= 't') goto yy432;
-                                       if (yych <= 'u') goto yy426;
-                                       goto yy12;
-                               }
-                       } else {
-                               if (yych <= 'y') {
-                                       if (yych == 'x') goto yy12;
-                                       goto yy426;
-                               } else {
-                                       if (yych == 0xC2) goto yy426;
-                                       goto yy12;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':      goto yy399;
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'o':
+       case 'p':
+       case 'w':
+       case 'y':       goto yy401;
+       case '-':       goto yy412;
+       case '.':       goto yy413;
+       case '/':       goto yy411;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy408;
+       case ':':       goto yy422;
+       case 'n':       goto yy409;
+       case 'r':       goto yy410;
+       case 's':       goto yy403;
+       case 't':       goto yy407;
+       default:        goto yy12;
        }
 yy30:
-       YYDEBUG(30, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 4) {
@@ -2129,435 +1876,417 @@ yy30:
        }
        switch (yych) {
        case '+':
-       case '-':       goto yy404;
+       case '-':       goto yy379;
        case '0':
-       case '1':       goto yy401;
-       case '2':       goto yy402;
+       case '1':       goto yy376;
+       case '2':       goto yy377;
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy403;
+       case '9':       goto yy378;
        default:        goto yy12;
        }
 yy31:
-       YYDEBUG(31, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
                                if (yych <= 0x08) goto yy3;
-                               goto yy220;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
+                               if (yych == ' ') goto yy195;
                                goto yy3;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
+                               if (yych <= ')') goto yy139;
                                goto yy3;
                        } else {
                                if (yych == '/') goto yy3;
-                               goto yy220;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= 'V') {
                        if (yych <= 'H') {
                                if (yych <= '@') goto yy3;
-                               goto yy165;
+                               goto yy140;
                        } else {
-                               if (yych <= 'I') goto yy400;
-                               if (yych <= 'U') goto yy165;
-                               goto yy399;
+                               if (yych <= 'I') goto yy375;
+                               if (yych <= 'U') goto yy140;
+                               goto yy374;
                        }
                } else {
                        if (yych <= 'Z') {
-                               if (yych == 'X') goto yy399;
-                               goto yy165;
+                               if (yych == 'X') goto yy374;
+                               goto yy140;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy32:
-       YYDEBUG(32, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'Z') {
-                               if (yych <= 'I') goto yy396;
-                               goto yy165;
+                               if (yych <= 'I') goto yy371;
+                               goto yy140;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy33:
-       YYDEBUG(33, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'Z') {
-                               if (yych <= 'I') goto yy394;
-                               goto yy165;
+                               if (yych <= 'I') goto yy369;
+                               goto yy140;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy34:
-       YYDEBUG(34, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych <= 'A') goto yy377;
-                       if (yych <= 'T') goto yy165;
-                       goto yy376;
+                       if (yych <= 'A') goto yy352;
+                       if (yych <= 'T') goto yy140;
+                       goto yy351;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy386;
+                       goto yy361;
                } else {
-                       if (yych == 'u') goto yy385;
-                       if (yych <= 'z') goto yy170;
+                       if (yych == 'u') goto yy360;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy35:
-       YYDEBUG(35, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych <= 'A') goto yy377;
-                       if (yych <= 'T') goto yy165;
-                       goto yy376;
+                       if (yych <= 'A') goto yy352;
+                       if (yych <= 'T') goto yy140;
+                       goto yy351;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy377;
+                       goto yy352;
                } else {
-                       if (yych == 'u') goto yy376;
-                       if (yych <= 'z') goto yy165;
+                       if (yych == 'u') goto yy351;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy36:
-       YYDEBUG(36, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'F') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'O') {
-                               if (yych <= 'G') goto yy355;
-                               goto yy165;
+                               if (yych <= 'G') goto yy330;
+                               goto yy140;
                        } else {
-                               if (yych <= 'P') goto yy354;
-                               if (yych <= 'T') goto yy165;
-                               goto yy353;
+                               if (yych <= 'P') goto yy329;
+                               if (yych <= 'T') goto yy140;
+                               goto yy328;
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych == 'g') goto yy367;
-                               goto yy170;
+                               if (yych == 'g') goto yy342;
+                               goto yy145;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= 'p') goto yy366;
-                               goto yy170;
+                               if (yych <= 'p') goto yy341;
+                               goto yy145;
                        } else {
-                               if (yych <= 'u') goto yy365;
-                               if (yych <= 'z') goto yy170;
+                               if (yych <= 'u') goto yy340;
+                               if (yych <= 'z') goto yy145;
                                goto yy3;
                        }
                }
        }
 yy37:
-       YYDEBUG(37, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'F') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
                        if (yych <= 'O') {
-                               if (yych <= 'G') goto yy355;
-                               goto yy165;
+                               if (yych <= 'G') goto yy330;
+                               goto yy140;
                        } else {
-                               if (yych <= 'P') goto yy354;
-                               if (yych <= 'T') goto yy165;
-                               goto yy353;
+                               if (yych <= 'P') goto yy329;
+                               if (yych <= 'T') goto yy140;
+                               goto yy328;
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy165;
+                               if (yych <= 'Z') goto yy140;
                                goto yy3;
                        } else {
-                               if (yych == 'g') goto yy355;
-                               goto yy165;
+                               if (yych == 'g') goto yy330;
+                               goto yy140;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= 'p') goto yy354;
-                               goto yy165;
+                               if (yych <= 'p') goto yy329;
+                               goto yy140;
                        } else {
-                               if (yych <= 'u') goto yy353;
-                               if (yych <= 'z') goto yy165;
+                               if (yych <= 'u') goto yy328;
+                               if (yych <= 'z') goto yy140;
                                goto yy3;
                        }
                }
        }
 yy38:
-       YYDEBUG(38, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'C') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'B') goto yy165;
-                       goto yy343;
+                       if (yych <= 'B') goto yy140;
+                       goto yy318;
                }
        } else {
                if (yych <= 'b') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy170;
+                       goto yy145;
                } else {
-                       if (yych <= 'c') goto yy348;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'c') goto yy323;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy39:
-       YYDEBUG(39, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'C') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'B') goto yy165;
-                       goto yy343;
+                       if (yych <= 'B') goto yy140;
+                       goto yy318;
                }
        } else {
                if (yych <= 'b') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
-                       if (yych <= 'c') goto yy343;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'c') goto yy318;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy40:
-       YYDEBUG(40, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy216;
+                       if (yych <= 'D') goto yy140;
+                       goto yy191;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy170;
+                       goto yy145;
                } else {
-                       if (yych <= 'e') goto yy334;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'e') goto yy309;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy41:
-       YYDEBUG(41, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy216;
+                       if (yych <= 'D') goto yy140;
+                       goto yy191;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
-                       if (yych <= 'e') goto yy216;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'e') goto yy191;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy42:
-       YYDEBUG(42, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy189;
+                       if (yych <= 'D') goto yy140;
+                       goto yy164;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy170;
+                       goto yy145;
                } else {
-                       if (yych <= 'e') goto yy203;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'e') goto yy178;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy43:
-       YYDEBUG(43, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy165;
-                       goto yy189;
+                       if (yych <= 'D') goto yy140;
+                       goto yy164;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy165;
+                       if (yych <= 'Z') goto yy140;
                        if (yych <= '`') goto yy3;
-                       goto yy165;
+                       goto yy140;
                } else {
-                       if (yych <= 'e') goto yy189;
-                       if (yych <= 'z') goto yy165;
+                       if (yych <= 'e') goto yy164;
+                       if (yych <= 'z') goto yy140;
                        goto yy3;
                }
        }
 yy44:
-       YYDEBUG(44, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy165;
+               goto yy140;
        } else {
                if (yych <= 'Z') {
-                       if (yych <= 'M') goto yy181;
-                       goto yy165;
+                       if (yych <= 'M') goto yy156;
+                       goto yy140;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy170;
+                       if (yych <= 'z') goto yy145;
                        goto yy3;
                }
        }
 yy45:
-       YYDEBUG(45, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '@') goto yy12;
-       if (yych <= 'Z') goto yy180;
+       if (yych <= 'Z') goto yy155;
        if (yych <= '`') goto yy12;
-       if (yych <= 'z') goto yy180;
+       if (yych <= 'z') goto yy155;
        goto yy12;
 yy46:
-       YYDEBUG(46, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Z') goto yy165;
+               if (yych <= 'Z') goto yy140;
                if (yych <= '`') goto yy3;
-               if (yych <= 'z') goto yy170;
+               if (yych <= 'z') goto yy145;
                goto yy3;
        }
 yy47:
-       YYDEBUG(47, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Z') goto yy165;
+               if (yych <= 'Z') goto yy140;
                if (yych <= '`') goto yy3;
-               if (yych <= 'z') goto yy165;
+               if (yych <= 'z') goto yy140;
                goto yy3;
        }
 yy48:
-       YYDEBUG(48, *YYCURSOR);
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 4) {
@@ -2566,104 +2295,82 @@ yy48:
        if (yych <= '/') goto yy49;
        if (yych <= '9') goto yy54;
 yy49:
-       YYDEBUG(49, *YYCURSOR);
-#line 1773 "ext/date/lib/parse_date.re"
+#line 1714 "ext/date/lib/parse_date.re"
        {
                goto std;
        }
-#line 2575 "<stdout>"
+#line 2303 "ext/date/lib/parse_date.c"
 yy50:
-       YYDEBUG(50, *YYCURSOR);
        yych = *++YYCURSOR;
        goto yy49;
 yy51:
-       YYDEBUG(51, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(52, *YYCURSOR);
-#line 1778 "ext/date/lib/parse_date.re"
+#line 1719 "ext/date/lib/parse_date.re"
        {
                s->pos = cursor; s->line++;
                goto std;
        }
-#line 2589 "<stdout>"
+#line 2314 "ext/date/lib/parse_date.c"
 yy53:
-       YYDEBUG(53, *YYCURSOR);
        yych = *++YYCURSOR;
        goto yy12;
 yy54:
-       YYDEBUG(54, *YYCURSOR);
        ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
        yych = *YYCURSOR;
-       YYDEBUG(55, *YYCURSOR);
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
-       if (yych <= 'X') {
-               if (yych <= 'G') {
+       if (yych <= 'W') {
+               if (yych <= 'F') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy59;
                                if (yych >= ' ') goto yy59;
                        } else {
-                               if (yych <= 'D') {
-                                       if (yych >= 'D') goto yy66;
-                               } else {
-                                       if (yych == 'F') goto yy67;
-                               }
+                               if (yych == 'D') goto yy64;
+                               if (yych >= 'F') goto yy65;
                        }
                } else {
-                       if (yych <= 'S') {
-                               if (yych <= 'L') {
-                                       if (yych <= 'H') goto yy65;
-                               } else {
-                                       if (yych <= 'M') goto yy61;
-                                       if (yych >= 'S') goto yy64;
-                               }
+                       if (yych <= 'M') {
+                               if (yych == 'H') goto yy63;
+                               if (yych >= 'M') goto yy62;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych <= 'T') goto yy70;
-                                       goto yy63;
+                               if (yych <= 'S') {
+                                       if (yych >= 'S') goto yy61;
                                } else {
-                                       if (yych == 'W') goto yy69;
+                                       if (yych <= 'T') goto yy68;
+                                       if (yych >= 'W') goto yy67;
                                }
                        }
                }
        } else {
-               if (yych <= 'r') {
-                       if (yych <= 'f') {
-                               if (yych <= 'c') {
-                                       if (yych <= 'Y') goto yy68;
-                               } else {
-                                       if (yych <= 'd') goto yy66;
-                                       if (yych >= 'f') goto yy67;
-                               }
+               if (yych <= 'l') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy66;
+                               if (yych >= 'd') goto yy64;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych >= 'h') goto yy65;
+                               if (yych <= 'f') {
+                                       if (yych >= 'f') goto yy65;
                                } else {
-                                       if (yych == 'm') goto yy61;
+                                       if (yych == 'h') goto yy63;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 't') {
-                                       if (yych <= 's') goto yy64;
-                                       goto yy70;
-                               } else {
-                                       if (yych <= 'u') goto yy63;
-                                       if (yych >= 'w') goto yy69;
-                               }
+                       if (yych <= 't') {
+                               if (yych <= 'm') goto yy62;
+                               if (yych <= 'r') goto yy56;
+                               if (yych <= 's') goto yy61;
+                               goto yy68;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych >= 'y') goto yy68;
+                               if (yych <= 'w') {
+                                       if (yych >= 'w') goto yy67;
                                } else {
-                                       if (yych == 0xC2) goto yy62;
+                                       if (yych == 'y') goto yy66;
                                }
                        }
                }
        }
 yy56:
-       YYDEBUG(56, *YYCURSOR);
        YYCURSOR = YYMARKER;
        if (yyaccept <= 16) {
                if (yyaccept <= 8) {
@@ -2680,23 +2387,23 @@ yy56:
                                        }
                                } else {
                                        if (yyaccept == 3) {
-                                               goto yy74;
+                                               goto yy72;
                                        } else {
-                                               goto yy191;
+                                               goto yy166;
                                        }
                                }
                        } else {
                                if (yyaccept <= 6) {
                                        if (yyaccept == 5) {
-                                               goto yy218;
+                                               goto yy193;
                                        } else {
-                                               goto yy232;
+                                               goto yy207;
                                        }
                                } else {
                                        if (yyaccept == 7) {
-                                               goto yy246;
+                                               goto yy221;
                                        } else {
-                                               goto yy357;
+                                               goto yy332;
                                        }
                                }
                        }
@@ -2704,106 +2411,100 @@ yy56:
                        if (yyaccept <= 12) {
                                if (yyaccept <= 10) {
                                        if (yyaccept == 9) {
-                                               goto yy440;
+                                               goto yy415;
                                        } else {
-                                               goto yy455;
+                                               goto yy430;
                                        }
                                } else {
                                        if (yyaccept == 11) {
-                                               goto yy576;
+                                               goto yy551;
                                        } else {
-                                               goto yy621;
+                                               goto yy596;
                                        }
                                }
                        } else {
                                if (yyaccept <= 14) {
                                        if (yyaccept == 13) {
-                                               goto yy631;
+                                               goto yy606;
                                        } else {
-                                               goto yy728;
+                                               goto yy703;
                                        }
                                } else {
                                        if (yyaccept == 15) {
-                                               goto yy748;
+                                               goto yy723;
                                        } else {
-                                               goto yy779;
+                                               goto yy754;
                                        }
                                }
                        }
                }
        } else {
-               if (yyaccept <= 25) {
-                       if (yyaccept <= 21) {
-                               if (yyaccept <= 19) {
-                                       if (yyaccept <= 18) {
-                                               if (yyaccept == 17) {
-                                                       goto yy786;
-                                               } else {
-                                                       goto yy813;
-                                               }
+               if (yyaccept <= 24) {
+                       if (yyaccept <= 20) {
+                               if (yyaccept <= 18) {
+                                       if (yyaccept == 17) {
+                                               goto yy761;
                                        } else {
-                                               goto yy758;
+                                               goto yy788;
                                        }
                                } else {
-                                       if (yyaccept == 20) {
-                                               goto yy419;
+                                       if (yyaccept == 19) {
+                                               goto yy733;
                                        } else {
-                                               goto yy938;
+                                               goto yy394;
                                        }
                                }
                        } else {
-                               if (yyaccept <= 23) {
-                                       if (yyaccept == 22) {
-                                               goto yy807;
+                               if (yyaccept <= 22) {
+                                       if (yyaccept == 21) {
+                                               goto yy913;
                                        } else {
-                                               goto yy1032;
+                                               goto yy782;
                                        }
                                } else {
-                                       if (yyaccept == 24) {
-                                               goto yy1040;
+                                       if (yyaccept == 23) {
+                                               goto yy1007;
                                        } else {
-                                               goto yy1084;
+                                               goto yy1015;
                                        }
                                }
                        }
                } else {
-                       if (yyaccept <= 29) {
-                               if (yyaccept <= 27) {
-                                       if (yyaccept == 26) {
-                                               goto yy1108;
+                       if (yyaccept <= 28) {
+                               if (yyaccept <= 26) {
+                                       if (yyaccept == 25) {
+                                               goto yy1057;
                                        } else {
-                                               goto yy1284;
+                                               goto yy1081;
                                        }
                                } else {
-                                       if (yyaccept == 28) {
-                                               goto yy1379;
+                                       if (yyaccept == 27) {
+                                               goto yy1234;
                                        } else {
-                                               goto yy1417;
+                                               goto yy1357;
                                        }
                                }
                        } else {
-                               if (yyaccept <= 31) {
-                                       if (yyaccept == 30) {
-                                               goto yy1420;
+                               if (yyaccept <= 30) {
+                                       if (yyaccept == 29) {
+                                               goto yy1360;
                                        } else {
-                                               goto yy1500;
+                                               goto yy1440;
                                        }
                                } else {
-                                       if (yyaccept == 32) {
-                                               goto yy1508;
+                                       if (yyaccept == 31) {
+                                               goto yy1448;
                                        } else {
-                                               goto yy1531;
+                                               goto yy1471;
                                        }
                                }
                        }
                }
        }
 yy57:
-       YYDEBUG(57, *YYCURSOR);
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(58, *YYCURSOR);
        if (yybm[0+yych] & 4) {
                goto yy57;
        }
@@ -2811,217 +2512,168 @@ yy57:
        if (yych <= '9') goto yy54;
        goto yy56;
 yy59:
-       YYDEBUG(59, *YYCURSOR);
        ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
        yych = *YYCURSOR;
 yy60:
-       YYDEBUG(60, *YYCURSOR);
-       if (yych <= 'X') {
-               if (yych <= 'G') {
+       if (yych <= 'W') {
+               if (yych <= 'F') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy59;
                                if (yych <= 0x1F) goto yy56;
                                goto yy59;
                        } else {
-                               if (yych <= 'D') {
-                                       if (yych <= 'C') goto yy56;
-                                       goto yy66;
-                               } else {
-                                       if (yych == 'F') goto yy67;
-                                       goto yy56;
-                               }
+                               if (yych == 'D') goto yy64;
+                               if (yych <= 'E') goto yy56;
+                               goto yy65;
                        }
                } else {
-                       if (yych <= 'S') {
-                               if (yych <= 'L') {
-                                       if (yych <= 'H') goto yy65;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'M') goto yy61;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy64;
-                               }
+                       if (yych <= 'M') {
+                               if (yych == 'H') goto yy63;
+                               if (yych <= 'L') goto yy56;
+                               goto yy62;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych <= 'T') goto yy70;
-                                       goto yy63;
+                               if (yych <= 'S') {
+                                       if (yych <= 'R') goto yy56;
                                } else {
-                                       if (yych == 'W') goto yy69;
-                                       goto yy56;
+                                       if (yych <= 'T') goto yy68;
+                                       if (yych <= 'V') goto yy56;
+                                       goto yy67;
                                }
                        }
                }
        } else {
-               if (yych <= 'r') {
-                       if (yych <= 'f') {
-                               if (yych <= 'c') {
-                                       if (yych <= 'Y') goto yy68;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'd') goto yy66;
-                                       if (yych <= 'e') goto yy56;
-                                       goto yy67;
-                               }
+               if (yych <= 'l') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy66;
+                               if (yych <= 'c') goto yy56;
+                               goto yy64;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych <= 'g') goto yy56;
+                               if (yych <= 'f') {
+                                       if (yych <= 'e') goto yy56;
                                        goto yy65;
                                } else {
-                                       if (yych != 'm') goto yy56;
+                                       if (yych == 'h') goto yy63;
+                                       goto yy56;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 't') {
-                                       if (yych <= 's') goto yy64;
-                                       goto yy70;
-                               } else {
-                                       if (yych <= 'u') goto yy63;
-                                       if (yych <= 'v') goto yy56;
-                                       goto yy69;
-                               }
+                       if (yych <= 't') {
+                               if (yych <= 'm') goto yy62;
+                               if (yych <= 'r') goto yy56;
+                               if (yych >= 't') goto yy68;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy56;
-                                       goto yy68;
-                               } else {
-                                       if (yych == 0xC2) goto yy62;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy56;
+                                       goto yy67;
+                               } else {
+                                       if (yych == 'y') goto yy66;
                                        goto yy56;
                                }
                        }
                }
        }
 yy61:
-       YYDEBUG(61, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych <= 'S') {
-               if (yych <= 'N') {
-                       if (yych == 'I') goto yy138;
+       if (yych <= 'U') {
+               if (yych <= 'D') {
+                       if (yych == 'A') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'O') goto yy137;
-                       if (yych <= 'R') goto yy56;
-                       goto yy139;
+                       if (yych <= 'E') goto yy127;
+                       if (yych <= 'T') goto yy56;
+                       goto yy125;
                }
        } else {
-               if (yych <= 'n') {
-                       if (yych == 'i') goto yy138;
+               if (yych <= 'd') {
+                       if (yych == 'a') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'o') goto yy137;
-                       if (yych == 's') goto yy139;
+                       if (yych <= 'e') goto yy127;
+                       if (yych == 'u') goto yy125;
                        goto yy56;
                }
        }
 yy62:
-       YYDEBUG(62, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 0xB5) goto yy134;
-       goto yy56;
-yy63:
-       YYDEBUG(63, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy132;
-       if (yych == 's') goto yy132;
-       goto yy56;
-yy64:
-       YYDEBUG(64, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych <= 'U') {
-               if (yych <= 'D') {
-                       if (yych == 'A') goto yy119;
-                       goto yy56;
-               } else {
-                       if (yych <= 'E') goto yy120;
-                       if (yych <= 'T') goto yy56;
-                       goto yy118;
-               }
+       if (yych <= 'O') {
+               if (yych == 'I') goto yy117;
+               if (yych <= 'N') goto yy56;
+               goto yy116;
        } else {
-               if (yych <= 'd') {
-                       if (yych == 'a') goto yy119;
-                       goto yy56;
+               if (yych <= 'i') {
+                       if (yych <= 'h') goto yy56;
+                       goto yy117;
                } else {
-                       if (yych <= 'e') goto yy120;
-                       if (yych == 'u') goto yy118;
+                       if (yych == 'o') goto yy116;
                        goto yy56;
                }
        }
-yy65:
-       YYDEBUG(65, *YYCURSOR);
+yy63:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy116;
-       if (yych == 'o') goto yy116;
+       if (yych == 'O') goto yy114;
+       if (yych == 'o') goto yy114;
        goto yy56;
-yy66:
-       YYDEBUG(66, *YYCURSOR);
+yy64:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy115;
-       if (yych == 'a') goto yy115;
+       if (yych == 'A') goto yy113;
+       if (yych == 'a') goto yy113;
        goto yy56;
-yy67:
-       YYDEBUG(67, *YYCURSOR);
+yy65:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
-               if (yych == 'O') goto yy100;
+               if (yych == 'O') goto yy98;
                if (yych <= 'Q') goto yy56;
-               goto yy99;
+               goto yy97;
        } else {
                if (yych <= 'o') {
                        if (yych <= 'n') goto yy56;
-                       goto yy100;
+                       goto yy98;
                } else {
-                       if (yych == 'r') goto yy99;
+                       if (yych == 'r') goto yy97;
                        goto yy56;
                }
        }
-yy68:
-       YYDEBUG(68, *YYCURSOR);
+yy66:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy96;
-       if (yych == 'e') goto yy96;
+       if (yych == 'E') goto yy94;
+       if (yych == 'e') goto yy94;
        goto yy56;
-yy69:
-       YYDEBUG(69, *YYCURSOR);
+yy67:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy84;
-       if (yych == 'e') goto yy84;
+       if (yych == 'E') goto yy82;
+       if (yych == 'e') goto yy82;
        goto yy56;
-yy70:
-       YYDEBUG(70, *YYCURSOR);
+yy68:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'H') goto yy71;
+               if (yych == 'H') goto yy69;
                if (yych <= 'T') goto yy56;
-               goto yy72;
+               goto yy70;
        } else {
                if (yych <= 'h') {
                        if (yych <= 'g') goto yy56;
                } else {
-                       if (yych == 'u') goto yy72;
+                       if (yych == 'u') goto yy70;
                        goto yy56;
                }
        }
-yy71:
-       YYDEBUG(71, *YYCURSOR);
+yy69:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy79;
-       if (yych == 'u') goto yy79;
+       if (yych == 'U') goto yy77;
+       if (yych == 'u') goto yy77;
        goto yy56;
-yy72:
-       YYDEBUG(72, *YYCURSOR);
+yy70:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy73;
+       if (yych == 'E') goto yy71;
        if (yych != 'e') goto yy56;
-yy73:
-       YYDEBUG(73, *YYCURSOR);
+yy71:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'S') goto yy75;
-       if (yych == 's') goto yy75;
-yy74:
-       YYDEBUG(74, *YYCURSOR);
-#line 1757 "ext/date/lib/parse_date.re"
+       if (yych == 'S') goto yy73;
+       if (yych == 's') goto yy73;
+yy72:
+#line 1698 "ext/date/lib/parse_date.re"
        {
                timelib_ull i;
                DEBUG_OUTPUT("relative");
@@ -3036,642 +2688,427 @@ yy74:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 3040 "<stdout>"
-yy75:
-       YYDEBUG(75, *YYCURSOR);
+#line 2692 "ext/date/lib/parse_date.c"
+yy73:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy76;
+       if (yych == 'D') goto yy74;
        if (yych != 'd') goto yy56;
-yy76:
-       YYDEBUG(76, *YYCURSOR);
+yy74:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy77;
+       if (yych == 'A') goto yy75;
        if (yych != 'a') goto yy56;
-yy77:
-       YYDEBUG(77, *YYCURSOR);
+yy75:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
+       if (yych == 'Y') goto yy76;
        if (yych != 'y') goto yy56;
-yy78:
-       YYDEBUG(78, *YYCURSOR);
+yy76:
        yych = *++YYCURSOR;
-       goto yy74;
-yy79:
-       YYDEBUG(79, *YYCURSOR);
+       goto yy72;
+yy77:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'R') goto yy80;
-       if (yych != 'r') goto yy74;
-yy80:
-       YYDEBUG(80, *YYCURSOR);
+       if (yych == 'R') goto yy78;
+       if (yych != 'r') goto yy72;
+yy78:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy81;
+       if (yych == 'S') goto yy79;
        if (yych != 's') goto yy56;
-yy81:
-       YYDEBUG(81, *YYCURSOR);
+yy79:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy82;
+       if (yych == 'D') goto yy80;
        if (yych != 'd') goto yy56;
-yy82:
-       YYDEBUG(82, *YYCURSOR);
+yy80:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy83;
+       if (yych == 'A') goto yy81;
        if (yych != 'a') goto yy56;
-yy83:
-       YYDEBUG(83, *YYCURSOR);
+yy81:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
        goto yy56;
-yy84:
-       YYDEBUG(84, *YYCURSOR);
+yy82:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= 'C') goto yy56;
-               if (yych <= 'D') goto yy86;
+               if (yych <= 'D') goto yy84;
        } else {
                if (yych <= 'c') goto yy56;
-               if (yych <= 'd') goto yy86;
+               if (yych <= 'd') goto yy84;
                if (yych >= 'f') goto yy56;
        }
-       YYDEBUG(85, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'K') goto yy92;
-       if (yych == 'k') goto yy92;
+       if (yych == 'K') goto yy90;
+       if (yych == 'k') goto yy90;
        goto yy56;
-yy86:
-       YYDEBUG(86, *YYCURSOR);
+yy84:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'N') goto yy87;
-       if (yych != 'n') goto yy74;
-yy87:
-       YYDEBUG(87, *YYCURSOR);
+       if (yych == 'N') goto yy85;
+       if (yych != 'n') goto yy72;
+yy85:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy88;
+       if (yych == 'E') goto yy86;
        if (yych != 'e') goto yy56;
-yy88:
-       YYDEBUG(88, *YYCURSOR);
+yy86:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy89;
+       if (yych == 'S') goto yy87;
        if (yych != 's') goto yy56;
-yy89:
-       YYDEBUG(89, *YYCURSOR);
+yy87:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy90;
+       if (yych == 'D') goto yy88;
        if (yych != 'd') goto yy56;
-yy90:
-       YYDEBUG(90, *YYCURSOR);
+yy88:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy91;
+       if (yych == 'A') goto yy89;
        if (yych != 'a') goto yy56;
-yy91:
-       YYDEBUG(91, *YYCURSOR);
+yy89:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
        goto yy56;
-yy92:
-       YYDEBUG(92, *YYCURSOR);
+yy90:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
-               if (yych == 'D') goto yy93;
-               if (yych <= 'R') goto yy74;
-               goto yy78;
+               if (yych == 'D') goto yy91;
+               if (yych <= 'R') goto yy72;
+               goto yy76;
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'c') goto yy74;
+                       if (yych <= 'c') goto yy72;
                } else {
-                       if (yych == 's') goto yy78;
-                       goto yy74;
+                       if (yych == 's') goto yy76;
+                       goto yy72;
                }
        }
-yy93:
-       YYDEBUG(93, *YYCURSOR);
+yy91:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy94;
+       if (yych == 'A') goto yy92;
        if (yych != 'a') goto yy56;
-yy94:
-       YYDEBUG(94, *YYCURSOR);
+yy92:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy95;
+       if (yych == 'Y') goto yy93;
        if (yych != 'y') goto yy56;
-yy95:
-       YYDEBUG(95, *YYCURSOR);
+yy93:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy78;
-       if (yych == 's') goto yy78;
-       goto yy74;
-yy96:
-       YYDEBUG(96, *YYCURSOR);
+       if (yych == 'S') goto yy76;
+       if (yych == 's') goto yy76;
+       goto yy72;
+yy94:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy97;
+       if (yych == 'A') goto yy95;
        if (yych != 'a') goto yy56;
-yy97:
-       YYDEBUG(97, *YYCURSOR);
+yy95:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy98;
+       if (yych == 'R') goto yy96;
        if (yych != 'r') goto yy56;
-yy98:
-       YYDEBUG(98, *YYCURSOR);
+yy96:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy78;
-       if (yych == 's') goto yy78;
-       goto yy74;
-yy99:
-       YYDEBUG(99, *YYCURSOR);
+       if (yych == 'S') goto yy76;
+       if (yych == 's') goto yy76;
+       goto yy72;
+yy97:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy112;
-       if (yych == 'i') goto yy112;
+       if (yych == 'I') goto yy110;
+       if (yych == 'i') goto yy110;
        goto yy56;
-yy100:
-       YYDEBUG(100, *YYCURSOR);
+yy98:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy101;
+       if (yych == 'R') goto yy99;
        if (yych != 'r') goto yy56;
-yy101:
-       YYDEBUG(101, *YYCURSOR);
+yy99:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy102;
+       if (yych == 'T') goto yy100;
        if (yych != 't') goto yy56;
-yy102:
-       YYDEBUG(102, *YYCURSOR);
+yy100:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'H') goto yy104;
+               if (yych == 'H') goto yy102;
                if (yych <= 'M') goto yy56;
        } else {
                if (yych <= 'h') {
                        if (yych <= 'g') goto yy56;
-                       goto yy104;
+                       goto yy102;
                } else {
                        if (yych != 'n') goto yy56;
                }
        }
-       YYDEBUG(103, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy109;
-       if (yych == 'i') goto yy109;
+       if (yych == 'I') goto yy107;
+       if (yych == 'i') goto yy107;
        goto yy56;
-yy104:
-       YYDEBUG(104, *YYCURSOR);
+yy102:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy105;
+       if (yych == 'N') goto yy103;
        if (yych != 'n') goto yy56;
-yy105:
-       YYDEBUG(105, *YYCURSOR);
+yy103:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy106;
+       if (yych == 'I') goto yy104;
        if (yych != 'i') goto yy56;
-yy106:
-       YYDEBUG(106, *YYCURSOR);
+yy104:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy107;
+       if (yych == 'G') goto yy105;
        if (yych != 'g') goto yy56;
-yy107:
-       YYDEBUG(107, *YYCURSOR);
+yy105:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy108;
+       if (yych == 'H') goto yy106;
        if (yych != 'h') goto yy56;
-yy108:
-       YYDEBUG(108, *YYCURSOR);
+yy106:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy98;
-       if (yych == 't') goto yy98;
+       if (yych == 'T') goto yy96;
+       if (yych == 't') goto yy96;
        goto yy56;
-yy109:
-       YYDEBUG(109, *YYCURSOR);
+yy107:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy110;
+       if (yych == 'G') goto yy108;
        if (yych != 'g') goto yy56;
-yy110:
-       YYDEBUG(110, *YYCURSOR);
+yy108:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy111;
+       if (yych == 'H') goto yy109;
        if (yych != 'h') goto yy56;
-yy111:
-       YYDEBUG(111, *YYCURSOR);
+yy109:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy98;
-       if (yych == 't') goto yy98;
+       if (yych == 'T') goto yy96;
+       if (yych == 't') goto yy96;
        goto yy56;
-yy112:
-       YYDEBUG(112, *YYCURSOR);
+yy110:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'D') goto yy113;
-       if (yych != 'd') goto yy74;
-yy113:
-       YYDEBUG(113, *YYCURSOR);
+       if (yych == 'D') goto yy111;
+       if (yych != 'd') goto yy72;
+yy111:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy114;
+       if (yych == 'A') goto yy112;
        if (yych != 'a') goto yy56;
-yy114:
-       YYDEBUG(114, *YYCURSOR);
+yy112:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
        goto yy56;
-yy115:
-       YYDEBUG(115, *YYCURSOR);
+yy113:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy98;
-       if (yych == 'y') goto yy98;
+       if (yych == 'Y') goto yy96;
+       if (yych == 'y') goto yy96;
        goto yy56;
-yy116:
-       YYDEBUG(116, *YYCURSOR);
+yy114:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy117;
+       if (yych == 'U') goto yy115;
        if (yych != 'u') goto yy56;
-yy117:
-       YYDEBUG(117, *YYCURSOR);
+yy115:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy98;
-       if (yych == 'r') goto yy98;
+       if (yych == 'R') goto yy96;
+       if (yych == 'r') goto yy96;
        goto yy56;
-yy118:
-       YYDEBUG(118, *YYCURSOR);
+yy116:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy129;
-       if (yych == 'n') goto yy129;
+       if (yych == 'N') goto yy121;
+       if (yych == 'n') goto yy121;
        goto yy56;
-yy119:
-       YYDEBUG(119, *YYCURSOR);
+yy117:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy124;
-       if (yych == 't') goto yy124;
-       goto yy56;
+       if (yych == 'N') goto yy118;
+       if (yych != 'n') goto yy56;
+yy118:
+       yyaccept = 3;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych <= 'U') {
+               if (yych == 'S') goto yy76;
+               if (yych <= 'T') goto yy72;
+       } else {
+               if (yych <= 's') {
+                       if (yych <= 'r') goto yy72;
+                       goto yy76;
+               } else {
+                       if (yych != 'u') goto yy72;
+               }
+       }
+       yych = *++YYCURSOR;
+       if (yych == 'T') goto yy120;
+       if (yych != 't') goto yy56;
 yy120:
-       YYDEBUG(120, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy121;
-       if (yych != 'c') goto yy56;
+       if (yych == 'E') goto yy96;
+       if (yych == 'e') goto yy96;
+       goto yy56;
 yy121:
-       YYDEBUG(121, *YYCURSOR);
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'S') {
-               if (yych == 'O') goto yy122;
-               if (yych <= 'R') goto yy74;
-               goto yy78;
+       if (yych <= 'T') {
+               if (yych == 'D') goto yy122;
+               if (yych <= 'S') goto yy72;
+               goto yy123;
        } else {
-               if (yych <= 'o') {
-                       if (yych <= 'n') goto yy74;
+               if (yych <= 'd') {
+                       if (yych <= 'c') goto yy72;
                } else {
-                       if (yych == 's') goto yy78;
-                       goto yy74;
+                       if (yych == 't') goto yy123;
+                       goto yy72;
                }
        }
 yy122:
-       YYDEBUG(122, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy123;
-       if (yych != 'n') goto yy56;
+       if (yych == 'A') goto yy124;
+       if (yych == 'a') goto yy124;
+       goto yy56;
 yy123:
-       YYDEBUG(123, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy98;
-       if (yych == 'd') goto yy98;
+       if (yych == 'H') goto yy96;
+       if (yych == 'h') goto yy96;
        goto yy56;
 yy124:
-       YYDEBUG(124, *YYCURSOR);
-       yyaccept = 3;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'U') goto yy125;
-       if (yych != 'u') goto yy74;
+       yych = *++YYCURSOR;
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
+       goto yy56;
 yy125:
-       YYDEBUG(125, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy126;
-       if (yych != 'r') goto yy56;
+       if (yych == 'N') goto yy136;
+       if (yych == 'n') goto yy136;
+       goto yy56;
 yy126:
-       YYDEBUG(126, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy127;
-       if (yych != 'd') goto yy56;
+       if (yych == 'T') goto yy131;
+       if (yych == 't') goto yy131;
+       goto yy56;
 yy127:
-       YYDEBUG(127, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy128;
-       if (yych != 'a') goto yy56;
+       if (yych == 'C') goto yy128;
+       if (yych != 'c') goto yy56;
 yy128:
-       YYDEBUG(128, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
-       goto yy56;
-yy129:
-       YYDEBUG(129, *YYCURSOR);
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'D') goto yy130;
-       if (yych != 'd') goto yy74;
-yy130:
-       YYDEBUG(130, *YYCURSOR);
+       if (yych <= 'S') {
+               if (yych == 'O') goto yy129;
+               if (yych <= 'R') goto yy72;
+               goto yy76;
+       } else {
+               if (yych <= 'o') {
+                       if (yych <= 'n') goto yy72;
+               } else {
+                       if (yych == 's') goto yy76;
+                       goto yy72;
+               }
+       }
+yy129:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy131;
-       if (yych != 'a') goto yy56;
-yy131:
-       YYDEBUG(131, *YYCURSOR);
+       if (yych == 'N') goto yy130;
+       if (yych != 'n') goto yy56;
+yy130:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
+       if (yych == 'D') goto yy96;
+       if (yych == 'd') goto yy96;
        goto yy56;
+yy131:
+       yyaccept = 3;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych == 'U') goto yy132;
+       if (yych != 'u') goto yy72;
 yy132:
-       YYDEBUG(132, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy133;
-       if (yych != 'e') goto yy56;
+       if (yych == 'R') goto yy133;
+       if (yych != 'r') goto yy56;
 yy133:
-       YYDEBUG(133, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy98;
-       if (yych == 'c') goto yy98;
-       goto yy56;
+       if (yych == 'D') goto yy134;
+       if (yych != 'd') goto yy56;
 yy134:
-       YYDEBUG(134, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy135;
-       if (yych != 's') goto yy56;
+       if (yych == 'A') goto yy135;
+       if (yych != 'a') goto yy56;
 yy135:
-       YYDEBUG(135, *YYCURSOR);
-       yyaccept = 3;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy136;
-       if (yych != 'e') goto yy74;
-yy136:
-       YYDEBUG(136, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy98;
-       if (yych == 'c') goto yy98;
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
        goto yy56;
+yy136:
+       yyaccept = 3;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych == 'D') goto yy137;
+       if (yych != 'd') goto yy72;
 yy137:
-       YYDEBUG(137, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy160;
-       if (yych == 'n') goto yy160;
-       goto yy56;
+       if (yych == 'A') goto yy138;
+       if (yych != 'a') goto yy56;
 yy138:
-       YYDEBUG(138, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych <= 'N') {
-               if (yych <= 'K') {
-                       if (yych == 'C') goto yy142;
-                       goto yy56;
-               } else {
-                       if (yych <= 'L') goto yy141;
-                       if (yych <= 'M') goto yy56;
-                       goto yy143;
-               }
-       } else {
-               if (yych <= 'k') {
-                       if (yych == 'c') goto yy142;
-                       goto yy56;
-               } else {
-                       if (yych <= 'l') goto yy141;
-                       if (yych == 'n') goto yy143;
-                       goto yy56;
-               }
-       }
+       if (yych == 'Y') goto yy76;
+       if (yych == 'y') goto yy76;
+       goto yy56;
 yy139:
-       YYDEBUG(139, *YYCURSOR);
-       yyaccept = 3;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy140;
-       if (yych != 'e') goto yy74;
+       yych = *++YYCURSOR;
+       goto yy3;
 yy140:
-       YYDEBUG(140, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy98;
-       if (yych == 'c') goto yy98;
-       goto yy56;
+       if (yych <= '@') {
+               if (yych == ')') goto yy139;
+               goto yy3;
+       } else {
+               if (yych <= 'Z') goto yy141;
+               if (yych <= '`') goto yy3;
+               if (yych >= '{') goto yy3;
+       }
 yy141:
-       YYDEBUG(141, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'L') goto yy153;
-       if (yych == 'l') goto yy153;
-       goto yy56;
+       if (yych <= '@') {
+               if (yych == ')') goto yy139;
+               goto yy3;
+       } else {
+               if (yych <= 'Z') goto yy142;
+               if (yych <= '`') goto yy3;
+               if (yych >= '{') goto yy3;
+       }
 yy142:
-       YYDEBUG(142, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy146;
-       if (yych == 'r') goto yy146;
-       goto yy56;
+       if (yych <= '@') {
+               if (yych == ')') goto yy139;
+               goto yy3;
+       } else {
+               if (yych <= 'Z') goto yy143;
+               if (yych <= '`') goto yy3;
+               if (yych >= '{') goto yy3;
+       }
 yy143:
-       YYDEBUG(143, *YYCURSOR);
-       yyaccept = 3;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'U') {
-               if (yych == 'S') goto yy78;
-               if (yych <= 'T') goto yy74;
+       yych = *++YYCURSOR;
+       if (yych <= '@') {
+               if (yych == ')') goto yy139;
+               goto yy3;
        } else {
-               if (yych <= 's') {
-                       if (yych <= 'r') goto yy74;
-                       goto yy78;
-               } else {
-                       if (yych != 'u') goto yy74;
-               }
+               if (yych <= 'Z') goto yy144;
+               if (yych <= '`') goto yy3;
+               if (yych >= '{') goto yy3;
        }
-       YYDEBUG(144, *YYCURSOR);
+yy144:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy145;
-       if (yych != 't') goto yy56;
+       if (yych == ')') goto yy139;
+       goto yy3;
 yy145:
-       YYDEBUG(145, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy98;
-       if (yych == 'e') goto yy98;
-       goto yy56;
-yy146:
-       YYDEBUG(146, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'O') goto yy147;
-       if (yych != 'o') goto yy56;
-yy147:
-       YYDEBUG(147, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy148;
-       if (yych != 's') goto yy56;
-yy148:
-       YYDEBUG(148, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy149;
-       if (yych != 'e') goto yy56;
-yy149:
-       YYDEBUG(149, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'C') goto yy150;
-       if (yych != 'c') goto yy56;
-yy150:
-       YYDEBUG(150, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'O') goto yy151;
-       if (yych != 'o') goto yy56;
-yy151:
-       YYDEBUG(151, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'N') goto yy152;
-       if (yych != 'n') goto yy56;
-yy152:
-       YYDEBUG(152, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'D') goto yy98;
-       if (yych == 'd') goto yy98;
-       goto yy56;
-yy153:
-       YYDEBUG(153, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'I') goto yy154;
-       if (yych != 'i') goto yy56;
-yy154:
-       YYDEBUG(154, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy155;
-       if (yych != 's') goto yy56;
-yy155:
-       YYDEBUG(155, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy156;
-       if (yych != 'e') goto yy56;
-yy156:
-       YYDEBUG(156, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'C') goto yy157;
-       if (yych != 'c') goto yy56;
-yy157:
-       YYDEBUG(157, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'O') goto yy158;
-       if (yych != 'o') goto yy56;
-yy158:
-       YYDEBUG(158, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'N') goto yy159;
-       if (yych != 'n') goto yy56;
-yy159:
-       YYDEBUG(159, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'D') goto yy98;
-       if (yych == 'd') goto yy98;
-       goto yy56;
-yy160:
-       YYDEBUG(160, *YYCURSOR);
-       yyaccept = 3;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'T') {
-               if (yych == 'D') goto yy161;
-               if (yych <= 'S') goto yy74;
-               goto yy162;
-       } else {
-               if (yych <= 'd') {
-                       if (yych <= 'c') goto yy74;
-               } else {
-                       if (yych == 't') goto yy162;
-                       goto yy74;
-               }
-       }
-yy161:
-       YYDEBUG(161, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'A') goto yy163;
-       if (yych == 'a') goto yy163;
-       goto yy56;
-yy162:
-       YYDEBUG(162, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'H') goto yy98;
-       if (yych == 'h') goto yy98;
-       goto yy56;
-yy163:
-       YYDEBUG(163, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy78;
-       if (yych == 'y') goto yy78;
-       goto yy56;
-yy164:
-       YYDEBUG(164, *YYCURSOR);
-       yych = *++YYCURSOR;
-       goto yy3;
-yy165:
-       YYDEBUG(165, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '@') {
-               if (yych == ')') goto yy164;
-               goto yy3;
-       } else {
-               if (yych <= 'Z') goto yy166;
-               if (yych <= '`') goto yy3;
-               if (yych >= '{') goto yy3;
-       }
-yy166:
-       YYDEBUG(166, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '@') {
-               if (yych == ')') goto yy164;
-               goto yy3;
-       } else {
-               if (yych <= 'Z') goto yy167;
-               if (yych <= '`') goto yy3;
-               if (yych >= '{') goto yy3;
-       }
-yy167:
-       YYDEBUG(167, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '@') {
-               if (yych == ')') goto yy164;
-               goto yy3;
-       } else {
-               if (yych <= 'Z') goto yy168;
-               if (yych <= '`') goto yy3;
-               if (yych >= '{') goto yy3;
-       }
-yy168:
-       YYDEBUG(168, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '@') {
-               if (yych == ')') goto yy164;
-               goto yy3;
-       } else {
-               if (yych <= 'Z') goto yy169;
-               if (yych <= '`') goto yy3;
-               if (yych >= '{') goto yy3;
-       }
-yy169:
-       YYDEBUG(169, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == ')') goto yy164;
-       goto yy3;
-yy170:
-       YYDEBUG(170, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
                        if (yych >= '{') goto yy3;
                }
        }
-yy171:
-       YYDEBUG(171, *YYCURSOR);
+yy146:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
@@ -3679,267 +3116,247 @@ yy171:
        } else {
                if (yych <= '^') {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy175;
+                       if (yych <= 'z') goto yy150;
                        goto yy3;
                }
        }
-yy172:
-       YYDEBUG(172, *YYCURSOR);
+yy147:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if (yybm[0+yych] & 8) {
-               goto yy173;
+               goto yy148;
        }
        goto yy56;
-yy173:
-       YYDEBUG(173, *YYCURSOR);
+yy148:
        yyaccept = 0;
        YYMARKER = ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(174, *YYCURSOR);
        if (yybm[0+yych] & 8) {
-               goto yy173;
+               goto yy148;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
+               if (yych == '-') goto yy147;
                goto yy3;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
                goto yy3;
        }
-yy175:
-       YYDEBUG(175, *YYCURSOR);
+yy150:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
                        if (yych >= '{') goto yy3;
                }
        }
-yy176:
-       YYDEBUG(176, *YYCURSOR);
+yy151:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
                        if (yych >= '{') goto yy3;
                }
        }
-yy177:
-       YYDEBUG(177, *YYCURSOR);
+yy152:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '-') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= ',') goto yy3;
-               goto yy172;
+               goto yy147;
        } else {
                if (yych <= '/') {
                        if (yych <= '.') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '_') goto yy172;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                }
        }
-yy178:
-       YYDEBUG(178, *YYCURSOR);
+yy153:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-yy179:
-       YYDEBUG(179, *YYCURSOR);
+yy154:
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
+               if (yych == '-') goto yy147;
                goto yy56;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
                goto yy56;
        }
-yy180:
-       YYDEBUG(180, *YYCURSOR);
+yy155:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Z') goto yy165;
+               if (yych <= 'Z') goto yy140;
                if (yych <= '`') goto yy3;
-               if (yych <= 'z') goto yy165;
+               if (yych <= 'z') goto yy140;
                goto yy3;
        }
-yy181:
-       YYDEBUG(181, *YYCURSOR);
+yy156:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy166;
+               goto yy141;
        } else {
                if (yych <= 'Z') {
-                       if (yych >= 'U') goto yy166;
+                       if (yych >= 'U') goto yy141;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-       YYDEBUG(182, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych != '+') goto yy3;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '-') goto yy183;
+                       if (yych <= '-') goto yy158;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy183:
-       YYDEBUG(183, *YYCURSOR);
+yy158:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy184;
-       if (yych <= '2') goto yy185;
-       if (yych <= '9') goto yy186;
+       if (yych <= '1') goto yy159;
+       if (yych <= '2') goto yy160;
+       if (yych <= '9') goto yy161;
        goto yy56;
-yy184:
-       YYDEBUG(184, *YYCURSOR);
+yy159:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy3;
-       if (yych <= '9') goto yy186;
-       if (yych <= ':') goto yy187;
+       if (yych <= '9') goto yy161;
+       if (yych <= ':') goto yy162;
        goto yy3;
-yy185:
-       YYDEBUG(185, *YYCURSOR);
+yy160:
        yych = *++YYCURSOR;
        if (yych <= '5') {
                if (yych <= '/') goto yy3;
-               if (yych >= '5') goto yy188;
+               if (yych >= '5') goto yy163;
        } else {
-               if (yych <= '9') goto yy164;
-               if (yych <= ':') goto yy187;
+               if (yych <= '9') goto yy139;
+               if (yych <= ':') goto yy162;
                goto yy3;
        }
-yy186:
-       YYDEBUG(186, *YYCURSOR);
+yy161:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy3;
-       if (yych <= '5') goto yy188;
-       if (yych <= '9') goto yy164;
+       if (yych <= '5') goto yy163;
+       if (yych <= '9') goto yy139;
        if (yych >= ';') goto yy3;
-yy187:
-       YYDEBUG(187, *YYCURSOR);
+yy162:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy3;
-       if (yych <= '5') goto yy188;
-       if (yych <= '9') goto yy164;
+       if (yych <= '5') goto yy163;
+       if (yych <= '9') goto yy139;
        goto yy3;
-yy188:
-       YYDEBUG(188, *YYCURSOR);
+yy163:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy3;
-       if (yych <= '9') goto yy164;
+       if (yych <= '9') goto yy139;
        goto yy3;
-yy189:
-       YYDEBUG(189, *YYCURSOR);
+yy164:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych <= 'C') goto yy166;
-                       if (yych >= 'E') goto yy192;
+                       if (yych <= 'C') goto yy141;
+                       if (yych >= 'E') goto yy167;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'd') goto yy190;
-                       if (yych <= 'e') goto yy192;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'd') goto yy165;
+                       if (yych <= 'e') goto yy167;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy190:
-       YYDEBUG(190, *YYCURSOR);
+yy165:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= 'N') {
                if (yych <= ')') {
-                       if (yych >= ')') goto yy164;
+                       if (yych >= ')') goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'M') goto yy167;
-                       goto yy198;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'M') goto yy142;
+                       goto yy173;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych >= 'a') goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych >= 'a') goto yy142;
                } else {
-                       if (yych <= 'n') goto yy198;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'n') goto yy173;
+                       if (yych <= 'z') goto yy142;
                }
        }
-yy191:
-       YYDEBUG(191, *YYCURSOR);
-#line 1620 "ext/date/lib/parse_date.re"
+yy166:
+#line 1561 "ext/date/lib/parse_date.re"
        {
                const timelib_relunit* relunit;
                DEBUG_OUTPUT("daytext");
@@ -3956,527 +3373,500 @@ yy191:
                TIMELIB_DEINIT;
                return TIMELIB_WEEKDAY;
        }
-#line 3960 "<stdout>"
-yy192:
-       YYDEBUG(192, *YYCURSOR);
+#line 3377 "ext/date/lib/parse_date.c"
+yy167:
        yych = *++YYCURSOR;
        if (yych <= 'K') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'J') goto yy167;
+                       if (yych <= 'J') goto yy142;
                }
        } else {
                if (yych <= 'j') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'k') goto yy193;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'k') goto yy168;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy193:
-       YYDEBUG(193, *YYCURSOR);
+yy168:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy168;
+                       if (yych <= 'C') goto yy143;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'd') goto yy194;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'd') goto yy169;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy194:
-       YYDEBUG(194, *YYCURSOR);
+yy169:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy195;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'a') goto yy170;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy195:
-       YYDEBUG(195, *YYCURSOR);
+yy170:
        yych = *++YYCURSOR;
        if (yych <= 'X') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Y') goto yy196;
+               if (yych <= 'Y') goto yy171;
                if (yych != 'y') goto yy3;
        }
-yy196:
-       YYDEBUG(196, *YYCURSOR);
+yy171:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy197;
-       if (yych != 's') goto yy191;
-yy197:
-       YYDEBUG(197, *YYCURSOR);
+       if (yych == 'S') goto yy172;
+       if (yych != 's') goto yy166;
+yy172:
        yych = *++YYCURSOR;
-       goto yy191;
-yy198:
-       YYDEBUG(198, *YYCURSOR);
+       goto yy166;
+yy173:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy168;
+                       if (yych <= 'D') goto yy143;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'e') goto yy199;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'e') goto yy174;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy199:
-       YYDEBUG(199, *YYCURSOR);
+yy174:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy169;
+                       if (yych <= 'R') goto yy144;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 's') goto yy200;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 's') goto yy175;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy200:
-       YYDEBUG(200, *YYCURSOR);
+yy175:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'D') goto yy201;
+               if (yych <= 'D') goto yy176;
                if (yych != 'd') goto yy3;
        }
-yy201:
-       YYDEBUG(201, *YYCURSOR);
+yy176:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy202;
+       if (yych == 'A') goto yy177;
        if (yych != 'a') goto yy56;
-yy202:
-       YYDEBUG(202, *YYCURSOR);
+yy177:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy197;
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy172;
        goto yy56;
-yy203:
-       YYDEBUG(203, *YYCURSOR);
+yy178:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '/') {
                                if (yych <= '.') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'C') goto yy166;
-                               goto yy190;
+                               if (yych <= 'C') goto yy141;
+                               goto yy165;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'E') goto yy192;
-                               goto yy166;
+                               if (yych <= 'E') goto yy167;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= 'c') goto yy171;
+                               if (yych <= 'c') goto yy146;
                        } else {
-                               if (yych <= 'e') goto yy205;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'e') goto yy180;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-       YYDEBUG(204, *YYCURSOR);
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy198;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'N') goto yy173;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'n') goto yy211;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'n') goto yy186;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy205:
-       YYDEBUG(205, *YYCURSOR);
+yy180:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'J') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'K') goto yy193;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'K') goto yy168;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'j') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'k') goto yy206;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'k') goto yy181;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy206:
-       YYDEBUG(206, *YYCURSOR);
+yy181:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy194;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'D') goto yy169;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'd') goto yy207;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'd') goto yy182;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy207:
-       YYDEBUG(207, *YYCURSOR);
+yy182:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy195;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'A') goto yy170;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy208;
-                       if (yych <= 'z') goto yy177;
+                       if (yych <= 'a') goto yy183;
+                       if (yych <= 'z') goto yy152;
                        goto yy3;
                }
        }
-yy208:
-       YYDEBUG(208, *YYCURSOR);
+yy183:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Y') goto yy196;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'Y') goto yy171;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'y') goto yy209;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'y') goto yy184;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy209:
-       YYDEBUG(209, *YYCURSOR);
+yy184:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '.') {
-                       if (yych == '-') goto yy172;
-                       goto yy191;
+                       if (yych == '-') goto yy147;
+                       goto yy166;
                } else {
-                       if (yych <= '/') goto yy172;
-                       if (yych <= 'R') goto yy191;
-                       goto yy197;
+                       if (yych <= '/') goto yy147;
+                       if (yych <= 'R') goto yy166;
+                       goto yy172;
                }
        } else {
                if (yych <= '`') {
-                       if (yych == '_') goto yy172;
-                       goto yy191;
+                       if (yych == '_') goto yy147;
+                       goto yy166;
                } else {
-                       if (yych == 's') goto yy210;
-                       if (yych <= 'z') goto yy178;
-                       goto yy191;
+                       if (yych == 's') goto yy185;
+                       if (yych <= 'z') goto yy153;
+                       goto yy166;
                }
        }
-yy210:
-       YYDEBUG(210, *YYCURSOR);
+yy185:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
-               goto yy191;
+               if (yych == '-') goto yy147;
+               goto yy166;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
-               goto yy191;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
+               goto yy166;
        }
-yy211:
-       YYDEBUG(211, *YYCURSOR);
+yy186:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy199;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'E') goto yy174;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'e') goto yy212;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'e') goto yy187;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy212:
-       YYDEBUG(212, *YYCURSOR);
+yy187:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy200;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'S') goto yy175;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 's') goto yy213;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 's') goto yy188;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy213:
-       YYDEBUG(213, *YYCURSOR);
+yy188:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'D') goto yy201;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'D') goto yy176;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'd') goto yy214;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'd') goto yy189;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy214:
-       YYDEBUG(214, *YYCURSOR);
+yy189:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy202;
-       if (yych != 'a') goto yy179;
-       YYDEBUG(215, *YYCURSOR);
+       if (yych == 'A') goto yy177;
+       if (yych != 'a') goto yy154;
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy210;
-       goto yy179;
-yy216:
-       YYDEBUG(216, *YYCURSOR);
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy185;
+       goto yy154;
+yy191:
        yych = *++YYCURSOR;
        if (yych <= 'C') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'B') goto yy166;
+                       if (yych <= 'B') goto yy141;
                }
        } else {
                if (yych <= 'b') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'c') goto yy217;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'c') goto yy192;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy217:
-       YYDEBUG(217, *YYCURSOR);
+yy192:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych >= '\t') goto yy220;
+                               if (yych >= '\t') goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
+                               if (yych == ' ') goto yy195;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
+                               if (yych <= ')') goto yy139;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
+                               if (yych <= '9') goto yy195;
                        } else {
-                               if (yych == 'E') goto yy225;
-                               goto yy167;
+                               if (yych == 'E') goto yy200;
+                               goto yy142;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych >= 'a') goto yy167;
+                               if (yych >= 'a') goto yy142;
                        } else {
-                               if (yych <= 'e') goto yy225;
-                               if (yych <= 'z') goto yy167;
+                               if (yych <= 'e') goto yy200;
+                               if (yych <= 'z') goto yy142;
                        }
                }
        }
-yy218:
-       YYDEBUG(218, *YYCURSOR);
-#line 1679 "ext/date/lib/parse_date.re"
+yy193:
+#line 1620 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("monthtext");
                TIMELIB_INIT;
@@ -4485,256 +3875,242 @@ yy218:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 4489 "<stdout>"
-yy219:
-       YYDEBUG(219, *YYCURSOR);
+#line 3879 "ext/date/lib/parse_date.c"
+yy194:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
        yych = *YYCURSOR;
-yy220:
-       YYDEBUG(220, *YYCURSOR);
+yy195:
        if (yybm[0+yych] & 32) {
-               goto yy219;
+               goto yy194;
        }
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy222;
-       if (yych <= '3') goto yy223;
-       if (yych <= '9') goto yy224;
+       if (yych <= '2') goto yy197;
+       if (yych <= '3') goto yy198;
+       if (yych <= '9') goto yy199;
        goto yy56;
-yy221:
-       YYDEBUG(221, *YYCURSOR);
+yy196:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy220;
-       if (yych <= '0') goto yy324;
-       if (yych <= '2') goto yy325;
-       if (yych <= '3') goto yy326;
-       goto yy220;
-yy222:
-       YYDEBUG(222, *YYCURSOR);
+       if (yych <= '/') goto yy195;
+       if (yych <= '0') goto yy299;
+       if (yych <= '2') goto yy300;
+       if (yych <= '3') goto yy301;
+       goto yy195;
+yy197:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy323;
+                               goto yy298;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy223:
-       YYDEBUG(223, *YYCURSOR);
+yy198:
        yych = *++YYCURSOR;
        if (yych <= '1') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy323;
+                               goto yy298;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
-                               if (yych <= '9') goto yy230;
+                               if (yych <= '9') goto yy205;
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy224:
-       YYDEBUG(224, *YYCURSOR);
+yy199:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy230;
+                               goto yy205;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy225:
-       YYDEBUG(225, *YYCURSOR);
+yy200:
        yych = *++YYCURSOR;
        if (yych <= 'M') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'L') goto yy168;
+                       if (yych <= 'L') goto yy143;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'm') goto yy226;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'm') goto yy201;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy226:
-       YYDEBUG(226, *YYCURSOR);
+yy201:
        yych = *++YYCURSOR;
        if (yych <= 'B') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'A') goto yy169;
+                       if (yych <= 'A') goto yy144;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'b') goto yy227;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'b') goto yy202;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy227:
-       YYDEBUG(227, *YYCURSOR);
+yy202:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'E') goto yy228;
+               if (yych <= 'E') goto yy203;
                if (yych != 'e') goto yy3;
        }
-yy228:
-       YYDEBUG(228, *YYCURSOR);
+yy203:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
+       if (yych == 'R') goto yy204;
        if (yych != 'r') goto yy56;
-yy229:
-       YYDEBUG(229, *YYCURSOR);
+yy204:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy220;
-               if (yych <= 0x1F) goto yy218;
-               goto yy220;
+               if (yych == '\t') goto yy195;
+               if (yych <= 0x1F) goto yy193;
+               goto yy195;
        } else {
                if (yych <= '.') {
-                       if (yych <= ',') goto yy218;
-                       goto yy220;
+                       if (yych <= ',') goto yy193;
+                       goto yy195;
                } else {
-                       if (yych <= '/') goto yy218;
-                       if (yych <= '9') goto yy220;
-                       goto yy218;
+                       if (yych <= '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+                       goto yy193;
                }
        }
-yy230:
-       YYDEBUG(230, *YYCURSOR);
+yy205:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy320;
+       if (yych <= '9') goto yy295;
        goto yy56;
-yy231:
-       YYDEBUG(231, *YYCURSOR);
+yy206:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 't') goto yy319;
-       goto yy237;
-yy232:
-       YYDEBUG(232, *YYCURSOR);
-#line 1425 "ext/date/lib/parse_date.re"
+       if (yych == 't') goto yy294;
+       goto yy212;
+yy207:
+#line 1366 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("datetextual | datenoyear");
@@ -4747,134 +4123,120 @@ yy232:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 4751 "<stdout>"
-yy233:
-       YYDEBUG(233, *YYCURSOR);
+#line 4127 "ext/date/lib/parse_date.c"
+yy208:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'd') goto yy319;
-       goto yy237;
-yy234:
-       YYDEBUG(234, *YYCURSOR);
+       if (yych == 'd') goto yy294;
+       goto yy212;
+yy209:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'd') goto yy319;
-       goto yy237;
-yy235:
-       YYDEBUG(235, *YYCURSOR);
+       if (yych == 'd') goto yy294;
+       goto yy212;
+yy210:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'h') goto yy319;
-       goto yy237;
-yy236:
-       YYDEBUG(236, *YYCURSOR);
+       if (yych == 'h') goto yy294;
+       goto yy212;
+yy211:
        yyaccept = 6;
        YYMARKER = ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 18) YYFILL(18);
        yych = *YYCURSOR;
-yy237:
-       YYDEBUG(237, *YYCURSOR);
+yy212:
        if (yybm[0+yych] & 64) {
-               goto yy236;
+               goto yy211;
        }
        if (yych <= '2') {
-               if (yych <= '/') goto yy232;
-               if (yych <= '0') goto yy310;
-               if (yych <= '1') goto yy311;
-               goto yy312;
+               if (yych <= '/') goto yy207;
+               if (yych <= '0') goto yy285;
+               if (yych <= '1') goto yy286;
+               goto yy287;
        } else {
-               if (yych <= '9') goto yy313;
-               if (yych == 'T') goto yy239;
-               goto yy232;
+               if (yych <= '9') goto yy288;
+               if (yych == 'T') goto yy214;
+               goto yy207;
        }
-yy238:
-       YYDEBUG(238, *YYCURSOR);
+yy213:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '0') {
-                       if (yych <= '/') goto yy232;
-                       goto yy240;
+                       if (yych <= '/') goto yy207;
+                       goto yy215;
                } else {
-                       if (yych <= '1') goto yy241;
-                       if (yych <= '2') goto yy242;
-                       goto yy243;
+                       if (yych <= '1') goto yy216;
+                       if (yych <= '2') goto yy217;
+                       goto yy218;
                }
        } else {
                if (yych <= 'T') {
-                       if (yych <= 'S') goto yy232;
+                       if (yych <= 'S') goto yy207;
                } else {
-                       if (yych != 't') goto yy232;
+                       if (yych != 't') goto yy207;
                }
        }
-yy239:
-       YYDEBUG(239, *YYCURSOR);
+yy214:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy308;
-       if (yych <= '2') goto yy309;
-       if (yych <= '9') goto yy298;
+       if (yych <= '1') goto yy283;
+       if (yych <= '2') goto yy284;
+       if (yych <= '9') goto yy273;
        goto yy56;
-yy240:
-       YYDEBUG(240, *YYCURSOR);
+yy215:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy299;
+               if (yych == '.') goto yy274;
                goto yy56;
        } else {
-               if (yych <= '0') goto yy298;
-               if (yych <= '9') goto yy243;
-               if (yych <= ':') goto yy299;
+               if (yych <= '0') goto yy273;
+               if (yych <= '9') goto yy218;
+               if (yych <= ':') goto yy274;
                goto yy56;
        }
-yy241:
-       YYDEBUG(241, *YYCURSOR);
+yy216:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
+               if (yych == '.') goto yy219;
                goto yy56;
        } else {
-               if (yych <= '2') goto yy243;
-               if (yych <= '9') goto yy298;
-               if (yych <= ':') goto yy244;
+               if (yych <= '2') goto yy218;
+               if (yych <= '9') goto yy273;
+               if (yych <= ':') goto yy219;
                goto yy56;
        }
-yy242:
-       YYDEBUG(242, *YYCURSOR);
+yy217:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
+               if (yych == '.') goto yy219;
                goto yy56;
        } else {
-               if (yych <= '4') goto yy298;
-               if (yych == ':') goto yy244;
+               if (yych <= '4') goto yy273;
+               if (yych == ':') goto yy219;
                goto yy56;
        }
-yy243:
-       YYDEBUG(243, *YYCURSOR);
+yy218:
        yych = *++YYCURSOR;
-       if (yych == '.') goto yy244;
+       if (yych == '.') goto yy219;
        if (yych != ':') goto yy56;
-yy244:
-       YYDEBUG(244, *YYCURSOR);
+yy219:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy245;
-       if (yych <= '9') goto yy247;
+       if (yych <= '5') goto yy220;
+       if (yych <= '9') goto yy222;
        goto yy56;
-yy245:
-       YYDEBUG(245, *YYCURSOR);
+yy220:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy248;
+               if (yych == '.') goto yy223;
        } else {
-               if (yych <= '9') goto yy291;
-               if (yych <= ':') goto yy248;
+               if (yych <= '9') goto yy266;
+               if (yych <= ':') goto yy223;
        }
-yy246:
-       YYDEBUG(246, *YYCURSOR);
-#line 1727 "ext/date/lib/parse_date.re"
+yy221:
+#line 1668 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -4890,318 +4252,293 @@ yy246:
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
                return TIMELIB_SHORTDATE_WITH_TIME;
        }
-#line 4907 "<stdout>"
-yy247:
-       YYDEBUG(247, *YYCURSOR);
+#line 4269 "ext/date/lib/parse_date.c"
+yy222:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy248;
-       if (yych != ':') goto yy246;
-yy248:
-       YYDEBUG(248, *YYCURSOR);
+       if (yych == '.') goto yy223;
+       if (yych != ':') goto yy221;
+yy223:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy249;
-       if (yych <= '6') goto yy250;
-       if (yych <= '9') goto yy251;
+       if (yych <= '5') goto yy224;
+       if (yych <= '6') goto yy225;
+       if (yych <= '9') goto yy226;
        goto yy56;
-yy249:
-       YYDEBUG(249, *YYCURSOR);
+yy224:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '9') goto yy252;
-       goto yy246;
-yy250:
-       YYDEBUG(250, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '9') goto yy227;
+       goto yy221;
+yy225:
        yych = *++YYCURSOR;
-       if (yych == '0') goto yy252;
-       goto yy246;
-yy251:
-       YYDEBUG(251, *YYCURSOR);
+       if (yych == '0') goto yy227;
+       goto yy221;
+yy226:
        yych = *++YYCURSOR;
-       goto yy246;
-yy252:
-       YYDEBUG(252, *YYCURSOR);
+       goto yy221;
+yy227:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '*') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy254;
-                       goto yy246;
+                       if (yych == '\t') goto yy229;
+                       goto yy221;
                } else {
-                       if (yych <= ' ') goto yy254;
-                       if (yych == '(') goto yy254;
-                       goto yy246;
+                       if (yych <= ' ') goto yy229;
+                       if (yych == '(') goto yy229;
+                       goto yy221;
                }
        } else {
                if (yych <= '@') {
-                       if (yych == ',') goto yy246;
-                       if (yych <= '-') goto yy254;
-                       goto yy246;
+                       if (yych == ',') goto yy221;
+                       if (yych <= '-') goto yy229;
+                       goto yy221;
                } else {
-                       if (yych <= 'Z') goto yy254;
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy254;
-                       goto yy246;
+                       if (yych <= 'Z') goto yy229;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy229;
+                       goto yy221;
                }
        }
-yy253:
-       YYDEBUG(253, *YYCURSOR);
+yy228:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
        yych = *YYCURSOR;
-yy254:
-       YYDEBUG(254, *YYCURSOR);
+yy229:
        if (yych <= '@') {
                if (yych <= '\'') {
                        if (yych <= '\t') {
                                if (yych <= 0x08) goto yy56;
-                               goto yy253;
+                               goto yy228;
                        } else {
-                               if (yych == ' ') goto yy253;
+                               if (yych == ' ') goto yy228;
                                goto yy56;
                        }
                } else {
                        if (yych <= '+') {
-                               if (yych <= '(') goto yy257;
+                               if (yych <= '(') goto yy232;
                                if (yych <= '*') goto yy56;
-                               goto yy256;
+                               goto yy231;
                        } else {
-                               if (yych == '-') goto yy256;
+                               if (yych == '-') goto yy231;
                                goto yy56;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= 'G') {
-                               if (yych <= 'A') goto yy258;
-                               if (yych <= 'F') goto yy259;
+                               if (yych <= 'A') goto yy233;
+                               if (yych <= 'F') goto yy234;
                        } else {
-                               if (yych == 'P') goto yy258;
-                               goto yy259;
+                               if (yych == 'P') goto yy233;
+                               goto yy234;
                        }
                } else {
                        if (yych <= 'o') {
                                if (yych <= '`') goto yy56;
-                               if (yych <= 'a') goto yy260;
-                               goto yy261;
+                               if (yych <= 'a') goto yy235;
+                               goto yy236;
                        } else {
-                               if (yych <= 'p') goto yy260;
-                               if (yych <= 'z') goto yy261;
+                               if (yych <= 'p') goto yy235;
+                               if (yych <= 'z') goto yy236;
                                goto yy56;
                        }
                }
        }
-yy255:
-       YYDEBUG(255, *YYCURSOR);
+yy230:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
-               if (yych == ')') goto yy251;
-               if (yych <= '@') goto yy246;
-               goto yy262;
+               if (yych == ')') goto yy226;
+               if (yych <= '@') goto yy221;
+               goto yy237;
        } else {
                if (yych <= 'Z') {
-                       if (yych <= 'M') goto yy289;
-                       goto yy262;
+                       if (yych <= 'M') goto yy264;
+                       goto yy237;
                } else {
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy273;
-                       goto yy246;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy248;
+                       goto yy221;
                }
        }
-yy256:
-       YYDEBUG(256, *YYCURSOR);
+yy231:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy284;
-       if (yych <= '2') goto yy285;
-       if (yych <= '9') goto yy286;
+       if (yych <= '1') goto yy259;
+       if (yych <= '2') goto yy260;
+       if (yych <= '9') goto yy261;
        goto yy56;
-yy257:
-       YYDEBUG(257, *YYCURSOR);
+yy232:
        yych = *++YYCURSOR;
        if (yych <= '@') goto yy56;
-       if (yych <= 'Z') goto yy261;
+       if (yych <= 'Z') goto yy236;
        if (yych <= '`') goto yy56;
-       if (yych <= 'z') goto yy261;
+       if (yych <= 'z') goto yy236;
        goto yy56;
-yy258:
-       YYDEBUG(258, *YYCURSOR);
+yy233:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych <= '.') goto yy267;
-                       if (yych <= '@') goto yy246;
-                       goto yy262;
+                       if (yych <= '.') goto yy242;
+                       if (yych <= '@') goto yy221;
+                       goto yy237;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'M') goto yy268;
-                       if (yych <= 'Z') goto yy262;
-                       goto yy246;
+                       if (yych <= 'M') goto yy243;
+                       if (yych <= 'Z') goto yy237;
+                       goto yy221;
                } else {
-                       if (yych == 'm') goto yy283;
-                       if (yych <= 'z') goto yy273;
-                       goto yy246;
+                       if (yych == 'm') goto yy258;
+                       if (yych <= 'z') goto yy248;
+                       goto yy221;
                }
        }
-yy259:
-       YYDEBUG(259, *YYCURSOR);
+yy234:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy262;
-               if (yych <= '`') goto yy246;
-               if (yych <= 'z') goto yy273;
-               goto yy246;
+               if (yych <= 'Z') goto yy237;
+               if (yych <= '`') goto yy221;
+               if (yych <= 'z') goto yy248;
+               goto yy221;
        }
-yy260:
-       YYDEBUG(260, *YYCURSOR);
+yy235:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych <= '.') goto yy267;
-                       if (yych <= '@') goto yy246;
-                       goto yy262;
+                       if (yych <= '.') goto yy242;
+                       if (yych <= '@') goto yy221;
+                       goto yy237;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'M') goto yy268;
-                       if (yych <= 'Z') goto yy262;
-                       goto yy246;
+                       if (yych <= 'M') goto yy243;
+                       if (yych <= 'Z') goto yy237;
+                       goto yy221;
                } else {
-                       if (yych == 'm') goto yy268;
-                       if (yych <= 'z') goto yy262;
-                       goto yy246;
+                       if (yych == 'm') goto yy243;
+                       if (yych <= 'z') goto yy237;
+                       goto yy221;
                }
        }
-yy261:
-       YYDEBUG(261, *YYCURSOR);
+yy236:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy262;
-               if (yych <= '`') goto yy246;
-               if (yych >= '{') goto yy246;
+               if (yych <= 'Z') goto yy237;
+               if (yych <= '`') goto yy221;
+               if (yych >= '{') goto yy221;
        }
-yy262:
-       YYDEBUG(262, *YYCURSOR);
+yy237:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy263;
-               if (yych <= '`') goto yy246;
-               if (yych >= '{') goto yy246;
+               if (yych <= 'Z') goto yy238;
+               if (yych <= '`') goto yy221;
+               if (yych >= '{') goto yy221;
        }
-yy263:
-       YYDEBUG(263, *YYCURSOR);
+yy238:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy264;
-               if (yych <= '`') goto yy246;
-               if (yych >= '{') goto yy246;
+               if (yych <= 'Z') goto yy239;
+               if (yych <= '`') goto yy221;
+               if (yych >= '{') goto yy221;
        }
-yy264:
-       YYDEBUG(264, *YYCURSOR);
+yy239:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy265;
-               if (yych <= '`') goto yy246;
-               if (yych >= '{') goto yy246;
+               if (yych <= 'Z') goto yy240;
+               if (yych <= '`') goto yy221;
+               if (yych >= '{') goto yy221;
        }
-yy265:
-       YYDEBUG(265, *YYCURSOR);
+yy240:
        yych = *++YYCURSOR;
        if (yych <= '@') {
-               if (yych == ')') goto yy251;
-               goto yy246;
+               if (yych == ')') goto yy226;
+               goto yy221;
        } else {
-               if (yych <= 'Z') goto yy266;
-               if (yych <= '`') goto yy246;
-               if (yych >= '{') goto yy246;
+               if (yych <= 'Z') goto yy241;
+               if (yych <= '`') goto yy221;
+               if (yych >= '{') goto yy221;
        }
-yy266:
-       YYDEBUG(266, *YYCURSOR);
+yy241:
        yych = *++YYCURSOR;
-       if (yych == ')') goto yy251;
-       goto yy246;
-yy267:
-       YYDEBUG(267, *YYCURSOR);
+       if (yych == ')') goto yy226;
+       goto yy221;
+yy242:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy272;
-       if (yych == 'm') goto yy272;
+       if (yych == 'M') goto yy247;
+       if (yych == 'm') goto yy247;
        goto yy56;
-yy268:
-       YYDEBUG(268, *YYCURSOR);
+yy243:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ')') {
                if (yych <= '\t') {
-                       if (yych <= 0x00) goto yy270;
-                       if (yych <= 0x08) goto yy246;
-                       goto yy270;
+                       if (yych <= 0x00) goto yy245;
+                       if (yych <= 0x08) goto yy221;
+                       goto yy245;
                } else {
-                       if (yych == ' ') goto yy270;
-                       if (yych <= '(') goto yy246;
-                       goto yy251;
+                       if (yych == ' ') goto yy245;
+                       if (yych <= '(') goto yy221;
+                       goto yy226;
                }
        } else {
                if (yych <= '@') {
-                       if (yych != '.') goto yy246;
+                       if (yych != '.') goto yy221;
                } else {
-                       if (yych <= 'Z') goto yy263;
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy263;
-                       goto yy246;
+                       if (yych <= 'Z') goto yy238;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy238;
+                       goto yy221;
                }
        }
-yy269:
-       YYDEBUG(269, *YYCURSOR);
+yy244:
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy270;
+               if (yych <= 0x00) goto yy245;
                if (yych <= 0x08) goto yy56;
        } else {
                if (yych != ' ') goto yy56;
        }
-yy270:
-       YYDEBUG(270, *YYCURSOR);
+yy245:
        ++YYCURSOR;
-       YYDEBUG(271, *YYCURSOR);
-#line 1703 "ext/date/lib/parse_date.re"
+#line 1644 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
                TIMELIB_INIT;
@@ -5216,7 +4553,7 @@ yy270:
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
@@ -5224,614 +4561,563 @@ yy270:
                TIMELIB_DEINIT;
                return TIMELIB_SHORTDATE_WITH_TIME;
        }
-#line 5228 "<stdout>"
-yy272:
-       YYDEBUG(272, *YYCURSOR);
+#line 4565 "ext/date/lib/parse_date.c"
+yy247:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy270;
-               if (yych == '\t') goto yy270;
+               if (yych <= 0x00) goto yy245;
+               if (yych == '\t') goto yy245;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy270;
-               if (yych == '.') goto yy269;
+               if (yych <= ' ') goto yy245;
+               if (yych == '.') goto yy244;
                goto yy56;
        }
-yy273:
-       YYDEBUG(273, *YYCURSOR);
+yy248:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych == '.') goto yy246;
-                       goto yy275;
+                       if (yych == '.') goto yy221;
+                       goto yy250;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy246;
-                       if (yych <= 'Z') goto yy263;
-                       goto yy246;
+                       if (yych <= '@') goto yy221;
+                       if (yych <= 'Z') goto yy238;
+                       goto yy221;
                } else {
-                       if (yych <= '_') goto yy275;
-                       if (yych <= '`') goto yy246;
-                       if (yych >= '{') goto yy246;
+                       if (yych <= '_') goto yy250;
+                       if (yych <= '`') goto yy221;
+                       if (yych >= '{') goto yy221;
                }
        }
-yy274:
-       YYDEBUG(274, *YYCURSOR);
+yy249:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych == '.') goto yy246;
+                       if (yych == '.') goto yy221;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy246;
-                       if (yych <= 'Z') goto yy264;
-                       goto yy246;
+                       if (yych <= '@') goto yy221;
+                       if (yych <= 'Z') goto yy239;
+                       goto yy221;
                } else {
-                       if (yych <= '_') goto yy275;
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy278;
-                       goto yy246;
+                       if (yych <= '_') goto yy250;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy253;
+                       goto yy221;
                }
        }
-yy275:
-       YYDEBUG(275, *YYCURSOR);
+yy250:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
        if (yych <= '@') goto yy56;
-       if (yych <= 'Z') goto yy276;
+       if (yych <= 'Z') goto yy251;
        if (yych <= '`') goto yy56;
        if (yych >= '{') goto yy56;
-yy276:
-       YYDEBUG(276, *YYCURSOR);
+yy251:
        yyaccept = 7;
        YYMARKER = ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(277, *YYCURSOR);
        if (yych <= '@') {
                if (yych <= '-') {
-                       if (yych <= ',') goto yy246;
-                       goto yy275;
+                       if (yych <= ',') goto yy221;
+                       goto yy250;
                } else {
-                       if (yych == '/') goto yy275;
-                       goto yy246;
+                       if (yych == '/') goto yy250;
+                       goto yy221;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'Z') goto yy276;
-                       if (yych <= '^') goto yy246;
-                       goto yy275;
+                       if (yych <= 'Z') goto yy251;
+                       if (yych <= '^') goto yy221;
+                       goto yy250;
                } else {
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy276;
-                       goto yy246;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy251;
+                       goto yy221;
                }
        }
-yy278:
-       YYDEBUG(278, *YYCURSOR);
+yy253:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych == '.') goto yy246;
-                       goto yy275;
+                       if (yych == '.') goto yy221;
+                       goto yy250;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy246;
-                       if (yych <= 'Z') goto yy265;
-                       goto yy246;
+                       if (yych <= '@') goto yy221;
+                       if (yych <= 'Z') goto yy240;
+                       goto yy221;
                } else {
-                       if (yych <= '_') goto yy275;
-                       if (yych <= '`') goto yy246;
-                       if (yych >= '{') goto yy246;
+                       if (yych <= '_') goto yy250;
+                       if (yych <= '`') goto yy221;
+                       if (yych >= '{') goto yy221;
                }
        }
-       YYDEBUG(279, *YYCURSOR);
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy251;
-                       goto yy246;
+                       if (yych == ')') goto yy226;
+                       goto yy221;
                } else {
-                       if (yych == '.') goto yy246;
-                       goto yy275;
+                       if (yych == '.') goto yy221;
+                       goto yy250;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy246;
-                       if (yych <= 'Z') goto yy266;
-                       goto yy246;
+                       if (yych <= '@') goto yy221;
+                       if (yych <= 'Z') goto yy241;
+                       goto yy221;
                } else {
-                       if (yych <= '_') goto yy275;
-                       if (yych <= '`') goto yy246;
-                       if (yych >= '{') goto yy246;
+                       if (yych <= '_') goto yy250;
+                       if (yych <= '`') goto yy221;
+                       if (yych >= '{') goto yy221;
                }
        }
-       YYDEBUG(280, *YYCURSOR);
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy246;
-                       goto yy251;
+                       if (yych <= '(') goto yy221;
+                       goto yy226;
                } else {
-                       if (yych == '-') goto yy275;
-                       goto yy246;
+                       if (yych == '-') goto yy250;
+                       goto yy221;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= '/') goto yy275;
-                       if (yych <= '^') goto yy246;
-                       goto yy275;
+                       if (yych <= '/') goto yy250;
+                       if (yych <= '^') goto yy221;
+                       goto yy250;
                } else {
-                       if (yych <= '`') goto yy246;
-                       if (yych >= '{') goto yy246;
+                       if (yych <= '`') goto yy221;
+                       if (yych >= '{') goto yy221;
                }
        }
-yy281:
-       YYDEBUG(281, *YYCURSOR);
+yy256:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(282, *YYCURSOR);
        if (yych <= '/') {
-               if (yych == '-') goto yy275;
+               if (yych == '-') goto yy250;
                if (yych <= '.') goto yy56;
-               goto yy275;
+               goto yy250;
        } else {
                if (yych <= '_') {
                        if (yych <= '^') goto yy56;
-                       goto yy275;
+                       goto yy250;
                } else {
                        if (yych <= '`') goto yy56;
-                       if (yych <= 'z') goto yy281;
+                       if (yych <= 'z') goto yy256;
                        goto yy56;
                }
        }
-yy283:
-       YYDEBUG(283, *YYCURSOR);
+yy258:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= 0x1F) {
-                       if (yych <= 0x00) goto yy270;
-                       if (yych == '\t') goto yy270;
-                       goto yy246;
+                       if (yych <= 0x00) goto yy245;
+                       if (yych == '\t') goto yy245;
+                       goto yy221;
                } else {
                        if (yych <= '(') {
-                               if (yych <= ' ') goto yy270;
-                               goto yy246;
+                               if (yych <= ' ') goto yy245;
+                               goto yy221;
                        } else {
-                               if (yych <= ')') goto yy251;
-                               if (yych <= ',') goto yy246;
-                               goto yy275;
+                               if (yych <= ')') goto yy226;
+                               if (yych <= ',') goto yy221;
+                               goto yy250;
                        }
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '.') goto yy269;
-                       if (yych <= '/') goto yy275;
-                       if (yych <= '@') goto yy246;
-                       goto yy263;
+                       if (yych <= '.') goto yy244;
+                       if (yych <= '/') goto yy250;
+                       if (yych <= '@') goto yy221;
+                       goto yy238;
                } else {
                        if (yych <= '_') {
-                               if (yych <= '^') goto yy246;
-                               goto yy275;
+                               if (yych <= '^') goto yy221;
+                               goto yy250;
                        } else {
-                               if (yych <= '`') goto yy246;
-                               if (yych <= 'z') goto yy274;
-                               goto yy246;
+                               if (yych <= '`') goto yy221;
+                               if (yych <= 'z') goto yy249;
+                               goto yy221;
                        }
                }
        }
-yy284:
-       YYDEBUG(284, *YYCURSOR);
+yy259:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '9') goto yy286;
-       if (yych <= ':') goto yy287;
-       goto yy246;
-yy285:
-       YYDEBUG(285, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '9') goto yy261;
+       if (yych <= ':') goto yy262;
+       goto yy221;
+yy260:
        yych = *++YYCURSOR;
        if (yych <= '5') {
-               if (yych <= '/') goto yy246;
-               if (yych >= '5') goto yy288;
+               if (yych <= '/') goto yy221;
+               if (yych >= '5') goto yy263;
        } else {
-               if (yych <= '9') goto yy251;
-               if (yych <= ':') goto yy287;
-               goto yy246;
+               if (yych <= '9') goto yy226;
+               if (yych <= ':') goto yy262;
+               goto yy221;
        }
-yy286:
-       YYDEBUG(286, *YYCURSOR);
+yy261:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '5') goto yy288;
-       if (yych <= '9') goto yy251;
-       if (yych >= ';') goto yy246;
-yy287:
-       YYDEBUG(287, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '5') goto yy263;
+       if (yych <= '9') goto yy226;
+       if (yych >= ';') goto yy221;
+yy262:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '5') goto yy288;
-       if (yych <= '9') goto yy251;
-       goto yy246;
-yy288:
-       YYDEBUG(288, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '5') goto yy263;
+       if (yych <= '9') goto yy226;
+       goto yy221;
+yy263:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '9') goto yy251;
-       goto yy246;
-yy289:
-       YYDEBUG(289, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '9') goto yy226;
+       goto yy221;
+yy264:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
-               if (yych == ')') goto yy251;
-               if (yych <= '@') goto yy246;
-               goto yy263;
+               if (yych == ')') goto yy226;
+               if (yych <= '@') goto yy221;
+               goto yy238;
        } else {
                if (yych <= 'Z') {
-                       if (yych >= 'U') goto yy263;
+                       if (yych >= 'U') goto yy238;
                } else {
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy263;
-                       goto yy246;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy238;
+                       goto yy221;
                }
        }
-       YYDEBUG(290, *YYCURSOR);
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy246;
-                       goto yy251;
+                       if (yych <= '(') goto yy221;
+                       goto yy226;
                } else {
-                       if (yych == '+') goto yy256;
-                       goto yy246;
+                       if (yych == '+') goto yy231;
+                       goto yy221;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '-') goto yy256;
-                       if (yych <= '@') goto yy246;
-                       goto yy264;
+                       if (yych <= '-') goto yy231;
+                       if (yych <= '@') goto yy221;
+                       goto yy239;
                } else {
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy264;
-                       goto yy246;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy239;
+                       goto yy221;
                }
        }
-yy291:
-       YYDEBUG(291, *YYCURSOR);
+yy266:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ':') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy292;
-                       if (yych <= 0x1F) goto yy246;
+                       if (yych == '\t') goto yy267;
+                       if (yych <= 0x1F) goto yy221;
                } else {
-                       if (yych == '.') goto yy248;
-                       if (yych <= '9') goto yy246;
-                       goto yy248;
+                       if (yych == '.') goto yy223;
+                       if (yych <= '9') goto yy221;
+                       goto yy223;
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy294;
-                       if (yych <= 'O') goto yy246;
-                       goto yy294;
+                       if (yych == 'A') goto yy269;
+                       if (yych <= 'O') goto yy221;
+                       goto yy269;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy246;
-                               goto yy294;
+                               if (yych <= '`') goto yy221;
+                               goto yy269;
                        } else {
-                               if (yych == 'p') goto yy294;
-                               goto yy246;
+                               if (yych == 'p') goto yy269;
+                               goto yy221;
                        }
                }
        }
-yy292:
-       YYDEBUG(292, *YYCURSOR);
+yy267:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(293, *YYCURSOR);
        if (yych <= 'A') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy292;
+                       if (yych == '\t') goto yy267;
                        goto yy56;
                } else {
-                       if (yych <= ' ') goto yy292;
+                       if (yych <= ' ') goto yy267;
                        if (yych <= '@') goto yy56;
                }
        } else {
                if (yych <= '`') {
                        if (yych != 'P') goto yy56;
                } else {
-                       if (yych <= 'a') goto yy294;
+                       if (yych <= 'a') goto yy269;
                        if (yych != 'p') goto yy56;
                }
        }
-yy294:
-       YYDEBUG(294, *YYCURSOR);
+yy269:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy296;
-               if (yych == 'm') goto yy296;
+               if (yych <= 'M') goto yy271;
+               if (yych == 'm') goto yy271;
                goto yy56;
        }
-       YYDEBUG(295, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy296;
+       if (yych == 'M') goto yy271;
        if (yych != 'm') goto yy56;
-yy296:
-       YYDEBUG(296, *YYCURSOR);
+yy271:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy270;
-               if (yych == '\t') goto yy270;
+               if (yych <= 0x00) goto yy245;
+               if (yych == '\t') goto yy245;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy270;
+               if (yych <= ' ') goto yy245;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(297, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy270;
+               if (yych <= 0x00) goto yy245;
                if (yych <= 0x08) goto yy56;
-               goto yy270;
+               goto yy245;
        } else {
-               if (yych == ' ') goto yy270;
+               if (yych == ' ') goto yy245;
                goto yy56;
        }
-yy298:
-       YYDEBUG(298, *YYCURSOR);
+yy273:
        yych = *++YYCURSOR;
-       if (yych == '.') goto yy299;
+       if (yych == '.') goto yy274;
        if (yych != ':') goto yy56;
-yy299:
-       YYDEBUG(299, *YYCURSOR);
+yy274:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy300;
-       if (yych <= '9') goto yy301;
+       if (yych <= '5') goto yy275;
+       if (yych <= '9') goto yy276;
        goto yy56;
-yy300:
-       YYDEBUG(300, *YYCURSOR);
+yy275:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy302;
-               goto yy246;
+               if (yych == '.') goto yy277;
+               goto yy221;
        } else {
-               if (yych <= '9') goto yy301;
-               if (yych <= ':') goto yy302;
-               goto yy246;
+               if (yych <= '9') goto yy276;
+               if (yych <= ':') goto yy277;
+               goto yy221;
        }
-yy301:
-       YYDEBUG(301, *YYCURSOR);
+yy276:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy302;
-       if (yych != ':') goto yy246;
-yy302:
-       YYDEBUG(302, *YYCURSOR);
+       if (yych == '.') goto yy277;
+       if (yych != ':') goto yy221;
+yy277:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy303;
-       if (yych <= '6') goto yy304;
-       if (yych <= '9') goto yy251;
+       if (yych <= '5') goto yy278;
+       if (yych <= '6') goto yy279;
+       if (yych <= '9') goto yy226;
        goto yy56;
-yy303:
-       YYDEBUG(303, *YYCURSOR);
+yy278:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy246;
-       if (yych <= '9') goto yy305;
-       goto yy246;
-yy304:
-       YYDEBUG(304, *YYCURSOR);
+       if (yych <= '/') goto yy221;
+       if (yych <= '9') goto yy280;
+       goto yy221;
+yy279:
        yych = *++YYCURSOR;
-       if (yych != '0') goto yy246;
-yy305:
-       YYDEBUG(305, *YYCURSOR);
+       if (yych != '0') goto yy221;
+yy280:
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '*') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy307;
-                       goto yy246;
+                       if (yych == '\t') goto yy282;
+                       goto yy221;
                } else {
-                       if (yych <= ' ') goto yy307;
-                       if (yych == '(') goto yy307;
-                       goto yy246;
+                       if (yych <= ' ') goto yy282;
+                       if (yych == '(') goto yy282;
+                       goto yy221;
                }
        } else {
                if (yych <= '@') {
-                       if (yych == ',') goto yy246;
-                       if (yych <= '-') goto yy307;
-                       goto yy246;
+                       if (yych == ',') goto yy221;
+                       if (yych <= '-') goto yy282;
+                       goto yy221;
                } else {
-                       if (yych <= 'Z') goto yy307;
-                       if (yych <= '`') goto yy246;
-                       if (yych <= 'z') goto yy307;
-                       goto yy246;
+                       if (yych <= 'Z') goto yy282;
+                       if (yych <= '`') goto yy221;
+                       if (yych <= 'z') goto yy282;
+                       goto yy221;
                }
        }
-yy306:
-       YYDEBUG(306, *YYCURSOR);
+yy281:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
        yych = *YYCURSOR;
-yy307:
-       YYDEBUG(307, *YYCURSOR);
+yy282:
        if (yych <= '+') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy306;
+                       if (yych == '\t') goto yy281;
                        if (yych <= 0x1F) goto yy56;
-                       goto yy306;
+                       goto yy281;
                } else {
-                       if (yych == '(') goto yy257;
+                       if (yych == '(') goto yy232;
                        if (yych <= '*') goto yy56;
-                       goto yy256;
+                       goto yy231;
                }
        } else {
                if (yych <= 'F') {
-                       if (yych == '-') goto yy256;
+                       if (yych == '-') goto yy231;
                        if (yych <= '@') goto yy56;
-                       goto yy259;
+                       goto yy234;
                } else {
                        if (yych <= 'Z') {
-                               if (yych <= 'G') goto yy255;
-                               goto yy259;
+                               if (yych <= 'G') goto yy230;
+                               goto yy234;
                        } else {
                                if (yych <= '`') goto yy56;
-                               if (yych <= 'z') goto yy261;
+                               if (yych <= 'z') goto yy236;
                                goto yy56;
                        }
                }
        }
-yy308:
-       YYDEBUG(308, *YYCURSOR);
+yy283:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy299;
+               if (yych == '.') goto yy274;
                goto yy56;
        } else {
-               if (yych <= '9') goto yy298;
-               if (yych <= ':') goto yy299;
+               if (yych <= '9') goto yy273;
+               if (yych <= ':') goto yy274;
                goto yy56;
        }
-yy309:
-       YYDEBUG(309, *YYCURSOR);
+yy284:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy299;
+               if (yych == '.') goto yy274;
                goto yy56;
        } else {
-               if (yych <= '4') goto yy298;
-               if (yych == ':') goto yy299;
+               if (yych <= '4') goto yy273;
+               if (yych == ':') goto yy274;
                goto yy56;
        }
-yy310:
-       YYDEBUG(310, *YYCURSOR);
+yy285:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy299;
-               goto yy232;
+               if (yych == '.') goto yy274;
+               goto yy207;
        } else {
-               if (yych <= '0') goto yy317;
-               if (yych <= '9') goto yy318;
-               if (yych <= ':') goto yy299;
-               goto yy232;
+               if (yych <= '0') goto yy292;
+               if (yych <= '9') goto yy293;
+               if (yych <= ':') goto yy274;
+               goto yy207;
        }
-yy311:
-       YYDEBUG(311, *YYCURSOR);
+yy286:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
-               goto yy232;
+               if (yych == '.') goto yy219;
+               goto yy207;
        } else {
-               if (yych <= '2') goto yy318;
-               if (yych <= '9') goto yy317;
-               if (yych <= ':') goto yy244;
-               goto yy232;
+               if (yych <= '2') goto yy293;
+               if (yych <= '9') goto yy292;
+               if (yych <= ':') goto yy219;
+               goto yy207;
        }
-yy312:
-       YYDEBUG(312, *YYCURSOR);
+yy287:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
-               goto yy232;
+               if (yych == '.') goto yy219;
+               goto yy207;
        } else {
-               if (yych <= '4') goto yy317;
-               if (yych <= '9') goto yy314;
-               if (yych <= ':') goto yy244;
-               goto yy232;
+               if (yych <= '4') goto yy292;
+               if (yych <= '9') goto yy289;
+               if (yych <= ':') goto yy219;
+               goto yy207;
        }
-yy313:
-       YYDEBUG(313, *YYCURSOR);
+yy288:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
-               goto yy232;
+               if (yych == '.') goto yy219;
+               goto yy207;
        } else {
-               if (yych <= '9') goto yy314;
-               if (yych <= ':') goto yy244;
-               goto yy232;
+               if (yych <= '9') goto yy289;
+               if (yych <= ':') goto yy219;
+               goto yy207;
        }
-yy314:
-       YYDEBUG(314, *YYCURSOR);
+yy289:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy232;
-       if (yych >= ':') goto yy232;
-yy315:
-       YYDEBUG(315, *YYCURSOR);
+       if (yych <= '/') goto yy207;
+       if (yych >= ':') goto yy207;
+yy290:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy232;
-       if (yych >= ':') goto yy232;
-       YYDEBUG(316, *YYCURSOR);
+       if (yych <= '/') goto yy207;
+       if (yych >= ':') goto yy207;
        yych = *++YYCURSOR;
-       goto yy232;
-yy317:
-       YYDEBUG(317, *YYCURSOR);
+       goto yy207;
+yy292:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy299;
-               goto yy232;
+               if (yych == '.') goto yy274;
+               goto yy207;
        } else {
-               if (yych <= '9') goto yy315;
-               if (yych <= ':') goto yy299;
-               goto yy232;
+               if (yych <= '9') goto yy290;
+               if (yych <= ':') goto yy274;
+               goto yy207;
        }
-yy318:
-       YYDEBUG(318, *YYCURSOR);
+yy293:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy244;
-               goto yy232;
+               if (yych == '.') goto yy219;
+               goto yy207;
        } else {
-               if (yych <= '9') goto yy315;
-               if (yych <= ':') goto yy244;
-               goto yy232;
+               if (yych <= '9') goto yy290;
+               if (yych <= ':') goto yy219;
+               goto yy207;
        }
-yy319:
-       YYDEBUG(319, *YYCURSOR);
+yy294:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x00) goto yy238;
-       goto yy237;
-yy320:
-       YYDEBUG(320, *YYCURSOR);
+       if (yych <= 0x00) goto yy213;
+       goto yy212;
+yy295:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(321, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(322, *YYCURSOR);
-#line 1397 "ext/date/lib/parse_date.re"
+#line 1338 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("datenoday");
@@ -5844,238 +5130,230 @@ yy320:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NO_DAY;
        }
-#line 5848 "<stdout>"
-yy323:
-       YYDEBUG(323, *YYCURSOR);
+#line 5134 "ext/date/lib/parse_date.c"
+yy298:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy320;
+                               goto yy295;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy324:
-       YYDEBUG(324, *YYCURSOR);
+yy299:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy327;
+                               goto yy302;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy325:
-       YYDEBUG(325, *YYCURSOR);
+yy300:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy327;
+                               goto yy302;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy326:
-       YYDEBUG(326, *YYCURSOR);
+yy301:
        yych = *++YYCURSOR;
        if (yych <= '1') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych == ',') goto yy236;
+                               if (yych == ',') goto yy211;
                                goto yy56;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
-                               if (yych <= '9') goto yy230;
+                               if (yych <= '9') goto yy205;
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-yy327:
-       YYDEBUG(327, *YYCURSOR);
+yy302:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ' ') {
                        if (yych <= 0x08) {
-                               if (yych <= 0x00) goto yy238;
+                               if (yych <= 0x00) goto yy213;
                                goto yy56;
                        } else {
-                               if (yych <= '\t') goto yy236;
+                               if (yych <= '\t') goto yy211;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy236;
+                               goto yy211;
                        }
                } else {
                        if (yych <= '-') {
                                if (yych <= '+') goto yy56;
-                               if (yych <= ',') goto yy236;
+                               if (yych <= ',') goto yy211;
                        } else {
-                               if (yych <= '.') goto yy236;
+                               if (yych <= '.') goto yy211;
                                if (yych <= '/') goto yy56;
-                               goto yy320;
+                               goto yy295;
                        }
                }
        } else {
                if (yych <= 'm') {
                        if (yych <= 'd') {
                                if (yych <= 'c') goto yy56;
-                               goto yy236;
+                               goto yy211;
                        } else {
-                               if (yych == 'h') goto yy236;
+                               if (yych == 'h') goto yy211;
                                goto yy56;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'n') goto yy233;
+                               if (yych <= 'n') goto yy208;
                                if (yych <= 'q') goto yy56;
-                               goto yy234;
+                               goto yy209;
                        } else {
-                               if (yych <= 's') goto yy231;
-                               if (yych <= 't') goto yy235;
+                               if (yych <= 's') goto yy206;
+                               if (yych <= 't') goto yy210;
                                goto yy56;
                        }
                }
        }
-       YYDEBUG(328, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(329, *YYCURSOR);
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= '/') goto yy330;
-       if (yych <= '9') goto yy331;
-yy330:
-       YYDEBUG(330, *YYCURSOR);
-#line 1541 "ext/date/lib/parse_date.re"
+       if ((yych = *YYCURSOR) <= '/') goto yy305;
+       if (yych <= '9') goto yy306;
+yy305:
+#line 1482 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("pgtextshort");
@@ -6088,589 +5366,562 @@ yy330:
                TIMELIB_DEINIT;
                return TIMELIB_PG_TEXT;
        }
-#line 6092 "<stdout>"
-yy331:
-       YYDEBUG(331, *YYCURSOR);
+#line 5370 "ext/date/lib/parse_date.c"
+yy306:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy330;
-       if (yych >= ':') goto yy330;
-       YYDEBUG(332, *YYCURSOR);
+       if (yych <= '/') goto yy305;
+       if (yych >= ':') goto yy305;
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy330;
-       if (yych >= ':') goto yy330;
-       YYDEBUG(333, *YYCURSOR);
+       if (yych <= '/') goto yy305;
+       if (yych >= ':') goto yy305;
        yych = *++YYCURSOR;
-       goto yy330;
-yy334:
-       YYDEBUG(334, *YYCURSOR);
+       goto yy305;
+yy309:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'B') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'C') goto yy217;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'C') goto yy192;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'b') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'c') goto yy335;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'c') goto yy310;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy335:
-       YYDEBUG(335, *YYCURSOR);
+yy310:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'D') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'E') goto yy225;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'E') goto yy200;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy337;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'e') goto yy312;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy336:
-       YYDEBUG(336, *YYCURSOR);
+yy311:
        yych = *++YYCURSOR;
        if (yybm[0+yych] & 8) {
-               goto yy173;
+               goto yy148;
        }
-       if (yych <= '/') goto yy220;
-       if (yych <= '0') goto yy324;
-       if (yych <= '2') goto yy325;
-       if (yych <= '3') goto yy326;
-       goto yy220;
-yy337:
-       YYDEBUG(337, *YYCURSOR);
+       if (yych <= '/') goto yy195;
+       if (yych <= '0') goto yy299;
+       if (yych <= '2') goto yy300;
+       if (yych <= '3') goto yy301;
+       goto yy195;
+yy312:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'M') goto yy226;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'M') goto yy201;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'l') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'm') goto yy338;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'm') goto yy313;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy338:
-       YYDEBUG(338, *YYCURSOR);
+yy313:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'B') goto yy227;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'B') goto yy202;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'b') goto yy339;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'b') goto yy314;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy339:
-       YYDEBUG(339, *YYCURSOR);
+yy314:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'E') goto yy228;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'E') goto yy203;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'e') goto yy340;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'e') goto yy315;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy340:
-       YYDEBUG(340, *YYCURSOR);
+yy315:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
-       if (yych != 'r') goto yy179;
-yy341:
-       YYDEBUG(341, *YYCURSOR);
+       if (yych == 'R') goto yy204;
+       if (yych != 'r') goto yy154;
+yy316:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '-') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
-                       goto yy218;
+                       if (yych == '\t') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych <= ',') goto yy218;
+                       if (yych <= ' ') goto yy195;
+                       if (yych <= ',') goto yy193;
                }
        } else {
                if (yych <= '9') {
-                       if (yych == '/') goto yy172;
-                       goto yy220;
+                       if (yych == '/') goto yy147;
+                       goto yy195;
                } else {
-                       if (yych == '_') goto yy172;
-                       goto yy218;
+                       if (yych == '_') goto yy147;
+                       goto yy193;
                }
        }
-yy342:
-       YYDEBUG(342, *YYCURSOR);
+yy317:
        yych = *++YYCURSOR;
        if (yybm[0+yych] & 8) {
-               goto yy173;
+               goto yy148;
        }
-       goto yy220;
-yy343:
-       YYDEBUG(343, *YYCURSOR);
+       goto yy195;
+yy318:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy166;
+                       if (yych <= 'S') goto yy141;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 't') goto yy344;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 't') goto yy319;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy344:
-       YYDEBUG(344, *YYCURSOR);
+yy319:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'O') goto yy167;
+                               if (yych != 'O') goto yy142;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'o') goto yy345;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'o') goto yy320;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy345:
-       YYDEBUG(345, *YYCURSOR);
+yy320:
        yych = *++YYCURSOR;
        if (yych <= 'B') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'A') goto yy168;
+                       if (yych <= 'A') goto yy143;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'b') goto yy346;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'b') goto yy321;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy346:
-       YYDEBUG(346, *YYCURSOR);
+yy321:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy169;
+                       if (yych <= 'D') goto yy144;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'e') goto yy347;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'e') goto yy322;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy347:
-       YYDEBUG(347, *YYCURSOR);
+yy322:
        yych = *++YYCURSOR;
        if (yych <= 'Q') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'R') goto yy229;
-               if (yych == 'r') goto yy229;
+               if (yych <= 'R') goto yy204;
+               if (yych == 'r') goto yy204;
                goto yy3;
        }
-yy348:
-       YYDEBUG(348, *YYCURSOR);
+yy323:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy344;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'T') goto yy319;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 't') goto yy349;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 't') goto yy324;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy349:
-       YYDEBUG(349, *YYCURSOR);
+yy324:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'N') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'O') goto yy345;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'O') goto yy320;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'o') goto yy350;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'o') goto yy325;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy350:
-       YYDEBUG(350, *YYCURSOR);
+yy325:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'B') goto yy346;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'B') goto yy321;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'b') goto yy351;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'b') goto yy326;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy351:
-       YYDEBUG(351, *YYCURSOR);
+yy326:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy347;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'E') goto yy322;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'e') goto yy352;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'e') goto yy327;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy352:
-       YYDEBUG(352, *YYCURSOR);
+yy327:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'R') goto yy229;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'R') goto yy204;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'r') goto yy341;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'r') goto yy316;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy353:
-       YYDEBUG(353, *YYCURSOR);
+yy328:
        yych = *++YYCURSOR;
        if (yych <= 'G') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'F') goto yy166;
-                       goto yy361;
+                       if (yych <= 'F') goto yy141;
+                       goto yy336;
                }
        } else {
                if (yych <= 'f') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'g') goto yy361;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'g') goto yy336;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy354:
-       YYDEBUG(354, *YYCURSOR);
+yy329:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy166;
-                       goto yy358;
+                       if (yych <= 'Q') goto yy141;
+                       goto yy333;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'r') goto yy358;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'r') goto yy333;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy355:
-       YYDEBUG(355, *YYCURSOR);
+yy330:
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'N') goto yy166;
+                       if (yych <= 'N') goto yy141;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'o') goto yy356;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'o') goto yy331;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy356:
-       YYDEBUG(356, *YYCURSOR);
+yy331:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
        } else {
-               if (yych <= 'Z') goto yy167;
-               if (yych <= '`') goto yy357;
-               if (yych <= 'z') goto yy167;
+               if (yych <= 'Z') goto yy142;
+               if (yych <= '`') goto yy332;
+               if (yych <= 'z') goto yy142;
        }
-yy357:
-       YYDEBUG(357, *YYCURSOR);
-#line 1599 "ext/date/lib/parse_date.re"
+yy332:
+#line 1540 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("ago");
                TIMELIB_INIT;
@@ -6690,1339 +5941,1295 @@ yy357:
                TIMELIB_DEINIT;
                return TIMELIB_AGO;
        }
-#line 6694 "<stdout>"
-yy358:
-       YYDEBUG(358, *YYCURSOR);
+#line 5945 "ext/date/lib/parse_date.c"
+yy333:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'I') goto yy167;
+                               if (yych != 'I') goto yy142;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'i') goto yy359;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'i') goto yy334;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy359:
-       YYDEBUG(359, *YYCURSOR);
+yy334:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'K') goto yy168;
+                       if (yych <= 'K') goto yy143;
                }
        } else {
                if (yych <= 'k') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'l') goto yy360;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'l') goto yy335;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy360:
-       YYDEBUG(360, *YYCURSOR);
+yy335:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
-                       goto yy218;
+                       if (yych == '\t') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
-                       goto yy218;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
+                       goto yy193;
                }
        } else {
                if (yych <= '@') {
-                       if (yych == '/') goto yy218;
-                       if (yych <= '9') goto yy220;
-                       goto yy218;
+                       if (yych == '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= 'Z') goto yy169;
-                       if (yych <= '`') goto yy218;
-                       if (yych <= 'z') goto yy169;
-                       goto yy218;
+                       if (yych <= 'Z') goto yy144;
+                       if (yych <= '`') goto yy193;
+                       if (yych <= 'z') goto yy144;
+                       goto yy193;
                }
        }
-yy361:
-       YYDEBUG(361, *YYCURSOR);
+yy336:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'U') goto yy167;
+                               if (yych != 'U') goto yy142;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'u') goto yy362;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'u') goto yy337;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy362:
-       YYDEBUG(362, *YYCURSOR);
+yy337:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy168;
+                       if (yych <= 'R') goto yy143;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 's') goto yy363;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 's') goto yy338;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy363:
-       YYDEBUG(363, *YYCURSOR);
+yy338:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy169;
+                       if (yych <= 'S') goto yy144;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 't') goto yy364;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 't') goto yy339;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy364:
-       YYDEBUG(364, *YYCURSOR);
+yy339:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '(') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy218;
-                       goto yy220;
+                       if (yych <= 0x08) goto yy193;
+                       goto yy195;
                } else {
-                       if (yych == ' ') goto yy220;
-                       goto yy218;
+                       if (yych == ' ') goto yy195;
+                       goto yy193;
                }
        } else {
                if (yych <= '.') {
-                       if (yych <= ')') goto yy164;
-                       if (yych <= ',') goto yy218;
-                       goto yy220;
+                       if (yych <= ')') goto yy139;
+                       if (yych <= ',') goto yy193;
+                       goto yy195;
                } else {
-                       if (yych <= '/') goto yy218;
-                       if (yych <= '9') goto yy220;
-                       goto yy218;
+                       if (yych <= '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+                       goto yy193;
                }
        }
-yy365:
-       YYDEBUG(365, *YYCURSOR);
+yy340:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'F') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'G') goto yy361;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'G') goto yy336;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'f') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'g') goto yy372;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'g') goto yy347;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy366:
-       YYDEBUG(366, *YYCURSOR);
+yy341:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy358;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'R') goto yy333;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'r') goto yy369;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'r') goto yy344;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy367:
-       YYDEBUG(367, *YYCURSOR);
+yy342:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'O') goto yy356;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'O') goto yy331;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'n') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'o') goto yy368;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'o') goto yy343;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy368:
-       YYDEBUG(368, *YYCURSOR);
+yy343:
        yyaccept = 8;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy357;
+                       if (yych == ')') goto yy139;
+                       goto yy332;
                } else {
-                       if (yych == '.') goto yy357;
-                       goto yy172;
+                       if (yych == '.') goto yy332;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy357;
-                       if (yych <= 'Z') goto yy167;
-                       goto yy357;
+                       if (yych <= '@') goto yy332;
+                       if (yych <= 'Z') goto yy142;
+                       goto yy332;
                } else {
-                       if (yych <= '_') goto yy172;
-                       if (yych <= '`') goto yy357;
-                       if (yych <= 'z') goto yy175;
-                       goto yy357;
+                       if (yych <= '_') goto yy147;
+                       if (yych <= '`') goto yy332;
+                       if (yych <= 'z') goto yy150;
+                       goto yy332;
                }
        }
-yy369:
-       YYDEBUG(369, *YYCURSOR);
+yy344:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'H') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'I') goto yy359;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'I') goto yy334;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'i') goto yy370;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'i') goto yy345;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy370:
-       YYDEBUG(370, *YYCURSOR);
+yy345:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'K') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'L') goto yy360;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'L') goto yy335;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'k') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'l') goto yy371;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'l') goto yy346;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy371:
-       YYDEBUG(371, *YYCURSOR);
+yy346:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
-                       if (yych <= 0x1F) goto yy218;
-                       goto yy220;
+                       if (yych == '\t') goto yy195;
+                       if (yych <= 0x1F) goto yy193;
+                       goto yy195;
                } else {
                        if (yych <= ')') {
-                               if (yych <= '(') goto yy218;
-                               goto yy164;
+                               if (yych <= '(') goto yy193;
+                               goto yy139;
                        } else {
-                               if (yych <= ',') goto yy218;
-                               if (yych <= '-') goto yy342;
-                               goto yy220;
+                               if (yych <= ',') goto yy193;
+                               if (yych <= '-') goto yy317;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '/') goto yy172;
-                       if (yych <= '9') goto yy220;
-                       if (yych <= '@') goto yy218;
-                       goto yy169;
+                       if (yych <= '/') goto yy147;
+                       if (yych <= '9') goto yy195;
+                       if (yych <= '@') goto yy193;
+                       goto yy144;
                } else {
                        if (yych <= '_') {
-                               if (yych <= '^') goto yy218;
-                               goto yy172;
+                               if (yych <= '^') goto yy193;
+                               goto yy147;
                        } else {
-                               if (yych <= '`') goto yy218;
-                               if (yych <= 'z') goto yy177;
-                               goto yy218;
+                               if (yych <= '`') goto yy193;
+                               if (yych <= 'z') goto yy152;
+                               goto yy193;
                        }
                }
        }
-yy372:
-       YYDEBUG(372, *YYCURSOR);
+yy347:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'T') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'U') goto yy362;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'U') goto yy337;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'u') goto yy373;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'u') goto yy348;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy373:
-       YYDEBUG(373, *YYCURSOR);
+yy348:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy363;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'S') goto yy338;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 's') goto yy374;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 's') goto yy349;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy374:
-       YYDEBUG(374, *YYCURSOR);
+yy349:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy364;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'T') goto yy339;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 't') goto yy375;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 't') goto yy350;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy375:
-       YYDEBUG(375, *YYCURSOR);
+yy350:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
-                       goto yy218;
+                       if (yych == '\t') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
-                       goto yy218;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
+                       goto yy193;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy342;
-                       if (yych <= '.') goto yy220;
-                       goto yy172;
+                       if (yych <= '-') goto yy317;
+                       if (yych <= '.') goto yy195;
+                       goto yy147;
                } else {
-                       if (yych <= '9') goto yy220;
-                       if (yych == '_') goto yy172;
-                       goto yy218;
+                       if (yych <= '9') goto yy195;
+                       if (yych == '_') goto yy147;
+                       goto yy193;
                }
        }
-yy376:
-       YYDEBUG(376, *YYCURSOR);
+yy351:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'L') goto yy383;
-                       if (yych <= 'M') goto yy166;
-                       goto yy382;
+                       if (yych == 'L') goto yy358;
+                       if (yych <= 'M') goto yy141;
+                       goto yy357;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'k') goto yy166;
-                       goto yy383;
+                       if (yych <= 'k') goto yy141;
+                       goto yy358;
                } else {
-                       if (yych == 'n') goto yy382;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'n') goto yy357;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy377:
-       YYDEBUG(377, *YYCURSOR);
+yy352:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy166;
+                       if (yych <= 'M') goto yy141;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'n') goto yy378;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'n') goto yy353;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy378:
-       YYDEBUG(378, *YYCURSOR);
+yy353:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'U') goto yy167;
+                               if (yych != 'U') goto yy142;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'u') goto yy379;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'u') goto yy354;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy379:
-       YYDEBUG(379, *YYCURSOR);
+yy354:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy380;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'a') goto yy355;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy380:
-       YYDEBUG(380, *YYCURSOR);
+yy355:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy169;
+                       if (yych <= 'Q') goto yy144;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'r') goto yy381;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'r') goto yy356;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy381:
-       YYDEBUG(381, *YYCURSOR);
+yy356:
        yych = *++YYCURSOR;
        if (yych <= 'X') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Y') goto yy229;
-               if (yych == 'y') goto yy229;
+               if (yych <= 'Y') goto yy204;
+               if (yych == 'y') goto yy204;
                goto yy3;
        }
-yy382:
-       YYDEBUG(382, *YYCURSOR);
+yy357:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych == 'E') goto yy384;
-                               goto yy167;
+                               if (yych == 'E') goto yy359;
+                               goto yy142;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'e') goto yy384;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'e') goto yy359;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy383:
-       YYDEBUG(383, *YYCURSOR);
+yy358:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'Y') goto yy167;
+                               if (yych != 'Y') goto yy142;
                        }
                } else {
                        if (yych <= 'x') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'y') goto yy384;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'y') goto yy359;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy384:
-       YYDEBUG(384, *YYCURSOR);
+yy359:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
-                       goto yy218;
+                       if (yych == '\t') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
-                       goto yy218;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
+                       goto yy193;
                }
        } else {
                if (yych <= '@') {
-                       if (yych == '/') goto yy218;
-                       if (yych <= '9') goto yy220;
-                       goto yy218;
+                       if (yych == '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= 'Z') goto yy168;
-                       if (yych <= '`') goto yy218;
-                       if (yych <= 'z') goto yy168;
-                       goto yy218;
+                       if (yych <= 'Z') goto yy143;
+                       if (yych <= '`') goto yy193;
+                       if (yych <= 'z') goto yy143;
+                       goto yy193;
                }
        }
-yy385:
-       YYDEBUG(385, *YYCURSOR);
+yy360:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'L') goto yy383;
-                               goto yy166;
+                               if (yych == 'L') goto yy358;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'N') goto yy382;
-                               goto yy166;
+                               if (yych <= 'N') goto yy357;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'm') {
-                               if (yych == 'l') goto yy392;
-                               goto yy171;
+                               if (yych == 'l') goto yy367;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy391;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy366;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy386:
-       YYDEBUG(386, *YYCURSOR);
+yy361:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy378;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'N') goto yy353;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy387;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy362;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy387:
-       YYDEBUG(387, *YYCURSOR);
+yy362:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'T') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'U') goto yy379;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'U') goto yy354;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'u') goto yy388;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'u') goto yy363;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy388:
-       YYDEBUG(388, *YYCURSOR);
+yy363:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy380;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'A') goto yy355;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy389;
-                       if (yych <= 'z') goto yy176;
+                       if (yych <= 'a') goto yy364;
+                       if (yych <= 'z') goto yy151;
                        goto yy3;
                }
        }
-yy389:
-       YYDEBUG(389, *YYCURSOR);
+yy364:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy381;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'R') goto yy356;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'r') goto yy390;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'r') goto yy365;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy390:
-       YYDEBUG(390, *YYCURSOR);
+yy365:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Y') goto yy229;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'Y') goto yy204;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'y') goto yy341;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'y') goto yy316;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy391:
-       YYDEBUG(391, *YYCURSOR);
+yy366:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'D') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'E') goto yy384;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'E') goto yy359;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy393;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'e') goto yy368;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy392:
-       YYDEBUG(392, *YYCURSOR);
+yy367:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'X') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'Y') goto yy384;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'Y') goto yy359;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'x') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'y') goto yy393;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'y') goto yy368;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy393:
-       YYDEBUG(393, *YYCURSOR);
+yy368:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
-                       if (yych <= 0x1F) goto yy218;
-                       goto yy220;
+                       if (yych == '\t') goto yy195;
+                       if (yych <= 0x1F) goto yy193;
+                       goto yy195;
                } else {
                        if (yych <= ')') {
-                               if (yych <= '(') goto yy218;
-                               goto yy164;
+                               if (yych <= '(') goto yy193;
+                               goto yy139;
                        } else {
-                               if (yych <= ',') goto yy218;
-                               if (yych <= '-') goto yy342;
-                               goto yy220;
+                               if (yych <= ',') goto yy193;
+                               if (yych <= '-') goto yy317;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '/') goto yy172;
-                       if (yych <= '9') goto yy220;
-                       if (yych <= '@') goto yy218;
-                       goto yy168;
+                       if (yych <= '/') goto yy147;
+                       if (yych <= '9') goto yy195;
+                       if (yych <= '@') goto yy193;
+                       goto yy143;
                } else {
                        if (yych <= '_') {
-                               if (yych <= '^') goto yy218;
-                               goto yy172;
+                               if (yych <= '^') goto yy193;
+                               goto yy147;
                        } else {
-                               if (yych <= '`') goto yy218;
-                               if (yych <= 'z') goto yy176;
-                               goto yy218;
+                               if (yych <= '`') goto yy193;
+                               if (yych <= 'z') goto yy151;
+                               goto yy193;
                        }
                }
        }
-yy394:
-       YYDEBUG(394, *YYCURSOR);
+yy369:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
                        if (yych <= 'Z') {
-                               if (yych >= 'J') goto yy166;
+                               if (yych >= 'J') goto yy141;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy166;
+                               if (yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
        }
-yy395:
-       YYDEBUG(395, *YYCURSOR);
+yy370:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                }
        } else {
                if (yych <= '@') {
                        if (yych == '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy396:
-       YYDEBUG(396, *YYCURSOR);
+yy371:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
                        if (yych <= 'Z') {
-                               if (yych >= 'J') goto yy166;
+                               if (yych >= 'J') goto yy141;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy166;
+                               if (yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
        }
-       YYDEBUG(397, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
                        if (yych <= 'Z') {
-                               if (yych >= 'J') goto yy167;
+                               if (yych >= 'J') goto yy142;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy167;
+                               if (yych <= 'z') goto yy142;
                                goto yy3;
                        }
                }
        }
-       YYDEBUG(398, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                }
        } else {
                if (yych <= '@') {
                        if (yych == '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy399:
-       YYDEBUG(399, *YYCURSOR);
+yy374:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= ' ') goto yy220;
-                       if (yych == ')') goto yy164;
+                       if (yych <= ' ') goto yy195;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                }
        } else {
                if (yych <= '@') {
                        if (yych == '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        goto yy3;
                } else {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy400:
-       YYDEBUG(400, *YYCURSOR);
+yy375:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
+                       if (yych == '\t') goto yy195;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy220;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy220;
+                       goto yy195;
                }
        } else {
                if (yych <= 'H') {
                        if (yych <= '/') goto yy3;
-                       if (yych <= '9') goto yy220;
+                       if (yych <= '9') goto yy195;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
                        if (yych <= 'Z') {
-                               if (yych <= 'I') goto yy395;
-                               goto yy166;
+                               if (yych <= 'I') goto yy370;
+                               goto yy141;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy166;
+                               if (yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
        }
-yy401:
-       YYDEBUG(401, *YYCURSOR);
+yy376:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
+       if (yych <= 'V') {
                if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
@@ -8031,156 +7238,139 @@ yy401:
                        } else {
                                if (yych <= '9') {
                                        if (yych <= '/') goto yy3;
-                                       goto yy421;
+                                       goto yy396;
                                } else {
-                                       if (yych <= ':') goto yy187;
+                                       if (yych <= ':') goto yy162;
                                        if (yych <= 'C') goto yy3;
                                        goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych <= 'F') {
-                                       if (yych <= 'E') goto yy3;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
+                               goto yy60;
+                       } else {
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'H') goto yy60;
-                                       goto yy3;
-                               }
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
-                               goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
-                                       goto yy60;
-                               } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy3;
-                               }
-                       }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych == 'g') goto yy3;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-yy402:
-       YYDEBUG(402, *YYCURSOR);
+yy377:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
-               if (yych <= 'C') {
-                       if (yych <= '/') {
-                               if (yych <= '\t') {
-                                       if (yych <= 0x08) goto yy3;
-                                       goto yy60;
-                               } else {
-                                       if (yych == ' ') goto yy60;
-                                       goto yy3;
-                               }
+       if (yych <= 'T') {
+               if (yych <= ':') {
+                       if (yych <= ' ') {
+                               if (yych == '\t') goto yy60;
+                               if (yych <= 0x1F) goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= '5') {
-                                       if (yych <= '4') goto yy421;
-                                       goto yy406;
+                               if (yych <= '4') {
+                                       if (yych <= '/') goto yy3;
+                                       goto yy396;
                                } else {
-                                       if (yych <= '9') goto yy407;
-                                       if (yych <= ':') goto yy187;
-                                       goto yy3;
+                                       if (yych <= '5') goto yy381;
+                                       if (yych <= '9') goto yy382;
+                                       goto yy162;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'G') goto yy3;
+                       if (yych <= 'G') {
+                               if (yych <= 'D') {
+                                       if (yych <= 'C') goto yy3;
                                        goto yy60;
+                               } else {
+                                       if (yych == 'F') goto yy60;
+                                       goto yy3;
                                }
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy3;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy3;
                                } else {
+                                       if (yych <= 'M') goto yy60;
                                        if (yych <= 'R') goto yy3;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy3;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy3;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych == 'f') goto yy60;
                                        goto yy3;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy3;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-yy403:
-       YYDEBUG(403, *YYCURSOR);
+yy378:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
+       if (yych <= 'T') {
                if (yych <= 'C') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
@@ -8189,291 +7379,257 @@ yy403:
                        } else {
                                if (yych <= '5') {
                                        if (yych <= '/') goto yy3;
-                                       goto yy406;
+                                       goto yy381;
                                } else {
-                                       if (yych <= '9') goto yy407;
-                                       if (yych <= ':') goto yy187;
+                                       if (yych <= '9') goto yy382;
+                                       if (yych <= ':') goto yy162;
                                        goto yy3;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'G') goto yy3;
-                                       goto yy60;
-                               }
+                       if (yych <= 'G') {
+                               if (yych == 'E') goto yy3;
+                               if (yych <= 'F') goto yy60;
+                               goto yy3;
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy3;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy3;
                                } else {
+                                       if (yych <= 'M') goto yy60;
                                        if (yych <= 'R') goto yy3;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy3;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy3;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych == 'f') goto yy60;
                                        goto yy3;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy3;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-yy404:
-       YYDEBUG(404, *YYCURSOR);
+yy379:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(405, *YYCURSOR);
        if (yybm[0+yych] & 4) {
                goto yy57;
        }
        if (yych <= ',') {
-               if (yych == '+') goto yy404;
+               if (yych == '+') goto yy379;
                goto yy56;
        } else {
-               if (yych <= '-') goto yy404;
+               if (yych <= '-') goto yy379;
                if (yych <= '/') goto yy56;
                if (yych <= '9') goto yy54;
                goto yy56;
        }
-yy406:
-       YYDEBUG(406, *YYCURSOR);
+yy381:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
                                if (yych <= 0x1F) goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy3;
-                                       goto yy420;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy3;
-                               }
+                               if (yych <= '/') goto yy3;
+                               if (yych <= '9') goto yy395;
+                               if (yych <= 'C') goto yy3;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy3;
-                               if (yych <= 'H') goto yy60;
-                               goto yy3;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
                                }
                        }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych == 'g') goto yy3;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-yy407:
-       YYDEBUG(407, *YYCURSOR);
+yy382:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
                                if (yych <= 0x1F) goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy3;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy3;
-                               }
+                               if (yych <= '/') goto yy3;
+                               if (yych <= '9') goto yy383;
+                               if (yych <= 'C') goto yy3;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy3;
-                               if (yych <= 'H') goto yy60;
-                               goto yy3;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
                                }
                        }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych == 'g') goto yy3;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-       YYDEBUG(408, *YYCURSOR);
+yy383:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
        if (yych >= ':') goto yy60;
-yy409:
-       YYDEBUG(409, *YYCURSOR);
+yy384:
        yych = *++YYCURSOR;
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
        if (yych != '-') goto yy60;
-yy410:
-       YYDEBUG(410, *YYCURSOR);
+yy385:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy411;
-       if (yych <= '1') goto yy412;
+       if (yych <= '0') goto yy386;
+       if (yych <= '1') goto yy387;
        goto yy56;
-yy411:
-       YYDEBUG(411, *YYCURSOR);
+yy386:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy413;
+       if (yych <= '9') goto yy388;
        goto yy56;
-yy412:
-       YYDEBUG(412, *YYCURSOR);
+yy387:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '3') goto yy56;
-yy413:
-       YYDEBUG(413, *YYCURSOR);
+yy388:
        yych = *++YYCURSOR;
        if (yych != '-') goto yy56;
-       YYDEBUG(414, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy415;
-       if (yych <= '2') goto yy416;
-       if (yych <= '3') goto yy417;
+       if (yych <= '0') goto yy390;
+       if (yych <= '2') goto yy391;
+       if (yych <= '3') goto yy392;
        goto yy56;
-yy415:
-       YYDEBUG(415, *YYCURSOR);
+yy390:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy418;
+       if (yych <= '9') goto yy393;
        goto yy56;
-yy416:
-       YYDEBUG(416, *YYCURSOR);
+yy391:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy418;
+       if (yych <= '9') goto yy393;
        goto yy56;
-yy417:
-       YYDEBUG(417, *YYCURSOR);
+yy392:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '2') goto yy56;
-yy418:
-       YYDEBUG(418, *YYCURSOR);
+yy393:
        ++YYCURSOR;
-yy419:
-       YYDEBUG(419, *YYCURSOR);
-#line 1302 "ext/date/lib/parse_date.re"
+yy394:
+#line 1243 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
                TIMELIB_INIT;
@@ -8484,81 +7640,73 @@ yy419:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 8488 "<stdout>"
-yy420:
-       YYDEBUG(420, *YYCURSOR);
+#line 7644 "ext/date/lib/parse_date.c"
+yy395:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
                                if (yych <= 0x1F) goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy3;
-                                       goto yy409;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy3;
-                               }
+                               if (yych <= '/') goto yy3;
+                               if (yych <= '9') goto yy384;
+                               if (yych <= 'C') goto yy3;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy3;
-                               if (yych <= 'H') goto yy60;
-                               goto yy3;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
                                }
                        }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych == 'g') goto yy3;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-yy421:
-       YYDEBUG(421, *YYCURSOR);
+yy396:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
+       if (yych <= 'T') {
                if (yych <= 'C') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
@@ -8568,505 +7716,408 @@ yy421:
                                if (yych <= '5') {
                                        if (yych <= '/') goto yy3;
                                } else {
-                                       if (yych <= '9') goto yy420;
-                                       if (yych <= ':') goto yy187;
+                                       if (yych <= '9') goto yy395;
+                                       if (yych <= ':') goto yy162;
                                        goto yy3;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'G') goto yy3;
-                                       goto yy60;
-                               }
+                       if (yych <= 'G') {
+                               if (yych == 'E') goto yy3;
+                               if (yych <= 'F') goto yy60;
+                               goto yy3;
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy3;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy3;
                                } else {
+                                       if (yych <= 'M') goto yy60;
                                        if (yych <= 'R') goto yy3;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy3;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy3;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych == 'f') goto yy60;
                                        goto yy3;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy3;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-       YYDEBUG(422, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
                                if (yych <= 0x1F) goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy3;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy3;
-                               }
+                               if (yych <= '/') goto yy3;
+                               if (yych <= '9') goto yy398;
+                               if (yych <= 'C') goto yy3;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy3;
-                               if (yych <= 'H') goto yy60;
-                               goto yy3;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
                                }
                        }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
                                        goto yy3;
                                } else {
-                                       if (yych == 'v') goto yy3;
+                                       if (yych == 'g') goto yy3;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                        goto yy3;
                                }
                        }
                }
        }
-       YYDEBUG(423, *YYCURSOR);
+yy398:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
                                if (yych <= 0x1F) goto yy3;
                                goto yy60;
                        } else {
-                               if (yych <= '-') {
-                                       if (yych <= ',') goto yy3;
-                                       goto yy410;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy3;
-                               }
-                       }
-               } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy3;
-                               if (yych <= 'H') goto yy60;
-                               goto yy3;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'V') goto yy3;
-                                       goto yy60;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy3;
+                               if (yych == '-') goto yy385;
+                               if (yych <= 'C') goto yy3;
                                goto yy60;
-                       } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy3;
-                                       goto yy60;
-                               } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy3;
-                               }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy3;
-                               } else {
-                                       if (yych == 'v') goto yy3;
-                                       goto yy60;
-                               }
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy3;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy3;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych <= 'R') goto yy3;
+                                       if (yych <= 'T') goto yy60;
                                        goto yy3;
                                }
                        }
                }
-       }
-yy424:
-       YYDEBUG(424, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy426;
-       if (yych <= '0') goto yy700;
-       if (yych <= '1') goto yy701;
-       if (yych <= '9') goto yy702;
-       goto yy426;
-yy425:
-       YYDEBUG(425, *YYCURSOR);
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
-       yych = *YYCURSOR;
-yy426:
-       YYDEBUG(426, *YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'G') {
-                       if (yych <= '.') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy425;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= ' ') goto yy425;
-                                       if (yych <= ',') goto yy56;
-                                       goto yy541;
-                               }
-                       } else {
-                               if (yych <= 'C') {
-                                       if (yych == 'A') goto yy444;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'D') goto yy430;
-                                       if (yych == 'F') goto yy431;
-                                       goto yy56;
-                               }
-                       }
-               } else {
-                       if (yych <= 'O') {
-                               if (yych <= 'J') {
-                                       if (yych <= 'H') goto yy65;
-                                       if (yych <= 'I') goto yy439;
-                                       goto yy443;
-                               } else {
-                                       if (yych <= 'L') goto yy56;
-                                       if (yych <= 'M') goto yy427;
-                                       if (yych <= 'N') goto yy446;
-                                       goto yy445;
-                               }
-                       } else {
-                               if (yych <= 'S') {
-                                       if (yych <= 'P') goto yy448;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy428;
-                               } else {
-                                       if (yych <= 'T') goto yy70;
-                                       if (yych <= 'U') goto yy63;
-                                       if (yych <= 'V') goto yy441;
-                                       goto yy69;
-                               }
-                       }
-               }
        } else {
-               if (yych <= 'm') {
-                       if (yych <= 'e') {
-                               if (yych <= '`') {
-                                       if (yych <= 'X') goto yy442;
-                                       if (yych <= 'Y') goto yy68;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'a') goto yy444;
-                                       if (yych == 'd') goto yy430;
-                                       goto yy56;
-                               }
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy3;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy3;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych <= 'f') goto yy431;
-                                       if (yych <= 'g') goto yy56;
-                                       goto yy65;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy3;
                                } else {
-                                       if (yych == 'j') goto yy443;
-                                       if (yych <= 'l') goto yy56;
+                                       if (yych == 'g') goto yy3;
+                                       goto yy60;
                                }
                        }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'p') {
-                                       if (yych <= 'n') goto yy446;
-                                       if (yych <= 'o') goto yy445;
-                                       goto yy448;
-                               } else {
-                                       if (yych <= 'r') goto yy56;
-                                       if (yych <= 's') goto yy428;
-                                       if (yych <= 't') goto yy70;
-                                       goto yy63;
-                               }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy3;
+                               goto yy60;
                        } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy69;
-                                       goto yy56;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy3;
+                                       goto yy60;
                                } else {
-                                       if (yych <= 'y') goto yy68;
-                                       if (yych == 0xC2) goto yy62;
-                                       goto yy56;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy3;
                                }
                        }
                }
        }
-yy427:
-       YYDEBUG(427, *YYCURSOR);
+yy399:
        yych = *++YYCURSOR;
-       if (yych <= 'S') {
-               if (yych <= 'I') {
-                       if (yych == 'A') goto yy556;
-                       if (yych <= 'H') goto yy56;
-                       goto yy138;
-               } else {
-                       if (yych == 'O') goto yy137;
-                       if (yych <= 'R') goto yy56;
-                       goto yy139;
-               }
-       } else {
-               if (yych <= 'i') {
-                       if (yych == 'a') goto yy556;
-                       if (yych <= 'h') goto yy56;
-                       goto yy138;
-               } else {
-                       if (yych <= 'o') {
-                               if (yych <= 'n') goto yy56;
-                               goto yy137;
-                       } else {
-                               if (yych == 's') goto yy139;
-                               goto yy56;
-                       }
-               }
+       if (yych <= '/') goto yy401;
+       if (yych <= '0') goto yy675;
+       if (yych <= '1') goto yy676;
+       if (yych <= '9') goto yy677;
+       goto yy401;
+yy400:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+       yych = *YYCURSOR;
+yy401:
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy400;
+       case '-':
+       case '.':       goto yy516;
+       case 'A':
+       case 'a':       goto yy419;
+       case 'D':
+       case 'd':       goto yy405;
+       case 'F':
+       case 'f':       goto yy406;
+       case 'H':
+       case 'h':       goto yy63;
+       case 'I':       goto yy414;
+       case 'J':
+       case 'j':       goto yy418;
+       case 'M':
+       case 'm':       goto yy404;
+       case 'N':
+       case 'n':       goto yy421;
+       case 'O':
+       case 'o':       goto yy420;
+       case 'P':
+       case 'p':       goto yy423;
+       case 'S':
+       case 's':       goto yy402;
+       case 'T':
+       case 't':       goto yy68;
+       case 'V':       goto yy416;
+       case 'W':
+       case 'w':       goto yy67;
+       case 'X':       goto yy417;
+       case 'Y':
+       case 'y':       goto yy66;
+       default:        goto yy56;
        }
-yy428:
-       YYDEBUG(428, *YYCURSOR);
+yy402:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'D') {
-                       if (yych == 'A') goto yy119;
+                       if (yych == 'A') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'E') goto yy1013;
+                       if (yych <= 'E') goto yy988;
                        if (yych <= 'T') goto yy56;
-                       goto yy118;
+                       goto yy125;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych == 'a') goto yy119;
+                       if (yych == 'a') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'e') goto yy1013;
-                       if (yych == 'u') goto yy118;
+                       if (yych <= 'e') goto yy988;
+                       if (yych == 'u') goto yy125;
                        goto yy56;
                }
        }
-yy429:
-       YYDEBUG(429, *YYCURSOR);
+yy403:
        yych = *++YYCURSOR;
        if (yych <= '`') {
                if (yych <= 'D') {
-                       if (yych == 'A') goto yy119;
+                       if (yych == 'A') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'E') goto yy1013;
-                       if (yych == 'U') goto yy118;
+                       if (yych <= 'E') goto yy988;
+                       if (yych == 'U') goto yy125;
                        goto yy56;
                }
        } else {
                if (yych <= 'e') {
-                       if (yych <= 'a') goto yy119;
+                       if (yych <= 'a') goto yy126;
                        if (yych <= 'd') goto yy56;
-                       goto yy1013;
+                       goto yy988;
                } else {
                        if (yych <= 's') goto yy56;
-                       if (yych <= 't') goto yy693;
-                       if (yych <= 'u') goto yy118;
+                       if (yych <= 't') goto yy668;
+                       if (yych <= 'u') goto yy125;
                        goto yy56;
                }
        }
-yy430:
-       YYDEBUG(430, *YYCURSOR);
+yy404:
+       yych = *++YYCURSOR;
+       if (yych <= 'O') {
+               if (yych <= 'H') {
+                       if (yych == 'A') goto yy531;
+                       goto yy56;
+               } else {
+                       if (yych <= 'I') goto yy117;
+                       if (yych <= 'N') goto yy56;
+                       goto yy116;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych == 'a') goto yy531;
+                       goto yy56;
+               } else {
+                       if (yych <= 'i') goto yy117;
+                       if (yych == 'o') goto yy116;
+                       goto yy56;
+               }
+       }
+yy405:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
-               if (yych == 'A') goto yy115;
+               if (yych == 'A') goto yy113;
                if (yych <= 'D') goto yy56;
-               goto yy543;
+               goto yy518;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy115;
+                       goto yy113;
                } else {
-                       if (yych == 'e') goto yy543;
+                       if (yych == 'e') goto yy518;
                        goto yy56;
                }
        }
-yy431:
-       YYDEBUG(431, *YYCURSOR);
+yy406:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= 'N') {
-                       if (yych == 'E') goto yy559;
+                       if (yych == 'E') goto yy534;
                        goto yy56;
                } else {
-                       if (yych <= 'O') goto yy100;
+                       if (yych <= 'O') goto yy98;
                        if (yych <= 'Q') goto yy56;
-                       goto yy99;
+                       goto yy97;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych == 'e') goto yy559;
+                       if (yych == 'e') goto yy534;
                        goto yy56;
                } else {
-                       if (yych <= 'o') goto yy100;
-                       if (yych == 'r') goto yy99;
+                       if (yych <= 'o') goto yy98;
+                       if (yych == 'r') goto yy97;
                        goto yy56;
                }
        }
-yy432:
-       YYDEBUG(432, *YYCURSOR);
+yy407:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'H') goto yy71;
+               if (yych == 'H') goto yy69;
                if (yych <= 'T') goto yy56;
-               goto yy72;
+               goto yy70;
        } else {
                if (yych <= 'h') {
                        if (yych <= 'g') goto yy56;
-                       goto yy1012;
+                       goto yy987;
                } else {
-                       if (yych == 'u') goto yy72;
+                       if (yych == 'u') goto yy70;
                        goto yy56;
                }
        }
-yy433:
-       YYDEBUG(433, *YYCURSOR);
+yy408:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy706;
+       if (yych == '-') goto yy681;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy705;
+       if (yych <= '9') goto yy680;
        goto yy60;
-yy434:
-       YYDEBUG(434, *YYCURSOR);
+yy409:
        yych = *++YYCURSOR;
        if (yych <= 'c') {
-               if (yych == 'O') goto yy494;
+               if (yych == 'O') goto yy469;
                goto yy56;
        } else {
-               if (yych <= 'd') goto yy693;
-               if (yych == 'o') goto yy494;
+               if (yych <= 'd') goto yy668;
+               if (yych == 'o') goto yy469;
                goto yy56;
        }
-yy435:
-       YYDEBUG(435, *YYCURSOR);
+yy410:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy693;
+       if (yych == 'd') goto yy668;
        goto yy56;
-yy436:
-       YYDEBUG(436, *YYCURSOR);
+yy411:
        yych = *++YYCURSOR;
        switch (yych) {
        case '0':
        case '1':
-       case '2':       goto yy630;
-       case '3':       goto yy632;
+       case '2':       goto yy605;
+       case '3':       goto yy607;
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy633;
+       case '9':       goto yy608;
        case 'A':
-       case 'a':       goto yy637;
+       case 'a':       goto yy612;
        case 'D':
-       case 'd':       goto yy641;
+       case 'd':       goto yy616;
        case 'F':
-       case 'f':       goto yy635;
+       case 'f':       goto yy610;
        case 'J':
-       case 'j':       goto yy634;
+       case 'j':       goto yy609;
        case 'M':
-       case 'm':       goto yy636;
+       case 'm':       goto yy611;
        case 'N':
-       case 'n':       goto yy640;
+       case 'n':       goto yy615;
        case 'O':
-       case 'o':       goto yy639;
+       case 'o':       goto yy614;
        case 'S':
-       case 's':       goto yy638;
+       case 's':       goto yy613;
        default:        goto yy56;
        }
-yy437:
-       YYDEBUG(437, *YYCURSOR);
+yy412:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '0':       goto yy580;
-       case '1':       goto yy581;
+       case '0':       goto yy555;
+       case '1':       goto yy556;
        case '2':
        case '3':
        case '4':
@@ -9074,61 +8125,58 @@ yy437:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy582;
+       case '9':       goto yy557;
        case 'A':
-       case 'a':       goto yy586;
+       case 'a':       goto yy561;
        case 'D':
-       case 'd':       goto yy590;
+       case 'd':       goto yy565;
        case 'F':
-       case 'f':       goto yy584;
+       case 'f':       goto yy559;
        case 'J':
-       case 'j':       goto yy583;
+       case 'j':       goto yy558;
        case 'M':
-       case 'm':       goto yy585;
+       case 'm':       goto yy560;
        case 'N':
-       case 'n':       goto yy589;
+       case 'n':       goto yy564;
        case 'O':
-       case 'o':       goto yy588;
+       case 'o':       goto yy563;
        case 'S':
-       case 's':       goto yy587;
-       default:        goto yy542;
+       case 's':       goto yy562;
+       default:        goto yy517;
        }
-yy438:
-       YYDEBUG(438, *YYCURSOR);
+yy413:
        yych = *++YYCURSOR;
        if (yych <= '1') {
-               if (yych <= '/') goto yy542;
-               if (yych <= '0') goto yy532;
-               goto yy533;
+               if (yych <= '/') goto yy517;
+               if (yych <= '0') goto yy507;
+               goto yy508;
        } else {
-               if (yych <= '5') goto yy534;
-               if (yych <= '9') goto yy535;
-               goto yy542;
+               if (yych <= '5') goto yy509;
+               if (yych <= '9') goto yy510;
+               goto yy517;
        }
-yy439:
-       YYDEBUG(439, *YYCURSOR);
+yy414:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
+                       if (yych == '\t') goto yy471;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '.') goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '.') goto yy471;
                }
        } else {
                if (yych <= 'U') {
-                       if (yych <= '9') goto yy498;
-                       if (yych == 'I') goto yy531;
+                       if (yych <= '9') goto yy473;
+                       if (yych == 'I') goto yy506;
                } else {
-                       if (yych == 'W') goto yy440;
-                       if (yych <= 'X') goto yy504;
+                       if (yych == 'W') goto yy415;
+                       if (yych <= 'X') goto yy479;
                }
        }
-yy440:
-       YYDEBUG(440, *YYCURSOR);
-#line 1439 "ext/date/lib/parse_date.re"
+yy415:
+#line 1380 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("datenoyearrev");
                TIMELIB_INIT;
@@ -9139,148 +8187,135 @@ yy440:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_TEXT;
        }
-#line 9143 "<stdout>"
-yy441:
-       YYDEBUG(441, *YYCURSOR);
+#line 8191 "ext/date/lib/parse_date.c"
+yy416:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych == 'I') goto yy529;
-                       goto yy440;
+                       if (yych == 'I') goto yy504;
+                       goto yy415;
                }
        }
-yy442:
-       YYDEBUG(442, *YYCURSOR);
+yy417:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych == 'I') goto yy528;
-                       goto yy440;
+                       if (yych == 'I') goto yy503;
+                       goto yy415;
                }
        }
-yy443:
-       YYDEBUG(443, *YYCURSOR);
+yy418:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy521;
+               if (yych == 'A') goto yy496;
                if (yych <= 'T') goto yy56;
-               goto yy520;
+               goto yy495;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy521;
+                       goto yy496;
                } else {
-                       if (yych == 'u') goto yy520;
+                       if (yych == 'u') goto yy495;
                        goto yy56;
                }
        }
-yy444:
-       YYDEBUG(444, *YYCURSOR);
+yy419:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= 'L') {
-                       if (yych == '.') goto yy449;
+                       if (yych == '.') goto yy424;
                        goto yy56;
                } else {
-                       if (yych <= 'M') goto yy450;
-                       if (yych == 'P') goto yy514;
+                       if (yych <= 'M') goto yy425;
+                       if (yych == 'P') goto yy489;
                        goto yy56;
                }
        } else {
                if (yych <= 'o') {
-                       if (yych <= 'U') goto yy513;
-                       if (yych == 'm') goto yy450;
+                       if (yych <= 'U') goto yy488;
+                       if (yych == 'm') goto yy425;
                        goto yy56;
                } else {
-                       if (yych <= 'p') goto yy514;
-                       if (yych == 'u') goto yy513;
+                       if (yych <= 'p') goto yy489;
+                       if (yych == 'u') goto yy488;
                        goto yy56;
                }
        }
-yy445:
-       YYDEBUG(445, *YYCURSOR);
+yy420:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy508;
-       if (yych == 'c') goto yy508;
+       if (yych == 'C') goto yy483;
+       if (yych == 'c') goto yy483;
        goto yy56;
-yy446:
-       YYDEBUG(446, *YYCURSOR);
+yy421:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy494;
-       if (yych == 'o') goto yy494;
+       if (yych == 'O') goto yy469;
+       if (yych == 'o') goto yy469;
        goto yy56;
-yy447:
-       YYDEBUG(447, *YYCURSOR);
+yy422:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy454;
-       if (yych <= '9') goto yy456;
+       if (yych <= '5') goto yy429;
+       if (yych <= '9') goto yy431;
        goto yy56;
-yy448:
-       YYDEBUG(448, *YYCURSOR);
+yy423:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy450;
-               if (yych == 'm') goto yy450;
+               if (yych <= 'M') goto yy425;
+               if (yych == 'm') goto yy425;
                goto yy56;
        }
-yy449:
-       YYDEBUG(449, *YYCURSOR);
+yy424:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy450;
+       if (yych == 'M') goto yy425;
        if (yych != 'm') goto yy56;
-yy450:
-       YYDEBUG(450, *YYCURSOR);
+yy425:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy452;
-               if (yych == '\t') goto yy452;
+               if (yych <= 0x00) goto yy427;
+               if (yych == '\t') goto yy427;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy452;
+               if (yych <= ' ') goto yy427;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(451, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy452;
+               if (yych <= 0x00) goto yy427;
                if (yych <= 0x08) goto yy56;
        } else {
                if (yych != ' ') goto yy56;
        }
-yy452:
-       YYDEBUG(452, *YYCURSOR);
+yy427:
        ++YYCURSOR;
-       YYDEBUG(453, *YYCURSOR);
-#line 1157 "ext/date/lib/parse_date.re"
+#line 1098 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
                TIMELIB_INIT;
@@ -9296,20 +8331,18 @@ yy452:
                TIMELIB_DEINIT;
                return TIMELIB_TIME12;
        }
-#line 9300 "<stdout>"
-yy454:
-       YYDEBUG(454, *YYCURSOR);
+#line 8335 "ext/date/lib/parse_date.c"
+yy429:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy457;
+               if (yych == '.') goto yy432;
        } else {
-               if (yych <= '9') goto yy471;
-               if (yych <= ':') goto yy457;
+               if (yych <= '9') goto yy446;
+               if (yych <= ':') goto yy432;
        }
-yy455:
-       YYDEBUG(455, *YYCURSOR);
-#line 1194 "ext/date/lib/parse_date.re"
+yy430:
+#line 1135 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -9321,330 +8354,297 @@ yy455:
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
                return TIMELIB_TIME24_WITH_ZONE;
        }
-#line 9338 "<stdout>"
-yy456:
-       YYDEBUG(456, *YYCURSOR);
+#line 8371 "ext/date/lib/parse_date.c"
+yy431:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy457;
-       if (yych != ':') goto yy455;
-yy457:
-       YYDEBUG(457, *YYCURSOR);
+       if (yych == '.') goto yy432;
+       if (yych != ':') goto yy430;
+yy432:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy458;
-       if (yych <= '6') goto yy459;
-       if (yych <= '9') goto yy460;
+       if (yych <= '5') goto yy433;
+       if (yych <= '6') goto yy434;
+       if (yych <= '9') goto yy435;
        goto yy56;
-yy458:
-       YYDEBUG(458, *YYCURSOR);
+yy433:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy464;
-       goto yy455;
-yy459:
-       YYDEBUG(459, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy439;
+       goto yy430;
+yy434:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych == '0') goto yy464;
-       goto yy455;
-yy460:
-       YYDEBUG(460, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych == '0') goto yy439;
+       goto yy430;
+yy435:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych != '.') goto yy455;
-yy461:
-       YYDEBUG(461, *YYCURSOR);
+       if (yych != '.') goto yy430;
+yy436:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy462:
-       YYDEBUG(462, *YYCURSOR);
+yy437:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(463, *YYCURSOR);
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy462;
-       goto yy455;
-yy464:
-       YYDEBUG(464, *YYCURSOR);
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy437;
+       goto yy430;
+yy439:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= 0x1F) {
-                       if (yych != '\t') goto yy455;
+                       if (yych != '\t') goto yy430;
                } else {
-                       if (yych <= ' ') goto yy465;
-                       if (yych == '.') goto yy461;
-                       goto yy455;
+                       if (yych <= ' ') goto yy440;
+                       if (yych == '.') goto yy436;
+                       goto yy430;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'A') goto yy467;
-                       if (yych == 'P') goto yy467;
-                       goto yy455;
+                       if (yych <= 'A') goto yy442;
+                       if (yych == 'P') goto yy442;
+                       goto yy430;
                } else {
-                       if (yych <= 'a') goto yy467;
-                       if (yych == 'p') goto yy467;
-                       goto yy455;
+                       if (yych <= 'a') goto yy442;
+                       if (yych == 'p') goto yy442;
+                       goto yy430;
                }
        }
-yy465:
-       YYDEBUG(465, *YYCURSOR);
+yy440:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(466, *YYCURSOR);
        if (yych <= 'A') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy465;
+                       if (yych == '\t') goto yy440;
                        goto yy56;
                } else {
-                       if (yych <= ' ') goto yy465;
+                       if (yych <= ' ') goto yy440;
                        if (yych <= '@') goto yy56;
                }
        } else {
                if (yych <= '`') {
                        if (yych != 'P') goto yy56;
                } else {
-                       if (yych <= 'a') goto yy467;
+                       if (yych <= 'a') goto yy442;
                        if (yych != 'p') goto yy56;
                }
        }
-yy467:
-       YYDEBUG(467, *YYCURSOR);
+yy442:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy469;
-               if (yych == 'm') goto yy469;
+               if (yych <= 'M') goto yy444;
+               if (yych == 'm') goto yy444;
                goto yy56;
        }
-       YYDEBUG(468, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy469;
+       if (yych == 'M') goto yy444;
        if (yych != 'm') goto yy56;
-yy469:
-       YYDEBUG(469, *YYCURSOR);
+yy444:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy452;
-               if (yych == '\t') goto yy452;
+               if (yych <= 0x00) goto yy427;
+               if (yych == '\t') goto yy427;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy452;
+               if (yych <= ' ') goto yy427;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(470, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy452;
+               if (yych <= 0x00) goto yy427;
                if (yych <= 0x08) goto yy56;
-               goto yy452;
+               goto yy427;
        } else {
-               if (yych == ' ') goto yy452;
+               if (yych == ' ') goto yy427;
                goto yy56;
        }
-yy471:
-       YYDEBUG(471, *YYCURSOR);
+yy446:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ':') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy472;
-                       if (yych <= 0x1F) goto yy455;
+                       if (yych == '\t') goto yy447;
+                       if (yych <= 0x1F) goto yy430;
                } else {
-                       if (yych == '.') goto yy457;
-                       if (yych <= '9') goto yy455;
-                       goto yy475;
+                       if (yych == '.') goto yy432;
+                       if (yych <= '9') goto yy430;
+                       goto yy450;
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy474;
-                       if (yych <= 'O') goto yy455;
-                       goto yy474;
+                       if (yych == 'A') goto yy449;
+                       if (yych <= 'O') goto yy430;
+                       goto yy449;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy455;
-                               goto yy474;
+                               if (yych <= '`') goto yy430;
+                               goto yy449;
                        } else {
-                               if (yych == 'p') goto yy474;
-                               goto yy455;
+                               if (yych == 'p') goto yy449;
+                               goto yy430;
                        }
                }
        }
-yy472:
-       YYDEBUG(472, *YYCURSOR);
+yy447:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(473, *YYCURSOR);
        if (yych <= 'A') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy472;
+                       if (yych == '\t') goto yy447;
                        goto yy56;
                } else {
-                       if (yych <= ' ') goto yy472;
+                       if (yych <= ' ') goto yy447;
                        if (yych <= '@') goto yy56;
                }
        } else {
                if (yych <= '`') {
                        if (yych != 'P') goto yy56;
                } else {
-                       if (yych <= 'a') goto yy474;
+                       if (yych <= 'a') goto yy449;
                        if (yych != 'p') goto yy56;
                }
        }
-yy474:
-       YYDEBUG(474, *YYCURSOR);
+yy449:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
-               if (yych == '.') goto yy491;
+               if (yych == '.') goto yy466;
                goto yy56;
        } else {
-               if (yych <= 'M') goto yy492;
-               if (yych == 'm') goto yy492;
+               if (yych <= 'M') goto yy467;
+               if (yych == 'm') goto yy467;
                goto yy56;
        }
-yy475:
-       YYDEBUG(475, *YYCURSOR);
+yy450:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy476;
-       if (yych <= '6') goto yy477;
-       if (yych <= '9') goto yy460;
+       if (yych <= '5') goto yy451;
+       if (yych <= '6') goto yy452;
+       if (yych <= '9') goto yy435;
        goto yy56;
-yy476:
-       YYDEBUG(476, *YYCURSOR);
+yy451:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy478;
-       goto yy455;
-yy477:
-       YYDEBUG(477, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy453;
+       goto yy430;
+yy452:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych != '0') goto yy455;
-yy478:
-       YYDEBUG(478, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych != '0') goto yy430;
+yy453:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ':') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy465;
-                       if (yych <= 0x1F) goto yy455;
-                       goto yy465;
+                       if (yych == '\t') goto yy440;
+                       if (yych <= 0x1F) goto yy430;
+                       goto yy440;
                } else {
-                       if (yych == '.') goto yy479;
-                       if (yych <= '9') goto yy455;
-                       goto yy480;
+                       if (yych == '.') goto yy454;
+                       if (yych <= '9') goto yy430;
+                       goto yy455;
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy467;
-                       if (yych <= 'O') goto yy455;
-                       goto yy467;
+                       if (yych == 'A') goto yy442;
+                       if (yych <= 'O') goto yy430;
+                       goto yy442;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy455;
-                               goto yy467;
+                               if (yych <= '`') goto yy430;
+                               goto yy442;
                        } else {
-                               if (yych == 'p') goto yy467;
-                               goto yy455;
+                               if (yych == 'p') goto yy442;
+                               goto yy430;
                        }
                }
        }
-yy479:
-       YYDEBUG(479, *YYCURSOR);
+yy454:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy489;
+       if (yych <= '9') goto yy464;
        goto yy56;
-yy480:
-       YYDEBUG(480, *YYCURSOR);
+yy455:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy481:
-       YYDEBUG(481, *YYCURSOR);
+yy456:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(482, *YYCURSOR);
        if (yych <= 'O') {
                if (yych <= '9') {
                        if (yych <= '/') goto yy56;
-                       goto yy481;
+                       goto yy456;
                } else {
                        if (yych != 'A') goto yy56;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'P') goto yy483;
+                       if (yych <= 'P') goto yy458;
                        if (yych <= '`') goto yy56;
                } else {
                        if (yych != 'p') goto yy56;
                }
        }
-yy483:
-       YYDEBUG(483, *YYCURSOR);
+yy458:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy485;
-               if (yych == 'm') goto yy485;
+               if (yych <= 'M') goto yy460;
+               if (yych == 'm') goto yy460;
                goto yy56;
        }
-       YYDEBUG(484, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy485;
+       if (yych == 'M') goto yy460;
        if (yych != 'm') goto yy56;
-yy485:
-       YYDEBUG(485, *YYCURSOR);
+yy460:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy487;
-               if (yych == '\t') goto yy487;
+               if (yych <= 0x00) goto yy462;
+               if (yych == '\t') goto yy462;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy487;
+               if (yych <= ' ') goto yy462;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(486, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy487;
+               if (yych <= 0x00) goto yy462;
                if (yych <= 0x08) goto yy56;
        } else {
                if (yych != ' ') goto yy56;
        }
-yy487:
-       YYDEBUG(487, *YYCURSOR);
+yy462:
        ++YYCURSOR;
-       YYDEBUG(488, *YYCURSOR);
-#line 1174 "ext/date/lib/parse_date.re"
+#line 1115 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("mssqltime");
                TIMELIB_INIT;
@@ -9655,7 +8655,7 @@ yy487:
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == ':' || *ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
                timelib_eat_spaces((char **) &ptr);
@@ -9663,113 +8663,102 @@ yy487:
                TIMELIB_DEINIT;
                return TIMELIB_TIME24_WITH_ZONE;
        }
-#line 9667 "<stdout>"
-yy489:
-       YYDEBUG(489, *YYCURSOR);
+#line 8667 "ext/date/lib/parse_date.c"
+yy464:
        yyaccept = 10;
        YYMARKER = ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(490, *YYCURSOR);
        if (yych <= 'O') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy455;
-                       goto yy489;
+                       if (yych <= '/') goto yy430;
+                       goto yy464;
                } else {
-                       if (yych == 'A') goto yy483;
-                       goto yy455;
+                       if (yych == 'A') goto yy458;
+                       goto yy430;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'P') goto yy483;
-                       if (yych <= '`') goto yy455;
-                       goto yy483;
+                       if (yych <= 'P') goto yy458;
+                       if (yych <= '`') goto yy430;
+                       goto yy458;
                } else {
-                       if (yych == 'p') goto yy483;
-                       goto yy455;
+                       if (yych == 'p') goto yy458;
+                       goto yy430;
                }
        }
-yy491:
-       YYDEBUG(491, *YYCURSOR);
+yy466:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy492;
+       if (yych == 'M') goto yy467;
        if (yych != 'm') goto yy56;
-yy492:
-       YYDEBUG(492, *YYCURSOR);
+yy467:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy452;
-               if (yych == '\t') goto yy452;
+               if (yych <= 0x00) goto yy427;
+               if (yych == '\t') goto yy427;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy452;
+               if (yych <= ' ') goto yy427;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(493, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy452;
+               if (yych <= 0x00) goto yy427;
                if (yych <= 0x08) goto yy56;
-               goto yy452;
+               goto yy427;
        } else {
-               if (yych == ' ') goto yy452;
+               if (yych == ' ') goto yy427;
                goto yy56;
        }
-yy494:
-       YYDEBUG(494, *YYCURSOR);
+yy469:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy495;
+       if (yych == 'V') goto yy470;
        if (yych != 'v') goto yy56;
-yy495:
-       YYDEBUG(495, *YYCURSOR);
+yy470:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych != '\t') goto yy440;
+                       if (yych != '\t') goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy500;
-                       if (yych == 'e') goto yy500;
-                       goto yy440;
+                       if (yych <= 'E') goto yy475;
+                       if (yych == 'e') goto yy475;
+                       goto yy415;
                }
        }
-yy496:
-       YYDEBUG(496, *YYCURSOR);
+yy471:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
        yych = *YYCURSOR;
-yy497:
-       YYDEBUG(497, *YYCURSOR);
+yy472:
        if (yych <= ' ') {
-               if (yych == '\t') goto yy496;
+               if (yych == '\t') goto yy471;
                if (yych <= 0x1F) goto yy56;
-               goto yy496;
+               goto yy471;
        } else {
                if (yych <= '.') {
                        if (yych <= ',') goto yy56;
-                       goto yy496;
+                       goto yy471;
                } else {
                        if (yych <= '/') goto yy56;
                        if (yych >= ':') goto yy56;
                }
        }
-yy498:
-       YYDEBUG(498, *YYCURSOR);
+yy473:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= '/') goto yy499;
-       if (yych <= '9') goto yy505;
-yy499:
-       YYDEBUG(499, *YYCURSOR);
-#line 1356 "ext/date/lib/parse_date.re"
+       if ((yych = *YYCURSOR) <= '/') goto yy474;
+       if (yych <= '9') goto yy480;
+yy474:
+#line 1297 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("datefull");
@@ -9783,743 +8772,671 @@ yy499:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL;
        }
-#line 9787 "<stdout>"
-yy500:
-       YYDEBUG(500, *YYCURSOR);
+#line 8776 "ext/date/lib/parse_date.c"
+yy475:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy501;
+       if (yych == 'M') goto yy476;
        if (yych != 'm') goto yy56;
-yy501:
-       YYDEBUG(501, *YYCURSOR);
+yy476:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy502;
+       if (yych == 'B') goto yy477;
        if (yych != 'b') goto yy56;
-yy502:
-       YYDEBUG(502, *YYCURSOR);
+yy477:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy503;
+       if (yych == 'E') goto yy478;
        if (yych != 'e') goto yy56;
-yy503:
-       YYDEBUG(503, *YYCURSOR);
+yy478:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy504;
+       if (yych == 'R') goto yy479;
        if (yych != 'r') goto yy56;
-yy504:
-       YYDEBUG(504, *YYCURSOR);
+yy479:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy496;
-               if (yych <= 0x1F) goto yy440;
-               goto yy496;
+               if (yych == '\t') goto yy471;
+               if (yych <= 0x1F) goto yy415;
+               goto yy471;
        } else {
                if (yych <= '.') {
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                } else {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                }
        }
-yy505:
-       YYDEBUG(505, *YYCURSOR);
+yy480:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych >= ':') goto yy499;
-yy506:
-       YYDEBUG(506, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych >= ':') goto yy474;
+yy481:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych >= ':') goto yy499;
-       YYDEBUG(507, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych >= ':') goto yy474;
        yych = *++YYCURSOR;
-       goto yy499;
-yy508:
-       YYDEBUG(508, *YYCURSOR);
+       goto yy474;
+yy483:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy509;
+       if (yych == 'T') goto yy484;
        if (yych != 't') goto yy56;
-yy509:
-       YYDEBUG(509, *YYCURSOR);
+yy484:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'N') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'O') goto yy510;
-                       if (yych != 'o') goto yy440;
+                       if (yych <= 'O') goto yy485;
+                       if (yych != 'o') goto yy415;
                }
        }
-yy510:
-       YYDEBUG(510, *YYCURSOR);
+yy485:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy511;
+       if (yych == 'B') goto yy486;
        if (yych != 'b') goto yy56;
-yy511:
-       YYDEBUG(511, *YYCURSOR);
+yy486:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy512;
+       if (yych == 'E') goto yy487;
        if (yych != 'e') goto yy56;
-yy512:
-       YYDEBUG(512, *YYCURSOR);
+yy487:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy504;
-       if (yych == 'r') goto yy504;
+       if (yych == 'R') goto yy479;
+       if (yych == 'r') goto yy479;
        goto yy56;
-yy513:
-       YYDEBUG(513, *YYCURSOR);
+yy488:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy517;
-       if (yych == 'g') goto yy517;
+       if (yych == 'G') goto yy492;
+       if (yych == 'g') goto yy492;
        goto yy56;
-yy514:
-       YYDEBUG(514, *YYCURSOR);
+yy489:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy515;
+       if (yych == 'R') goto yy490;
        if (yych != 'r') goto yy56;
-yy515:
-       YYDEBUG(515, *YYCURSOR);
+yy490:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'H') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'I') goto yy516;
-                       if (yych != 'i') goto yy440;
+                       if (yych <= 'I') goto yy491;
+                       if (yych != 'i') goto yy415;
                }
        }
-yy516:
-       YYDEBUG(516, *YYCURSOR);
+yy491:
        yych = *++YYCURSOR;
-       if (yych == 'L') goto yy504;
-       if (yych == 'l') goto yy504;
+       if (yych == 'L') goto yy479;
+       if (yych == 'l') goto yy479;
        goto yy56;
-yy517:
-       YYDEBUG(517, *YYCURSOR);
+yy492:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'T') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'U') goto yy518;
-                       if (yych != 'u') goto yy440;
+                       if (yych <= 'U') goto yy493;
+                       if (yych != 'u') goto yy415;
                }
        }
-yy518:
-       YYDEBUG(518, *YYCURSOR);
+yy493:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy519;
+       if (yych == 'S') goto yy494;
        if (yych != 's') goto yy56;
-yy519:
-       YYDEBUG(519, *YYCURSOR);
+yy494:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy504;
-       if (yych == 't') goto yy504;
+       if (yych == 'T') goto yy479;
+       if (yych == 't') goto yy479;
        goto yy56;
-yy520:
-       YYDEBUG(520, *YYCURSOR);
+yy495:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy527;
+               if (yych == 'L') goto yy502;
                if (yych <= 'M') goto yy56;
-               goto yy526;
+               goto yy501;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy527;
+                       goto yy502;
                } else {
-                       if (yych == 'n') goto yy526;
+                       if (yych == 'n') goto yy501;
                        goto yy56;
                }
        }
-yy521:
-       YYDEBUG(521, *YYCURSOR);
+yy496:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy522;
+       if (yych == 'N') goto yy497;
        if (yych != 'n') goto yy56;
-yy522:
-       YYDEBUG(522, *YYCURSOR);
+yy497:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'T') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'U') goto yy523;
-                       if (yych != 'u') goto yy440;
+                       if (yych <= 'U') goto yy498;
+                       if (yych != 'u') goto yy415;
                }
        }
-yy523:
-       YYDEBUG(523, *YYCURSOR);
+yy498:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy524;
+       if (yych == 'A') goto yy499;
        if (yych != 'a') goto yy56;
-yy524:
-       YYDEBUG(524, *YYCURSOR);
+yy499:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy525;
+       if (yych == 'R') goto yy500;
        if (yych != 'r') goto yy56;
-yy525:
-       YYDEBUG(525, *YYCURSOR);
+yy500:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy504;
-       if (yych == 'y') goto yy504;
+       if (yych == 'Y') goto yy479;
+       if (yych == 'y') goto yy479;
        goto yy56;
-yy526:
-       YYDEBUG(526, *YYCURSOR);
+yy501:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy504;
-                       if (yych == 'e') goto yy504;
-                       goto yy440;
+                       if (yych <= 'E') goto yy479;
+                       if (yych == 'e') goto yy479;
+                       goto yy415;
                }
        }
-yy527:
-       YYDEBUG(527, *YYCURSOR);
+yy502:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'X') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'Y') goto yy504;
-                       if (yych == 'y') goto yy504;
-                       goto yy440;
+                       if (yych <= 'Y') goto yy479;
+                       if (yych == 'y') goto yy479;
+                       goto yy415;
                }
        }
-yy528:
-       YYDEBUG(528, *YYCURSOR);
+yy503:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych == 'I') goto yy504;
-                       goto yy440;
+                       if (yych == 'I') goto yy479;
+                       goto yy415;
                }
        }
-yy529:
-       YYDEBUG(529, *YYCURSOR);
+yy504:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych != 'I') goto yy440;
+                       if (yych != 'I') goto yy415;
                }
        }
-       YYDEBUG(530, *YYCURSOR);
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych == 'I') goto yy504;
-                       goto yy440;
+                       if (yych == 'I') goto yy479;
+                       goto yy415;
                }
        }
-yy531:
-       YYDEBUG(531, *YYCURSOR);
+yy506:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '9') {
-                       if (yych <= '.') goto yy496;
-                       if (yych <= '/') goto yy440;
-                       goto yy498;
+                       if (yych <= '.') goto yy471;
+                       if (yych <= '/') goto yy415;
+                       goto yy473;
                } else {
-                       if (yych == 'I') goto yy504;
-                       goto yy440;
+                       if (yych == 'I') goto yy479;
+                       goto yy415;
                }
        }
-yy532:
-       YYDEBUG(532, *YYCURSOR);
+yy507:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               goto yy565;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               goto yy540;
        } else {
-               if (yych <= '/') goto yy455;
-               if (yych <= '9') goto yy579;
-               if (yych <= ':') goto yy457;
-               goto yy455;
+               if (yych <= '/') goto yy430;
+               if (yych <= '9') goto yy554;
+               if (yych <= ':') goto yy432;
+               goto yy430;
        }
-yy533:
-       YYDEBUG(533, *YYCURSOR);
+yy508:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               if (yych <= '.') goto yy565;
-               goto yy455;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               if (yych <= '.') goto yy540;
+               goto yy430;
        } else {
-               if (yych <= '2') goto yy579;
-               if (yych <= '9') goto yy578;
-               if (yych <= ':') goto yy457;
-               goto yy455;
+               if (yych <= '2') goto yy554;
+               if (yych <= '9') goto yy553;
+               if (yych <= ':') goto yy432;
+               goto yy430;
        }
-yy534:
-       YYDEBUG(534, *YYCURSOR);
+yy509:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               goto yy565;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               goto yy540;
        } else {
-               if (yych <= '/') goto yy455;
-               if (yych <= '9') goto yy578;
-               if (yych <= ':') goto yy457;
-               goto yy455;
+               if (yych <= '/') goto yy430;
+               if (yych <= '9') goto yy553;
+               if (yych <= ':') goto yy432;
+               goto yy430;
        }
-yy535:
-       YYDEBUG(535, *YYCURSOR);
+yy510:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               goto yy565;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               goto yy540;
        } else {
-               if (yych == ':') goto yy457;
-               goto yy455;
+               if (yych == ':') goto yy432;
+               goto yy430;
        }
-yy536:
-       YYDEBUG(536, *YYCURSOR);
+yy511:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy559;
-       if (yych == 'e') goto yy559;
+       if (yych == 'E') goto yy534;
+       if (yych == 'e') goto yy534;
        goto yy56;
-yy537:
-       YYDEBUG(537, *YYCURSOR);
+yy512:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy556;
-       if (yych == 'a') goto yy556;
+       if (yych == 'A') goto yy531;
+       if (yych == 'a') goto yy531;
        goto yy56;
-yy538:
-       YYDEBUG(538, *YYCURSOR);
+yy513:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy514;
+               if (yych == 'P') goto yy489;
                if (yych <= 'T') goto yy56;
-               goto yy513;
+               goto yy488;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy514;
+                       goto yy489;
                } else {
-                       if (yych == 'u') goto yy513;
+                       if (yych == 'u') goto yy488;
                        goto yy56;
                }
        }
-yy539:
-       YYDEBUG(539, *YYCURSOR);
+yy514:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy549;
-       if (yych == 'e') goto yy549;
+       if (yych == 'E') goto yy524;
+       if (yych == 'e') goto yy524;
        goto yy56;
-yy540:
-       YYDEBUG(540, *YYCURSOR);
+yy515:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy543;
-       if (yych == 'e') goto yy543;
+       if (yych == 'E') goto yy518;
+       if (yych == 'e') goto yy518;
        goto yy56;
-yy541:
-       YYDEBUG(541, *YYCURSOR);
+yy516:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
        yych = *YYCURSOR;
-yy542:
-       YYDEBUG(542, *YYCURSOR);
+yy517:
        switch (yych) {
        case '\t':
        case ' ':
        case '-':
-       case '.':       goto yy541;
+       case '.':       goto yy516;
        case 'A':
-       case 'a':       goto yy538;
+       case 'a':       goto yy513;
        case 'D':
-       case 'd':       goto yy540;
+       case 'd':       goto yy515;
        case 'F':
-       case 'f':       goto yy536;
-       case 'I':       goto yy439;
+       case 'f':       goto yy511;
+       case 'I':       goto yy414;
        case 'J':
-       case 'j':       goto yy443;
+       case 'j':       goto yy418;
        case 'M':
-       case 'm':       goto yy537;
+       case 'm':       goto yy512;
        case 'N':
-       case 'n':       goto yy446;
+       case 'n':       goto yy421;
        case 'O':
-       case 'o':       goto yy445;
+       case 'o':       goto yy420;
        case 'S':
-       case 's':       goto yy539;
-       case 'V':       goto yy441;
-       case 'X':       goto yy442;
+       case 's':       goto yy514;
+       case 'V':       goto yy416;
+       case 'X':       goto yy417;
        default:        goto yy56;
        }
-yy543:
-       YYDEBUG(543, *YYCURSOR);
+yy518:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy544;
+       if (yych == 'C') goto yy519;
        if (yych != 'c') goto yy56;
-yy544:
-       YYDEBUG(544, *YYCURSOR);
+yy519:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy545;
-                       if (yych != 'e') goto yy440;
+                       if (yych <= 'E') goto yy520;
+                       if (yych != 'e') goto yy415;
                }
        }
-yy545:
-       YYDEBUG(545, *YYCURSOR);
+yy520:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy546;
+       if (yych == 'M') goto yy521;
        if (yych != 'm') goto yy56;
-yy546:
-       YYDEBUG(546, *YYCURSOR);
+yy521:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy547;
+       if (yych == 'B') goto yy522;
        if (yych != 'b') goto yy56;
-yy547:
-       YYDEBUG(547, *YYCURSOR);
+yy522:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy548;
+       if (yych == 'E') goto yy523;
        if (yych != 'e') goto yy56;
-yy548:
-       YYDEBUG(548, *YYCURSOR);
+yy523:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy504;
-       if (yych == 'r') goto yy504;
+       if (yych == 'R') goto yy479;
+       if (yych == 'r') goto yy479;
        goto yy56;
-yy549:
-       YYDEBUG(549, *YYCURSOR);
+yy524:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy550;
+       if (yych == 'P') goto yy525;
        if (yych != 'p') goto yy56;
-yy550:
-       YYDEBUG(550, *YYCURSOR);
+yy525:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'S') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'T') goto yy551;
-                       if (yych != 't') goto yy440;
+                       if (yych <= 'T') goto yy526;
+                       if (yych != 't') goto yy415;
                }
        }
-yy551:
-       YYDEBUG(551, *YYCURSOR);
+yy526:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy552;
-                       if (yych != 'e') goto yy440;
+                       if (yych <= 'E') goto yy527;
+                       if (yych != 'e') goto yy415;
                }
        }
-yy552:
-       YYDEBUG(552, *YYCURSOR);
+yy527:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy553;
+       if (yych == 'M') goto yy528;
        if (yych != 'm') goto yy56;
-yy553:
-       YYDEBUG(553, *YYCURSOR);
+yy528:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy554;
+       if (yych == 'B') goto yy529;
        if (yych != 'b') goto yy56;
-yy554:
-       YYDEBUG(554, *YYCURSOR);
+yy529:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy555;
+       if (yych == 'E') goto yy530;
        if (yych != 'e') goto yy56;
-yy555:
-       YYDEBUG(555, *YYCURSOR);
+yy530:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy504;
-       if (yych == 'r') goto yy504;
+       if (yych == 'R') goto yy479;
+       if (yych == 'r') goto yy479;
        goto yy56;
-yy556:
-       YYDEBUG(556, *YYCURSOR);
+yy531:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy557;
+               if (yych == 'R') goto yy532;
                if (yych <= 'X') goto yy56;
-               goto yy504;
+               goto yy479;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
                } else {
-                       if (yych == 'y') goto yy504;
+                       if (yych == 'y') goto yy479;
                        goto yy56;
                }
        }
-yy557:
-       YYDEBUG(557, *YYCURSOR);
+yy532:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'B') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'C') goto yy558;
-                       if (yych != 'c') goto yy440;
+                       if (yych <= 'C') goto yy533;
+                       if (yych != 'c') goto yy415;
                }
        }
-yy558:
-       YYDEBUG(558, *YYCURSOR);
+yy533:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy504;
-       if (yych == 'h') goto yy504;
+       if (yych == 'H') goto yy479;
+       if (yych == 'h') goto yy479;
        goto yy56;
-yy559:
-       YYDEBUG(559, *YYCURSOR);
+yy534:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy560;
+       if (yych == 'B') goto yy535;
        if (yych != 'b') goto yy56;
-yy560:
-       YYDEBUG(560, *YYCURSOR);
+yy535:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       goto yy471;
                }
        } else {
                if (yych <= 'Q') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'R') goto yy561;
-                       if (yych != 'r') goto yy440;
+                       if (yych <= 'R') goto yy536;
+                       if (yych != 'r') goto yy415;
                }
        }
-yy561:
-       YYDEBUG(561, *YYCURSOR);
+yy536:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy562;
+       if (yych == 'U') goto yy537;
        if (yych != 'u') goto yy56;
-yy562:
-       YYDEBUG(562, *YYCURSOR);
+yy537:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy563;
+       if (yych == 'A') goto yy538;
        if (yych != 'a') goto yy56;
-yy563:
-       YYDEBUG(563, *YYCURSOR);
+yy538:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy564;
+       if (yych == 'R') goto yy539;
        if (yych != 'r') goto yy56;
-yy564:
-       YYDEBUG(564, *YYCURSOR);
+yy539:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy504;
-       if (yych == 'y') goto yy504;
+       if (yych == 'Y') goto yy479;
+       if (yych == 'y') goto yy479;
        goto yy56;
-yy565:
-       YYDEBUG(565, *YYCURSOR);
+yy540:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy572;
-       if (yych <= '6') goto yy573;
-       if (yych <= '9') goto yy574;
+       if (yych <= '5') goto yy547;
+       if (yych <= '6') goto yy548;
+       if (yych <= '9') goto yy549;
        goto yy56;
-yy566:
-       YYDEBUG(566, *YYCURSOR);
+yy541:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(567, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy568:
-       YYDEBUG(568, *YYCURSOR);
+yy543:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy569:
-       YYDEBUG(569, *YYCURSOR);
+yy544:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(570, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(571, *YYCURSOR);
-#line 1371 "ext/date/lib/parse_date.re"
+#line 1312 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("pointed date YYYY");
                TIMELIB_INIT;
@@ -10530,43 +9447,38 @@ yy569:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL_POINTED;
        }
-#line 10534 "<stdout>"
-yy572:
-       YYDEBUG(572, *YYCURSOR);
+#line 9451 "ext/date/lib/parse_date.c"
+yy547:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy577;
-       goto yy455;
-yy573:
-       YYDEBUG(573, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy552;
+       goto yy430;
+yy548:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy461;
-               goto yy455;
+               if (yych == '.') goto yy436;
+               goto yy430;
        } else {
-               if (yych <= '0') goto yy577;
-               if (yych <= '9') goto yy575;
-               goto yy455;
+               if (yych <= '0') goto yy552;
+               if (yych <= '9') goto yy550;
+               goto yy430;
        }
-yy574:
-       YYDEBUG(574, *YYCURSOR);
+yy549:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych >= ':') goto yy455;
-yy575:
-       YYDEBUG(575, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych >= ':') goto yy430;
+yy550:
        yyaccept = 11;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy576;
-       if (yych <= '9') goto yy569;
-yy576:
-       YYDEBUG(576, *YYCURSOR);
-#line 1383 "ext/date/lib/parse_date.re"
+       if (yych <= '/') goto yy551;
+       if (yych <= '9') goto yy544;
+yy551:
+#line 1324 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("pointed date YY");
@@ -10579,648 +9491,603 @@ yy576:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_FULL_POINTED;
        }
-#line 10583 "<stdout>"
-yy577:
-       YYDEBUG(577, *YYCURSOR);
+#line 9495 "ext/date/lib/parse_date.c"
+yy552:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy465;
-                       if (yych <= 0x1F) goto yy455;
-                       goto yy465;
+                       if (yych == '\t') goto yy440;
+                       if (yych <= 0x1F) goto yy430;
+                       goto yy440;
                } else {
-                       if (yych == '.') goto yy461;
-                       if (yych <= '/') goto yy455;
-                       goto yy569;
+                       if (yych == '.') goto yy436;
+                       if (yych <= '/') goto yy430;
+                       goto yy544;
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy467;
-                       if (yych <= 'O') goto yy455;
-                       goto yy467;
+                       if (yych == 'A') goto yy442;
+                       if (yych <= 'O') goto yy430;
+                       goto yy442;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy455;
-                               goto yy467;
+                               if (yych <= '`') goto yy430;
+                               goto yy442;
                        } else {
-                               if (yych == 'p') goto yy467;
-                               goto yy455;
+                               if (yych == 'p') goto yy442;
+                               goto yy430;
                        }
                }
        }
-yy578:
-       YYDEBUG(578, *YYCURSOR);
+yy553:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ':') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy472;
-                       if (yych <= 0x1F) goto yy455;
-                       goto yy472;
+                       if (yych == '\t') goto yy447;
+                       if (yych <= 0x1F) goto yy430;
+                       goto yy447;
                } else {
-                       if (yych == '.') goto yy457;
-                       if (yych <= '9') goto yy455;
-                       goto yy457;
+                       if (yych == '.') goto yy432;
+                       if (yych <= '9') goto yy430;
+                       goto yy432;
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy474;
-                       if (yych <= 'O') goto yy455;
-                       goto yy474;
+                       if (yych == 'A') goto yy449;
+                       if (yych <= 'O') goto yy430;
+                       goto yy449;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy455;
-                               goto yy474;
+                               if (yych <= '`') goto yy430;
+                               goto yy449;
                        } else {
-                               if (yych == 'p') goto yy474;
-                               goto yy455;
+                               if (yych == 'p') goto yy449;
+                               goto yy430;
                        }
                }
        }
-yy579:
-       YYDEBUG(579, *YYCURSOR);
+yy554:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ':') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy472;
-                       if (yych <= 0x1F) goto yy455;
-                       goto yy472;
+                       if (yych == '\t') goto yy447;
+                       if (yych <= 0x1F) goto yy430;
+                       goto yy447;
                } else {
                        if (yych <= '-') {
-                               if (yych <= ',') goto yy455;
-                               goto yy566;
+                               if (yych <= ',') goto yy430;
+                               goto yy541;
                        } else {
-                               if (yych <= '.') goto yy565;
-                               if (yych <= '9') goto yy455;
-                               goto yy457;
+                               if (yych <= '.') goto yy540;
+                               if (yych <= '9') goto yy430;
+                               goto yy432;
                        }
                }
        } else {
                if (yych <= 'P') {
-                       if (yych == 'A') goto yy474;
-                       if (yych <= 'O') goto yy455;
-                       goto yy474;
+                       if (yych == 'A') goto yy449;
+                       if (yych <= 'O') goto yy430;
+                       goto yy449;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy455;
-                               goto yy474;
+                               if (yych <= '`') goto yy430;
+                               goto yy449;
                        } else {
-                               if (yych == 'p') goto yy474;
-                               goto yy455;
+                               if (yych == 'p') goto yy449;
+                               goto yy430;
                        }
                }
        }
-yy580:
-       YYDEBUG(580, *YYCURSOR);
+yy555:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy619;
-               goto yy566;
+               if (yych <= '-') goto yy594;
+               goto yy541;
        } else {
                if (yych <= '/') goto yy56;
-               if (yych <= '9') goto yy582;
+               if (yych <= '9') goto yy557;
                goto yy56;
        }
-yy581:
-       YYDEBUG(581, *YYCURSOR);
+yy556:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy619;
-               goto yy566;
+               if (yych <= '-') goto yy594;
+               goto yy541;
        } else {
                if (yych <= '/') goto yy56;
                if (yych >= '3') goto yy56;
        }
-yy582:
-       YYDEBUG(582, *YYCURSOR);
+yy557:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '-') goto yy619;
-       if (yych <= '.') goto yy566;
+       if (yych <= '-') goto yy594;
+       if (yych <= '.') goto yy541;
        goto yy56;
-yy583:
-       YYDEBUG(583, *YYCURSOR);
+yy558:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy615;
+               if (yych == 'A') goto yy590;
                if (yych <= 'T') goto yy56;
-               goto yy614;
+               goto yy589;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy615;
+                       goto yy590;
                } else {
-                       if (yych == 'u') goto yy614;
+                       if (yych == 'u') goto yy589;
                        goto yy56;
                }
        }
-yy584:
-       YYDEBUG(584, *YYCURSOR);
+yy559:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy612;
-       if (yych == 'e') goto yy612;
+       if (yych == 'E') goto yy587;
+       if (yych == 'e') goto yy587;
        goto yy56;
-yy585:
-       YYDEBUG(585, *YYCURSOR);
+yy560:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy609;
-       if (yych == 'a') goto yy609;
+       if (yych == 'A') goto yy584;
+       if (yych == 'a') goto yy584;
        goto yy56;
-yy586:
-       YYDEBUG(586, *YYCURSOR);
+yy561:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy606;
+               if (yych == 'P') goto yy581;
                if (yych <= 'T') goto yy56;
-               goto yy605;
+               goto yy580;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy606;
+                       goto yy581;
                } else {
-                       if (yych == 'u') goto yy605;
+                       if (yych == 'u') goto yy580;
                        goto yy56;
                }
        }
-yy587:
-       YYDEBUG(587, *YYCURSOR);
+yy562:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy602;
-       if (yych == 'e') goto yy602;
+       if (yych == 'E') goto yy577;
+       if (yych == 'e') goto yy577;
        goto yy56;
-yy588:
-       YYDEBUG(588, *YYCURSOR);
+yy563:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy600;
-       if (yych == 'c') goto yy600;
+       if (yych == 'C') goto yy575;
+       if (yych == 'c') goto yy575;
        goto yy56;
-yy589:
-       YYDEBUG(589, *YYCURSOR);
+yy564:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy598;
-       if (yych == 'o') goto yy598;
+       if (yych == 'O') goto yy573;
+       if (yych == 'o') goto yy573;
        goto yy56;
-yy590:
-       YYDEBUG(590, *YYCURSOR);
+yy565:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy591;
+       if (yych == 'E') goto yy566;
        if (yych != 'e') goto yy56;
-yy591:
-       YYDEBUG(591, *YYCURSOR);
+yy566:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy592;
+       if (yych == 'C') goto yy567;
        if (yych != 'c') goto yy56;
-yy592:
-       YYDEBUG(592, *YYCURSOR);
+yy567:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych >= '.') goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych >= '.') goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy545;
-                       if (yych == 'e') goto yy545;
-                       goto yy440;
+                       if (yych <= 'E') goto yy520;
+                       if (yych == 'e') goto yy520;
+                       goto yy415;
                }
        }
-yy593:
-       YYDEBUG(593, *YYCURSOR);
+yy568:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy497;
-       if (yych <= '0') goto yy594;
-       if (yych <= '2') goto yy595;
-       if (yych <= '3') goto yy596;
-       goto yy497;
-yy594:
-       YYDEBUG(594, *YYCURSOR);
+       if (yych <= '/') goto yy472;
+       if (yych <= '0') goto yy569;
+       if (yych <= '2') goto yy570;
+       if (yych <= '3') goto yy571;
+       goto yy472;
+yy569:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych <= '9') goto yy597;
-       goto yy499;
-yy595:
-       YYDEBUG(595, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych <= '9') goto yy572;
+       goto yy474;
+yy570:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych <= '9') goto yy597;
-       goto yy499;
-yy596:
-       YYDEBUG(596, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych <= '9') goto yy572;
+       goto yy474;
+yy571:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych <= '1') goto yy597;
-       if (yych <= '9') goto yy505;
-       goto yy499;
-yy597:
-       YYDEBUG(597, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych <= '1') goto yy572;
+       if (yych <= '9') goto yy480;
+       goto yy474;
+yy572:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy499;
-       if (yych <= '9') goto yy506;
-       goto yy499;
-yy598:
-       YYDEBUG(598, *YYCURSOR);
+       if (yych <= '/') goto yy474;
+       if (yych <= '9') goto yy481;
+       goto yy474;
+yy573:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy599;
+       if (yych == 'V') goto yy574;
        if (yych != 'v') goto yy56;
-yy599:
-       YYDEBUG(599, *YYCURSOR);
+yy574:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy500;
-                       if (yych == 'e') goto yy500;
-                       goto yy440;
+                       if (yych <= 'E') goto yy475;
+                       if (yych == 'e') goto yy475;
+                       goto yy415;
                }
        }
-yy600:
-       YYDEBUG(600, *YYCURSOR);
+yy575:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy601;
+       if (yych == 'T') goto yy576;
        if (yych != 't') goto yy56;
-yy601:
-       YYDEBUG(601, *YYCURSOR);
+yy576:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'N') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'O') goto yy510;
-                       if (yych == 'o') goto yy510;
-                       goto yy440;
+                       if (yych <= 'O') goto yy485;
+                       if (yych == 'o') goto yy485;
+                       goto yy415;
                }
        }
-yy602:
-       YYDEBUG(602, *YYCURSOR);
+yy577:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy603;
+       if (yych == 'P') goto yy578;
        if (yych != 'p') goto yy56;
-yy603:
-       YYDEBUG(603, *YYCURSOR);
+yy578:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'S') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'T') goto yy604;
-                       if (yych != 't') goto yy440;
+                       if (yych <= 'T') goto yy579;
+                       if (yych != 't') goto yy415;
                }
        }
-yy604:
-       YYDEBUG(604, *YYCURSOR);
+yy579:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy552;
-                       if (yych == 'e') goto yy552;
-                       goto yy440;
+                       if (yych <= 'E') goto yy527;
+                       if (yych == 'e') goto yy527;
+                       goto yy415;
                }
        }
-yy605:
-       YYDEBUG(605, *YYCURSOR);
+yy580:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy608;
-       if (yych == 'g') goto yy608;
+       if (yych == 'G') goto yy583;
+       if (yych == 'g') goto yy583;
        goto yy56;
-yy606:
-       YYDEBUG(606, *YYCURSOR);
+yy581:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy607;
+       if (yych == 'R') goto yy582;
        if (yych != 'r') goto yy56;
-yy607:
-       YYDEBUG(607, *YYCURSOR);
+yy582:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'H') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'I') goto yy516;
-                       if (yych == 'i') goto yy516;
-                       goto yy440;
+                       if (yych <= 'I') goto yy491;
+                       if (yych == 'i') goto yy491;
+                       goto yy415;
                }
        }
-yy608:
-       YYDEBUG(608, *YYCURSOR);
+yy583:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'T') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'U') goto yy518;
-                       if (yych == 'u') goto yy518;
-                       goto yy440;
+                       if (yych <= 'U') goto yy493;
+                       if (yych == 'u') goto yy493;
+                       goto yy415;
                }
        }
-yy609:
-       YYDEBUG(609, *YYCURSOR);
+yy584:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy610;
+               if (yych == 'R') goto yy585;
                if (yych <= 'X') goto yy56;
-               goto yy611;
+               goto yy586;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
                } else {
-                       if (yych == 'y') goto yy611;
+                       if (yych == 'y') goto yy586;
                        goto yy56;
                }
        }
-yy610:
-       YYDEBUG(610, *YYCURSOR);
+yy585:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'B') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'C') goto yy558;
-                       if (yych == 'c') goto yy558;
-                       goto yy440;
+                       if (yych <= 'C') goto yy533;
+                       if (yych == 'c') goto yy533;
+                       goto yy415;
                }
        }
-yy611:
-       YYDEBUG(611, *YYCURSOR);
+yy586:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy440;
-                       goto yy496;
+                       if (yych <= 0x08) goto yy415;
+                       goto yy471;
                } else {
-                       if (yych == ' ') goto yy496;
-                       goto yy440;
+                       if (yych == ' ') goto yy471;
+                       goto yy415;
                }
        } else {
                if (yych <= '.') {
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                } else {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                }
        }
-yy612:
-       YYDEBUG(612, *YYCURSOR);
+yy587:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy613;
+       if (yych == 'B') goto yy588;
        if (yych != 'b') goto yy56;
-yy613:
-       YYDEBUG(613, *YYCURSOR);
+yy588:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'Q') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'R') goto yy561;
-                       if (yych == 'r') goto yy561;
-                       goto yy440;
+                       if (yych <= 'R') goto yy536;
+                       if (yych == 'r') goto yy536;
+                       goto yy415;
                }
        }
-yy614:
-       YYDEBUG(614, *YYCURSOR);
+yy589:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy618;
+               if (yych == 'L') goto yy593;
                if (yych <= 'M') goto yy56;
-               goto yy617;
+               goto yy592;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy618;
+                       goto yy593;
                } else {
-                       if (yych == 'n') goto yy617;
+                       if (yych == 'n') goto yy592;
                        goto yy56;
                }
        }
-yy615:
-       YYDEBUG(615, *YYCURSOR);
+yy590:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy616;
+       if (yych == 'N') goto yy591;
        if (yych != 'n') goto yy56;
-yy616:
-       YYDEBUG(616, *YYCURSOR);
+yy591:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'T') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'U') goto yy523;
-                       if (yych == 'u') goto yy523;
-                       goto yy440;
+                       if (yych <= 'U') goto yy498;
+                       if (yych == 'u') goto yy498;
+                       goto yy415;
                }
        }
-yy617:
-       YYDEBUG(617, *YYCURSOR);
+yy592:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'E') goto yy504;
-                       if (yych == 'e') goto yy504;
-                       goto yy440;
+                       if (yych <= 'E') goto yy479;
+                       if (yych == 'e') goto yy479;
+                       goto yy415;
                }
        }
-yy618:
-       YYDEBUG(618, *YYCURSOR);
+yy593:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy496;
-                       goto yy440;
+                       if (yych == '\t') goto yy471;
+                       goto yy415;
                } else {
-                       if (yych <= ' ') goto yy496;
-                       if (yych <= ',') goto yy440;
-                       if (yych <= '-') goto yy593;
-                       goto yy496;
+                       if (yych <= ' ') goto yy471;
+                       if (yych <= ',') goto yy415;
+                       if (yych <= '-') goto yy568;
+                       goto yy471;
                }
        } else {
                if (yych <= 'X') {
-                       if (yych <= '/') goto yy440;
-                       if (yych <= '9') goto yy498;
-                       goto yy440;
+                       if (yych <= '/') goto yy415;
+                       if (yych <= '9') goto yy473;
+                       goto yy415;
                } else {
-                       if (yych <= 'Y') goto yy504;
-                       if (yych == 'y') goto yy504;
-                       goto yy440;
+                       if (yych <= 'Y') goto yy479;
+                       if (yych == 'y') goto yy479;
+                       goto yy415;
                }
        }
-yy619:
-       YYDEBUG(619, *YYCURSOR);
+yy594:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy620;
-       if (yych <= '3') goto yy622;
-       if (yych <= '9') goto yy623;
+       if (yych <= '2') goto yy595;
+       if (yych <= '3') goto yy597;
+       if (yych <= '9') goto yy598;
        goto yy56;
-yy620:
-       YYDEBUG(620, *YYCURSOR);
+yy595:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy629;
-               if (yych >= 'n') goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy604;
+               if (yych >= 'n') goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych >= 'r') goto yy626;
+                       if (yych >= 'r') goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
                }
        }
-yy621:
-       YYDEBUG(621, *YYCURSOR);
-#line 1342 "ext/date/lib/parse_date.re"
+yy596:
+#line 1283 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("gnudateshort");
@@ -11233,113 +10100,103 @@ yy621:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 11237 "<stdout>"
-yy622:
-       YYDEBUG(622, *YYCURSOR);
+#line 10104 "ext/date/lib/parse_date.c"
+yy597:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
                if (yych <= '1') {
-                       if (yych <= '/') goto yy621;
-                       goto yy629;
+                       if (yych <= '/') goto yy596;
+                       goto yy604;
                } else {
-                       if (yych <= '9') goto yy568;
-                       if (yych <= 'm') goto yy621;
-                       goto yy625;
+                       if (yych <= '9') goto yy543;
+                       if (yych <= 'm') goto yy596;
+                       goto yy600;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy623:
-       YYDEBUG(623, *YYCURSOR);
+yy598:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy568;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy543;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy624:
-       YYDEBUG(624, *YYCURSOR);
+yy599:
        yych = *++YYCURSOR;
-       if (yych == 't') goto yy628;
+       if (yych == 't') goto yy603;
        goto yy56;
-yy625:
-       YYDEBUG(625, *YYCURSOR);
+yy600:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy628;
+       if (yych == 'd') goto yy603;
        goto yy56;
-yy626:
-       YYDEBUG(626, *YYCURSOR);
+yy601:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy628;
+       if (yych == 'd') goto yy603;
        goto yy56;
-yy627:
-       YYDEBUG(627, *YYCURSOR);
+yy602:
        yych = *++YYCURSOR;
        if (yych != 'h') goto yy56;
-yy628:
-       YYDEBUG(628, *YYCURSOR);
+yy603:
        yych = *++YYCURSOR;
-       goto yy621;
-yy629:
-       YYDEBUG(629, *YYCURSOR);
+       goto yy596;
+yy604:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy569;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy544;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy630:
-       YYDEBUG(630, *YYCURSOR);
+yy605:
        yyaccept = 13;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
                if (yych <= '/') {
-                       if (yych >= '/') goto yy687;
+                       if (yych >= '/') goto yy662;
                } else {
-                       if (yych <= '9') goto yy633;
-                       if (yych >= 'n') goto yy684;
+                       if (yych <= '9') goto yy608;
+                       if (yych >= 'n') goto yy659;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych >= 'r') goto yy685;
+                       if (yych >= 'r') goto yy660;
                } else {
-                       if (yych <= 's') goto yy683;
-                       if (yych <= 't') goto yy686;
+                       if (yych <= 's') goto yy658;
+                       if (yych <= 't') goto yy661;
                }
        }
-yy631:
-       YYDEBUG(631, *YYCURSOR);
-#line 1286 "ext/date/lib/parse_date.re"
+yy606:
+#line 1227 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("americanshort | american");
@@ -11354,240 +10211,206 @@ yy631:
                TIMELIB_DEINIT;
                return TIMELIB_AMERICAN;
        }
-#line 11358 "<stdout>"
-yy632:
-       YYDEBUG(632, *YYCURSOR);
+#line 10215 "ext/date/lib/parse_date.c"
+yy607:
        yyaccept = 13;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
                if (yych <= '/') {
-                       if (yych <= '.') goto yy631;
-                       goto yy687;
+                       if (yych <= '.') goto yy606;
+                       goto yy662;
                } else {
-                       if (yych <= '1') goto yy633;
-                       if (yych <= 'm') goto yy631;
-                       goto yy684;
+                       if (yych <= '1') goto yy608;
+                       if (yych <= 'm') goto yy606;
+                       goto yy659;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy631;
-                       goto yy685;
+                       if (yych <= 'q') goto yy606;
+                       goto yy660;
                } else {
-                       if (yych <= 's') goto yy683;
-                       if (yych <= 't') goto yy686;
-                       goto yy631;
+                       if (yych <= 's') goto yy658;
+                       if (yych <= 't') goto yy661;
+                       goto yy606;
                }
        }
-yy633:
-       YYDEBUG(633, *YYCURSOR);
+yy608:
        yyaccept = 13;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych == '/') goto yy687;
-               if (yych <= 'm') goto yy631;
-               goto yy684;
+               if (yych == '/') goto yy662;
+               if (yych <= 'm') goto yy606;
+               goto yy659;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy631;
-                       goto yy685;
+                       if (yych <= 'q') goto yy606;
+                       goto yy660;
                } else {
-                       if (yych <= 's') goto yy683;
-                       if (yych <= 't') goto yy686;
-                       goto yy631;
+                       if (yych <= 's') goto yy658;
+                       if (yych <= 't') goto yy661;
+                       goto yy606;
                }
        }
-yy634:
-       YYDEBUG(634, *YYCURSOR);
+yy609:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy682;
+               if (yych == 'A') goto yy657;
                if (yych <= 'T') goto yy56;
-               goto yy681;
+               goto yy656;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy682;
+                       goto yy657;
                } else {
-                       if (yych == 'u') goto yy681;
+                       if (yych == 'u') goto yy656;
                        goto yy56;
                }
        }
-yy635:
-       YYDEBUG(635, *YYCURSOR);
+yy610:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy680;
-       if (yych == 'e') goto yy680;
+       if (yych == 'E') goto yy655;
+       if (yych == 'e') goto yy655;
        goto yy56;
-yy636:
-       YYDEBUG(636, *YYCURSOR);
+yy611:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy679;
-       if (yych == 'a') goto yy679;
+       if (yych == 'A') goto yy654;
+       if (yych == 'a') goto yy654;
        goto yy56;
-yy637:
-       YYDEBUG(637, *YYCURSOR);
+yy612:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy678;
+               if (yych == 'P') goto yy653;
                if (yych <= 'T') goto yy56;
-               goto yy677;
+               goto yy652;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy678;
+                       goto yy653;
                } else {
-                       if (yych == 'u') goto yy677;
+                       if (yych == 'u') goto yy652;
                        goto yy56;
                }
        }
-yy638:
-       YYDEBUG(638, *YYCURSOR);
+yy613:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy675;
-       if (yych == 'e') goto yy675;
+       if (yych == 'E') goto yy650;
+       if (yych == 'e') goto yy650;
        goto yy56;
-yy639:
-       YYDEBUG(639, *YYCURSOR);
+yy614:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy674;
-       if (yych == 'c') goto yy674;
+       if (yych == 'C') goto yy649;
+       if (yych == 'c') goto yy649;
        goto yy56;
-yy640:
-       YYDEBUG(640, *YYCURSOR);
+yy615:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy673;
-       if (yych == 'o') goto yy673;
+       if (yych == 'O') goto yy648;
+       if (yych == 'o') goto yy648;
        goto yy56;
-yy641:
-       YYDEBUG(641, *YYCURSOR);
+yy616:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy642;
+       if (yych == 'E') goto yy617;
        if (yych != 'e') goto yy56;
-yy642:
-       YYDEBUG(642, *YYCURSOR);
+yy617:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy643;
+       if (yych == 'C') goto yy618;
        if (yych != 'c') goto yy56;
-yy643:
-       YYDEBUG(643, *YYCURSOR);
+yy618:
        yych = *++YYCURSOR;
        if (yych != '/') goto yy56;
-yy644:
-       YYDEBUG(644, *YYCURSOR);
+yy619:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(645, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(646, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(647, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(648, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(649, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy650;
-       if (yych <= '2') goto yy651;
+       if (yych <= '1') goto yy625;
+       if (yych <= '2') goto yy626;
        goto yy56;
-yy650:
-       YYDEBUG(650, *YYCURSOR);
+yy625:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy652;
+       if (yych <= '9') goto yy627;
        goto yy56;
-yy651:
-       YYDEBUG(651, *YYCURSOR);
+yy626:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '5') goto yy56;
-yy652:
-       YYDEBUG(652, *YYCURSOR);
+yy627:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(653, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '6') goto yy56;
-       YYDEBUG(654, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(655, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(656, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy657;
-       if (yych <= '6') goto yy658;
+       if (yych <= '5') goto yy632;
+       if (yych <= '6') goto yy633;
        goto yy56;
-yy657:
-       YYDEBUG(657, *YYCURSOR);
+yy632:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy659;
+       if (yych <= '9') goto yy634;
        goto yy56;
-yy658:
-       YYDEBUG(658, *YYCURSOR);
+yy633:
        yych = *++YYCURSOR;
        if (yych != '0') goto yy56;
-yy659:
-       YYDEBUG(659, *YYCURSOR);
+yy634:
        yych = *++YYCURSOR;
-       if (yych == '\t') goto yy660;
+       if (yych == '\t') goto yy635;
        if (yych != ' ') goto yy56;
-yy660:
-       YYDEBUG(660, *YYCURSOR);
+yy635:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
        yych = *YYCURSOR;
-       YYDEBUG(661, *YYCURSOR);
        if (yych <= '*') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy56;
-                       goto yy660;
+                       goto yy635;
                } else {
-                       if (yych == ' ') goto yy660;
+                       if (yych == ' ') goto yy635;
                        goto yy56;
                }
        } else {
                if (yych <= '-') {
                        if (yych == ',') goto yy56;
-                       goto yy663;
+                       goto yy638;
                } else {
                        if (yych != 'G') goto yy56;
                }
        }
-       YYDEBUG(662, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy671;
+       if (yych == 'M') goto yy646;
        goto yy56;
-yy663:
-       YYDEBUG(663, *YYCURSOR);
+yy638:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy664;
-       if (yych <= '2') goto yy666;
-       if (yych <= '9') goto yy667;
+       if (yych <= '1') goto yy639;
+       if (yych <= '2') goto yy641;
+       if (yych <= '9') goto yy642;
        goto yy56;
-yy664:
-       YYDEBUG(664, *YYCURSOR);
+yy639:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= '/') goto yy665;
-       if (yych <= '9') goto yy667;
-       if (yych <= ':') goto yy668;
-yy665:
-       YYDEBUG(665, *YYCURSOR);
-#line 1569 "ext/date/lib/parse_date.re"
+       if ((yych = *YYCURSOR) <= '/') goto yy640;
+       if (yych <= '9') goto yy642;
+       if (yych <= ':') goto yy643;
+yy640:
+#line 1510 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("clf");
@@ -11602,307 +10425,266 @@ yy665:
                s->time->s = timelib_get_nr((char **) &ptr, 2);
                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                if (tz_not_found) {
-                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                       add_error(s, "The timezone could not be found in the database");
                }
                TIMELIB_DEINIT;
                return TIMELIB_CLF;
        }
-#line 11611 "<stdout>"
-yy666:
-       YYDEBUG(666, *YYCURSOR);
+#line 10434 "ext/date/lib/parse_date.c"
+yy641:
        yych = *++YYCURSOR;
        if (yych <= '5') {
-               if (yych <= '/') goto yy665;
-               if (yych >= '5') goto yy669;
+               if (yych <= '/') goto yy640;
+               if (yych >= '5') goto yy644;
        } else {
-               if (yych <= '9') goto yy670;
-               if (yych <= ':') goto yy668;
-               goto yy665;
+               if (yych <= '9') goto yy645;
+               if (yych <= ':') goto yy643;
+               goto yy640;
        }
-yy667:
-       YYDEBUG(667, *YYCURSOR);
+yy642:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy665;
-       if (yych <= '5') goto yy669;
-       if (yych <= '9') goto yy670;
-       if (yych >= ';') goto yy665;
-yy668:
-       YYDEBUG(668, *YYCURSOR);
+       if (yych <= '/') goto yy640;
+       if (yych <= '5') goto yy644;
+       if (yych <= '9') goto yy645;
+       if (yych >= ';') goto yy640;
+yy643:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy665;
-       if (yych <= '5') goto yy669;
-       if (yych <= '9') goto yy670;
-       goto yy665;
-yy669:
-       YYDEBUG(669, *YYCURSOR);
+       if (yych <= '/') goto yy640;
+       if (yych <= '5') goto yy644;
+       if (yych <= '9') goto yy645;
+       goto yy640;
+yy644:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy665;
-       if (yych >= ':') goto yy665;
-yy670:
-       YYDEBUG(670, *YYCURSOR);
+       if (yych <= '/') goto yy640;
+       if (yych >= ':') goto yy640;
+yy645:
        yych = *++YYCURSOR;
-       goto yy665;
-yy671:
-       YYDEBUG(671, *YYCURSOR);
+       goto yy640;
+yy646:
        yych = *++YYCURSOR;
        if (yych != 'T') goto yy56;
-       YYDEBUG(672, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == '+') goto yy663;
-       if (yych == '-') goto yy663;
+       if (yych == '+') goto yy638;
+       if (yych == '-') goto yy638;
        goto yy56;
-yy673:
-       YYDEBUG(673, *YYCURSOR);
+yy648:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy643;
-       if (yych == 'v') goto yy643;
+       if (yych == 'V') goto yy618;
+       if (yych == 'v') goto yy618;
        goto yy56;
-yy674:
-       YYDEBUG(674, *YYCURSOR);
+yy649:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy643;
-       if (yych == 't') goto yy643;
+       if (yych == 'T') goto yy618;
+       if (yych == 't') goto yy618;
        goto yy56;
-yy675:
-       YYDEBUG(675, *YYCURSOR);
+yy650:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy676;
+       if (yych == 'P') goto yy651;
        if (yych != 'p') goto yy56;
-yy676:
-       YYDEBUG(676, *YYCURSOR);
+yy651:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
-               if (yych == '/') goto yy644;
+               if (yych == '/') goto yy619;
                goto yy56;
        } else {
-               if (yych <= 'T') goto yy643;
-               if (yych == 't') goto yy643;
+               if (yych <= 'T') goto yy618;
+               if (yych == 't') goto yy618;
                goto yy56;
        }
-yy677:
-       YYDEBUG(677, *YYCURSOR);
+yy652:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy643;
-       if (yych == 'g') goto yy643;
+       if (yych == 'G') goto yy618;
+       if (yych == 'g') goto yy618;
        goto yy56;
-yy678:
-       YYDEBUG(678, *YYCURSOR);
+yy653:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy643;
-       if (yych == 'r') goto yy643;
+       if (yych == 'R') goto yy618;
+       if (yych == 'r') goto yy618;
        goto yy56;
-yy679:
-       YYDEBUG(679, *YYCURSOR);
+yy654:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy643;
+               if (yych == 'R') goto yy618;
                if (yych <= 'X') goto yy56;
-               goto yy643;
+               goto yy618;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
-                       goto yy643;
+                       goto yy618;
                } else {
-                       if (yych == 'y') goto yy643;
+                       if (yych == 'y') goto yy618;
                        goto yy56;
                }
        }
-yy680:
-       YYDEBUG(680, *YYCURSOR);
+yy655:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy643;
-       if (yych == 'b') goto yy643;
+       if (yych == 'B') goto yy618;
+       if (yych == 'b') goto yy618;
        goto yy56;
-yy681:
-       YYDEBUG(681, *YYCURSOR);
+yy656:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy643;
+               if (yych == 'L') goto yy618;
                if (yych <= 'M') goto yy56;
-               goto yy643;
+               goto yy618;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy643;
+                       goto yy618;
                } else {
-                       if (yych == 'n') goto yy643;
+                       if (yych == 'n') goto yy618;
                        goto yy56;
                }
        }
-yy682:
-       YYDEBUG(682, *YYCURSOR);
+yy657:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy643;
-       if (yych == 'n') goto yy643;
+       if (yych == 'N') goto yy618;
+       if (yych == 'n') goto yy618;
        goto yy56;
-yy683:
-       YYDEBUG(683, *YYCURSOR);
+yy658:
        yych = *++YYCURSOR;
-       if (yych == 't') goto yy692;
+       if (yych == 't') goto yy667;
        goto yy56;
-yy684:
-       YYDEBUG(684, *YYCURSOR);
+yy659:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy692;
+       if (yych == 'd') goto yy667;
        goto yy56;
-yy685:
-       YYDEBUG(685, *YYCURSOR);
+yy660:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy692;
+       if (yych == 'd') goto yy667;
        goto yy56;
-yy686:
-       YYDEBUG(686, *YYCURSOR);
+yy661:
        yych = *++YYCURSOR;
-       if (yych == 'h') goto yy692;
+       if (yych == 'h') goto yy667;
        goto yy56;
-yy687:
-       YYDEBUG(687, *YYCURSOR);
+yy662:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(688, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy631;
-       if (yych >= ':') goto yy631;
-       YYDEBUG(689, *YYCURSOR);
+       if (yych <= '/') goto yy606;
+       if (yych >= ':') goto yy606;
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy631;
-       if (yych >= ':') goto yy631;
-       YYDEBUG(690, *YYCURSOR);
+       if (yych <= '/') goto yy606;
+       if (yych >= ':') goto yy606;
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy631;
-       if (yych >= ':') goto yy631;
-       YYDEBUG(691, *YYCURSOR);
+       if (yych <= '/') goto yy606;
+       if (yych >= ':') goto yy606;
        yych = *++YYCURSOR;
-       goto yy631;
-yy692:
-       YYDEBUG(692, *YYCURSOR);
+       goto yy606;
+yy667:
        yyaccept = 13;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '/') goto yy687;
-       goto yy631;
-yy693:
-       YYDEBUG(693, *YYCURSOR);
+       if (yych == '/') goto yy662;
+       goto yy606;
+yy668:
        yych = *++YYCURSOR;
        if (yych <= ',') {
-               if (yych == '\t') goto yy695;
-               goto yy542;
+               if (yych == '\t') goto yy670;
+               goto yy517;
        } else {
-               if (yych <= '-') goto yy696;
-               if (yych <= '.') goto yy695;
-               if (yych >= '0') goto yy542;
+               if (yych <= '-') goto yy671;
+               if (yych <= '.') goto yy670;
+               if (yych >= '0') goto yy517;
        }
-yy694:
-       YYDEBUG(694, *YYCURSOR);
+yy669:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'A':
-       case 'a':       goto yy637;
+       case 'a':       goto yy612;
        case 'D':
-       case 'd':       goto yy641;
+       case 'd':       goto yy616;
        case 'F':
-       case 'f':       goto yy635;
+       case 'f':       goto yy610;
        case 'J':
-       case 'j':       goto yy634;
+       case 'j':       goto yy609;
        case 'M':
-       case 'm':       goto yy636;
+       case 'm':       goto yy611;
        case 'N':
-       case 'n':       goto yy640;
+       case 'n':       goto yy615;
        case 'O':
-       case 'o':       goto yy639;
+       case 'o':       goto yy614;
        case 'S':
-       case 's':       goto yy638;
+       case 's':       goto yy613;
        default:        goto yy56;
        }
-yy695:
-       YYDEBUG(695, *YYCURSOR);
+yy670:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy542;
-       if (yych <= '0') goto yy700;
-       if (yych <= '1') goto yy701;
-       if (yych <= '9') goto yy702;
-       goto yy542;
-yy696:
-       YYDEBUG(696, *YYCURSOR);
+       if (yych <= '/') goto yy517;
+       if (yych <= '0') goto yy675;
+       if (yych <= '1') goto yy676;
+       if (yych <= '9') goto yy677;
+       goto yy517;
+yy671:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy542;
-       if (yych <= '0') goto yy697;
-       if (yych <= '1') goto yy698;
-       if (yych <= '9') goto yy699;
-       goto yy542;
-yy697:
-       YYDEBUG(697, *YYCURSOR);
+       if (yych <= '/') goto yy517;
+       if (yych <= '0') goto yy672;
+       if (yych <= '1') goto yy673;
+       if (yych <= '9') goto yy674;
+       goto yy517;
+yy672:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '.') goto yy566;
+       if (yych <= '.') goto yy541;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy699;
+       if (yych <= '9') goto yy674;
        goto yy56;
-yy698:
-       YYDEBUG(698, *YYCURSOR);
+yy673:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '.') goto yy566;
+       if (yych <= '.') goto yy541;
        if (yych <= '/') goto yy56;
        if (yych >= '3') goto yy56;
-yy699:
-       YYDEBUG(699, *YYCURSOR);
+yy674:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '.') goto yy566;
+       if (yych <= '.') goto yy541;
        goto yy56;
-yy700:
-       YYDEBUG(700, *YYCURSOR);
+yy675:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy566;
-               goto yy703;
+               if (yych <= '-') goto yy541;
+               goto yy678;
        } else {
                if (yych <= '/') goto yy56;
-               if (yych <= '9') goto yy702;
+               if (yych <= '9') goto yy677;
                goto yy56;
        }
-yy701:
-       YYDEBUG(701, *YYCURSOR);
+yy676:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy566;
-               goto yy703;
+               if (yych <= '-') goto yy541;
+               goto yy678;
        } else {
                if (yych <= '/') goto yy56;
                if (yych >= '3') goto yy56;
        }
-yy702:
-       YYDEBUG(702, *YYCURSOR);
+yy677:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '-') goto yy566;
+       if (yych <= '-') goto yy541;
        if (yych >= '/') goto yy56;
-yy703:
-       YYDEBUG(703, *YYCURSOR);
+yy678:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(704, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy575;
+       if (yych <= '9') goto yy550;
        goto yy56;
-yy705:
-       YYDEBUG(705, *YYCURSOR);
+yy680:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy749;
+       if (yych == '-') goto yy724;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy747;
+       if (yych <= '9') goto yy722;
        goto yy60;
-yy706:
-       YYDEBUG(706, *YYCURSOR);
+yy681:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '0':       goto yy715;
-       case '1':       goto yy716;
+       case '0':       goto yy690;
+       case '1':       goto yy691;
        case '2':
        case '3':
        case '4':
@@ -11910,254 +10692,232 @@ yy706:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy717;
+       case '9':       goto yy692;
        case 'A':
-       case 'a':       goto yy710;
+       case 'a':       goto yy685;
        case 'D':
-       case 'd':       goto yy714;
+       case 'd':       goto yy689;
        case 'F':
-       case 'f':       goto yy708;
+       case 'f':       goto yy683;
        case 'J':
-       case 'j':       goto yy707;
+       case 'j':       goto yy682;
        case 'M':
-       case 'm':       goto yy709;
+       case 'm':       goto yy684;
        case 'N':
-       case 'n':       goto yy713;
+       case 'n':       goto yy688;
        case 'O':
-       case 'o':       goto yy712;
+       case 'o':       goto yy687;
        case 'S':
-       case 's':       goto yy711;
+       case 's':       goto yy686;
        default:        goto yy56;
        }
-yy707:
-       YYDEBUG(707, *YYCURSOR);
+yy682:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy746;
+               if (yych == 'A') goto yy721;
                if (yych <= 'T') goto yy56;
-               goto yy745;
+               goto yy720;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy746;
+                       goto yy721;
                } else {
-                       if (yych == 'u') goto yy745;
+                       if (yych == 'u') goto yy720;
                        goto yy56;
                }
        }
-yy708:
-       YYDEBUG(708, *YYCURSOR);
+yy683:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy744;
-       if (yych == 'e') goto yy744;
+       if (yych == 'E') goto yy719;
+       if (yych == 'e') goto yy719;
        goto yy56;
-yy709:
-       YYDEBUG(709, *YYCURSOR);
+yy684:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy743;
-       if (yych == 'a') goto yy743;
+       if (yych == 'A') goto yy718;
+       if (yych == 'a') goto yy718;
        goto yy56;
-yy710:
-       YYDEBUG(710, *YYCURSOR);
+yy685:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy742;
+               if (yych == 'P') goto yy717;
                if (yych <= 'T') goto yy56;
-               goto yy741;
+               goto yy716;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy742;
+                       goto yy717;
                } else {
-                       if (yych == 'u') goto yy741;
+                       if (yych == 'u') goto yy716;
                        goto yy56;
                }
        }
-yy711:
-       YYDEBUG(711, *YYCURSOR);
+yy686:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy739;
-       if (yych == 'e') goto yy739;
+       if (yych == 'E') goto yy714;
+       if (yych == 'e') goto yy714;
        goto yy56;
-yy712:
-       YYDEBUG(712, *YYCURSOR);
+yy687:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy738;
-       if (yych == 'c') goto yy738;
+       if (yych == 'C') goto yy713;
+       if (yych == 'c') goto yy713;
        goto yy56;
-yy713:
-       YYDEBUG(713, *YYCURSOR);
+yy688:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy737;
-       if (yych == 'o') goto yy737;
+       if (yych == 'O') goto yy712;
+       if (yych == 'o') goto yy712;
        goto yy56;
-yy714:
-       YYDEBUG(714, *YYCURSOR);
+yy689:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy729;
-       if (yych == 'e') goto yy729;
+       if (yych == 'E') goto yy704;
+       if (yych == 'e') goto yy704;
        goto yy56;
-yy715:
-       YYDEBUG(715, *YYCURSOR);
+yy690:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy718;
+       if (yych == '-') goto yy693;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy722;
+       if (yych <= '9') goto yy697;
        goto yy56;
-yy716:
-       YYDEBUG(716, *YYCURSOR);
+yy691:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy718;
+       if (yych == '-') goto yy693;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy722;
+       if (yych <= '2') goto yy697;
        goto yy56;
-yy717:
-       YYDEBUG(717, *YYCURSOR);
+yy692:
        yych = *++YYCURSOR;
        if (yych != '-') goto yy56;
-yy718:
-       YYDEBUG(718, *YYCURSOR);
+yy693:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy719;
-       if (yych <= '3') goto yy720;
-       if (yych <= '9') goto yy721;
+       if (yych <= '2') goto yy694;
+       if (yych <= '3') goto yy695;
+       if (yych <= '9') goto yy696;
        goto yy56;
-yy719:
-       YYDEBUG(719, *YYCURSOR);
+yy694:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy721;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy696;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy720:
-       YYDEBUG(720, *YYCURSOR);
+yy695:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '1') goto yy721;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '1') goto yy696;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy721:
-       YYDEBUG(721, *YYCURSOR);
+yy696:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'q') {
-               if (yych == 'n') goto yy625;
-               goto yy621;
+               if (yych == 'n') goto yy600;
+               goto yy596;
        } else {
-               if (yych <= 'r') goto yy626;
-               if (yych <= 's') goto yy624;
-               if (yych <= 't') goto yy627;
-               goto yy621;
+               if (yych <= 'r') goto yy601;
+               if (yych <= 's') goto yy599;
+               if (yych <= 't') goto yy602;
+               goto yy596;
        }
-yy722:
-       YYDEBUG(722, *YYCURSOR);
+yy697:
        yych = *++YYCURSOR;
        if (yych != '-') goto yy56;
-       YYDEBUG(723, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy56;
-               if (yych >= '1') goto yy725;
+               if (yych >= '1') goto yy700;
        } else {
-               if (yych <= '3') goto yy726;
-               if (yych <= '9') goto yy721;
+               if (yych <= '3') goto yy701;
+               if (yych <= '9') goto yy696;
                goto yy56;
        }
-       YYDEBUG(724, *YYCURSOR);
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy727;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy702;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy725:
-       YYDEBUG(725, *YYCURSOR);
+yy700:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy727;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy702;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy726:
-       YYDEBUG(726, *YYCURSOR);
+yy701:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '1') goto yy727;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '1') goto yy702;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy727:
-       YYDEBUG(727, *YYCURSOR);
+yy702:
        yyaccept = 14;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'q') {
-               if (yych == 'n') goto yy625;
+               if (yych == 'n') goto yy600;
        } else {
-               if (yych <= 'r') goto yy626;
-               if (yych <= 's') goto yy624;
-               if (yych <= 't') goto yy627;
+               if (yych <= 'r') goto yy601;
+               if (yych <= 's') goto yy599;
+               if (yych <= 't') goto yy602;
        }
-yy728:
-       YYDEBUG(728, *YYCURSOR);
-#line 1314 "ext/date/lib/parse_date.re"
+yy703:
+#line 1255 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("iso8601date2");
@@ -12170,46 +10930,38 @@ yy728:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 12174 "<stdout>"
-yy729:
-       YYDEBUG(729, *YYCURSOR);
+#line 10934 "ext/date/lib/parse_date.c"
+yy704:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy730;
+       if (yych == 'C') goto yy705;
        if (yych != 'c') goto yy56;
-yy730:
-       YYDEBUG(730, *YYCURSOR);
+yy705:
        yych = *++YYCURSOR;
        if (yych != '-') goto yy56;
-yy731:
-       YYDEBUG(731, *YYCURSOR);
+yy706:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy732;
-       if (yych <= '2') goto yy733;
-       if (yych <= '3') goto yy734;
+       if (yych <= '0') goto yy707;
+       if (yych <= '2') goto yy708;
+       if (yych <= '3') goto yy709;
        goto yy56;
-yy732:
-       YYDEBUG(732, *YYCURSOR);
+yy707:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy735;
+       if (yych <= '9') goto yy710;
        goto yy56;
-yy733:
-       YYDEBUG(733, *YYCURSOR);
+yy708:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy735;
+       if (yych <= '9') goto yy710;
        goto yy56;
-yy734:
-       YYDEBUG(734, *YYCURSOR);
+yy709:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '2') goto yy56;
-yy735:
-       YYDEBUG(735, *YYCURSOR);
+yy710:
        ++YYCURSOR;
-       YYDEBUG(736, *YYCURSOR);
-#line 1555 "ext/date/lib/parse_date.re"
+#line 1496 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("pgtextreverse");
@@ -12222,172 +10974,132 @@ yy735:
                TIMELIB_DEINIT;
                return TIMELIB_PG_TEXT;
        }
-#line 12226 "<stdout>"
-yy737:
-       YYDEBUG(737, *YYCURSOR);
+#line 10978 "ext/date/lib/parse_date.c"
+yy712:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy730;
-       if (yych == 'v') goto yy730;
+       if (yych == 'V') goto yy705;
+       if (yych == 'v') goto yy705;
        goto yy56;
-yy738:
-       YYDEBUG(738, *YYCURSOR);
+yy713:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy730;
-       if (yych == 't') goto yy730;
+       if (yych == 'T') goto yy705;
+       if (yych == 't') goto yy705;
        goto yy56;
-yy739:
-       YYDEBUG(739, *YYCURSOR);
+yy714:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy740;
+       if (yych == 'P') goto yy715;
        if (yych != 'p') goto yy56;
-yy740:
-       YYDEBUG(740, *YYCURSOR);
+yy715:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
-               if (yych == '-') goto yy731;
+               if (yych == '-') goto yy706;
                goto yy56;
        } else {
-               if (yych <= 'T') goto yy730;
-               if (yych == 't') goto yy730;
+               if (yych <= 'T') goto yy705;
+               if (yych == 't') goto yy705;
                goto yy56;
        }
-yy741:
-       YYDEBUG(741, *YYCURSOR);
+yy716:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy730;
-       if (yych == 'g') goto yy730;
+       if (yych == 'G') goto yy705;
+       if (yych == 'g') goto yy705;
        goto yy56;
-yy742:
-       YYDEBUG(742, *YYCURSOR);
+yy717:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy730;
-       if (yych == 'r') goto yy730;
+       if (yych == 'R') goto yy705;
+       if (yych == 'r') goto yy705;
        goto yy56;
-yy743:
-       YYDEBUG(743, *YYCURSOR);
+yy718:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy730;
+               if (yych == 'R') goto yy705;
                if (yych <= 'X') goto yy56;
-               goto yy730;
+               goto yy705;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
-                       goto yy730;
+                       goto yy705;
                } else {
-                       if (yych == 'y') goto yy730;
+                       if (yych == 'y') goto yy705;
                        goto yy56;
                }
        }
-yy744:
-       YYDEBUG(744, *YYCURSOR);
+yy719:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy730;
-       if (yych == 'b') goto yy730;
+       if (yych == 'B') goto yy705;
+       if (yych == 'b') goto yy705;
        goto yy56;
-yy745:
-       YYDEBUG(745, *YYCURSOR);
+yy720:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy730;
+               if (yych == 'L') goto yy705;
                if (yych <= 'M') goto yy56;
-               goto yy730;
+               goto yy705;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy730;
+                       goto yy705;
                } else {
-                       if (yych == 'n') goto yy730;
+                       if (yych == 'n') goto yy705;
                        goto yy56;
                }
        }
-yy746:
-       YYDEBUG(746, *YYCURSOR);
+yy721:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy730;
-       if (yych == 'n') goto yy730;
+       if (yych == 'N') goto yy705;
+       if (yych == 'n') goto yy705;
        goto yy56;
-yy747:
-       YYDEBUG(747, *YYCURSOR);
+yy722:
        yyaccept = 15;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'O') {
-               if (yych <= '3') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy755;
-                               } else {
-                                       if (yych <= ' ') goto yy755;
-                                       if (yych >= '-') goto yy752;
-                               }
-                       } else {
-                               if (yych <= '0') {
-                                       if (yych <= '.') goto yy756;
-                                       if (yych <= '/') goto yy753;
-                                       goto yy769;
-                               } else {
-                                       if (yych <= '1') goto yy770;
-                                       if (yych <= '2') goto yy772;
-                                       goto yy773;
-                               }
-                       }
-               } else {
-                       if (yych <= 'D') {
-                               if (yych <= '@') {
-                                       if (yych <= '9') goto yy54;
-                                       if (yych <= ':') goto yy771;
-                               } else {
-                                       if (yych <= 'A') goto yy755;
-                                       if (yych >= 'D') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'G') {
-                                       if (yych == 'F') goto yy755;
-                               } else {
-                                       if (yych <= 'J') goto yy755;
-                                       if (yych >= 'M') goto yy755;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'h') {
-                       if (yych <= 'a') {
-                               if (yych <= 'W') {
-                                       if (yych <= 'R') goto yy748;
-                                       if (yych <= 'V') goto yy755;
-                                       goto yy774;
-                               } else {
-                                       if (yych <= 'Y') goto yy755;
-                                       if (yych >= 'a') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'e') {
-                                       if (yych == 'd') goto yy755;
-                               } else {
-                                       if (yych != 'g') goto yy755;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'l') {
-                                       if (yych == 'j') goto yy755;
-                               } else {
-                                       if (yych <= 'o') goto yy755;
-                                       if (yych >= 's') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy755;
-                               } else {
-                                       if (yych <= 'y') goto yy755;
-                                       if (yych == 0xC2) goto yy755;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 's':
+       case 't':
+       case 'w':
+       case 'y':       goto yy730;
+       case '-':       goto yy727;
+       case '.':       goto yy731;
+       case '/':       goto yy728;
+       case '0':       goto yy744;
+       case '1':       goto yy745;
+       case '2':       goto yy747;
+       case '3':       goto yy748;
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy54;
+       case ':':       goto yy746;
+       case 'W':       goto yy749;
+       default:        goto yy723;
        }
-yy748:
-       YYDEBUG(748, *YYCURSOR);
-#line 1590 "ext/date/lib/parse_date.re"
+yy723:
+#line 1531 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("year4");
                TIMELIB_INIT;
@@ -12395,13 +11107,12 @@ yy748:
                TIMELIB_DEINIT;
                return TIMELIB_CLF;
        }
-#line 12399 "<stdout>"
-yy749:
-       YYDEBUG(749, *YYCURSOR);
+#line 11111 "ext/date/lib/parse_date.c"
+yy724:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '0':       goto yy750;
-       case '1':       goto yy751;
+       case '0':       goto yy725;
+       case '1':       goto yy726;
        case '2':
        case '3':
        case '4':
@@ -12409,45 +11120,42 @@ yy749:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy717;
+       case '9':       goto yy692;
        case 'A':
-       case 'a':       goto yy710;
+       case 'a':       goto yy685;
        case 'D':
-       case 'd':       goto yy714;
+       case 'd':       goto yy689;
        case 'F':
-       case 'f':       goto yy708;
+       case 'f':       goto yy683;
        case 'J':
-       case 'j':       goto yy707;
+       case 'j':       goto yy682;
        case 'M':
-       case 'm':       goto yy709;
+       case 'm':       goto yy684;
        case 'N':
-       case 'n':       goto yy713;
+       case 'n':       goto yy688;
        case 'O':
-       case 'o':       goto yy712;
+       case 'o':       goto yy687;
        case 'S':
-       case 's':       goto yy711;
+       case 's':       goto yy686;
        default:        goto yy56;
        }
-yy750:
-       YYDEBUG(750, *YYCURSOR);
+yy725:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy718;
+       if (yych == '-') goto yy693;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy717;
+       if (yych <= '9') goto yy692;
        goto yy56;
-yy751:
-       YYDEBUG(751, *YYCURSOR);
+yy726:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy718;
+       if (yych == '-') goto yy693;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy717;
+       if (yych <= '2') goto yy692;
        goto yy56;
-yy752:
-       YYDEBUG(752, *YYCURSOR);
+yy727:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '0':       goto yy937;
-       case '1':       goto yy939;
+       case '0':       goto yy912;
+       case '1':       goto yy914;
        case '2':
        case '3':
        case '4':
@@ -12455,152 +11163,89 @@ yy752:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy940;
+       case '9':       goto yy915;
        case 'A':
-       case 'a':       goto yy931;
+       case 'a':       goto yy906;
        case 'D':
-       case 'd':       goto yy935;
+       case 'd':       goto yy910;
        case 'F':
-       case 'f':       goto yy929;
+       case 'f':       goto yy904;
        case 'J':
-       case 'j':       goto yy928;
+       case 'j':       goto yy903;
        case 'M':
-       case 'm':       goto yy930;
+       case 'm':       goto yy905;
        case 'N':
-       case 'n':       goto yy934;
+       case 'n':       goto yy909;
        case 'O':
-       case 'o':       goto yy933;
+       case 'o':       goto yy908;
        case 'S':
-       case 's':       goto yy932;
-       case 'W':       goto yy936;
-       default:        goto yy903;
+       case 's':       goto yy907;
+       case 'W':       goto yy911;
+       default:        goto yy878;
        }
-yy753:
-       YYDEBUG(753, *YYCURSOR);
+yy728:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy911;
-       if (yych <= '1') goto yy912;
-       if (yych <= '9') goto yy913;
+       if (yych <= '0') goto yy886;
+       if (yych <= '1') goto yy887;
+       if (yych <= '9') goto yy888;
        goto yy56;
-yy754:
-       YYDEBUG(754, *YYCURSOR);
+yy729:
        ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
        yych = *YYCURSOR;
-yy755:
-       YYDEBUG(755, *YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'G') {
-                       if (yych <= '.') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy754;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= ' ') goto yy754;
-                                       if (yych <= ',') goto yy56;
-                                       goto yy902;
-                               }
-                       } else {
-                               if (yych <= 'C') {
-                                       if (yych == 'A') goto yy764;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'D') goto yy768;
-                                       if (yych == 'F') goto yy762;
-                                       goto yy56;
-                               }
-                       }
-               } else {
-                       if (yych <= 'N') {
-                               if (yych <= 'J') {
-                                       if (yych <= 'H') goto yy65;
-                                       if (yych <= 'I') goto yy757;
-                                       goto yy761;
-                               } else {
-                                       if (yych <= 'L') goto yy56;
-                                       if (yych <= 'M') goto yy763;
-                                       goto yy767;
-                               }
-                       } else {
-                               if (yych <= 'S') {
-                                       if (yych <= 'O') goto yy766;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy765;
-                               } else {
-                                       if (yych <= 'T') goto yy70;
-                                       if (yych <= 'U') goto yy63;
-                                       if (yych <= 'V') goto yy759;
-                                       goto yy69;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= '`') {
-                                       if (yych <= 'X') goto yy760;
-                                       if (yych <= 'Y') goto yy68;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'a') goto yy764;
-                                       if (yych <= 'c') goto yy56;
-                                       goto yy768;
-                               }
-                       } else {
-                               if (yych <= 'g') {
-                                       if (yych == 'f') goto yy762;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'h') goto yy65;
-                                       if (yych == 'j') goto yy761;
-                                       goto yy56;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'o') {
-                                       if (yych <= 'm') goto yy763;
-                                       if (yych <= 'n') goto yy767;
-                                       goto yy766;
-                               } else {
-                                       if (yych <= 'r') goto yy56;
-                                       if (yych <= 's') goto yy765;
-                                       if (yych <= 't') goto yy70;
-                                       goto yy63;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy69;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'y') goto yy68;
-                                       if (yych == 0xC2) goto yy62;
-                                       goto yy56;
-                               }
-                       }
-               }
+yy730:
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy729;
+       case '-':
+       case '.':       goto yy877;
+       case 'A':
+       case 'a':       goto yy739;
+       case 'D':
+       case 'd':       goto yy743;
+       case 'F':
+       case 'f':       goto yy737;
+       case 'H':
+       case 'h':       goto yy63;
+       case 'I':       goto yy732;
+       case 'J':
+       case 'j':       goto yy736;
+       case 'M':
+       case 'm':       goto yy738;
+       case 'N':
+       case 'n':       goto yy742;
+       case 'O':
+       case 'o':       goto yy741;
+       case 'S':
+       case 's':       goto yy740;
+       case 'T':
+       case 't':       goto yy68;
+       case 'V':       goto yy734;
+       case 'W':
+       case 'w':       goto yy67;
+       case 'X':       goto yy735;
+       case 'Y':
+       case 'y':       goto yy66;
+       default:        goto yy56;
        }
-yy756:
-       YYDEBUG(756, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy903;
-       if (yych <= '0') goto yy895;
-       if (yych <= '2') goto yy896;
-       if (yych <= '3') goto yy897;
-       goto yy903;
-yy757:
-       YYDEBUG(757, *YYCURSOR);
+yy731:
+       yych = *++YYCURSOR;
+       if (yych <= '/') goto yy878;
+       if (yych <= '0') goto yy870;
+       if (yych <= '2') goto yy871;
+       if (yych <= '3') goto yy872;
+       goto yy878;
+yy732:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= 'U') {
-               if (yych == 'I') goto yy894;
+               if (yych == 'I') goto yy869;
        } else {
-               if (yych == 'W') goto yy758;
-               if (yych <= 'X') goto yy848;
+               if (yych == 'W') goto yy733;
+               if (yych <= 'X') goto yy823;
        }
-yy758:
-       YYDEBUG(758, *YYCURSOR);
-#line 1411 "ext/date/lib/parse_date.re"
+yy733:
+#line 1352 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("datenodayrev");
@@ -12613,228 +11258,201 @@ yy758:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NO_DAY;
        }
-#line 12617 "<stdout>"
-yy759:
-       YYDEBUG(759, *YYCURSOR);
+#line 11262 "ext/date/lib/parse_date.c"
+yy734:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy892;
-       goto yy758;
-yy760:
-       YYDEBUG(760, *YYCURSOR);
+       if (yych == 'I') goto yy867;
+       goto yy733;
+yy735:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy891;
-       goto yy758;
-yy761:
-       YYDEBUG(761, *YYCURSOR);
+       if (yych == 'I') goto yy866;
+       goto yy733;
+yy736:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy884;
+               if (yych == 'A') goto yy859;
                if (yych <= 'T') goto yy56;
-               goto yy883;
+               goto yy858;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy884;
+                       goto yy859;
                } else {
-                       if (yych == 'u') goto yy883;
+                       if (yych == 'u') goto yy858;
                        goto yy56;
                }
        }
-yy762:
-       YYDEBUG(762, *YYCURSOR);
+yy737:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= 'N') {
-                       if (yych == 'E') goto yy877;
+                       if (yych == 'E') goto yy852;
                        goto yy56;
                } else {
-                       if (yych <= 'O') goto yy100;
+                       if (yych <= 'O') goto yy98;
                        if (yych <= 'Q') goto yy56;
-                       goto yy99;
+                       goto yy97;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych == 'e') goto yy877;
+                       if (yych == 'e') goto yy852;
                        goto yy56;
                } else {
-                       if (yych <= 'o') goto yy100;
-                       if (yych == 'r') goto yy99;
+                       if (yych <= 'o') goto yy98;
+                       if (yych == 'r') goto yy97;
                        goto yy56;
                }
        }
-yy763:
-       YYDEBUG(763, *YYCURSOR);
+yy738:
        yych = *++YYCURSOR;
-       if (yych <= 'S') {
-               if (yych <= 'I') {
-                       if (yych == 'A') goto yy874;
-                       if (yych <= 'H') goto yy56;
-                       goto yy138;
+       if (yych <= 'O') {
+               if (yych <= 'H') {
+                       if (yych == 'A') goto yy849;
+                       goto yy56;
                } else {
-                       if (yych == 'O') goto yy137;
-                       if (yych <= 'R') goto yy56;
-                       goto yy139;
+                       if (yych <= 'I') goto yy117;
+                       if (yych <= 'N') goto yy56;
+                       goto yy116;
                }
        } else {
-               if (yych <= 'i') {
-                       if (yych == 'a') goto yy874;
-                       if (yych <= 'h') goto yy56;
-                       goto yy138;
+               if (yych <= 'h') {
+                       if (yych == 'a') goto yy849;
+                       goto yy56;
                } else {
-                       if (yych <= 'o') {
-                               if (yych <= 'n') goto yy56;
-                               goto yy137;
-                       } else {
-                               if (yych == 's') goto yy139;
-                               goto yy56;
-                       }
+                       if (yych <= 'i') goto yy117;
+                       if (yych == 'o') goto yy116;
+                       goto yy56;
                }
        }
-yy764:
-       YYDEBUG(764, *YYCURSOR);
+yy739:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy868;
+               if (yych == 'P') goto yy843;
                if (yych <= 'T') goto yy56;
-               goto yy867;
+               goto yy842;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy868;
+                       goto yy843;
                } else {
-                       if (yych == 'u') goto yy867;
+                       if (yych == 'u') goto yy842;
                        goto yy56;
                }
        }
-yy765:
-       YYDEBUG(765, *YYCURSOR);
+yy740:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= 'D') {
-                       if (yych == 'A') goto yy119;
+                       if (yych == 'A') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'E') goto yy860;
+                       if (yych <= 'E') goto yy835;
                        if (yych <= 'T') goto yy56;
-                       goto yy118;
+                       goto yy125;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych == 'a') goto yy119;
+                       if (yych == 'a') goto yy126;
                        goto yy56;
                } else {
-                       if (yych <= 'e') goto yy860;
-                       if (yych == 'u') goto yy118;
+                       if (yych <= 'e') goto yy835;
+                       if (yych == 'u') goto yy125;
                        goto yy56;
                }
        }
-yy766:
-       YYDEBUG(766, *YYCURSOR);
+yy741:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy855;
-       if (yych == 'c') goto yy855;
+       if (yych == 'C') goto yy830;
+       if (yych == 'c') goto yy830;
        goto yy56;
-yy767:
-       YYDEBUG(767, *YYCURSOR);
+yy742:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy849;
-       if (yych == 'o') goto yy849;
+       if (yych == 'O') goto yy824;
+       if (yych == 'o') goto yy824;
        goto yy56;
-yy768:
-       YYDEBUG(768, *YYCURSOR);
+yy743:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
-               if (yych == 'A') goto yy115;
+               if (yych == 'A') goto yy113;
                if (yych <= 'D') goto yy56;
-               goto yy842;
+               goto yy817;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy115;
+                       goto yy113;
                } else {
-                       if (yych == 'e') goto yy842;
+                       if (yych == 'e') goto yy817;
                        goto yy56;
                }
        }
-yy769:
-       YYDEBUG(769, *YYCURSOR);
+yy744:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '0') goto yy839;
-       if (yych <= '9') goto yy840;
+       if (yych <= '0') goto yy814;
+       if (yych <= '9') goto yy815;
        goto yy60;
-yy770:
-       YYDEBUG(770, *YYCURSOR);
+yy745:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '2') goto yy808;
-       if (yych <= '9') goto yy787;
+       if (yych <= '2') goto yy783;
+       if (yych <= '9') goto yy762;
        goto yy60;
-yy771:
-       YYDEBUG(771, *YYCURSOR);
+yy746:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy788;
-       if (yych <= '1') goto yy789;
+       if (yych <= '0') goto yy763;
+       if (yych <= '1') goto yy764;
        goto yy56;
-yy772:
-       YYDEBUG(772, *YYCURSOR);
+yy747:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy787;
+       if (yych <= '9') goto yy762;
        goto yy60;
-yy773:
-       YYDEBUG(773, *YYCURSOR);
+yy748:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '5') goto yy783;
-       if (yych <= '6') goto yy784;
+       if (yych <= '5') goto yy758;
+       if (yych <= '6') goto yy759;
        if (yych <= '9') goto yy54;
        goto yy60;
-yy774:
-       YYDEBUG(774, *YYCURSOR);
+yy749:
        yych = *++YYCURSOR;
        if (yych <= '5') {
                if (yych <= '/') goto yy56;
-               if (yych <= '0') goto yy775;
-               if (yych <= '4') goto yy776;
-               goto yy777;
+               if (yych <= '0') goto yy750;
+               if (yych <= '4') goto yy751;
+               goto yy752;
        } else {
                if (yych <= 'E') {
                        if (yych <= 'D') goto yy56;
-                       goto yy84;
+                       goto yy82;
                } else {
-                       if (yych == 'e') goto yy84;
+                       if (yych == 'e') goto yy82;
                        goto yy56;
                }
        }
-yy775:
-       YYDEBUG(775, *YYCURSOR);
+yy750:
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy56;
-       if (yych <= '9') goto yy778;
+       if (yych <= '9') goto yy753;
        goto yy56;
-yy776:
-       YYDEBUG(776, *YYCURSOR);
+yy751:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy778;
+       if (yych <= '9') goto yy753;
        goto yy56;
-yy777:
-       YYDEBUG(777, *YYCURSOR);
+yy752:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '4') goto yy56;
-yy778:
-       YYDEBUG(778, *YYCURSOR);
+yy753:
        yyaccept = 16;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '-') goto yy780;
-       if (yych <= '/') goto yy779;
-       if (yych <= '7') goto yy781;
-yy779:
-       YYDEBUG(779, *YYCURSOR);
-#line 1522 "ext/date/lib/parse_date.re"
+       if (yych == '-') goto yy755;
+       if (yych <= '/') goto yy754;
+       if (yych <= '7') goto yy756;
+yy754:
+#line 1463 "ext/date/lib/parse_date.re"
        {
                timelib_sll w, d;
                DEBUG_OUTPUT("isoweek");
@@ -12852,17 +11470,14 @@ yy779:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_WEEK;
        }
-#line 12856 "<stdout>"
-yy780:
-       YYDEBUG(780, *YYCURSOR);
+#line 11474 "ext/date/lib/parse_date.c"
+yy755:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '8') goto yy56;
-yy781:
-       YYDEBUG(781, *YYCURSOR);
+yy756:
        ++YYCURSOR;
-       YYDEBUG(782, *YYCURSOR);
-#line 1503 "ext/date/lib/parse_date.re"
+#line 1444 "ext/date/lib/parse_date.re"
        {
                timelib_sll w, d;
                DEBUG_OUTPUT("isoweekday");
@@ -12880,28 +11495,25 @@ yy781:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_WEEK;
        }
-#line 12884 "<stdout>"
-yy783:
-       YYDEBUG(783, *YYCURSOR);
+#line 11499 "ext/date/lib/parse_date.c"
+yy758:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy785;
+       if (yych <= '9') goto yy760;
        goto yy60;
-yy784:
-       YYDEBUG(784, *YYCURSOR);
+yy759:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '6') goto yy785;
+       if (yych <= '6') goto yy760;
        if (yych <= '9') goto yy54;
        goto yy60;
-yy785:
-       YYDEBUG(785, *YYCURSOR);
+yy760:
        yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
-       if (yych <= 'X') {
+       if (yych <= 'W') {
                if (yych <= 'F') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
@@ -12915,42 +11527,35 @@ yy785:
                                if (yych == 'H') goto yy60;
                                if (yych >= 'M') goto yy60;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych >= 'S') goto yy60;
-                               } else {
-                                       if (yych == 'W') goto yy60;
-                               }
+                               if (yych <= 'R') goto yy761;
+                               if (yych <= 'T') goto yy60;
+                               if (yych >= 'W') goto yy60;
                        }
                }
        } else {
-               if (yych <= 'm') {
-                       if (yych <= 'e') {
-                               if (yych <= 'Y') goto yy60;
-                               if (yych == 'd') goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy60;
+                               if (yych >= 'd') goto yy60;
                        } else {
-                               if (yych <= 'g') {
-                                       if (yych <= 'f') goto yy60;
-                               } else {
-                                       if (yych <= 'h') goto yy60;
-                                       if (yych >= 'm') goto yy60;
-                               }
+                               if (yych == 'f') goto yy60;
+                               if (yych >= 'h') goto yy60;
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') goto yy786;
-                               if (yych != 'v') goto yy60;
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych >= 's') goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych >= 'y') goto yy60;
+                               if (yych <= 'w') {
+                                       if (yych >= 'w') goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                }
                        }
                }
        }
-yy786:
-       YYDEBUG(786, *YYCURSOR);
-#line 1489 "ext/date/lib/parse_date.re"
+yy761:
+#line 1430 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("pgydotd");
@@ -12963,110 +11568,89 @@ yy786:
                TIMELIB_DEINIT;
                return TIMELIB_PG_YEARDAY;
        }
-#line 12967 "<stdout>"
-yy787:
-       YYDEBUG(787, *YYCURSOR);
+#line 11572 "ext/date/lib/parse_date.c"
+yy762:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy785;
+       if (yych <= '9') goto yy760;
        goto yy60;
-yy788:
-       YYDEBUG(788, *YYCURSOR);
+yy763:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy790;
+       if (yych <= '9') goto yy765;
        goto yy56;
-yy789:
-       YYDEBUG(789, *YYCURSOR);
+yy764:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '3') goto yy56;
-yy790:
-       YYDEBUG(790, *YYCURSOR);
+yy765:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(791, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy792;
-       if (yych <= '2') goto yy793;
-       if (yych <= '3') goto yy794;
+       if (yych <= '0') goto yy767;
+       if (yych <= '2') goto yy768;
+       if (yych <= '3') goto yy769;
        goto yy56;
-yy792:
-       YYDEBUG(792, *YYCURSOR);
+yy767:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy795;
+       if (yych <= '9') goto yy770;
        goto yy56;
-yy793:
-       YYDEBUG(793, *YYCURSOR);
+yy768:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy795;
+       if (yych <= '9') goto yy770;
        goto yy56;
-yy794:
-       YYDEBUG(794, *YYCURSOR);
+yy769:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '2') goto yy56;
-yy795:
-       YYDEBUG(795, *YYCURSOR);
+yy770:
        yych = *++YYCURSOR;
        if (yych != ' ') goto yy56;
-       YYDEBUG(796, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy797;
-       if (yych <= '2') goto yy798;
+       if (yych <= '1') goto yy772;
+       if (yych <= '2') goto yy773;
        goto yy56;
-yy797:
-       YYDEBUG(797, *YYCURSOR);
+yy772:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy799;
+       if (yych <= '9') goto yy774;
        goto yy56;
-yy798:
-       YYDEBUG(798, *YYCURSOR);
+yy773:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '5') goto yy56;
-yy799:
-       YYDEBUG(799, *YYCURSOR);
+yy774:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(800, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '6') goto yy56;
-       YYDEBUG(801, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(802, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(803, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy804;
-       if (yych <= '6') goto yy805;
+       if (yych <= '5') goto yy779;
+       if (yych <= '6') goto yy780;
        goto yy56;
-yy804:
-       YYDEBUG(804, *YYCURSOR);
+yy779:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy806;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy805:
-       YYDEBUG(805, *YYCURSOR);
+yy780:
        yych = *++YYCURSOR;
        if (yych != '0') goto yy56;
-yy806:
-       YYDEBUG(806, *YYCURSOR);
+yy781:
        ++YYCURSOR;
-yy807:
-       YYDEBUG(807, *YYCURSOR);
-#line 1463 "ext/date/lib/parse_date.re"
+yy782:
+#line 1404 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -13080,313 +11664,274 @@ yy807:
                s->time->i = timelib_get_nr((char **) &ptr, 2);
                s->time->s = timelib_get_nr((char **) &ptr, 2);
                if (*ptr == '.') {
-                       s->time->us = timelib_get_frac_nr((char **) &ptr, 9);
+                       s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
                        if (*ptr) { /* timezone is optional */
                                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                                if (tz_not_found) {
-                                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                                       add_error(s, "The timezone could not be found in the database");
                                }
                        }
                }
                TIMELIB_DEINIT;
                return TIMELIB_XMLRPC_SOAP;
        }
-#line 13095 "<stdout>"
-yy808:
-       YYDEBUG(808, *YYCURSOR);
+#line 11679 "ext/date/lib/parse_date.c"
+yy783:
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy60;
-               if (yych >= '1') goto yy810;
+               if (yych >= '1') goto yy785;
        } else {
-               if (yych <= '3') goto yy811;
-               if (yych <= '9') goto yy785;
+               if (yych <= '3') goto yy786;
+               if (yych <= '9') goto yy760;
                goto yy60;
        }
-yy809:
-       YYDEBUG(809, *YYCURSOR);
+yy784:
        yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy786;
+                               if (yych <= 0x1F) goto yy761;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy786;
-                                       goto yy812;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy786;
-                               }
+                               if (yych <= '/') goto yy761;
+                               if (yych <= '9') goto yy787;
+                               if (yych <= 'C') goto yy761;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy786;
-                               if (yych <= 'H') goto yy60;
-                               goto yy786;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy761;
+                               goto yy60;
                        } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy786;
-                               } else {
-                                       if (yych == 'V') goto yy786;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy761;
                                        goto yy60;
+                               } else {
+                                       if (yych <= 'R') goto yy761;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy761;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy786;
-                               goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy761;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy761;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy786;
-                                       goto yy60;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy761;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy786;
+                                       if (yych == 'g') goto yy761;
+                                       goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy786;
-                               } else {
-                                       if (yych == 'v') goto yy786;
-                                       goto yy60;
-                               }
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy761;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy786;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy761;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy786;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy761;
                                }
                        }
                }
        }
-yy810:
-       YYDEBUG(810, *YYCURSOR);
+yy785:
        yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy786;
+                               if (yych <= 0x1F) goto yy761;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy786;
-                                       goto yy812;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy786;
-                               }
-                       }
-               } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy786;
-                               if (yych <= 'H') goto yy60;
-                               goto yy786;
-                       } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy786;
-                               } else {
-                                       if (yych == 'V') goto yy786;
-                                       goto yy60;
-                               }
+                               if (yych <= '/') goto yy761;
+                               if (yych <= '9') goto yy787;
+                               if (yych <= 'C') goto yy761;
+                               goto yy60;
                        }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy786;
+               } else {
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy761;
                                goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy786;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy761;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy786;
+                                       if (yych <= 'R') goto yy761;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy761;
                                }
                        }
-               } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy786;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy761;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy761;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy761;
                                } else {
-                                       if (yych == 'v') goto yy786;
+                                       if (yych == 'g') goto yy761;
                                        goto yy60;
                                }
+                       }
+               } else {
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy761;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy786;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy761;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy786;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy761;
                                }
                        }
                }
        }
-yy811:
-       YYDEBUG(811, *YYCURSOR);
+yy786:
        yyaccept = 17;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
+       if (yych <= 'V') {
                if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy786;
+                               if (yych <= 0x1F) goto yy761;
                                goto yy60;
                        } else {
                                if (yych <= '1') {
-                                       if (yych <= '/') goto yy786;
+                                       if (yych <= '/') goto yy761;
                                } else {
                                        if (yych <= '9') goto yy54;
-                                       if (yych <= 'C') goto yy786;
+                                       if (yych <= 'C') goto yy761;
                                        goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych <= 'F') {
-                                       if (yych <= 'E') goto yy786;
-                                       goto yy60;
-                               } else {
-                                       if (yych == 'H') goto yy60;
-                                       goto yy786;
-                               }
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy761;
+                               goto yy60;
                        } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy786;
-                               } else {
-                                       if (yych == 'V') goto yy786;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy761;
                                        goto yy60;
+                               } else {
+                                       if (yych <= 'R') goto yy761;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy761;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy786;
-                               goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy761;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy761;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy786;
-                                       goto yy60;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy761;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy786;
+                                       if (yych == 'g') goto yy761;
+                                       goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy786;
-                               } else {
-                                       if (yych == 'v') goto yy786;
-                                       goto yy60;
-                               }
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy761;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy786;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy761;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy786;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy761;
                                }
                        }
                }
        }
-yy812:
-       YYDEBUG(812, *YYCURSOR);
+yy787:
        yyaccept = 18;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
-       if (yych <= 'X') {
-               if (yych <= 'G') {
+       if (yych <= 'W') {
+               if (yych <= 'F') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy59;
                                if (yych >= ' ') goto yy59;
                        } else {
-                               if (yych <= 'D') {
-                                       if (yych >= 'D') goto yy66;
-                               } else {
-                                       if (yych == 'F') goto yy67;
-                               }
+                               if (yych == 'D') goto yy64;
+                               if (yych >= 'F') goto yy65;
                        }
                } else {
-                       if (yych <= 'S') {
-                               if (yych <= 'L') {
-                                       if (yych <= 'H') goto yy65;
-                               } else {
-                                       if (yych <= 'M') goto yy61;
-                                       if (yych >= 'S') goto yy64;
-                               }
+                       if (yych <= 'M') {
+                               if (yych == 'H') goto yy63;
+                               if (yych >= 'M') goto yy62;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych <= 'T') goto yy814;
-                                       goto yy63;
+                               if (yych <= 'S') {
+                                       if (yych >= 'S') goto yy61;
                                } else {
-                                       if (yych == 'W') goto yy69;
+                                       if (yych <= 'T') goto yy789;
+                                       if (yych >= 'W') goto yy67;
                                }
                        }
                }
        } else {
-               if (yych <= 'r') {
-                       if (yych <= 'f') {
-                               if (yych <= 'c') {
-                                       if (yych <= 'Y') goto yy68;
-                               } else {
-                                       if (yych <= 'd') goto yy66;
-                                       if (yych >= 'f') goto yy67;
-                               }
+               if (yych <= 'l') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy66;
+                               if (yych >= 'd') goto yy64;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych >= 'h') goto yy65;
+                               if (yych <= 'f') {
+                                       if (yych >= 'f') goto yy65;
                                } else {
-                                       if (yych == 'm') goto yy61;
+                                       if (yych == 'h') goto yy63;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 't') {
-                                       if (yych <= 's') goto yy64;
-                                       goto yy815;
-                               } else {
-                                       if (yych <= 'u') goto yy63;
-                                       if (yych >= 'w') goto yy69;
-                               }
+                       if (yych <= 't') {
+                               if (yych <= 'm') goto yy62;
+                               if (yych <= 'r') goto yy788;
+                               if (yych <= 's') goto yy61;
+                               goto yy790;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych >= 'y') goto yy68;
+                               if (yych <= 'w') {
+                                       if (yych >= 'w') goto yy67;
                                } else {
-                                       if (yych == 0xC2) goto yy62;
+                                       if (yych == 'y') goto yy66;
                                }
                        }
                }
        }
-yy813:
-       YYDEBUG(813, *YYCURSOR);
-#line 1451 "ext/date/lib/parse_date.re"
+yy788:
+#line 1392 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("datenocolon");
                TIMELIB_INIT;
@@ -13397,926 +11942,801 @@ yy813:
                TIMELIB_DEINIT;
                return TIMELIB_DATE_NOCOLON;
        }
-#line 13401 "<stdout>"
-yy814:
-       YYDEBUG(814, *YYCURSOR);
+#line 11946 "ext/date/lib/parse_date.c"
+yy789:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= '2') {
                        if (yych <= '/') goto yy56;
-                       if (yych <= '1') goto yy829;
-                       goto yy830;
+                       if (yych <= '1') goto yy804;
+                       goto yy805;
                } else {
-                       if (yych <= '9') goto yy831;
+                       if (yych <= '9') goto yy806;
                        if (yych <= 'G') goto yy56;
-                       goto yy71;
+                       goto yy69;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych == 'U') goto yy72;
+                       if (yych == 'U') goto yy70;
                        goto yy56;
                } else {
-                       if (yych <= 'h') goto yy71;
-                       if (yych == 'u') goto yy72;
+                       if (yych <= 'h') goto yy69;
+                       if (yych == 'u') goto yy70;
                        goto yy56;
                }
        }
-yy815:
-       YYDEBUG(815, *YYCURSOR);
+yy790:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= '2') {
                        if (yych <= '/') goto yy56;
-                       if (yych >= '2') goto yy817;
+                       if (yych >= '2') goto yy792;
                } else {
-                       if (yych <= '9') goto yy818;
+                       if (yych <= '9') goto yy793;
                        if (yych <= 'G') goto yy56;
-                       goto yy71;
+                       goto yy69;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych == 'U') goto yy72;
+                       if (yych == 'U') goto yy70;
                        goto yy56;
                } else {
-                       if (yych <= 'h') goto yy71;
-                       if (yych == 'u') goto yy72;
+                       if (yych <= 'h') goto yy69;
+                       if (yych == 'u') goto yy70;
                        goto yy56;
                }
        }
-       YYDEBUG(816, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy823;
-       if (yych <= '9') goto yy818;
+       if (yych <= '5') goto yy798;
+       if (yych <= '9') goto yy793;
        goto yy56;
-yy817:
-       YYDEBUG(817, *YYCURSOR);
+yy792:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '4') goto yy823;
-       if (yych <= '5') goto yy819;
+       if (yych <= '4') goto yy798;
+       if (yych <= '5') goto yy794;
        goto yy56;
-yy818:
-       YYDEBUG(818, *YYCURSOR);
+yy793:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '6') goto yy56;
-yy819:
-       YYDEBUG(819, *YYCURSOR);
+yy794:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy820:
-       YYDEBUG(820, *YYCURSOR);
+yy795:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy821;
-       if (yych <= '6') goto yy822;
+       if (yych <= '5') goto yy796;
+       if (yych <= '6') goto yy797;
        goto yy56;
-yy821:
-       YYDEBUG(821, *YYCURSOR);
+yy796:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy806;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy822:
-       YYDEBUG(822, *YYCURSOR);
+yy797:
        yych = *++YYCURSOR;
-       if (yych == '0') goto yy806;
+       if (yych == '0') goto yy781;
        goto yy56;
-yy823:
-       YYDEBUG(823, *YYCURSOR);
+yy798:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy824;
-       if (yych <= '9') goto yy820;
+       if (yych <= '5') goto yy799;
+       if (yych <= '9') goto yy795;
        goto yy56;
-yy824:
-       YYDEBUG(824, *YYCURSOR);
+yy799:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy825;
-       if (yych <= '6') goto yy826;
-       if (yych <= '9') goto yy820;
+       if (yych <= '5') goto yy800;
+       if (yych <= '6') goto yy801;
+       if (yych <= '9') goto yy795;
        goto yy56;
-yy825:
-       YYDEBUG(825, *YYCURSOR);
+yy800:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy827;
-       if (yych <= '6') goto yy828;
-       if (yych <= '9') goto yy806;
+       if (yych <= '5') goto yy802;
+       if (yych <= '6') goto yy803;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy826:
-       YYDEBUG(826, *YYCURSOR);
+yy801:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy827;
-       if (yych <= '5') goto yy821;
-       if (yych <= '6') goto yy822;
+       if (yych <= '0') goto yy802;
+       if (yych <= '5') goto yy796;
+       if (yych <= '6') goto yy797;
        goto yy56;
-yy827:
-       YYDEBUG(827, *YYCURSOR);
+yy802:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '9') goto yy806;
-       goto yy807;
-yy828:
-       YYDEBUG(828, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '9') goto yy781;
+       goto yy782;
+yy803:
        yych = *++YYCURSOR;
-       if (yych == '0') goto yy806;
-       goto yy807;
-yy829:
-       YYDEBUG(829, *YYCURSOR);
+       if (yych == '0') goto yy781;
+       goto yy782;
+yy804:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy838;
-       if (yych <= '9') goto yy831;
-       if (yych <= ':') goto yy832;
+       if (yych <= '5') goto yy813;
+       if (yych <= '9') goto yy806;
+       if (yych <= ':') goto yy807;
        goto yy56;
-yy830:
-       YYDEBUG(830, *YYCURSOR);
+yy805:
        yych = *++YYCURSOR;
        if (yych <= '5') {
                if (yych <= '/') goto yy56;
-               if (yych <= '4') goto yy838;
-               goto yy819;
+               if (yych <= '4') goto yy813;
+               goto yy794;
        } else {
-               if (yych == ':') goto yy832;
+               if (yych == ':') goto yy807;
                goto yy56;
        }
-yy831:
-       YYDEBUG(831, *YYCURSOR);
+yy806:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy819;
+       if (yych <= '5') goto yy794;
        if (yych != ':') goto yy56;
-yy832:
-       YYDEBUG(832, *YYCURSOR);
+yy807:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= '6') goto yy56;
-       YYDEBUG(833, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(834, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(835, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy836;
-       if (yych <= '6') goto yy837;
+       if (yych <= '5') goto yy811;
+       if (yych <= '6') goto yy812;
        goto yy56;
-yy836:
-       YYDEBUG(836, *YYCURSOR);
+yy811:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy806;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy837:
-       YYDEBUG(837, *YYCURSOR);
+yy812:
        yych = *++YYCURSOR;
-       if (yych == '0') goto yy806;
+       if (yych == '0') goto yy781;
        goto yy56;
-yy838:
-       YYDEBUG(838, *YYCURSOR);
+yy813:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy824;
-       if (yych <= '9') goto yy820;
-       if (yych <= ':') goto yy832;
+       if (yych <= '5') goto yy799;
+       if (yych <= '9') goto yy795;
+       if (yych <= ':') goto yy807;
        goto yy56;
-yy839:
-       YYDEBUG(839, *YYCURSOR);
+yy814:
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy60;
-               if (yych <= '0') goto yy841;
-               goto yy810;
+               if (yych <= '0') goto yy816;
+               goto yy785;
        } else {
-               if (yych <= '3') goto yy811;
-               if (yych <= '9') goto yy785;
+               if (yych <= '3') goto yy786;
+               if (yych <= '9') goto yy760;
                goto yy60;
        }
-yy840:
-       YYDEBUG(840, *YYCURSOR);
+yy815:
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy60;
-               if (yych <= '0') goto yy809;
-               goto yy810;
+               if (yych <= '0') goto yy784;
+               goto yy785;
        } else {
-               if (yych <= '3') goto yy811;
-               if (yych <= '9') goto yy785;
+               if (yych <= '3') goto yy786;
+               if (yych <= '9') goto yy760;
                goto yy60;
        }
-yy841:
-       YYDEBUG(841, *YYCURSOR);
+yy816:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy812;
+       if (yych <= '9') goto yy787;
        goto yy60;
-yy842:
-       YYDEBUG(842, *YYCURSOR);
+yy817:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy843;
+       if (yych == 'C') goto yy818;
        if (yych != 'c') goto yy56;
-yy843:
-       YYDEBUG(843, *YYCURSOR);
+yy818:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy844;
-       if (yych != 'e') goto yy758;
-yy844:
-       YYDEBUG(844, *YYCURSOR);
+       if (yych == 'E') goto yy819;
+       if (yych != 'e') goto yy733;
+yy819:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy845;
+       if (yych == 'M') goto yy820;
        if (yych != 'm') goto yy56;
-yy845:
-       YYDEBUG(845, *YYCURSOR);
+yy820:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy846;
+       if (yych == 'B') goto yy821;
        if (yych != 'b') goto yy56;
-yy846:
-       YYDEBUG(846, *YYCURSOR);
+yy821:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy847;
+       if (yych == 'E') goto yy822;
        if (yych != 'e') goto yy56;
-yy847:
-       YYDEBUG(847, *YYCURSOR);
+yy822:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy848;
+       if (yych == 'R') goto yy823;
        if (yych != 'r') goto yy56;
-yy848:
-       YYDEBUG(848, *YYCURSOR);
+yy823:
        yych = *++YYCURSOR;
-       goto yy758;
-yy849:
-       YYDEBUG(849, *YYCURSOR);
+       goto yy733;
+yy824:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy850;
+       if (yych == 'V') goto yy825;
        if (yych != 'v') goto yy56;
-yy850:
-       YYDEBUG(850, *YYCURSOR);
+yy825:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy851;
-       if (yych != 'e') goto yy758;
-yy851:
-       YYDEBUG(851, *YYCURSOR);
+       if (yych == 'E') goto yy826;
+       if (yych != 'e') goto yy733;
+yy826:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy852;
+       if (yych == 'M') goto yy827;
        if (yych != 'm') goto yy56;
-yy852:
-       YYDEBUG(852, *YYCURSOR);
+yy827:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy853;
+       if (yych == 'B') goto yy828;
        if (yych != 'b') goto yy56;
-yy853:
-       YYDEBUG(853, *YYCURSOR);
+yy828:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy854;
+       if (yych == 'E') goto yy829;
        if (yych != 'e') goto yy56;
-yy854:
-       YYDEBUG(854, *YYCURSOR);
+yy829:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy848;
-       if (yych == 'r') goto yy848;
+       if (yych == 'R') goto yy823;
+       if (yych == 'r') goto yy823;
        goto yy56;
-yy855:
-       YYDEBUG(855, *YYCURSOR);
+yy830:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy856;
+       if (yych == 'T') goto yy831;
        if (yych != 't') goto yy56;
-yy856:
-       YYDEBUG(856, *YYCURSOR);
+yy831:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'O') goto yy857;
-       if (yych != 'o') goto yy758;
-yy857:
-       YYDEBUG(857, *YYCURSOR);
+       if (yych == 'O') goto yy832;
+       if (yych != 'o') goto yy733;
+yy832:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy858;
+       if (yych == 'B') goto yy833;
        if (yych != 'b') goto yy56;
-yy858:
-       YYDEBUG(858, *YYCURSOR);
+yy833:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy859;
+       if (yych == 'E') goto yy834;
        if (yych != 'e') goto yy56;
-yy859:
-       YYDEBUG(859, *YYCURSOR);
+yy834:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy848;
-       if (yych == 'r') goto yy848;
+       if (yych == 'R') goto yy823;
+       if (yych == 'r') goto yy823;
        goto yy56;
-yy860:
-       YYDEBUG(860, *YYCURSOR);
+yy835:
        yych = *++YYCURSOR;
        if (yych <= 'P') {
-               if (yych == 'C') goto yy121;
+               if (yych == 'C') goto yy128;
                if (yych <= 'O') goto yy56;
        } else {
                if (yych <= 'c') {
                        if (yych <= 'b') goto yy56;
-                       goto yy121;
+                       goto yy128;
                } else {
                        if (yych != 'p') goto yy56;
                }
        }
-yy861:
-       YYDEBUG(861, *YYCURSOR);
+yy836:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy862;
-       if (yych != 't') goto yy758;
-yy862:
-       YYDEBUG(862, *YYCURSOR);
+       if (yych == 'T') goto yy837;
+       if (yych != 't') goto yy733;
+yy837:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy863;
-       if (yych != 'e') goto yy758;
-yy863:
-       YYDEBUG(863, *YYCURSOR);
+       if (yych == 'E') goto yy838;
+       if (yych != 'e') goto yy733;
+yy838:
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy864;
+       if (yych == 'M') goto yy839;
        if (yych != 'm') goto yy56;
-yy864:
-       YYDEBUG(864, *YYCURSOR);
+yy839:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy865;
+       if (yych == 'B') goto yy840;
        if (yych != 'b') goto yy56;
-yy865:
-       YYDEBUG(865, *YYCURSOR);
+yy840:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy866;
+       if (yych == 'E') goto yy841;
        if (yych != 'e') goto yy56;
-yy866:
-       YYDEBUG(866, *YYCURSOR);
+yy841:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy848;
-       if (yych == 'r') goto yy848;
+       if (yych == 'R') goto yy823;
+       if (yych == 'r') goto yy823;
        goto yy56;
-yy867:
-       YYDEBUG(867, *YYCURSOR);
+yy842:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy871;
-       if (yych == 'g') goto yy871;
+       if (yych == 'G') goto yy846;
+       if (yych == 'g') goto yy846;
        goto yy56;
-yy868:
-       YYDEBUG(868, *YYCURSOR);
+yy843:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy869;
+       if (yych == 'R') goto yy844;
        if (yych != 'r') goto yy56;
-yy869:
-       YYDEBUG(869, *YYCURSOR);
+yy844:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'I') goto yy870;
-       if (yych != 'i') goto yy758;
-yy870:
-       YYDEBUG(870, *YYCURSOR);
+       if (yych == 'I') goto yy845;
+       if (yych != 'i') goto yy733;
+yy845:
        yych = *++YYCURSOR;
-       if (yych == 'L') goto yy848;
-       if (yych == 'l') goto yy848;
+       if (yych == 'L') goto yy823;
+       if (yych == 'l') goto yy823;
        goto yy56;
-yy871:
-       YYDEBUG(871, *YYCURSOR);
+yy846:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'U') goto yy872;
-       if (yych != 'u') goto yy758;
-yy872:
-       YYDEBUG(872, *YYCURSOR);
+       if (yych == 'U') goto yy847;
+       if (yych != 'u') goto yy733;
+yy847:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy873;
+       if (yych == 'S') goto yy848;
        if (yych != 's') goto yy56;
-yy873:
-       YYDEBUG(873, *YYCURSOR);
+yy848:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy848;
-       if (yych == 't') goto yy848;
+       if (yych == 'T') goto yy823;
+       if (yych == 't') goto yy823;
        goto yy56;
-yy874:
-       YYDEBUG(874, *YYCURSOR);
+yy849:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy875;
+               if (yych == 'R') goto yy850;
                if (yych <= 'X') goto yy56;
-               goto yy848;
+               goto yy823;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
                } else {
-                       if (yych == 'y') goto yy848;
+                       if (yych == 'y') goto yy823;
                        goto yy56;
                }
        }
-yy875:
-       YYDEBUG(875, *YYCURSOR);
+yy850:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'C') goto yy876;
-       if (yych != 'c') goto yy758;
-yy876:
-       YYDEBUG(876, *YYCURSOR);
+       if (yych == 'C') goto yy851;
+       if (yych != 'c') goto yy733;
+yy851:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy848;
-       if (yych == 'h') goto yy848;
+       if (yych == 'H') goto yy823;
+       if (yych == 'h') goto yy823;
        goto yy56;
-yy877:
-       YYDEBUG(877, *YYCURSOR);
+yy852:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy878;
+       if (yych == 'B') goto yy853;
        if (yych != 'b') goto yy56;
-yy878:
-       YYDEBUG(878, *YYCURSOR);
+yy853:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'R') goto yy879;
-       if (yych != 'r') goto yy758;
-yy879:
-       YYDEBUG(879, *YYCURSOR);
+       if (yych == 'R') goto yy854;
+       if (yych != 'r') goto yy733;
+yy854:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy880;
+       if (yych == 'U') goto yy855;
        if (yych != 'u') goto yy56;
-yy880:
-       YYDEBUG(880, *YYCURSOR);
+yy855:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy881;
+       if (yych == 'A') goto yy856;
        if (yych != 'a') goto yy56;
-yy881:
-       YYDEBUG(881, *YYCURSOR);
+yy856:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy882;
+       if (yych == 'R') goto yy857;
        if (yych != 'r') goto yy56;
-yy882:
-       YYDEBUG(882, *YYCURSOR);
+yy857:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy848;
-       if (yych == 'y') goto yy848;
+       if (yych == 'Y') goto yy823;
+       if (yych == 'y') goto yy823;
        goto yy56;
-yy883:
-       YYDEBUG(883, *YYCURSOR);
+yy858:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy890;
+               if (yych == 'L') goto yy865;
                if (yych <= 'M') goto yy56;
-               goto yy889;
+               goto yy864;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy890;
+                       goto yy865;
                } else {
-                       if (yych == 'n') goto yy889;
+                       if (yych == 'n') goto yy864;
                        goto yy56;
                }
        }
-yy884:
-       YYDEBUG(884, *YYCURSOR);
+yy859:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy885;
+       if (yych == 'N') goto yy860;
        if (yych != 'n') goto yy56;
-yy885:
-       YYDEBUG(885, *YYCURSOR);
+yy860:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'U') goto yy886;
-       if (yych != 'u') goto yy758;
-yy886:
-       YYDEBUG(886, *YYCURSOR);
+       if (yych == 'U') goto yy861;
+       if (yych != 'u') goto yy733;
+yy861:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy887;
+       if (yych == 'A') goto yy862;
        if (yych != 'a') goto yy56;
-yy887:
-       YYDEBUG(887, *YYCURSOR);
+yy862:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy888;
+       if (yych == 'R') goto yy863;
        if (yych != 'r') goto yy56;
-yy888:
-       YYDEBUG(888, *YYCURSOR);
+yy863:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy848;
-       if (yych == 'y') goto yy848;
+       if (yych == 'Y') goto yy823;
+       if (yych == 'y') goto yy823;
        goto yy56;
-yy889:
-       YYDEBUG(889, *YYCURSOR);
+yy864:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy848;
-       if (yych == 'e') goto yy848;
-       goto yy758;
-yy890:
-       YYDEBUG(890, *YYCURSOR);
+       if (yych == 'E') goto yy823;
+       if (yych == 'e') goto yy823;
+       goto yy733;
+yy865:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy848;
-       if (yych == 'y') goto yy848;
-       goto yy758;
-yy891:
-       YYDEBUG(891, *YYCURSOR);
+       if (yych == 'Y') goto yy823;
+       if (yych == 'y') goto yy823;
+       goto yy733;
+yy866:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy848;
-       goto yy758;
-yy892:
-       YYDEBUG(892, *YYCURSOR);
+       if (yych == 'I') goto yy823;
+       goto yy733;
+yy867:
        yych = *++YYCURSOR;
-       if (yych != 'I') goto yy758;
-       YYDEBUG(893, *YYCURSOR);
+       if (yych != 'I') goto yy733;
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy848;
-       goto yy758;
-yy894:
-       YYDEBUG(894, *YYCURSOR);
+       if (yych == 'I') goto yy823;
+       goto yy733;
+yy869:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy848;
-       goto yy758;
-yy895:
-       YYDEBUG(895, *YYCURSOR);
+       if (yych == 'I') goto yy823;
+       goto yy733;
+yy870:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy910;
-       if (yych <= '9') goto yy909;
+       if (yych <= '0') goto yy885;
+       if (yych <= '9') goto yy884;
        goto yy56;
-yy896:
-       YYDEBUG(896, *YYCURSOR);
+yy871:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy908;
+       if (yych <= '9') goto yy883;
        goto yy56;
-yy897:
-       YYDEBUG(897, *YYCURSOR);
+yy872:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy906;
-       if (yych <= '6') goto yy905;
+       if (yych <= '5') goto yy881;
+       if (yych <= '6') goto yy880;
        goto yy56;
-yy898:
-       YYDEBUG(898, *YYCURSOR);
+yy873:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy877;
-       if (yych == 'e') goto yy877;
+       if (yych == 'E') goto yy852;
+       if (yych == 'e') goto yy852;
        goto yy56;
-yy899:
-       YYDEBUG(899, *YYCURSOR);
+yy874:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy874;
-       if (yych == 'a') goto yy874;
+       if (yych == 'A') goto yy849;
+       if (yych == 'a') goto yy849;
        goto yy56;
-yy900:
-       YYDEBUG(900, *YYCURSOR);
+yy875:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy904;
-       if (yych == 'e') goto yy904;
+       if (yych == 'E') goto yy879;
+       if (yych == 'e') goto yy879;
        goto yy56;
-yy901:
-       YYDEBUG(901, *YYCURSOR);
+yy876:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy842;
-       if (yych == 'e') goto yy842;
+       if (yych == 'E') goto yy817;
+       if (yych == 'e') goto yy817;
        goto yy56;
-yy902:
-       YYDEBUG(902, *YYCURSOR);
+yy877:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
        yych = *YYCURSOR;
-yy903:
-       YYDEBUG(903, *YYCURSOR);
+yy878:
        switch (yych) {
        case '\t':
        case ' ':
        case '-':
-       case '.':       goto yy902;
+       case '.':       goto yy877;
        case 'A':
-       case 'a':       goto yy764;
+       case 'a':       goto yy739;
        case 'D':
-       case 'd':       goto yy901;
+       case 'd':       goto yy876;
        case 'F':
-       case 'f':       goto yy898;
-       case 'I':       goto yy757;
+       case 'f':       goto yy873;
+       case 'I':       goto yy732;
        case 'J':
-       case 'j':       goto yy761;
+       case 'j':       goto yy736;
        case 'M':
-       case 'm':       goto yy899;
+       case 'm':       goto yy874;
        case 'N':
-       case 'n':       goto yy767;
+       case 'n':       goto yy742;
        case 'O':
-       case 'o':       goto yy766;
+       case 'o':       goto yy741;
        case 'S':
-       case 's':       goto yy900;
-       case 'V':       goto yy759;
-       case 'X':       goto yy760;
+       case 's':       goto yy875;
+       case 'V':       goto yy734;
+       case 'X':       goto yy735;
        default:        goto yy56;
        }
-yy904:
-       YYDEBUG(904, *YYCURSOR);
+yy879:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy861;
-       if (yych == 'p') goto yy861;
+       if (yych == 'P') goto yy836;
+       if (yych == 'p') goto yy836;
        goto yy56;
-yy905:
-       YYDEBUG(905, *YYCURSOR);
+yy880:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '6') goto yy907;
+       if (yych <= '6') goto yy882;
        goto yy56;
-yy906:
-       YYDEBUG(906, *YYCURSOR);
+yy881:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy907:
-       YYDEBUG(907, *YYCURSOR);
+yy882:
        yych = *++YYCURSOR;
-       goto yy786;
-yy908:
-       YYDEBUG(908, *YYCURSOR);
+       goto yy761;
+yy883:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy907;
+       if (yych <= '9') goto yy882;
        goto yy56;
-yy909:
-       YYDEBUG(909, *YYCURSOR);
+yy884:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy907;
+       if (yych <= '9') goto yy882;
        goto yy56;
-yy910:
-       YYDEBUG(910, *YYCURSOR);
+yy885:
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy56;
-       if (yych <= '9') goto yy907;
+       if (yych <= '9') goto yy882;
        goto yy56;
-yy911:
-       YYDEBUG(911, *YYCURSOR);
+yy886:
        yych = *++YYCURSOR;
        if (yych <= '.') goto yy56;
-       if (yych <= '/') goto yy914;
-       if (yych <= '9') goto yy922;
+       if (yych <= '/') goto yy889;
+       if (yych <= '9') goto yy897;
        goto yy56;
-yy912:
-       YYDEBUG(912, *YYCURSOR);
+yy887:
        yych = *++YYCURSOR;
        if (yych <= '.') goto yy56;
-       if (yych <= '/') goto yy914;
-       if (yych <= '2') goto yy922;
+       if (yych <= '/') goto yy889;
+       if (yych <= '2') goto yy897;
        goto yy56;
-yy913:
-       YYDEBUG(913, *YYCURSOR);
+yy888:
        yych = *++YYCURSOR;
        if (yych != '/') goto yy56;
-yy914:
-       YYDEBUG(914, *YYCURSOR);
+yy889:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy915;
-       if (yych <= '3') goto yy916;
-       if (yych <= '9') goto yy917;
+       if (yych <= '2') goto yy890;
+       if (yych <= '3') goto yy891;
+       if (yych <= '9') goto yy892;
        goto yy56;
-yy915:
-       YYDEBUG(915, *YYCURSOR);
+yy890:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy419;
-               if (yych <= '9') goto yy917;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy892;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy916:
-       YYDEBUG(916, *YYCURSOR);
+yy891:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy419;
-               if (yych <= '1') goto yy917;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych <= '/') goto yy394;
+               if (yych <= '1') goto yy892;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy917:
-       YYDEBUG(917, *YYCURSOR);
+yy892:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'q') {
-               if (yych == 'n') goto yy919;
-               goto yy419;
+               if (yych == 'n') goto yy894;
+               goto yy394;
        } else {
-               if (yych <= 'r') goto yy920;
-               if (yych <= 's') goto yy918;
-               if (yych <= 't') goto yy921;
-               goto yy419;
+               if (yych <= 'r') goto yy895;
+               if (yych <= 's') goto yy893;
+               if (yych <= 't') goto yy896;
+               goto yy394;
        }
-yy918:
-       YYDEBUG(918, *YYCURSOR);
+yy893:
        yych = *++YYCURSOR;
-       if (yych == 't') goto yy418;
+       if (yych == 't') goto yy393;
        goto yy56;
-yy919:
-       YYDEBUG(919, *YYCURSOR);
+yy894:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy418;
+       if (yych == 'd') goto yy393;
        goto yy56;
-yy920:
-       YYDEBUG(920, *YYCURSOR);
+yy895:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy418;
+       if (yych == 'd') goto yy393;
        goto yy56;
-yy921:
-       YYDEBUG(921, *YYCURSOR);
+yy896:
        yych = *++YYCURSOR;
-       if (yych == 'h') goto yy418;
+       if (yych == 'h') goto yy393;
        goto yy56;
-yy922:
-       YYDEBUG(922, *YYCURSOR);
+yy897:
        yych = *++YYCURSOR;
        if (yych != '/') goto yy56;
-       YYDEBUG(923, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy56;
-               if (yych >= '1') goto yy925;
+               if (yych >= '1') goto yy900;
        } else {
-               if (yych <= '3') goto yy926;
-               if (yych <= '9') goto yy917;
+               if (yych <= '3') goto yy901;
+               if (yych <= '9') goto yy892;
                goto yy56;
        }
-       YYDEBUG(924, *YYCURSOR);
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy419;
-               if (yych <= '9') goto yy927;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy902;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy925:
-       YYDEBUG(925, *YYCURSOR);
+yy900:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy419;
-               if (yych <= '9') goto yy927;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy902;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy926:
-       YYDEBUG(926, *YYCURSOR);
+yy901:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy419;
-               if (yych <= '1') goto yy927;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych <= '/') goto yy394;
+               if (yych <= '1') goto yy902;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy927:
-       YYDEBUG(927, *YYCURSOR);
+yy902:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych == '/') goto yy418;
-               if (yych <= 'm') goto yy419;
-               goto yy919;
+               if (yych == '/') goto yy393;
+               if (yych <= 'm') goto yy394;
+               goto yy894;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy920;
+                       if (yych <= 'q') goto yy394;
+                       goto yy895;
                } else {
-                       if (yych <= 's') goto yy918;
-                       if (yych <= 't') goto yy921;
-                       goto yy419;
+                       if (yych <= 's') goto yy893;
+                       if (yych <= 't') goto yy896;
+                       goto yy394;
                }
        }
-yy928:
-       YYDEBUG(928, *YYCURSOR);
+yy903:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'A') goto yy1008;
+               if (yych == 'A') goto yy983;
                if (yych <= 'T') goto yy56;
-               goto yy1007;
+               goto yy982;
        } else {
                if (yych <= 'a') {
                        if (yych <= '`') goto yy56;
-                       goto yy1008;
+                       goto yy983;
                } else {
-                       if (yych == 'u') goto yy1007;
+                       if (yych == 'u') goto yy982;
                        goto yy56;
                }
        }
-yy929:
-       YYDEBUG(929, *YYCURSOR);
+yy904:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1005;
-       if (yych == 'e') goto yy1005;
+       if (yych == 'E') goto yy980;
+       if (yych == 'e') goto yy980;
        goto yy56;
-yy930:
-       YYDEBUG(930, *YYCURSOR);
+yy905:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1002;
-       if (yych == 'a') goto yy1002;
+       if (yych == 'A') goto yy977;
+       if (yych == 'a') goto yy977;
        goto yy56;
-yy931:
-       YYDEBUG(931, *YYCURSOR);
+yy906:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'P') goto yy999;
+               if (yych == 'P') goto yy974;
                if (yych <= 'T') goto yy56;
-               goto yy998;
+               goto yy973;
        } else {
                if (yych <= 'p') {
                        if (yych <= 'o') goto yy56;
-                       goto yy999;
+                       goto yy974;
                } else {
-                       if (yych == 'u') goto yy998;
+                       if (yych == 'u') goto yy973;
                        goto yy56;
                }
        }
-yy932:
-       YYDEBUG(932, *YYCURSOR);
+yy907:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy995;
-       if (yych == 'e') goto yy995;
+       if (yych == 'E') goto yy970;
+       if (yych == 'e') goto yy970;
        goto yy56;
-yy933:
-       YYDEBUG(933, *YYCURSOR);
+yy908:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy993;
-       if (yych == 'c') goto yy993;
+       if (yych == 'C') goto yy968;
+       if (yych == 'c') goto yy968;
        goto yy56;
-yy934:
-       YYDEBUG(934, *YYCURSOR);
+yy909:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy991;
-       if (yych == 'o') goto yy991;
+       if (yych == 'O') goto yy966;
+       if (yych == 'o') goto yy966;
        goto yy56;
-yy935:
-       YYDEBUG(935, *YYCURSOR);
+yy910:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy989;
-       if (yych == 'e') goto yy989;
+       if (yych == 'E') goto yy964;
+       if (yych == 'e') goto yy964;
        goto yy56;
-yy936:
-       YYDEBUG(936, *YYCURSOR);
+yy911:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '0') goto yy775;
-       if (yych <= '4') goto yy776;
-       if (yych <= '5') goto yy777;
+       if (yych <= '0') goto yy750;
+       if (yych <= '4') goto yy751;
+       if (yych <= '5') goto yy752;
        goto yy56;
-yy937:
-       YYDEBUG(937, *YYCURSOR);
+yy912:
        yyaccept = 21;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '-') goto yy941;
-       if (yych <= '/') goto yy938;
-       if (yych <= '9') goto yy960;
-yy938:
-       YYDEBUG(938, *YYCURSOR);
-#line 1328 "ext/date/lib/parse_date.re"
+       if (yych == '-') goto yy916;
+       if (yych <= '/') goto yy913;
+       if (yych <= '9') goto yy935;
+yy913:
+#line 1269 "ext/date/lib/parse_date.re"
        {
                int length = 0;
                DEBUG_OUTPUT("gnudateshorter");
@@ -14329,1100 +12749,919 @@ yy938:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 14333 "<stdout>"
-yy939:
-       YYDEBUG(939, *YYCURSOR);
+#line 12753 "ext/date/lib/parse_date.c"
+yy914:
        yyaccept = 21;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '-') goto yy941;
-       if (yych <= '/') goto yy938;
-       if (yych <= '2') goto yy960;
-       goto yy938;
-yy940:
-       YYDEBUG(940, *YYCURSOR);
+       if (yych == '-') goto yy916;
+       if (yych <= '/') goto yy913;
+       if (yych <= '2') goto yy935;
+       goto yy913;
+yy915:
        yyaccept = 21;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych != '-') goto yy938;
-yy941:
-       YYDEBUG(941, *YYCURSOR);
+       if (yych != '-') goto yy913;
+yy916:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '2') goto yy942;
-       if (yych <= '3') goto yy943;
-       if (yych <= '9') goto yy944;
+       if (yych <= '2') goto yy917;
+       if (yych <= '3') goto yy918;
+       if (yych <= '9') goto yy919;
        goto yy56;
-yy942:
-       YYDEBUG(942, *YYCURSOR);
+yy917:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'm') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy621;
-                       goto yy944;
+                       if (yych <= '/') goto yy596;
+                       goto yy919;
                } else {
-                       if (yych == 'T') goto yy949;
-                       goto yy621;
+                       if (yych == 'T') goto yy924;
+                       goto yy596;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'n') goto yy946;
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'n') goto yy921;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy943:
-       YYDEBUG(943, *YYCURSOR);
+yy918:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'm') {
                if (yych <= '1') {
-                       if (yych <= '/') goto yy621;
+                       if (yych <= '/') goto yy596;
                } else {
-                       if (yych == 'T') goto yy949;
-                       goto yy621;
+                       if (yych == 'T') goto yy924;
+                       goto yy596;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'n') goto yy946;
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'n') goto yy921;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy944:
-       YYDEBUG(944, *YYCURSOR);
+yy919:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych == 'T') goto yy949;
-               if (yych <= 'm') goto yy621;
-               goto yy946;
+               if (yych == 'T') goto yy924;
+               if (yych <= 'm') goto yy596;
+               goto yy921;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy945:
-       YYDEBUG(945, *YYCURSOR);
+yy920:
        yych = *++YYCURSOR;
-       if (yych == 't') goto yy959;
+       if (yych == 't') goto yy934;
        goto yy56;
-yy946:
-       YYDEBUG(946, *YYCURSOR);
+yy921:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy959;
+       if (yych == 'd') goto yy934;
        goto yy56;
-yy947:
-       YYDEBUG(947, *YYCURSOR);
+yy922:
        yych = *++YYCURSOR;
-       if (yych == 'd') goto yy959;
+       if (yych == 'd') goto yy934;
        goto yy56;
-yy948:
-       YYDEBUG(948, *YYCURSOR);
+yy923:
        yych = *++YYCURSOR;
-       if (yych == 'h') goto yy959;
+       if (yych == 'h') goto yy934;
        goto yy56;
-yy949:
-       YYDEBUG(949, *YYCURSOR);
+yy924:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy950;
-       if (yych <= '2') goto yy951;
-       if (yych <= '9') goto yy952;
+       if (yych <= '1') goto yy925;
+       if (yych <= '2') goto yy926;
+       if (yych <= '9') goto yy927;
        goto yy56;
-yy950:
-       YYDEBUG(950, *YYCURSOR);
+yy925:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy952;
-       if (yych <= ':') goto yy953;
+       if (yych <= '9') goto yy927;
+       if (yych <= ':') goto yy928;
        goto yy56;
-yy951:
-       YYDEBUG(951, *YYCURSOR);
+yy926:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '4') goto yy952;
-       if (yych == ':') goto yy953;
+       if (yych <= '4') goto yy927;
+       if (yych == ':') goto yy928;
        goto yy56;
-yy952:
-       YYDEBUG(952, *YYCURSOR);
+yy927:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-yy953:
-       YYDEBUG(953, *YYCURSOR);
+yy928:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy954;
-       if (yych <= '9') goto yy955;
+       if (yych <= '5') goto yy929;
+       if (yych <= '9') goto yy930;
        goto yy56;
-yy954:
-       YYDEBUG(954, *YYCURSOR);
+yy929:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy955;
-       if (yych <= ':') goto yy956;
+       if (yych <= '9') goto yy930;
+       if (yych <= ':') goto yy931;
        goto yy56;
-yy955:
-       YYDEBUG(955, *YYCURSOR);
+yy930:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-yy956:
-       YYDEBUG(956, *YYCURSOR);
+yy931:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy957;
-       if (yych <= '6') goto yy958;
-       if (yych <= '9') goto yy806;
+       if (yych <= '5') goto yy932;
+       if (yych <= '6') goto yy933;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy957:
-       YYDEBUG(957, *YYCURSOR);
+yy932:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '9') goto yy806;
-       goto yy807;
-yy958:
-       YYDEBUG(958, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '9') goto yy781;
+       goto yy782;
+yy933:
        yych = *++YYCURSOR;
-       if (yych == '0') goto yy806;
-       goto yy807;
-yy959:
-       YYDEBUG(959, *YYCURSOR);
+       if (yych == '0') goto yy781;
+       goto yy782;
+yy934:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'T') goto yy949;
-       goto yy621;
-yy960:
-       YYDEBUG(960, *YYCURSOR);
+       if (yych == 'T') goto yy924;
+       goto yy596;
+yy935:
        yyaccept = 21;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych != '-') goto yy938;
-       YYDEBUG(961, *YYCURSOR);
+       if (yych != '-') goto yy913;
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy56;
-               if (yych >= '1') goto yy963;
+               if (yych >= '1') goto yy938;
        } else {
-               if (yych <= '3') goto yy964;
-               if (yych <= '9') goto yy944;
+               if (yych <= '3') goto yy939;
+               if (yych <= '9') goto yy919;
                goto yy56;
        }
-       YYDEBUG(962, *YYCURSOR);
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'm') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy621;
-                       goto yy965;
+                       if (yych <= '/') goto yy596;
+                       goto yy940;
                } else {
-                       if (yych == 'T') goto yy949;
-                       goto yy621;
+                       if (yych == 'T') goto yy924;
+                       goto yy596;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'n') goto yy946;
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'n') goto yy921;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy963:
-       YYDEBUG(963, *YYCURSOR);
+yy938:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'm') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy621;
-                       goto yy965;
+                       if (yych <= '/') goto yy596;
+                       goto yy940;
                } else {
-                       if (yych == 'T') goto yy949;
-                       goto yy621;
+                       if (yych == 'T') goto yy924;
+                       goto yy596;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'n') goto yy946;
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'n') goto yy921;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy964:
-       YYDEBUG(964, *YYCURSOR);
+yy939:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'm') {
                if (yych <= '1') {
-                       if (yych <= '/') goto yy621;
+                       if (yych <= '/') goto yy596;
                } else {
-                       if (yych == 'T') goto yy949;
-                       goto yy621;
+                       if (yych == 'T') goto yy924;
+                       goto yy596;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'n') goto yy946;
-                       if (yych <= 'q') goto yy621;
-                       goto yy947;
+                       if (yych <= 'n') goto yy921;
+                       if (yych <= 'q') goto yy596;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy621;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy596;
                }
        }
-yy965:
-       YYDEBUG(965, *YYCURSOR);
+yy940:
        yyaccept = 20;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych == 'T') goto yy966;
-               if (yych <= 'm') goto yy419;
-               goto yy946;
+               if (yych == 'T') goto yy941;
+               if (yych <= 'm') goto yy394;
+               goto yy921;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy419;
-                       goto yy947;
+                       if (yych <= 'q') goto yy394;
+                       goto yy922;
                } else {
-                       if (yych <= 's') goto yy945;
-                       if (yych <= 't') goto yy948;
-                       goto yy419;
+                       if (yych <= 's') goto yy920;
+                       if (yych <= 't') goto yy923;
+                       goto yy394;
                }
        }
-yy966:
-       YYDEBUG(966, *YYCURSOR);
+yy941:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy967;
-       if (yych <= '2') goto yy968;
-       if (yych <= '9') goto yy952;
+       if (yych <= '1') goto yy942;
+       if (yych <= '2') goto yy943;
+       if (yych <= '9') goto yy927;
        goto yy56;
-yy967:
-       YYDEBUG(967, *YYCURSOR);
+yy942:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy969;
-       if (yych <= ':') goto yy953;
+       if (yych <= '9') goto yy944;
+       if (yych <= ':') goto yy928;
        goto yy56;
-yy968:
-       YYDEBUG(968, *YYCURSOR);
+yy943:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '4') goto yy969;
-       if (yych == ':') goto yy953;
+       if (yych <= '4') goto yy944;
+       if (yych == ':') goto yy928;
        goto yy56;
-yy969:
-       YYDEBUG(969, *YYCURSOR);
+yy944:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(970, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy971;
-       if (yych <= '9') goto yy955;
+       if (yych <= '5') goto yy946;
+       if (yych <= '9') goto yy930;
        goto yy56;
-yy971:
-       YYDEBUG(971, *YYCURSOR);
+yy946:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy972;
-       if (yych <= ':') goto yy956;
+       if (yych <= '9') goto yy947;
+       if (yych <= ':') goto yy931;
        goto yy56;
-yy972:
-       YYDEBUG(972, *YYCURSOR);
+yy947:
        yych = *++YYCURSOR;
        if (yych != ':') goto yy56;
-       YYDEBUG(973, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy974;
-       if (yych <= '6') goto yy975;
-       if (yych <= '9') goto yy806;
+       if (yych <= '5') goto yy949;
+       if (yych <= '6') goto yy950;
+       if (yych <= '9') goto yy781;
        goto yy56;
-yy974:
-       YYDEBUG(974, *YYCURSOR);
+yy949:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '9') goto yy976;
-       goto yy807;
-yy975:
-       YYDEBUG(975, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '9') goto yy951;
+       goto yy782;
+yy950:
        yych = *++YYCURSOR;
-       if (yych != '0') goto yy807;
-yy976:
-       YYDEBUG(976, *YYCURSOR);
+       if (yych != '0') goto yy782;
+yy951:
        yyaccept = 22;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych != '.') goto yy807;
-       YYDEBUG(977, *YYCURSOR);
+       if (yych != '.') goto yy782;
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-yy978:
-       YYDEBUG(978, *YYCURSOR);
+yy953:
        yyaccept = 22;
        YYMARKER = ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
        yych = *YYCURSOR;
-       YYDEBUG(979, *YYCURSOR);
        if (yych <= '-') {
-               if (yych == '+') goto yy981;
-               if (yych <= ',') goto yy807;
-               goto yy981;
+               if (yych == '+') goto yy956;
+               if (yych <= ',') goto yy782;
+               goto yy956;
        } else {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy807;
-                       goto yy978;
+                       if (yych <= '/') goto yy782;
+                       goto yy953;
                } else {
-                       if (yych != 'G') goto yy807;
+                       if (yych != 'G') goto yy782;
                }
        }
-       YYDEBUG(980, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy987;
+       if (yych == 'M') goto yy962;
        goto yy56;
-yy981:
-       YYDEBUG(981, *YYCURSOR);
+yy956:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy982;
-       if (yych <= '2') goto yy983;
-       if (yych <= '9') goto yy984;
+       if (yych <= '1') goto yy957;
+       if (yych <= '2') goto yy958;
+       if (yych <= '9') goto yy959;
        goto yy56;
-yy982:
-       YYDEBUG(982, *YYCURSOR);
+yy957:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '9') goto yy984;
-       if (yych <= ':') goto yy985;
-       goto yy807;
-yy983:
-       YYDEBUG(983, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '9') goto yy959;
+       if (yych <= ':') goto yy960;
+       goto yy782;
+yy958:
        yych = *++YYCURSOR;
        if (yych <= '5') {
-               if (yych <= '/') goto yy807;
-               if (yych >= '5') goto yy986;
+               if (yych <= '/') goto yy782;
+               if (yych >= '5') goto yy961;
        } else {
-               if (yych <= '9') goto yy806;
-               if (yych <= ':') goto yy985;
-               goto yy807;
+               if (yych <= '9') goto yy781;
+               if (yych <= ':') goto yy960;
+               goto yy782;
        }
-yy984:
-       YYDEBUG(984, *YYCURSOR);
+yy959:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '5') goto yy986;
-       if (yych <= '9') goto yy806;
-       if (yych >= ';') goto yy807;
-yy985:
-       YYDEBUG(985, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '5') goto yy961;
+       if (yych <= '9') goto yy781;
+       if (yych >= ';') goto yy782;
+yy960:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '5') goto yy986;
-       if (yych <= '9') goto yy806;
-       goto yy807;
-yy986:
-       YYDEBUG(986, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '5') goto yy961;
+       if (yych <= '9') goto yy781;
+       goto yy782;
+yy961:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy807;
-       if (yych <= '9') goto yy806;
-       goto yy807;
-yy987:
-       YYDEBUG(987, *YYCURSOR);
+       if (yych <= '/') goto yy782;
+       if (yych <= '9') goto yy781;
+       goto yy782;
+yy962:
        yych = *++YYCURSOR;
        if (yych != 'T') goto yy56;
-       YYDEBUG(988, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == '+') goto yy981;
-       if (yych == '-') goto yy981;
+       if (yych == '+') goto yy956;
+       if (yych == '-') goto yy956;
        goto yy56;
-yy989:
-       YYDEBUG(989, *YYCURSOR);
+yy964:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy990;
+       if (yych == 'C') goto yy965;
        if (yych != 'c') goto yy56;
-yy990:
-       YYDEBUG(990, *YYCURSOR);
+yy965:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'E') goto yy844;
-               if (yych == 'e') goto yy844;
-               goto yy758;
+               if (yych <= 'E') goto yy819;
+               if (yych == 'e') goto yy819;
+               goto yy733;
        }
-yy991:
-       YYDEBUG(991, *YYCURSOR);
+yy966:
        yych = *++YYCURSOR;
-       if (yych == 'V') goto yy992;
+       if (yych == 'V') goto yy967;
        if (yych != 'v') goto yy56;
-yy992:
-       YYDEBUG(992, *YYCURSOR);
+yy967:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'E') goto yy851;
-               if (yych == 'e') goto yy851;
-               goto yy758;
+               if (yych <= 'E') goto yy826;
+               if (yych == 'e') goto yy826;
+               goto yy733;
        }
-yy993:
-       YYDEBUG(993, *YYCURSOR);
+yy968:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy994;
+       if (yych == 'T') goto yy969;
        if (yych != 't') goto yy56;
-yy994:
-       YYDEBUG(994, *YYCURSOR);
+yy969:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'O') goto yy857;
-               if (yych == 'o') goto yy857;
-               goto yy758;
+               if (yych <= 'O') goto yy832;
+               if (yych == 'o') goto yy832;
+               goto yy733;
        }
-yy995:
-       YYDEBUG(995, *YYCURSOR);
+yy970:
        yych = *++YYCURSOR;
-       if (yych == 'P') goto yy996;
+       if (yych == 'P') goto yy971;
        if (yych != 'p') goto yy56;
-yy996:
-       YYDEBUG(996, *YYCURSOR);
+yy971:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'T') goto yy997;
-               if (yych != 't') goto yy758;
+               if (yych <= 'T') goto yy972;
+               if (yych != 't') goto yy733;
        }
-yy997:
-       YYDEBUG(997, *YYCURSOR);
+yy972:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'E') goto yy863;
-               if (yych == 'e') goto yy863;
-               goto yy758;
+               if (yych <= 'E') goto yy838;
+               if (yych == 'e') goto yy838;
+               goto yy733;
        }
-yy998:
-       YYDEBUG(998, *YYCURSOR);
+yy973:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy1001;
-       if (yych == 'g') goto yy1001;
+       if (yych == 'G') goto yy976;
+       if (yych == 'g') goto yy976;
        goto yy56;
-yy999:
-       YYDEBUG(999, *YYCURSOR);
+yy974:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1000;
+       if (yych == 'R') goto yy975;
        if (yych != 'r') goto yy56;
-yy1000:
-       YYDEBUG(1000, *YYCURSOR);
+yy975:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'H') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'I') goto yy870;
-               if (yych == 'i') goto yy870;
-               goto yy758;
+               if (yych <= 'I') goto yy845;
+               if (yych == 'i') goto yy845;
+               goto yy733;
        }
-yy1001:
-       YYDEBUG(1001, *YYCURSOR);
+yy976:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'U') goto yy872;
-               if (yych == 'u') goto yy872;
-               goto yy758;
+               if (yych <= 'U') goto yy847;
+               if (yych == 'u') goto yy847;
+               goto yy733;
        }
-yy1002:
-       YYDEBUG(1002, *YYCURSOR);
+yy977:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
-               if (yych == 'R') goto yy1003;
+               if (yych == 'R') goto yy978;
                if (yych <= 'X') goto yy56;
-               goto yy1004;
+               goto yy979;
        } else {
                if (yych <= 'r') {
                        if (yych <= 'q') goto yy56;
                } else {
-                       if (yych == 'y') goto yy1004;
+                       if (yych == 'y') goto yy979;
                        goto yy56;
                }
        }
-yy1003:
-       YYDEBUG(1003, *YYCURSOR);
+yy978:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'B') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'C') goto yy876;
-               if (yych == 'c') goto yy876;
-               goto yy758;
+               if (yych <= 'C') goto yy851;
+               if (yych == 'c') goto yy851;
+               goto yy733;
        }
-yy1004:
-       YYDEBUG(1004, *YYCURSOR);
+yy979:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '-') goto yy731;
-       goto yy758;
-yy1005:
-       YYDEBUG(1005, *YYCURSOR);
+       if (yych == '-') goto yy706;
+       goto yy733;
+yy980:
        yych = *++YYCURSOR;
-       if (yych == 'B') goto yy1006;
+       if (yych == 'B') goto yy981;
        if (yych != 'b') goto yy56;
-yy1006:
-       YYDEBUG(1006, *YYCURSOR);
+yy981:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'R') goto yy879;
-               if (yych == 'r') goto yy879;
-               goto yy758;
+               if (yych <= 'R') goto yy854;
+               if (yych == 'r') goto yy854;
+               goto yy733;
        }
-yy1007:
-       YYDEBUG(1007, *YYCURSOR);
+yy982:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'L') goto yy1011;
+               if (yych == 'L') goto yy986;
                if (yych <= 'M') goto yy56;
-               goto yy1010;
+               goto yy985;
        } else {
                if (yych <= 'l') {
                        if (yych <= 'k') goto yy56;
-                       goto yy1011;
+                       goto yy986;
                } else {
-                       if (yych == 'n') goto yy1010;
+                       if (yych == 'n') goto yy985;
                        goto yy56;
                }
        }
-yy1008:
-       YYDEBUG(1008, *YYCURSOR);
+yy983:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1009;
+       if (yych == 'N') goto yy984;
        if (yych != 'n') goto yy56;
-yy1009:
-       YYDEBUG(1009, *YYCURSOR);
+yy984:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'U') goto yy886;
-               if (yych == 'u') goto yy886;
-               goto yy758;
+               if (yych <= 'U') goto yy861;
+               if (yych == 'u') goto yy861;
+               goto yy733;
        }
-yy1010:
-       YYDEBUG(1010, *YYCURSOR);
+yy985:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'E') goto yy848;
-               if (yych == 'e') goto yy848;
-               goto yy758;
+               if (yych <= 'E') goto yy823;
+               if (yych == 'e') goto yy823;
+               goto yy733;
        }
-yy1011:
-       YYDEBUG(1011, *YYCURSOR);
+yy986:
        yyaccept = 19;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
-               if (yych == '-') goto yy731;
-               goto yy758;
+               if (yych == '-') goto yy706;
+               goto yy733;
        } else {
-               if (yych <= 'Y') goto yy848;
-               if (yych == 'y') goto yy848;
-               goto yy758;
+               if (yych <= 'Y') goto yy823;
+               if (yych == 'y') goto yy823;
+               goto yy733;
        }
-yy1012:
-       YYDEBUG(1012, *YYCURSOR);
+yy987:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy542;
-                       goto yy695;
+                       if (yych <= 0x08) goto yy517;
+                       goto yy670;
                } else {
-                       if (yych <= ',') goto yy542;
-                       if (yych <= '-') goto yy696;
-                       goto yy695;
+                       if (yych <= ',') goto yy517;
+                       if (yych <= '-') goto yy671;
+                       goto yy670;
                }
        } else {
                if (yych <= 'U') {
-                       if (yych <= '/') goto yy694;
-                       if (yych <= 'T') goto yy542;
-                       goto yy79;
+                       if (yych <= '/') goto yy669;
+                       if (yych <= 'T') goto yy517;
+                       goto yy77;
                } else {
-                       if (yych == 'u') goto yy79;
-                       goto yy542;
+                       if (yych == 'u') goto yy77;
+                       goto yy517;
                }
        }
-yy1013:
-       YYDEBUG(1013, *YYCURSOR);
+yy988:
        yych = *++YYCURSOR;
        if (yych <= 'P') {
-               if (yych == 'C') goto yy121;
+               if (yych == 'C') goto yy128;
                if (yych <= 'O') goto yy56;
-               goto yy550;
+               goto yy525;
        } else {
                if (yych <= 'c') {
                        if (yych <= 'b') goto yy56;
-                       goto yy121;
+                       goto yy128;
                } else {
-                       if (yych == 'p') goto yy550;
+                       if (yych == 'p') goto yy525;
                        goto yy56;
                }
        }
-yy1014:
-       YYDEBUG(1014, *YYCURSOR);
+yy989:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= ',') {
-                       if (yych == '\t') goto yy1016;
-                       goto yy1018;
+                       if (yych == '\t') goto yy991;
+                       goto yy993;
                } else {
-                       if (yych <= '-') goto yy1015;
-                       if (yych <= '.') goto yy695;
-                       if (yych <= '/') goto yy694;
-                       goto yy705;
+                       if (yych <= '-') goto yy990;
+                       if (yych <= '.') goto yy670;
+                       if (yych <= '/') goto yy669;
+                       goto yy680;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych == 'n') goto yy434;
-                       goto yy1018;
+                       if (yych == 'n') goto yy409;
+                       goto yy993;
                } else {
-                       if (yych <= 'r') goto yy435;
-                       if (yych <= 's') goto yy429;
-                       if (yych <= 't') goto yy432;
-                       goto yy1018;
+                       if (yych <= 'r') goto yy410;
+                       if (yych <= 's') goto yy403;
+                       if (yych <= 't') goto yy407;
+                       goto yy993;
                }
        }
-yy1015:
-       YYDEBUG(1015, *YYCURSOR);
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '0':       goto yy1019;
-       case '1':       goto yy1020;
-       case '2':
-       case '3':
-       case '4':
-       case '5':
-       case '6':
-       case '7':
-       case '8':
-       case '9':       goto yy582;
-       case 'A':
-       case 'a':       goto yy586;
-       case 'D':
-       case 'd':       goto yy590;
-       case 'F':
-       case 'f':       goto yy584;
-       case 'J':
-       case 'j':       goto yy583;
-       case 'M':
-       case 'm':       goto yy585;
-       case 'N':
-       case 'n':       goto yy589;
-       case 'O':
-       case 'o':       goto yy588;
-       case 'S':
-       case 's':       goto yy587;
-       default:        goto yy542;
-       }
-yy1016:
-       YYDEBUG(1016, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy1018;
-       if (yych <= '0') goto yy700;
-       if (yych <= '1') goto yy701;
-       if (yych <= '9') goto yy702;
-       goto yy1018;
-yy1017:
-       YYDEBUG(1017, *YYCURSOR);
-       ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
-       yych = *YYCURSOR;
-yy1018:
-       YYDEBUG(1018, *YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'G') {
-                       if (yych <= '.') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy1017;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= ' ') goto yy1017;
-                                       if (yych <= ',') goto yy56;
-                                       goto yy541;
-                               }
-                       } else {
-                               if (yych <= 'C') {
-                                       if (yych == 'A') goto yy538;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'D') goto yy430;
-                                       if (yych == 'F') goto yy431;
-                                       goto yy56;
-                               }
-                       }
-               } else {
-                       if (yych <= 'N') {
-                               if (yych <= 'J') {
-                                       if (yych <= 'H') goto yy65;
-                                       if (yych <= 'I') goto yy439;
-                                       goto yy443;
-                               } else {
-                                       if (yych <= 'L') goto yy56;
-                                       if (yych <= 'M') goto yy427;
-                                       goto yy446;
-                               }
-                       } else {
-                               if (yych <= 'S') {
-                                       if (yych <= 'O') goto yy445;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy428;
-                               } else {
-                                       if (yych <= 'T') goto yy70;
-                                       if (yych <= 'U') goto yy63;
-                                       if (yych <= 'V') goto yy441;
-                                       goto yy69;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= '`') {
-                                       if (yych <= 'X') goto yy442;
-                                       if (yych <= 'Y') goto yy68;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'a') goto yy538;
-                                       if (yych <= 'c') goto yy56;
-                                       goto yy430;
-                               }
-                       } else {
-                               if (yych <= 'g') {
-                                       if (yych == 'f') goto yy431;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'h') goto yy65;
-                                       if (yych == 'j') goto yy443;
-                                       goto yy56;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'o') {
-                                       if (yych <= 'm') goto yy427;
-                                       if (yych <= 'n') goto yy446;
-                                       goto yy445;
-                               } else {
-                                       if (yych <= 'r') goto yy56;
-                                       if (yych <= 's') goto yy428;
-                                       if (yych <= 't') goto yy70;
-                                       goto yy63;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy69;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'y') goto yy68;
-                                       if (yych == 0xC2) goto yy62;
-                                       goto yy56;
-                               }
-                       }
-               }
+yy990:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy994;
+       case '1':       goto yy995;
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy557;
+       case 'A':
+       case 'a':       goto yy561;
+       case 'D':
+       case 'd':       goto yy565;
+       case 'F':
+       case 'f':       goto yy559;
+       case 'J':
+       case 'j':       goto yy558;
+       case 'M':
+       case 'm':       goto yy560;
+       case 'N':
+       case 'n':       goto yy564;
+       case 'O':
+       case 'o':       goto yy563;
+       case 'S':
+       case 's':       goto yy562;
+       default:        goto yy517;
        }
-yy1019:
-       YYDEBUG(1019, *YYCURSOR);
+yy991:
+       yych = *++YYCURSOR;
+       if (yych <= '/') goto yy993;
+       if (yych <= '0') goto yy675;
+       if (yych <= '1') goto yy676;
+       if (yych <= '9') goto yy677;
+       goto yy993;
+yy992:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+       yych = *YYCURSOR;
+yy993:
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy992;
+       case '-':
+       case '.':       goto yy516;
+       case 'A':
+       case 'a':       goto yy513;
+       case 'D':
+       case 'd':       goto yy405;
+       case 'F':
+       case 'f':       goto yy406;
+       case 'H':
+       case 'h':       goto yy63;
+       case 'I':       goto yy414;
+       case 'J':
+       case 'j':       goto yy418;
+       case 'M':
+       case 'm':       goto yy404;
+       case 'N':
+       case 'n':       goto yy421;
+       case 'O':
+       case 'o':       goto yy420;
+       case 'S':
+       case 's':       goto yy402;
+       case 'T':
+       case 't':       goto yy68;
+       case 'V':       goto yy416;
+       case 'W':
+       case 'w':       goto yy67;
+       case 'X':       goto yy417;
+       case 'Y':
+       case 'y':       goto yy66;
+       default:        goto yy56;
+       }
+yy994:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy619;
-               goto yy566;
+               if (yych <= '-') goto yy594;
+               goto yy541;
        } else {
                if (yych <= '/') goto yy56;
-               if (yych <= '9') goto yy1021;
+               if (yych <= '9') goto yy996;
                goto yy56;
        }
-yy1020:
-       YYDEBUG(1020, *YYCURSOR);
+yy995:
        yych = *++YYCURSOR;
        if (yych <= '.') {
                if (yych <= ',') goto yy56;
-               if (yych <= '-') goto yy619;
-               goto yy566;
+               if (yych <= '-') goto yy594;
+               goto yy541;
        } else {
                if (yych <= '/') goto yy56;
                if (yych >= '3') goto yy56;
        }
-yy1021:
-       YYDEBUG(1021, *YYCURSOR);
+yy996:
        yych = *++YYCURSOR;
        if (yych <= ',') goto yy56;
-       if (yych <= '-') goto yy1022;
-       if (yych <= '.') goto yy566;
+       if (yych <= '-') goto yy997;
+       if (yych <= '.') goto yy541;
        goto yy56;
-yy1022:
-       YYDEBUG(1022, *YYCURSOR);
+yy997:
        yych = *++YYCURSOR;
        if (yych <= '2') {
                if (yych <= '/') goto yy56;
-               if (yych >= '1') goto yy1024;
+               if (yych >= '1') goto yy999;
        } else {
-               if (yych <= '3') goto yy1025;
-               if (yych <= '9') goto yy623;
+               if (yych <= '3') goto yy1000;
+               if (yych <= '9') goto yy598;
                goto yy56;
        }
-       YYDEBUG(1023, *YYCURSOR);
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy1026;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy1001;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy1024:
-       YYDEBUG(1024, *YYCURSOR);
+yy999:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy621;
-               if (yych <= '9') goto yy1026;
-               if (yych <= 'm') goto yy621;
-               goto yy625;
+               if (yych <= '/') goto yy596;
+               if (yych <= '9') goto yy1001;
+               if (yych <= 'm') goto yy596;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy1025:
-       YYDEBUG(1025, *YYCURSOR);
+yy1000:
        yyaccept = 12;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
                if (yych <= '1') {
-                       if (yych <= '/') goto yy621;
+                       if (yych <= '/') goto yy596;
                } else {
-                       if (yych <= '9') goto yy568;
-                       if (yych <= 'm') goto yy621;
-                       goto yy625;
+                       if (yych <= '9') goto yy543;
+                       if (yych <= 'm') goto yy596;
+                       goto yy600;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy621;
-                       goto yy626;
+                       if (yych <= 'q') goto yy596;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy621;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy596;
                }
        }
-yy1026:
-       YYDEBUG(1026, *YYCURSOR);
+yy1001:
        yyaccept = 14;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'n') {
-               if (yych <= '/') goto yy728;
-               if (yych <= '9') goto yy569;
-               if (yych <= 'm') goto yy728;
-               goto yy625;
+               if (yych <= '/') goto yy703;
+               if (yych <= '9') goto yy544;
+               if (yych <= 'm') goto yy703;
+               goto yy600;
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'q') goto yy728;
-                       goto yy626;
+                       if (yych <= 'q') goto yy703;
+                       goto yy601;
                } else {
-                       if (yych <= 's') goto yy624;
-                       if (yych <= 't') goto yy627;
-                       goto yy728;
+                       if (yych <= 's') goto yy599;
+                       if (yych <= 't') goto yy602;
+                       goto yy703;
                }
        }
-yy1027:
-       YYDEBUG(1027, *YYCURSOR);
+yy1002:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= '-') {
-                       if (yych == '\t') goto yy1016;
-                       if (yych <= ',') goto yy1018;
-                       goto yy1015;
+                       if (yych == '\t') goto yy991;
+                       if (yych <= ',') goto yy993;
+                       goto yy990;
                } else {
-                       if (yych <= '.') goto yy1028;
-                       if (yych <= '/') goto yy694;
-                       if (yych <= '5') goto yy1030;
-                       goto yy705;
+                       if (yych <= '.') goto yy1003;
+                       if (yych <= '/') goto yy669;
+                       if (yych <= '5') goto yy1005;
+                       goto yy680;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= ':') goto yy1029;
-                       if (yych == 'n') goto yy434;
-                       goto yy1018;
+                       if (yych <= ':') goto yy1004;
+                       if (yych == 'n') goto yy409;
+                       goto yy993;
                } else {
-                       if (yych <= 'r') goto yy435;
-                       if (yych <= 's') goto yy429;
-                       if (yych <= 't') goto yy432;
-                       goto yy1018;
+                       if (yych <= 'r') goto yy410;
+                       if (yych <= 's') goto yy403;
+                       if (yych <= 't') goto yy407;
+                       goto yy993;
                }
        }
-yy1028:
-       YYDEBUG(1028, *YYCURSOR);
+yy1003:
        yych = *++YYCURSOR;
        if (yych <= '1') {
-               if (yych <= '/') goto yy542;
-               if (yych <= '0') goto yy1052;
-               goto yy1053;
+               if (yych <= '/') goto yy517;
+               if (yych <= '0') goto yy1027;
+               goto yy1028;
        } else {
-               if (yych <= '5') goto yy1054;
-               if (yych <= '9') goto yy1055;
-               goto yy542;
+               if (yych <= '5') goto yy1029;
+               if (yych <= '9') goto yy1030;
+               goto yy517;
        }
-yy1029:
-       YYDEBUG(1029, *YYCURSOR);
+yy1004:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy1047;
-       if (yych <= '9') goto yy1048;
+       if (yych <= '5') goto yy1022;
+       if (yych <= '9') goto yy1023;
        goto yy56;
-yy1030:
-       YYDEBUG(1030, *YYCURSOR);
+yy1005:
        yych = *++YYCURSOR;
-       if (yych == '-') goto yy749;
+       if (yych == '-') goto yy724;
        if (yych <= '/') goto yy60;
        if (yych >= ':') goto yy60;
-       YYDEBUG(1031, *YYCURSOR);
        yyaccept = 23;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'L') {
-               if (yych <= '3') {
-                       if (yych <= '-') {
-                               if (yych <= 0x1F) {
-                                       if (yych == '\t') goto yy755;
-                               } else {
-                                       if (yych <= ' ') goto yy755;
-                                       if (yych >= '-') goto yy752;
-                               }
-                       } else {
-                               if (yych <= '0') {
-                                       if (yych <= '.') goto yy756;
-                                       if (yych <= '/') goto yy753;
-                                       goto yy1033;
-                               } else {
-                                       if (yych <= '1') goto yy1034;
-                                       if (yych <= '2') goto yy1035;
-                                       goto yy1036;
-                               }
-                       }
-               } else {
-                       if (yych <= 'A') {
-                               if (yych <= '9') {
-                                       if (yych <= '5') goto yy1037;
-                                       if (yych <= '6') goto yy1038;
-                                       goto yy54;
-                               } else {
-                                       if (yych <= ':') goto yy771;
-                                       if (yych >= 'A') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'E') {
-                                       if (yych == 'D') goto yy755;
-                               } else {
-                                       if (yych == 'G') goto yy1032;
-                                       if (yych <= 'J') goto yy755;
-                               }
-                       }
-               }
-       } else {
-               if (yych <= 'h') {
-                       if (yych <= '`') {
-                               if (yych <= 'V') {
-                                       if (yych <= 'O') goto yy755;
-                                       if (yych >= 'S') goto yy755;
-                               } else {
-                                       if (yych <= 'W') goto yy774;
-                                       if (yych <= 'Y') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'd') {
-                                       if (yych <= 'a') goto yy755;
-                                       if (yych >= 'd') goto yy755;
-                               } else {
-                                       if (yych == 'f') goto yy755;
-                                       if (yych >= 'h') goto yy755;
-                               }
-                       }
-               } else {
-                       if (yych <= 'u') {
-                               if (yych <= 'l') {
-                                       if (yych == 'j') goto yy755;
-                               } else {
-                                       if (yych <= 'o') goto yy755;
-                                       if (yych >= 's') goto yy755;
-                               }
-                       } else {
-                               if (yych <= 'x') {
-                                       if (yych == 'w') goto yy755;
-                               } else {
-                                       if (yych <= 'y') goto yy755;
-                                       if (yych == 0xC2) goto yy755;
-                               }
-                       }
-               }
+       switch (yych) {
+       case '\t':
+       case ' ':
+       case 'A':
+       case 'D':
+       case 'F':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'S':
+       case 'T':
+       case 'V':
+       case 'X':
+       case 'Y':
+       case 'a':
+       case 'd':
+       case 'f':
+       case 'h':
+       case 'j':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 's':
+       case 't':
+       case 'w':
+       case 'y':       goto yy730;
+       case '-':       goto yy727;
+       case '.':       goto yy731;
+       case '/':       goto yy728;
+       case '0':       goto yy1008;
+       case '1':       goto yy1009;
+       case '2':       goto yy1010;
+       case '3':       goto yy1011;
+       case '4':
+       case '5':       goto yy1012;
+       case '6':       goto yy1013;
+       case '7':
+       case '8':
+       case '9':       goto yy54;
+       case ':':       goto yy746;
+       case 'W':       goto yy749;
+       default:        goto yy1007;
        }
-yy1032:
-       YYDEBUG(1032, *YYCURSOR);
-#line 1220 "ext/date/lib/parse_date.re"
+yy1007:
+#line 1161 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("gnunocolon");
                TIMELIB_INIT;
@@ -15437,63 +13676,56 @@ yy1032:
                                break;
                        default:
                                TIMELIB_DEINIT;
-                               add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification");
+                               add_error(s, "Double time specification");
                                return TIMELIB_ERROR;
                }
                s->time->have_time++;
                TIMELIB_DEINIT;
                return TIMELIB_GNU_NOCOLON;
        }
-#line 15448 "<stdout>"
-yy1033:
-       YYDEBUG(1033, *YYCURSOR);
+#line 13687 "ext/date/lib/parse_date.c"
+yy1008:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '0') goto yy1045;
-       if (yych <= '9') goto yy1046;
+       if (yych <= '0') goto yy1020;
+       if (yych <= '9') goto yy1021;
        goto yy60;
-yy1034:
-       YYDEBUG(1034, *YYCURSOR);
+yy1009:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '2') goto yy1044;
-       if (yych <= '9') goto yy1043;
+       if (yych <= '2') goto yy1019;
+       if (yych <= '9') goto yy1018;
        goto yy60;
-yy1035:
-       YYDEBUG(1035, *YYCURSOR);
+yy1010:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy1043;
+       if (yych <= '9') goto yy1018;
        goto yy60;
-yy1036:
-       YYDEBUG(1036, *YYCURSOR);
+yy1011:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '5') goto yy1041;
-       if (yych <= '6') goto yy1042;
-       if (yych <= '9') goto yy1039;
+       if (yych <= '5') goto yy1016;
+       if (yych <= '6') goto yy1017;
+       if (yych <= '9') goto yy1014;
        goto yy60;
-yy1037:
-       YYDEBUG(1037, *YYCURSOR);
+yy1012:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '9') goto yy1039;
+       if (yych <= '9') goto yy1014;
        goto yy60;
-yy1038:
-       YYDEBUG(1038, *YYCURSOR);
+yy1013:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy60;
-       if (yych <= '0') goto yy1039;
+       if (yych <= '0') goto yy1014;
        if (yych <= '9') goto yy54;
        goto yy60;
-yy1039:
-       YYDEBUG(1039, *YYCURSOR);
+yy1014:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 2) {
                goto yy54;
        }
-       if (yych <= 'X') {
+       if (yych <= 'W') {
                if (yych <= 'F') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
@@ -15507,42 +13739,35 @@ yy1039:
                                if (yych == 'H') goto yy60;
                                if (yych >= 'M') goto yy60;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych >= 'S') goto yy60;
-                               } else {
-                                       if (yych == 'W') goto yy60;
-                               }
+                               if (yych <= 'R') goto yy1015;
+                               if (yych <= 'T') goto yy60;
+                               if (yych >= 'W') goto yy60;
                        }
                }
        } else {
-               if (yych <= 'm') {
-                       if (yych <= 'e') {
-                               if (yych <= 'Y') goto yy60;
-                               if (yych == 'd') goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy60;
+                               if (yych >= 'd') goto yy60;
                        } else {
-                               if (yych <= 'g') {
-                                       if (yych <= 'f') goto yy60;
-                               } else {
-                                       if (yych <= 'h') goto yy60;
-                                       if (yych >= 'm') goto yy60;
-                               }
+                               if (yych == 'f') goto yy60;
+                               if (yych >= 'h') goto yy60;
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') goto yy1040;
-                               if (yych != 'v') goto yy60;
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych >= 's') goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych >= 'y') goto yy60;
+                               if (yych <= 'w') {
+                                       if (yych >= 'w') goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
+                                       if (yych == 'y') goto yy60;
                                }
                        }
                }
        }
-yy1040:
-       YYDEBUG(1040, *YYCURSOR);
-#line 1266 "ext/date/lib/parse_date.re"
+yy1015:
+#line 1207 "ext/date/lib/parse_date.re"
        {
                int tz_not_found;
                DEBUG_OUTPUT("iso8601nocolon");
@@ -15555,989 +13780,869 @@ yy1040:
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
                return TIMELIB_ISO_NOCOLON;
        }
-#line 15565 "<stdout>"
-yy1041:
-       YYDEBUG(1041, *YYCURSOR);
+#line 13790 "ext/date/lib/parse_date.c"
+yy1016:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy1040;
+                               if (yych <= 0x1F) goto yy1015;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy1040;
-                                       goto yy785;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy1040;
-                               }
+                               if (yych <= '/') goto yy1015;
+                               if (yych <= '9') goto yy760;
+                               if (yych <= 'C') goto yy1015;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy1040;
-                               if (yych <= 'H') goto yy60;
-                               goto yy1040;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'V') goto yy1040;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych <= 'R') goto yy1015;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy1040;
-                               goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy1015;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy1015;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
-                                       goto yy60;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'g') goto yy1015;
+                                       goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'v') goto yy1040;
-                                       goto yy60;
-                               }
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1042:
-       YYDEBUG(1042, *YYCURSOR);
+yy1017:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
+       if (yych <= 'V') {
                if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy1040;
+                               if (yych <= 0x1F) goto yy1015;
                                goto yy60;
                        } else {
                                if (yych <= '6') {
-                                       if (yych <= '/') goto yy1040;
-                                       goto yy785;
+                                       if (yych <= '/') goto yy1015;
+                                       goto yy760;
                                } else {
                                        if (yych <= '9') goto yy54;
-                                       if (yych <= 'C') goto yy1040;
+                                       if (yych <= 'C') goto yy1015;
                                        goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych <= 'F') {
-                                       if (yych <= 'E') goto yy1040;
-                                       goto yy60;
-                               } else {
-                                       if (yych == 'H') goto yy60;
-                                       goto yy1040;
-                               }
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'V') goto yy1040;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych <= 'R') goto yy1015;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy1040;
-                               goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy1015;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy1015;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
-                                       goto yy60;
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'g') goto yy1015;
+                                       goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'v') goto yy1040;
-                                       goto yy60;
-                               }
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1043:
-       YYDEBUG(1043, *YYCURSOR);
+yy1018:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'W') {
-               if (yych <= 'E') {
+       if (yych <= 'V') {
+               if (yych <= 'D') {
                        if (yych <= ' ') {
                                if (yych == '\t') goto yy60;
-                               if (yych <= 0x1F) goto yy1040;
+                               if (yych <= 0x1F) goto yy1015;
                                goto yy60;
                        } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy1040;
-                                       goto yy785;
-                               } else {
-                                       if (yych == 'D') goto yy60;
-                                       goto yy1040;
-                               }
+                               if (yych <= '/') goto yy1015;
+                               if (yych <= '9') goto yy760;
+                               if (yych <= 'C') goto yy1015;
+                               goto yy60;
                        }
                } else {
-                       if (yych <= 'L') {
-                               if (yych == 'G') goto yy1040;
-                               if (yych <= 'H') goto yy60;
-                               goto yy1040;
+                       if (yych <= 'H') {
+                               if (yych == 'F') goto yy60;
+                               if (yych <= 'G') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'R') {
-                                       if (yych <= 'M') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'V') goto yy1040;
+                               if (yych <= 'M') {
+                                       if (yych <= 'L') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych <= 'R') goto yy1015;
+                                       if (yych <= 'T') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych == 'Y') goto yy60;
-                               if (yych <= 'c') goto yy1040;
-                               goto yy60;
-                       } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
-                                       goto yy60;
+               if (yych <= 'h') {
+                       if (yych <= 'c') {
+                               if (yych == 'X') goto yy1015;
+                               if (yych <= 'Y') goto yy60;
+                               goto yy1015;
+                       } else {
+                               if (yych <= 'e') {
+                                       if (yych <= 'd') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'g') goto yy1015;
+                                       goto yy60;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'v') goto yy1040;
-                                       goto yy60;
-                               }
+                       if (yych <= 't') {
+                               if (yych == 'm') goto yy60;
+                               if (yych <= 'r') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1044:
-       YYDEBUG(1044, *YYCURSOR);
+yy1019:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
-               if (yych <= 'C') {
-                       if (yych <= '/') {
-                               if (yych <= '\t') {
-                                       if (yych <= 0x08) goto yy1040;
-                                       goto yy60;
-                               } else {
-                                       if (yych == ' ') goto yy60;
-                                       goto yy1040;
-                               }
+       if (yych <= 'T') {
+               if (yych <= '9') {
+                       if (yych <= ' ') {
+                               if (yych == '\t') goto yy60;
+                               if (yych <= 0x1F) goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= '2') {
-                                       if (yych <= '0') goto yy809;
-                                       goto yy810;
+                               if (yych <= '0') {
+                                       if (yych <= '/') goto yy1015;
+                                       goto yy784;
                                } else {
-                                       if (yych <= '3') goto yy811;
-                                       if (yych <= '9') goto yy785;
-                                       goto yy1040;
+                                       if (yych <= '2') goto yy785;
+                                       if (yych <= '3') goto yy786;
+                                       goto yy760;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'G') goto yy1040;
+                       if (yych <= 'G') {
+                               if (yych <= 'D') {
+                                       if (yych <= 'C') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych == 'F') goto yy60;
+                                       goto yy1015;
                                }
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy1040;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych <= 'R') goto yy1040;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy1040;
+                                       if (yych <= 'M') goto yy60;
+                                       if (yych <= 'R') goto yy1015;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy1040;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'f') goto yy60;
+                                       goto yy1015;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'v') goto yy1040;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy1015;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1045:
-       YYDEBUG(1045, *YYCURSOR);
+yy1020:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
-               if (yych <= 'C') {
-                       if (yych <= '/') {
-                               if (yych <= '\t') {
-                                       if (yych <= 0x08) goto yy1040;
-                                       goto yy60;
-                               } else {
-                                       if (yych == ' ') goto yy60;
-                                       goto yy1040;
-                               }
+       if (yych <= 'T') {
+               if (yych <= '9') {
+                       if (yych <= ' ') {
+                               if (yych == '\t') goto yy60;
+                               if (yych <= 0x1F) goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= '2') {
-                                       if (yych <= '0') goto yy841;
-                                       goto yy810;
+                               if (yych <= '0') {
+                                       if (yych <= '/') goto yy1015;
+                                       goto yy816;
                                } else {
-                                       if (yych <= '3') goto yy811;
-                                       if (yych <= '9') goto yy785;
-                                       goto yy1040;
+                                       if (yych <= '2') goto yy785;
+                                       if (yych <= '3') goto yy786;
+                                       goto yy760;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'G') goto yy1040;
+                       if (yych <= 'G') {
+                               if (yych <= 'D') {
+                                       if (yych <= 'C') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych == 'F') goto yy60;
+                                       goto yy1015;
                                }
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy1040;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych <= 'R') goto yy1040;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy1040;
+                                       if (yych <= 'M') goto yy60;
+                                       if (yych <= 'R') goto yy1015;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy1040;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'f') goto yy60;
+                                       goto yy1015;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'v') goto yy1040;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy1015;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1046:
-       YYDEBUG(1046, *YYCURSOR);
+yy1021:
        yyaccept = 24;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'V') {
-               if (yych <= 'C') {
-                       if (yych <= '/') {
-                               if (yych <= '\t') {
-                                       if (yych <= 0x08) goto yy1040;
-                                       goto yy60;
-                               } else {
-                                       if (yych == ' ') goto yy60;
-                                       goto yy1040;
-                               }
+       if (yych <= 'T') {
+               if (yych <= '9') {
+                       if (yych <= ' ') {
+                               if (yych == '\t') goto yy60;
+                               if (yych <= 0x1F) goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= '2') {
-                                       if (yych <= '0') goto yy809;
-                                       goto yy810;
+                               if (yych <= '0') {
+                                       if (yych <= '/') goto yy1015;
+                                       goto yy784;
                                } else {
-                                       if (yych <= '3') goto yy811;
-                                       if (yych <= '9') goto yy785;
-                                       goto yy1040;
+                                       if (yych <= '2') goto yy785;
+                                       if (yych <= '3') goto yy786;
+                                       goto yy760;
                                }
                        }
                } else {
-                       if (yych <= 'H') {
-                               if (yych <= 'E') {
-                                       if (yych <= 'D') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych == 'G') goto yy1040;
+                       if (yych <= 'G') {
+                               if (yych <= 'D') {
+                                       if (yych <= 'C') goto yy1015;
                                        goto yy60;
+                               } else {
+                                       if (yych == 'F') goto yy60;
+                                       goto yy1015;
                                }
                        } else {
-                               if (yych <= 'M') {
-                                       if (yych <= 'L') goto yy1040;
-                                       goto yy60;
+                               if (yych <= 'L') {
+                                       if (yych <= 'H') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych <= 'R') goto yy1040;
-                                       if (yych <= 'U') goto yy60;
-                                       goto yy1040;
+                                       if (yych <= 'M') goto yy60;
+                                       if (yych <= 'R') goto yy1015;
+                                       goto yy60;
                                }
                        }
                }
        } else {
-               if (yych <= 'l') {
-                       if (yych <= 'd') {
-                               if (yych <= 'X') {
-                                       if (yych <= 'W') goto yy60;
-                                       goto yy1040;
-                               } else {
-                                       if (yych <= 'Y') goto yy60;
-                                       if (yych <= 'c') goto yy1040;
-                                       goto yy60;
-                               }
+               if (yych <= 'g') {
+                       if (yych <= 'Y') {
+                               if (yych == 'W') goto yy60;
+                               if (yych <= 'X') goto yy1015;
+                               goto yy60;
                        } else {
-                               if (yych <= 'f') {
-                                       if (yych <= 'e') goto yy1040;
+                               if (yych <= 'd') {
+                                       if (yych <= 'c') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 'h') goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'f') goto yy60;
+                                       goto yy1015;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 'r') {
-                                       if (yych <= 'm') goto yy60;
-                                       goto yy1040;
+                       if (yych <= 't') {
+                               if (yych <= 'l') {
+                                       if (yych <= 'h') goto yy60;
+                                       goto yy1015;
                                } else {
-                                       if (yych == 'v') goto yy1040;
+                                       if (yych <= 'm') goto yy60;
+                                       if (yych <= 'r') goto yy1015;
                                        goto yy60;
                                }
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy1040;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy1015;
                                        goto yy60;
                                } else {
-                                       if (yych == 0xC2) goto yy60;
-                                       goto yy1040;
+                                       if (yych == 'y') goto yy60;
+                                       goto yy1015;
                                }
                        }
                }
        }
-yy1047:
-       YYDEBUG(1047, *YYCURSOR);
+yy1022:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy1049;
-               goto yy455;
+               if (yych == '.') goto yy1024;
+               goto yy430;
        } else {
-               if (yych <= '9') goto yy1048;
-               if (yych <= ':') goto yy1049;
-               goto yy455;
+               if (yych <= '9') goto yy1023;
+               if (yych <= ':') goto yy1024;
+               goto yy430;
        }
-yy1048:
-       YYDEBUG(1048, *YYCURSOR);
+yy1023:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy1049;
-       if (yych != ':') goto yy455;
-yy1049:
-       YYDEBUG(1049, *YYCURSOR);
+       if (yych == '.') goto yy1024;
+       if (yych != ':') goto yy430;
+yy1024:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy1050;
-       if (yych <= '6') goto yy1051;
-       if (yych <= '9') goto yy460;
+       if (yych <= '5') goto yy1025;
+       if (yych <= '6') goto yy1026;
+       if (yych <= '9') goto yy435;
        goto yy56;
-yy1050:
-       YYDEBUG(1050, *YYCURSOR);
+yy1025:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy460;
-       goto yy455;
-yy1051:
-       YYDEBUG(1051, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy435;
+       goto yy430;
+yy1026:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych == '0') goto yy460;
-       goto yy455;
-yy1052:
-       YYDEBUG(1052, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych == '0') goto yy435;
+       goto yy430;
+yy1027:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               goto yy1056;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               goto yy1031;
        } else {
-               if (yych <= '/') goto yy455;
-               if (yych <= '9') goto yy1055;
-               if (yych <= ':') goto yy1049;
-               goto yy455;
+               if (yych <= '/') goto yy430;
+               if (yych <= '9') goto yy1030;
+               if (yych <= ':') goto yy1024;
+               goto yy430;
        }
-yy1053:
-       YYDEBUG(1053, *YYCURSOR);
+yy1028:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               if (yych <= '.') goto yy1056;
-               goto yy455;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               if (yych <= '.') goto yy1031;
+               goto yy430;
        } else {
-               if (yych <= '2') goto yy1055;
-               if (yych <= '9') goto yy1048;
-               if (yych <= ':') goto yy1049;
-               goto yy455;
+               if (yych <= '2') goto yy1030;
+               if (yych <= '9') goto yy1023;
+               if (yych <= ':') goto yy1024;
+               goto yy430;
        }
-yy1054:
-       YYDEBUG(1054, *YYCURSOR);
+yy1029:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
-               goto yy1056;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
+               goto yy1031;
        } else {
-               if (yych <= '/') goto yy455;
-               if (yych <= '9') goto yy1048;
-               if (yych <= ':') goto yy1049;
-               goto yy455;
+               if (yych <= '/') goto yy430;
+               if (yych <= '9') goto yy1023;
+               if (yych <= ':') goto yy1024;
+               goto yy430;
        }
-yy1055:
-       YYDEBUG(1055, *YYCURSOR);
+yy1030:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
-               if (yych <= ',') goto yy455;
-               if (yych <= '-') goto yy566;
+               if (yych <= ',') goto yy430;
+               if (yych <= '-') goto yy541;
        } else {
-               if (yych == ':') goto yy1049;
-               goto yy455;
+               if (yych == ':') goto yy1024;
+               goto yy430;
        }
-yy1056:
-       YYDEBUG(1056, *YYCURSOR);
+yy1031:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '5') goto yy1057;
-       if (yych <= '6') goto yy1058;
-       if (yych <= '9') goto yy574;
+       if (yych <= '5') goto yy1032;
+       if (yych <= '6') goto yy1033;
+       if (yych <= '9') goto yy549;
        goto yy56;
-yy1057:
-       YYDEBUG(1057, *YYCURSOR);
+yy1032:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy1059;
-       goto yy455;
-yy1058:
-       YYDEBUG(1058, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy1034;
+       goto yy430;
+yy1033:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
-               if (yych == '.') goto yy461;
-               goto yy455;
+               if (yych == '.') goto yy436;
+               goto yy430;
        } else {
-               if (yych <= '0') goto yy1059;
-               if (yych <= '9') goto yy575;
-               goto yy455;
+               if (yych <= '0') goto yy1034;
+               if (yych <= '9') goto yy550;
+               goto yy430;
        }
-yy1059:
-       YYDEBUG(1059, *YYCURSOR);
+yy1034:
        yyaccept = 10;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '.') goto yy461;
-       if (yych <= '/') goto yy455;
-       if (yych <= '9') goto yy569;
-       goto yy455;
-yy1060:
-       YYDEBUG(1060, *YYCURSOR);
+       if (yych == '.') goto yy436;
+       if (yych <= '/') goto yy430;
+       if (yych <= '9') goto yy544;
+       goto yy430;
+yy1035:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= '-') {
-                       if (yych == '\t') goto yy424;
-                       if (yych <= ',') goto yy426;
-                       goto yy1015;
+                       if (yych == '\t') goto yy399;
+                       if (yych <= ',') goto yy401;
+                       goto yy990;
                } else {
-                       if (yych <= '.') goto yy438;
-                       if (yych <= '/') goto yy436;
-                       if (yych <= '5') goto yy1030;
-                       goto yy705;
+                       if (yych <= '.') goto yy413;
+                       if (yych <= '/') goto yy411;
+                       if (yych <= '5') goto yy1005;
+                       goto yy680;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= ':') goto yy447;
-                       if (yych == 'n') goto yy434;
-                       goto yy426;
+                       if (yych <= ':') goto yy422;
+                       if (yych == 'n') goto yy409;
+                       goto yy401;
                } else {
-                       if (yych <= 'r') goto yy435;
-                       if (yych <= 's') goto yy429;
-                       if (yych <= 't') goto yy432;
-                       goto yy426;
+                       if (yych <= 'r') goto yy410;
+                       if (yych <= 's') goto yy403;
+                       if (yych <= 't') goto yy407;
+                       goto yy401;
                }
        }
-yy1061:
-       YYDEBUG(1061, *YYCURSOR);
+yy1036:
        yych = *++YYCURSOR;
        if (yych <= '9') {
                if (yych <= '-') {
-                       if (yych == '\t') goto yy1016;
-                       if (yych <= ',') goto yy1018;
-                       goto yy1015;
+                       if (yych == '\t') goto yy991;
+                       if (yych <= ',') goto yy993;
+                       goto yy990;
                } else {
-                       if (yych <= '.') goto yy1028;
-                       if (yych <= '/') goto yy436;
-                       if (yych <= '5') goto yy1030;
-                       goto yy705;
+                       if (yych <= '.') goto yy1003;
+                       if (yych <= '/') goto yy411;
+                       if (yych <= '5') goto yy1005;
+                       goto yy680;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= ':') goto yy1029;
-                       if (yych == 'n') goto yy434;
-                       goto yy1018;
+                       if (yych <= ':') goto yy1004;
+                       if (yych == 'n') goto yy409;
+                       goto yy993;
                } else {
-                       if (yych <= 'r') goto yy435;
-                       if (yych <= 's') goto yy429;
-                       if (yych <= 't') goto yy432;
-                       goto yy1018;
+                       if (yych <= 'r') goto yy410;
+                       if (yych <= 's') goto yy403;
+                       if (yych <= 't') goto yy407;
+                       goto yy993;
                }
        }
-yy1062:
-       YYDEBUG(1062, *YYCURSOR);
+yy1037:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy166;
+                       if (yych <= 'D') goto yy141;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'e') goto yy1063;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'e') goto yy1038;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1063:
-       YYDEBUG(1063, *YYCURSOR);
+yy1038:
        yych = *++YYCURSOR;
        if (yych <= 'V') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'U') goto yy167;
+                       if (yych <= 'U') goto yy142;
                }
        } else {
                if (yych <= 'u') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'v') goto yy1064;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'v') goto yy1039;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1064:
-       YYDEBUG(1064, *YYCURSOR);
+yy1039:
        yych = *++YYCURSOR;
        if (yych <= 'I') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'H') goto yy168;
+                       if (yych <= 'H') goto yy143;
                }
        } else {
                if (yych <= 'h') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'i') goto yy1065;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'i') goto yy1040;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1065:
-       YYDEBUG(1065, *YYCURSOR);
+yy1040:
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'N') goto yy169;
+                       if (yych <= 'N') goto yy144;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'o') goto yy1066;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'o') goto yy1041;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1066:
-       YYDEBUG(1066, *YYCURSOR);
+yy1041:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'U') goto yy1067;
+               if (yych <= 'U') goto yy1042;
                if (yych != 'u') goto yy3;
        }
-yy1067:
-       YYDEBUG(1067, *YYCURSOR);
+yy1042:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1068;
+       if (yych == 'S') goto yy1043;
        if (yych != 's') goto yy56;
-yy1068:
-       YYDEBUG(1068, *YYCURSOR);
+yy1043:
        yych = *++YYCURSOR;
-       if (yych == '\t') goto yy1069;
+       if (yych == '\t') goto yy1044;
        if (yych != ' ') goto yy56;
-yy1069:
-       YYDEBUG(1069, *YYCURSOR);
+yy1044:
        ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
        yych = *YYCURSOR;
-yy1070:
-       YYDEBUG(1070, *YYCURSOR);
-       if (yych <= 'X') {
-               if (yych <= 'G') {
+yy1045:
+       if (yych <= 'W') {
+               if (yych <= 'F') {
                        if (yych <= ' ') {
-                               if (yych == '\t') goto yy1069;
+                               if (yych == '\t') goto yy1044;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy1069;
+                               goto yy1044;
                        } else {
-                               if (yych <= 'D') {
-                                       if (yych <= 'C') goto yy56;
-                                       goto yy1076;
-                               } else {
-                                       if (yych == 'F') goto yy1077;
-                                       goto yy56;
-                               }
+                               if (yych == 'D') goto yy1049;
+                               if (yych <= 'E') goto yy56;
+                               goto yy1050;
                        }
                } else {
-                       if (yych <= 'S') {
-                               if (yych <= 'L') {
-                                       if (yych <= 'H') goto yy1075;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'M') goto yy1071;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy1074;
-                               }
+                       if (yych <= 'M') {
+                               if (yych == 'H') goto yy1048;
+                               if (yych <= 'L') goto yy56;
+                               goto yy1047;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych <= 'T') goto yy1080;
-                                       goto yy1073;
+                               if (yych <= 'S') {
+                                       if (yych <= 'R') goto yy56;
                                } else {
-                                       if (yych == 'W') goto yy1079;
-                                       goto yy56;
+                                       if (yych <= 'T') goto yy1053;
+                                       if (yych <= 'V') goto yy56;
+                                       goto yy1052;
                                }
                        }
                }
        } else {
-               if (yych <= 'r') {
-                       if (yych <= 'f') {
-                               if (yych <= 'c') {
-                                       if (yych <= 'Y') goto yy1078;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'd') goto yy1076;
-                                       if (yych <= 'e') goto yy56;
-                                       goto yy1077;
-                               }
+               if (yych <= 'l') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy1051;
+                               if (yych <= 'c') goto yy56;
+                               goto yy1049;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych <= 'g') goto yy56;
-                                       goto yy1075;
+                               if (yych <= 'f') {
+                                       if (yych <= 'e') goto yy56;
+                                       goto yy1050;
                                } else {
-                                       if (yych != 'm') goto yy56;
+                                       if (yych == 'h') goto yy1048;
+                                       goto yy56;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 't') {
-                                       if (yych <= 's') goto yy1074;
-                                       goto yy1080;
-                               } else {
-                                       if (yych <= 'u') goto yy1073;
-                                       if (yych <= 'v') goto yy56;
-                                       goto yy1079;
-                               }
+                       if (yych <= 't') {
+                               if (yych <= 'm') goto yy1047;
+                               if (yych <= 'r') goto yy56;
+                               if (yych >= 't') goto yy1053;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy56;
-                                       goto yy1078;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy56;
+                                       goto yy1052;
                                } else {
-                                       if (yych == 0xC2) goto yy1072;
+                                       if (yych == 'y') goto yy1051;
                                        goto yy56;
                                }
                        }
                }
        }
-yy1071:
-       YYDEBUG(1071, *YYCURSOR);
+yy1046:
        yych = *++YYCURSOR;
-       if (yych <= 'S') {
-               if (yych <= 'N') {
-                       if (yych == 'I') goto yy1155;
+       if (yych <= 'U') {
+               if (yych <= 'D') {
+                       if (yych == 'A') goto yy1118;
                        goto yy56;
                } else {
-                       if (yych <= 'O') goto yy1154;
-                       if (yych <= 'R') goto yy56;
-                       goto yy1156;
+                       if (yych <= 'E') goto yy1119;
+                       if (yych <= 'T') goto yy56;
+                       goto yy1117;
                }
        } else {
-               if (yych <= 'n') {
-                       if (yych == 'i') goto yy1155;
+               if (yych <= 'd') {
+                       if (yych == 'a') goto yy1118;
                        goto yy56;
                } else {
-                       if (yych <= 'o') goto yy1154;
-                       if (yych == 's') goto yy1156;
+                       if (yych <= 'e') goto yy1119;
+                       if (yych == 'u') goto yy1117;
                        goto yy56;
                }
        }
-yy1072:
-       YYDEBUG(1072, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 0xB5) goto yy1151;
-       goto yy56;
-yy1073:
-       YYDEBUG(1073, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1149;
-       if (yych == 's') goto yy1149;
-       goto yy56;
-yy1074:
-       YYDEBUG(1074, *YYCURSOR);
+yy1047:
        yych = *++YYCURSOR;
-       if (yych <= 'U') {
-               if (yych <= 'D') {
-                       if (yych == 'A') goto yy1136;
-                       goto yy56;
-               } else {
-                       if (yych <= 'E') goto yy1137;
-                       if (yych <= 'T') goto yy56;
-                       goto yy1135;
-               }
+       if (yych <= 'O') {
+               if (yych == 'I') goto yy1109;
+               if (yych <= 'N') goto yy56;
+               goto yy1108;
        } else {
-               if (yych <= 'd') {
-                       if (yych == 'a') goto yy1136;
-                       goto yy56;
+               if (yych <= 'i') {
+                       if (yych <= 'h') goto yy56;
+                       goto yy1109;
                } else {
-                       if (yych <= 'e') goto yy1137;
-                       if (yych == 'u') goto yy1135;
+                       if (yych == 'o') goto yy1108;
                        goto yy56;
                }
        }
-yy1075:
-       YYDEBUG(1075, *YYCURSOR);
+yy1048:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1133;
-       if (yych == 'o') goto yy1133;
+       if (yych == 'O') goto yy1106;
+       if (yych == 'o') goto yy1106;
        goto yy56;
-yy1076:
-       YYDEBUG(1076, *YYCURSOR);
+yy1049:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1132;
-       if (yych == 'a') goto yy1132;
+       if (yych == 'A') goto yy1105;
+       if (yych == 'a') goto yy1105;
        goto yy56;
-yy1077:
-       YYDEBUG(1077, *YYCURSOR);
+yy1050:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
-               if (yych == 'O') goto yy1117;
+               if (yych == 'O') goto yy1090;
                if (yych <= 'Q') goto yy56;
-               goto yy1116;
+               goto yy1089;
        } else {
                if (yych <= 'o') {
                        if (yych <= 'n') goto yy56;
-                       goto yy1117;
+                       goto yy1090;
                } else {
-                       if (yych == 'r') goto yy1116;
+                       if (yych == 'r') goto yy1089;
                        goto yy56;
                }
        }
-yy1078:
-       YYDEBUG(1078, *YYCURSOR);
+yy1051:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1113;
-       if (yych == 'e') goto yy1113;
+       if (yych == 'E') goto yy1086;
+       if (yych == 'e') goto yy1086;
        goto yy56;
-yy1079:
-       YYDEBUG(1079, *YYCURSOR);
+yy1052:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1099;
-       if (yych == 'e') goto yy1099;
+       if (yych == 'E') goto yy1072;
+       if (yych == 'e') goto yy1072;
        goto yy56;
-yy1080:
-       YYDEBUG(1080, *YYCURSOR);
+yy1053:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
-               if (yych == 'H') goto yy1081;
+               if (yych == 'H') goto yy1054;
                if (yych <= 'T') goto yy56;
-               goto yy1082;
+               goto yy1055;
        } else {
                if (yych <= 'h') {
                        if (yych <= 'g') goto yy56;
                } else {
-                       if (yych == 'u') goto yy1082;
+                       if (yych == 'u') goto yy1055;
                        goto yy56;
                }
        }
-yy1081:
-       YYDEBUG(1081, *YYCURSOR);
+yy1054:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy1094;
-       if (yych == 'u') goto yy1094;
+       if (yych == 'U') goto yy1067;
+       if (yych == 'u') goto yy1067;
        goto yy56;
-yy1082:
-       YYDEBUG(1082, *YYCURSOR);
+yy1055:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1083;
+       if (yych == 'E') goto yy1056;
        if (yych != 'e') goto yy56;
-yy1083:
-       YYDEBUG(1083, *YYCURSOR);
+yy1056:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych >= ' ') goto yy1085;
+               if (yych == '\t') goto yy1058;
+               if (yych >= ' ') goto yy1058;
        } else {
                if (yych <= 'S') {
-                       if (yych >= 'S') goto yy1087;
+                       if (yych >= 'S') goto yy1060;
                } else {
-                       if (yych == 's') goto yy1087;
+                       if (yych == 's') goto yy1060;
                }
        }
-yy1084:
-       YYDEBUG(1084, *YYCURSOR);
-#line 1662 "ext/date/lib/parse_date.re"
+yy1057:
+#line 1603 "ext/date/lib/parse_date.re"
        {
                timelib_sll i;
                int         behavior = 0;
@@ -16553,58 +14658,49 @@ yy1084:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 16557 "<stdout>"
-yy1085:
-       YYDEBUG(1085, *YYCURSOR);
+#line 14662 "ext/date/lib/parse_date.c"
+yy1058:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
-       YYDEBUG(1086, *YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
+               if (yych == '\t') goto yy1058;
                if (yych <= 0x1F) goto yy56;
-               goto yy1085;
+               goto yy1058;
        } else {
                if (yych <= 'O') {
                        if (yych <= 'N') goto yy56;
-                       goto yy1091;
+                       goto yy1064;
                } else {
-                       if (yych == 'o') goto yy1091;
+                       if (yych == 'o') goto yy1064;
                        goto yy56;
                }
        }
-yy1087:
-       YYDEBUG(1087, *YYCURSOR);
+yy1060:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1088;
+       if (yych == 'D') goto yy1061;
        if (yych != 'd') goto yy56;
-yy1088:
-       YYDEBUG(1088, *YYCURSOR);
+yy1061:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1089;
+       if (yych == 'A') goto yy1062;
        if (yych != 'a') goto yy56;
-yy1089:
-       YYDEBUG(1089, *YYCURSOR);
+yy1062:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
+       if (yych == 'Y') goto yy1063;
        if (yych != 'y') goto yy56;
-yy1090:
-       YYDEBUG(1090, *YYCURSOR);
+yy1063:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == '\t') goto yy1085;
-       if (yych == ' ') goto yy1085;
-       goto yy1084;
-yy1091:
-       YYDEBUG(1091, *YYCURSOR);
+       if (yych == '\t') goto yy1058;
+       if (yych == ' ') goto yy1058;
+       goto yy1057;
+yy1064:
        yych = *++YYCURSOR;
-       if (yych == 'F') goto yy1092;
+       if (yych == 'F') goto yy1065;
        if (yych != 'f') goto yy56;
-yy1092:
-       YYDEBUG(1092, *YYCURSOR);
+yy1065:
        ++YYCURSOR;
-       YYDEBUG(1093, *YYCURSOR);
-#line 1135 "ext/date/lib/parse_date.re"
+#line 1076 "ext/date/lib/parse_date.re"
        {
                timelib_sll i;
                int         behavior = 0;
@@ -16625,115 +14721,100 @@ yy1092:
                TIMELIB_DEINIT;
                return TIMELIB_WEEK_DAY_OF_MONTH;
        }
-#line 16629 "<stdout>"
-yy1094:
-       YYDEBUG(1094, *YYCURSOR);
+#line 14725 "ext/date/lib/parse_date.c"
+yy1067:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych <= 0x1F) goto yy1084;
-               goto yy1085;
+               if (yych == '\t') goto yy1058;
+               if (yych <= 0x1F) goto yy1057;
+               goto yy1058;
        } else {
                if (yych <= 'R') {
-                       if (yych <= 'Q') goto yy1084;
+                       if (yych <= 'Q') goto yy1057;
                } else {
-                       if (yych != 'r') goto yy1084;
+                       if (yych != 'r') goto yy1057;
                }
        }
-       YYDEBUG(1095, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1096;
+       if (yych == 'S') goto yy1069;
        if (yych != 's') goto yy56;
-yy1096:
-       YYDEBUG(1096, *YYCURSOR);
+yy1069:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1097;
+       if (yych == 'D') goto yy1070;
        if (yych != 'd') goto yy56;
-yy1097:
-       YYDEBUG(1097, *YYCURSOR);
+yy1070:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1098;
+       if (yych == 'A') goto yy1071;
        if (yych != 'a') goto yy56;
-yy1098:
-       YYDEBUG(1098, *YYCURSOR);
+yy1071:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
        goto yy56;
-yy1099:
-       YYDEBUG(1099, *YYCURSOR);
+yy1072:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= 'C') goto yy56;
-               if (yych <= 'D') goto yy1101;
+               if (yych <= 'D') goto yy1074;
        } else {
                if (yych <= 'c') goto yy56;
-               if (yych <= 'd') goto yy1101;
+               if (yych <= 'd') goto yy1074;
                if (yych >= 'f') goto yy56;
        }
-       YYDEBUG(1100, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'K') goto yy1107;
-       if (yych == 'k') goto yy1107;
+       if (yych == 'K') goto yy1080;
+       if (yych == 'k') goto yy1080;
        goto yy56;
-yy1101:
-       YYDEBUG(1101, *YYCURSOR);
+yy1074:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych <= 0x1F) goto yy1084;
-               goto yy1085;
+               if (yych == '\t') goto yy1058;
+               if (yych <= 0x1F) goto yy1057;
+               goto yy1058;
        } else {
                if (yych <= 'N') {
-                       if (yych <= 'M') goto yy1084;
+                       if (yych <= 'M') goto yy1057;
                } else {
-                       if (yych != 'n') goto yy1084;
+                       if (yych != 'n') goto yy1057;
                }
        }
-       YYDEBUG(1102, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1103;
+       if (yych == 'E') goto yy1076;
        if (yych != 'e') goto yy56;
-yy1103:
-       YYDEBUG(1103, *YYCURSOR);
+yy1076:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1104;
+       if (yych == 'S') goto yy1077;
        if (yych != 's') goto yy56;
-yy1104:
-       YYDEBUG(1104, *YYCURSOR);
+yy1077:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1105;
+       if (yych == 'D') goto yy1078;
        if (yych != 'd') goto yy56;
-yy1105:
-       YYDEBUG(1105, *YYCURSOR);
+yy1078:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1106;
+       if (yych == 'A') goto yy1079;
        if (yych != 'a') goto yy56;
-yy1106:
-       YYDEBUG(1106, *YYCURSOR);
+yy1079:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
        goto yy56;
-yy1107:
-       YYDEBUG(1107, *YYCURSOR);
+yy1080:
        yyaccept = 26;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
-               if (yych == 'D') goto yy1110;
-               if (yych >= 'S') goto yy1109;
+               if (yych == 'D') goto yy1083;
+               if (yych >= 'S') goto yy1082;
        } else {
                if (yych <= 'd') {
-                       if (yych >= 'd') goto yy1110;
+                       if (yych >= 'd') goto yy1083;
                } else {
-                       if (yych == 's') goto yy1109;
+                       if (yych == 's') goto yy1082;
                }
        }
-yy1108:
-       YYDEBUG(1108, *YYCURSOR);
-#line 1638 "ext/date/lib/parse_date.re"
+yy1081:
+#line 1579 "ext/date/lib/parse_date.re"
        {
                timelib_sll i;
                int         behavior = 0;
@@ -16756,2856 +14837,2531 @@ yy1108:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 16760 "<stdout>"
-yy1109:
-       YYDEBUG(1109, *YYCURSOR);
+#line 14841 "ext/date/lib/parse_date.c"
+yy1082:
        yych = *++YYCURSOR;
-       goto yy1084;
-yy1110:
-       YYDEBUG(1110, *YYCURSOR);
+       goto yy1057;
+yy1083:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1111;
+       if (yych == 'A') goto yy1084;
        if (yych != 'a') goto yy56;
-yy1111:
-       YYDEBUG(1111, *YYCURSOR);
+yy1084:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1112;
+       if (yych == 'Y') goto yy1085;
        if (yych != 'y') goto yy56;
-yy1112:
-       YYDEBUG(1112, *YYCURSOR);
+yy1085:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1109;
-       if (yych == 's') goto yy1109;
-       goto yy1084;
-yy1113:
-       YYDEBUG(1113, *YYCURSOR);
+       if (yych == 'S') goto yy1082;
+       if (yych == 's') goto yy1082;
+       goto yy1057;
+yy1086:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1114;
+       if (yych == 'A') goto yy1087;
        if (yych != 'a') goto yy56;
-yy1114:
-       YYDEBUG(1114, *YYCURSOR);
+yy1087:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1115;
+       if (yych == 'R') goto yy1088;
        if (yych != 'r') goto yy56;
-yy1115:
-       YYDEBUG(1115, *YYCURSOR);
+yy1088:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1109;
-       if (yych == 's') goto yy1109;
-       goto yy1084;
-yy1116:
-       YYDEBUG(1116, *YYCURSOR);
+       if (yych == 'S') goto yy1082;
+       if (yych == 's') goto yy1082;
+       goto yy1057;
+yy1089:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy1129;
-       if (yych == 'i') goto yy1129;
+       if (yych == 'I') goto yy1102;
+       if (yych == 'i') goto yy1102;
        goto yy56;
-yy1117:
-       YYDEBUG(1117, *YYCURSOR);
+yy1090:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1118;
+       if (yych == 'R') goto yy1091;
        if (yych != 'r') goto yy56;
-yy1118:
-       YYDEBUG(1118, *YYCURSOR);
+yy1091:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1119;
+       if (yych == 'T') goto yy1092;
        if (yych != 't') goto yy56;
-yy1119:
-       YYDEBUG(1119, *YYCURSOR);
+yy1092:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
-               if (yych == 'H') goto yy1121;
+               if (yych == 'H') goto yy1094;
                if (yych <= 'M') goto yy56;
        } else {
                if (yych <= 'h') {
                        if (yych <= 'g') goto yy56;
-                       goto yy1121;
+                       goto yy1094;
                } else {
                        if (yych != 'n') goto yy56;
                }
        }
-       YYDEBUG(1120, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy1126;
-       if (yych == 'i') goto yy1126;
+       if (yych == 'I') goto yy1099;
+       if (yych == 'i') goto yy1099;
        goto yy56;
-yy1121:
-       YYDEBUG(1121, *YYCURSOR);
+yy1094:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1122;
+       if (yych == 'N') goto yy1095;
        if (yych != 'n') goto yy56;
-yy1122:
-       YYDEBUG(1122, *YYCURSOR);
+yy1095:
        yych = *++YYCURSOR;
-       if (yych == 'I') goto yy1123;
+       if (yych == 'I') goto yy1096;
        if (yych != 'i') goto yy56;
-yy1123:
-       YYDEBUG(1123, *YYCURSOR);
+yy1096:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy1124;
+       if (yych == 'G') goto yy1097;
        if (yych != 'g') goto yy56;
-yy1124:
-       YYDEBUG(1124, *YYCURSOR);
+yy1097:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy1125;
+       if (yych == 'H') goto yy1098;
        if (yych != 'h') goto yy56;
-yy1125:
-       YYDEBUG(1125, *YYCURSOR);
+yy1098:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1115;
-       if (yych == 't') goto yy1115;
+       if (yych == 'T') goto yy1088;
+       if (yych == 't') goto yy1088;
        goto yy56;
-yy1126:
-       YYDEBUG(1126, *YYCURSOR);
+yy1099:
        yych = *++YYCURSOR;
-       if (yych == 'G') goto yy1127;
+       if (yych == 'G') goto yy1100;
        if (yych != 'g') goto yy56;
-yy1127:
-       YYDEBUG(1127, *YYCURSOR);
+yy1100:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy1128;
+       if (yych == 'H') goto yy1101;
        if (yych != 'h') goto yy56;
-yy1128:
-       YYDEBUG(1128, *YYCURSOR);
+yy1101:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1115;
-       if (yych == 't') goto yy1115;
+       if (yych == 'T') goto yy1088;
+       if (yych == 't') goto yy1088;
        goto yy56;
-yy1129:
-       YYDEBUG(1129, *YYCURSOR);
+yy1102:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych <= 0x1F) goto yy1084;
-               goto yy1085;
+               if (yych == '\t') goto yy1058;
+               if (yych <= 0x1F) goto yy1057;
+               goto yy1058;
        } else {
                if (yych <= 'D') {
-                       if (yych <= 'C') goto yy1084;
+                       if (yych <= 'C') goto yy1057;
                } else {
-                       if (yych != 'd') goto yy1084;
+                       if (yych != 'd') goto yy1057;
                }
        }
-       YYDEBUG(1130, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1131;
+       if (yych == 'A') goto yy1104;
        if (yych != 'a') goto yy56;
-yy1131:
-       YYDEBUG(1131, *YYCURSOR);
+yy1104:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
        goto yy56;
-yy1132:
-       YYDEBUG(1132, *YYCURSOR);
+yy1105:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1115;
-       if (yych == 'y') goto yy1115;
+       if (yych == 'Y') goto yy1088;
+       if (yych == 'y') goto yy1088;
        goto yy56;
-yy1133:
-       YYDEBUG(1133, *YYCURSOR);
+yy1106:
        yych = *++YYCURSOR;
-       if (yych == 'U') goto yy1134;
+       if (yych == 'U') goto yy1107;
        if (yych != 'u') goto yy56;
-yy1134:
-       YYDEBUG(1134, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1115;
-       if (yych == 'r') goto yy1115;
-       goto yy56;
-yy1135:
-       YYDEBUG(1135, *YYCURSOR);
+yy1107:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1146;
-       if (yych == 'n') goto yy1146;
+       if (yych == 'R') goto yy1088;
+       if (yych == 'r') goto yy1088;
        goto yy56;
-yy1136:
-       YYDEBUG(1136, *YYCURSOR);
+yy1108:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1141;
-       if (yych == 't') goto yy1141;
+       if (yych == 'N') goto yy1113;
+       if (yych == 'n') goto yy1113;
        goto yy56;
-yy1137:
-       YYDEBUG(1137, *YYCURSOR);
+yy1109:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1138;
-       if (yych != 'c') goto yy56;
-yy1138:
-       YYDEBUG(1138, *YYCURSOR);
+       if (yych == 'N') goto yy1110;
+       if (yych != 'n') goto yy56;
+yy1110:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'S') {
-               if (yych == 'O') goto yy1139;
-               if (yych <= 'R') goto yy1084;
-               goto yy1109;
+       if (yych <= 'U') {
+               if (yych == 'S') goto yy1082;
+               if (yych <= 'T') goto yy1057;
        } else {
-               if (yych <= 'o') {
-                       if (yych <= 'n') goto yy1084;
+               if (yych <= 's') {
+                       if (yych <= 'r') goto yy1057;
+                       goto yy1082;
                } else {
-                       if (yych == 's') goto yy1109;
-                       goto yy1084;
+                       if (yych != 'u') goto yy1057;
                }
        }
-yy1139:
-       YYDEBUG(1139, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1140;
-       if (yych != 'n') goto yy56;
-yy1140:
-       YYDEBUG(1140, *YYCURSOR);
+       if (yych == 'T') goto yy1112;
+       if (yych != 't') goto yy56;
+yy1112:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1115;
-       if (yych == 'd') goto yy1115;
+       if (yych == 'E') goto yy1088;
+       if (yych == 'e') goto yy1088;
        goto yy56;
-yy1141:
-       YYDEBUG(1141, *YYCURSOR);
+yy1113:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych <= 0x1F) goto yy1084;
-               goto yy1085;
-       } else {
-               if (yych <= 'U') {
-                       if (yych <= 'T') goto yy1084;
+       if (yych <= 'D') {
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy1058;
+                       goto yy1057;
                } else {
-                       if (yych != 'u') goto yy1084;
+                       if (yych <= ' ') goto yy1058;
+                       if (yych <= 'C') goto yy1057;
                }
-       }
-       YYDEBUG(1142, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1143;
-       if (yych != 'r') goto yy56;
-yy1143:
-       YYDEBUG(1143, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1144;
-       if (yych != 'd') goto yy56;
-yy1144:
-       YYDEBUG(1144, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1145;
-       if (yych != 'a') goto yy56;
-yy1145:
-       YYDEBUG(1145, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
-       goto yy56;
-yy1146:
-       YYDEBUG(1146, *YYCURSOR);
-       yyaccept = 25;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= ' ') {
-               if (yych == '\t') goto yy1085;
-               if (yych <= 0x1F) goto yy1084;
-               goto yy1085;
        } else {
-               if (yych <= 'D') {
-                       if (yych <= 'C') goto yy1084;
+               if (yych <= 'c') {
+                       if (yych == 'T') goto yy1115;
+                       goto yy1057;
                } else {
-                       if (yych != 'd') goto yy1084;
+                       if (yych <= 'd') goto yy1114;
+                       if (yych == 't') goto yy1115;
+                       goto yy1057;
                }
        }
-       YYDEBUG(1147, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1148;
-       if (yych != 'a') goto yy56;
-yy1148:
-       YYDEBUG(1148, *YYCURSOR);
+yy1114:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
+       if (yych == 'A') goto yy1116;
+       if (yych == 'a') goto yy1116;
        goto yy56;
-yy1149:
-       YYDEBUG(1149, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1150;
-       if (yych != 'e') goto yy56;
-yy1150:
-       YYDEBUG(1150, *YYCURSOR);
+yy1115:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1115;
-       if (yych == 'c') goto yy1115;
+       if (yych == 'H') goto yy1088;
+       if (yych == 'h') goto yy1088;
        goto yy56;
-yy1151:
-       YYDEBUG(1151, *YYCURSOR);
+yy1116:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1152;
-       if (yych != 's') goto yy56;
-yy1152:
-       YYDEBUG(1152, *YYCURSOR);
-       yyaccept = 25;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy1153;
-       if (yych != 'e') goto yy1084;
-yy1153:
-       YYDEBUG(1153, *YYCURSOR);
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
+       goto yy56;
+yy1117:
        yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1115;
-       if (yych == 'c') goto yy1115;
+       if (yych == 'N') goto yy1128;
+       if (yych == 'n') goto yy1128;
        goto yy56;
-yy1154:
-       YYDEBUG(1154, *YYCURSOR);
+yy1118:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1177;
-       if (yych == 'n') goto yy1177;
+       if (yych == 'T') goto yy1123;
+       if (yych == 't') goto yy1123;
        goto yy56;
-yy1155:
-       YYDEBUG(1155, *YYCURSOR);
+yy1119:
        yych = *++YYCURSOR;
-       if (yych <= 'N') {
-               if (yych <= 'K') {
-                       if (yych == 'C') goto yy1159;
-                       goto yy56;
-               } else {
-                       if (yych <= 'L') goto yy1158;
-                       if (yych <= 'M') goto yy56;
-                       goto yy1160;
-               }
+       if (yych == 'C') goto yy1120;
+       if (yych != 'c') goto yy56;
+yy1120:
+       yyaccept = 25;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych <= 'S') {
+               if (yych == 'O') goto yy1121;
+               if (yych <= 'R') goto yy1057;
+               goto yy1082;
        } else {
-               if (yych <= 'k') {
-                       if (yych == 'c') goto yy1159;
-                       goto yy56;
+               if (yych <= 'o') {
+                       if (yych <= 'n') goto yy1057;
                } else {
-                       if (yych <= 'l') goto yy1158;
-                       if (yych == 'n') goto yy1160;
-                       goto yy56;
+                       if (yych == 's') goto yy1082;
+                       goto yy1057;
                }
        }
-yy1156:
-       YYDEBUG(1156, *YYCURSOR);
-       yyaccept = 25;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych == 'E') goto yy1157;
-       if (yych != 'e') goto yy1084;
-yy1157:
-       YYDEBUG(1157, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1115;
-       if (yych == 'c') goto yy1115;
-       goto yy56;
-yy1158:
-       YYDEBUG(1158, *YYCURSOR);
+yy1121:
        yych = *++YYCURSOR;
-       if (yych == 'L') goto yy1170;
-       if (yych == 'l') goto yy1170;
-       goto yy56;
-yy1159:
-       YYDEBUG(1159, *YYCURSOR);
+       if (yych == 'N') goto yy1122;
+       if (yych != 'n') goto yy56;
+yy1122:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy1163;
-       if (yych == 'r') goto yy1163;
+       if (yych == 'D') goto yy1088;
+       if (yych == 'd') goto yy1088;
        goto yy56;
-yy1160:
-       YYDEBUG(1160, *YYCURSOR);
+yy1123:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'U') {
-               if (yych == 'S') goto yy1109;
-               if (yych <= 'T') goto yy1084;
+       if (yych <= ' ') {
+               if (yych == '\t') goto yy1058;
+               if (yych <= 0x1F) goto yy1057;
+               goto yy1058;
        } else {
-               if (yych <= 's') {
-                       if (yych <= 'r') goto yy1084;
-                       goto yy1109;
+               if (yych <= 'U') {
+                       if (yych <= 'T') goto yy1057;
                } else {
-                       if (yych != 'u') goto yy1084;
+                       if (yych != 'u') goto yy1057;
                }
        }
-       YYDEBUG(1161, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1162;
-       if (yych != 't') goto yy56;
-yy1162:
-       YYDEBUG(1162, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1115;
-       if (yych == 'e') goto yy1115;
-       goto yy56;
-yy1163:
-       YYDEBUG(1163, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1164;
-       if (yych != 'o') goto yy56;
-yy1164:
-       YYDEBUG(1164, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1165;
-       if (yych != 's') goto yy56;
-yy1165:
-       YYDEBUG(1165, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1166;
-       if (yych != 'e') goto yy56;
-yy1166:
-       YYDEBUG(1166, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1167;
-       if (yych != 'c') goto yy56;
-yy1167:
-       YYDEBUG(1167, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1168;
-       if (yych != 'o') goto yy56;
-yy1168:
-       YYDEBUG(1168, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1169;
-       if (yych != 'n') goto yy56;
-yy1169:
-       YYDEBUG(1169, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1115;
-       if (yych == 'd') goto yy1115;
-       goto yy56;
-yy1170:
-       YYDEBUG(1170, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'I') goto yy1171;
-       if (yych != 'i') goto yy56;
-yy1171:
-       YYDEBUG(1171, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1172;
-       if (yych != 's') goto yy56;
-yy1172:
-       YYDEBUG(1172, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1173;
-       if (yych != 'e') goto yy56;
-yy1173:
-       YYDEBUG(1173, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'C') goto yy1174;
-       if (yych != 'c') goto yy56;
-yy1174:
-       YYDEBUG(1174, *YYCURSOR);
+       if (yych == 'R') goto yy1125;
+       if (yych != 'r') goto yy56;
+yy1125:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1175;
-       if (yych != 'o') goto yy56;
-yy1175:
-       YYDEBUG(1175, *YYCURSOR);
+       if (yych == 'D') goto yy1126;
+       if (yych != 'd') goto yy56;
+yy1126:
        yych = *++YYCURSOR;
-       if (yych == 'N') goto yy1176;
-       if (yych != 'n') goto yy56;
-yy1176:
-       YYDEBUG(1176, *YYCURSOR);
+       if (yych == 'A') goto yy1127;
+       if (yych != 'a') goto yy56;
+yy1127:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1115;
-       if (yych == 'd') goto yy1115;
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
        goto yy56;
-yy1177:
-       YYDEBUG(1177, *YYCURSOR);
+yy1128:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'D') {
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1085;
-                       goto yy1084;
-               } else {
-                       if (yych <= ' ') goto yy1085;
-                       if (yych <= 'C') goto yy1084;
-               }
+       if (yych <= ' ') {
+               if (yych == '\t') goto yy1058;
+               if (yych <= 0x1F) goto yy1057;
+               goto yy1058;
        } else {
-               if (yych <= 'c') {
-                       if (yych == 'T') goto yy1179;
-                       goto yy1084;
+               if (yych <= 'D') {
+                       if (yych <= 'C') goto yy1057;
                } else {
-                       if (yych <= 'd') goto yy1178;
-                       if (yych == 't') goto yy1179;
-                       goto yy1084;
+                       if (yych != 'd') goto yy1057;
                }
        }
-yy1178:
-       YYDEBUG(1178, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1180;
-       if (yych == 'a') goto yy1180;
-       goto yy56;
-yy1179:
-       YYDEBUG(1179, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'H') goto yy1115;
-       if (yych == 'h') goto yy1115;
-       goto yy56;
-yy1180:
-       YYDEBUG(1180, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1090;
-       if (yych == 'y') goto yy1090;
+       if (yych == 'A') goto yy1130;
+       if (yych != 'a') goto yy56;
+yy1130:
+       yych = *++YYCURSOR;
+       if (yych == 'Y') goto yy1063;
+       if (yych == 'y') goto yy1063;
        goto yy56;
-yy1181:
-       YYDEBUG(1181, *YYCURSOR);
+yy1131:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1063;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'E') goto yy1038;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'e') goto yy1182;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'e') goto yy1132;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1182:
-       YYDEBUG(1182, *YYCURSOR);
+yy1132:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'U') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'V') goto yy1064;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'V') goto yy1039;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'u') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'v') goto yy1183;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'v') goto yy1133;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1183:
-       YYDEBUG(1183, *YYCURSOR);
+yy1133:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'H') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'I') goto yy1065;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'I') goto yy1040;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'h') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'i') goto yy1184;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'i') goto yy1134;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1184:
-       YYDEBUG(1184, *YYCURSOR);
+yy1134:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'O') goto yy1066;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'O') goto yy1041;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'n') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'o') goto yy1185;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'o') goto yy1135;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1185:
-       YYDEBUG(1185, *YYCURSOR);
+yy1135:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'U') goto yy1067;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'U') goto yy1042;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'u') goto yy1186;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'u') goto yy1136;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1186:
-       YYDEBUG(1186, *YYCURSOR);
+yy1136:
        yych = *++YYCURSOR;
-       if (yych == 'S') goto yy1068;
-       if (yych != 's') goto yy179;
-       YYDEBUG(1187, *YYCURSOR);
+       if (yych == 'S') goto yy1043;
+       if (yych != 's') goto yy154;
        yych = *++YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= ',') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy56;
-                       goto yy1069;
+                       goto yy1044;
                } else {
-                       if (yych == ' ') goto yy1069;
+                       if (yych == ' ') goto yy1044;
                        goto yy56;
                }
        } else {
                if (yych <= '/') {
                        if (yych == '.') goto yy56;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '_') goto yy172;
+                       if (yych == '_') goto yy147;
                        goto yy56;
                }
        }
-yy1188:
-       YYDEBUG(1188, *YYCURSOR);
+yy1138:
        yych = *++YYCURSOR;
        if (yych <= 'G') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'F') goto yy166;
-                       goto yy1202;
+                       if (yych <= 'F') goto yy141;
+                       goto yy1152;
                }
        } else {
                if (yych <= 'f') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'g') goto yy1202;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'g') goto yy1152;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1189:
-       YYDEBUG(1189, *YYCURSOR);
+yy1139:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy166;
+                       if (yych <= 'D') goto yy141;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'e') goto yy1190;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'e') goto yy1140;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1190:
-       YYDEBUG(1190, *YYCURSOR);
+yy1140:
        yych = *++YYCURSOR;
        if (yych <= 'V') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'U') goto yy167;
+                       if (yych <= 'U') goto yy142;
                }
        } else {
                if (yych <= 'u') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'v') goto yy1191;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'v') goto yy1141;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1191:
-       YYDEBUG(1191, *YYCURSOR);
+yy1141:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy168;
+                       if (yych <= 'D') goto yy143;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'e') goto yy1192;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'e') goto yy1142;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1192:
-       YYDEBUG(1192, *YYCURSOR);
+yy1142:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy169;
+                       if (yych <= 'M') goto yy144;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'n') goto yy1193;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'n') goto yy1143;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1193:
-       YYDEBUG(1193, *YYCURSOR);
+yy1143:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'T') goto yy1194;
+               if (yych <= 'T') goto yy1144;
                if (yych != 't') goto yy3;
        }
-yy1194:
-       YYDEBUG(1194, *YYCURSOR);
+yy1144:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy1195;
+       if (yych == 'H') goto yy1145;
        if (yych != 'h') goto yy56;
-yy1195:
-       YYDEBUG(1195, *YYCURSOR);
+yy1145:
        yych = *++YYCURSOR;
-       if (yych == '\t') goto yy1196;
+       if (yych == '\t') goto yy1146;
        if (yych != ' ') goto yy56;
-yy1196:
-       YYDEBUG(1196, *YYCURSOR);
+yy1146:
        ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
        yych = *YYCURSOR;
-yy1197:
-       YYDEBUG(1197, *YYCURSOR);
-       if (yych <= 'X') {
-               if (yych <= 'G') {
+yy1147:
+       if (yych <= 'W') {
+               if (yych <= 'F') {
                        if (yych <= ' ') {
-                               if (yych == '\t') goto yy1196;
+                               if (yych == '\t') goto yy1146;
                                if (yych <= 0x1F) goto yy56;
-                               goto yy1196;
+                               goto yy1146;
                        } else {
-                               if (yych <= 'D') {
-                                       if (yych <= 'C') goto yy56;
-                                       goto yy1076;
-                               } else {
-                                       if (yych == 'F') goto yy1077;
-                                       goto yy56;
-                               }
+                               if (yych == 'D') goto yy1049;
+                               if (yych <= 'E') goto yy56;
+                               goto yy1050;
                        }
                } else {
-                       if (yych <= 'S') {
-                               if (yych <= 'L') {
-                                       if (yych <= 'H') goto yy1075;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'M') goto yy1071;
-                                       if (yych <= 'R') goto yy56;
-                                       goto yy1074;
-                               }
+                       if (yych <= 'M') {
+                               if (yych == 'H') goto yy1048;
+                               if (yych <= 'L') goto yy56;
+                               goto yy1047;
                        } else {
-                               if (yych <= 'U') {
-                                       if (yych <= 'T') goto yy1080;
-                                       goto yy1073;
+                               if (yych <= 'S') {
+                                       if (yych <= 'R') goto yy56;
+                                       goto yy1046;
                                } else {
-                                       if (yych != 'W') goto yy56;
+                                       if (yych <= 'T') goto yy1053;
+                                       if (yych <= 'V') goto yy56;
                                }
                        }
                }
        } else {
-               if (yych <= 'r') {
-                       if (yych <= 'f') {
-                               if (yych <= 'c') {
-                                       if (yych <= 'Y') goto yy1078;
-                                       goto yy56;
-                               } else {
-                                       if (yych <= 'd') goto yy1076;
-                                       if (yych <= 'e') goto yy56;
-                                       goto yy1077;
-                               }
+               if (yych <= 'l') {
+                       if (yych <= 'd') {
+                               if (yych == 'Y') goto yy1051;
+                               if (yych <= 'c') goto yy56;
+                               goto yy1049;
                        } else {
-                               if (yych <= 'h') {
-                                       if (yych <= 'g') goto yy56;
-                                       goto yy1075;
+                               if (yych <= 'f') {
+                                       if (yych <= 'e') goto yy56;
+                                       goto yy1050;
                                } else {
-                                       if (yych == 'm') goto yy1071;
+                                       if (yych == 'h') goto yy1048;
                                        goto yy56;
                                }
                        }
                } else {
-                       if (yych <= 'w') {
-                               if (yych <= 't') {
-                                       if (yych <= 's') goto yy1074;
-                                       goto yy1080;
-                               } else {
-                                       if (yych <= 'u') goto yy1073;
-                                       if (yych <= 'v') goto yy56;
-                               }
+                       if (yych <= 't') {
+                               if (yych <= 'm') goto yy1047;
+                               if (yych <= 'r') goto yy56;
+                               if (yych <= 's') goto yy1046;
+                               goto yy1053;
                        } else {
-                               if (yych <= 'y') {
-                                       if (yych <= 'x') goto yy56;
-                                       goto yy1078;
+                               if (yych <= 'w') {
+                                       if (yych <= 'v') goto yy56;
                                } else {
-                                       if (yych == 0xC2) goto yy1072;
+                                       if (yych == 'y') goto yy1051;
                                        goto yy56;
                                }
                        }
                }
        }
-       YYDEBUG(1198, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1199;
+       if (yych == 'E') goto yy1149;
        if (yych != 'e') goto yy56;
-yy1199:
-       YYDEBUG(1199, *YYCURSOR);
+yy1149:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= 'C') goto yy56;
-               if (yych <= 'D') goto yy1101;
+               if (yych <= 'D') goto yy1074;
        } else {
                if (yych <= 'c') goto yy56;
-               if (yych <= 'd') goto yy1101;
+               if (yych <= 'd') goto yy1074;
                if (yych >= 'f') goto yy56;
        }
-       YYDEBUG(1200, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'K') goto yy1201;
+       if (yych == 'K') goto yy1151;
        if (yych != 'k') goto yy56;
-yy1201:
-       YYDEBUG(1201, *YYCURSOR);
+yy1151:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
-               if (yych == 'D') goto yy1110;
+               if (yych == 'D') goto yy1083;
                if (yych <= 'R') goto yy56;
-               goto yy1109;
+               goto yy1082;
        } else {
                if (yych <= 'd') {
                        if (yych <= 'c') goto yy56;
-                       goto yy1110;
+                       goto yy1083;
                } else {
-                       if (yych == 's') goto yy1109;
+                       if (yych == 's') goto yy1082;
                        goto yy56;
                }
        }
-yy1202:
-       YYDEBUG(1202, *YYCURSOR);
+yy1152:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy167;
+                       if (yych <= 'G') goto yy142;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'h') goto yy1203;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'h') goto yy1153;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1203:
-       YYDEBUG(1203, *YYCURSOR);
+yy1153:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy168;
+                       if (yych <= 'S') goto yy143;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 't') goto yy1204;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 't') goto yy1154;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1204:
-       YYDEBUG(1204, *YYCURSOR);
+yy1154:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1196;
+                       if (yych == '\t') goto yy1146;
                        goto yy3;
                } else {
-                       if (yych <= ' ') goto yy1196;
-                       if (yych == ')') goto yy164;
+                       if (yych <= ' ') goto yy1146;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych == 'H') goto yy1205;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych == 'H') goto yy1155;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych == 'h') goto yy1205;
-                       if (yych <= 'z') goto yy169;
+                       if (yych == 'h') goto yy1155;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1205:
-       YYDEBUG(1205, *YYCURSOR);
+yy1155:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy1196;
+               if (yych == '\t') goto yy1146;
                goto yy3;
        } else {
-               if (yych <= ' ') goto yy1196;
-               if (yych == ')') goto yy164;
+               if (yych <= ' ') goto yy1146;
+               if (yych == ')') goto yy139;
                goto yy3;
        }
-yy1206:
-       YYDEBUG(1206, *YYCURSOR);
+yy1156:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'F') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'G') goto yy1202;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'G') goto yy1152;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'f') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'g') goto yy1214;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'g') goto yy1164;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1207:
-       YYDEBUG(1207, *YYCURSOR);
+yy1157:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1190;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'E') goto yy1140;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'e') goto yy1208;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'e') goto yy1158;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1208:
-       YYDEBUG(1208, *YYCURSOR);
+yy1158:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'U') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'V') goto yy1191;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'V') goto yy1141;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'u') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'v') goto yy1209;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'v') goto yy1159;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1209:
-       YYDEBUG(1209, *YYCURSOR);
+yy1159:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1192;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'E') goto yy1142;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'e') goto yy1210;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'e') goto yy1160;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1210:
-       YYDEBUG(1210, *YYCURSOR);
+yy1160:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1193;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'N') goto yy1143;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'n') goto yy1211;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'n') goto yy1161;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1211:
-       YYDEBUG(1211, *YYCURSOR);
+yy1161:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'T') goto yy1194;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'T') goto yy1144;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 't') goto yy1212;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 't') goto yy1162;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1212:
-       YYDEBUG(1212, *YYCURSOR);
+yy1162:
        yych = *++YYCURSOR;
-       if (yych == 'H') goto yy1195;
-       if (yych != 'h') goto yy179;
-yy1213:
-       YYDEBUG(1213, *YYCURSOR);
+       if (yych == 'H') goto yy1145;
+       if (yych != 'h') goto yy154;
+yy1163:
        yych = *++YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= ',') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy56;
-                       goto yy1196;
+                       goto yy1146;
                } else {
-                       if (yych == ' ') goto yy1196;
+                       if (yych == ' ') goto yy1146;
                        goto yy56;
                }
        } else {
                if (yych <= '/') {
                        if (yych == '.') goto yy56;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '_') goto yy172;
+                       if (yych == '_') goto yy147;
                        goto yy56;
                }
        }
-yy1214:
-       YYDEBUG(1214, *YYCURSOR);
+yy1164:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1203;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'H') goto yy1153;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'h') goto yy1215;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'h') goto yy1165;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1215:
-       YYDEBUG(1215, *YYCURSOR);
+yy1165:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1204;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'T') goto yy1154;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 't') goto yy1216;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 't') goto yy1166;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1216:
-       YYDEBUG(1216, *YYCURSOR);
+yy1166:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
                                if (yych <= 0x08) goto yy3;
-                               goto yy1196;
+                               goto yy1146;
                        } else {
-                               if (yych == ' ') goto yy1196;
+                               if (yych == ' ') goto yy1146;
                                goto yy3;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
+                               if (yych <= ')') goto yy139;
                                goto yy3;
                        } else {
                                if (yych == '.') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'G') {
                                if (yych <= '@') goto yy3;
-                               goto yy169;
+                               goto yy144;
                        } else {
-                               if (yych <= 'H') goto yy1205;
-                               if (yych <= 'Z') goto yy169;
+                               if (yych <= 'H') goto yy1155;
+                               if (yych <= 'Z') goto yy144;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'g') {
-                               if (yych <= '_') goto yy172;
+                               if (yych <= '_') goto yy147;
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'h') goto yy1217;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'h') goto yy1167;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1217:
-       YYDEBUG(1217, *YYCURSOR);
+yy1167:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= ')') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1196;
+                       if (yych == '\t') goto yy1146;
                        goto yy3;
                } else {
-                       if (yych <= ' ') goto yy1196;
+                       if (yych <= ' ') goto yy1146;
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                }
        } else {
                if (yych <= '.') {
-                       if (yych == '-') goto yy172;
+                       if (yych == '-') goto yy147;
                        goto yy3;
                } else {
-                       if (yych <= '/') goto yy172;
-                       if (yych == '_') goto yy172;
+                       if (yych <= '/') goto yy147;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                }
        }
-yy1218:
-       YYDEBUG(1218, *YYCURSOR);
+yy1168:
        yych = *++YYCURSOR;
        if (yych <= 'V') {
                if (yych <= 'B') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
                        if (yych <= 'O') {
-                               if (yych <= 'C') goto yy1234;
-                               goto yy166;
+                               if (yych <= 'C') goto yy1184;
+                               goto yy141;
                        } else {
-                               if (yych <= 'P') goto yy1236;
-                               if (yych <= 'U') goto yy166;
-                               goto yy1235;
+                               if (yych <= 'P') goto yy1186;
+                               if (yych <= 'U') goto yy141;
+                               goto yy1185;
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= '`') {
-                               if (yych <= 'Z') goto yy166;
+                               if (yych <= 'Z') goto yy141;
                                goto yy3;
                        } else {
-                               if (yych == 'c') goto yy1234;
-                               goto yy166;
+                               if (yych == 'c') goto yy1184;
+                               goto yy141;
                        }
                } else {
                        if (yych <= 'u') {
-                               if (yych <= 'p') goto yy1236;
-                               goto yy166;
+                               if (yych <= 'p') goto yy1186;
+                               goto yy141;
                        } else {
-                               if (yych <= 'v') goto yy1235;
-                               if (yych <= 'z') goto yy166;
+                               if (yych <= 'v') goto yy1185;
+                               if (yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
        }
-yy1219:
-       YYDEBUG(1219, *YYCURSOR);
+yy1169:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy166;
-                       goto yy1229;
+                       if (yych <= 'S') goto yy141;
+                       goto yy1179;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 't') goto yy1229;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 't') goto yy1179;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1220:
-       YYDEBUG(1220, *YYCURSOR);
+yy1170:
        yych = *++YYCURSOR;
        if (yych <= 'X') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'W') goto yy166;
-                       goto yy1226;
+                       if (yych <= 'W') goto yy141;
+                       goto yy1176;
                }
        } else {
                if (yych <= 'w') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'x') goto yy1226;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'x') goto yy1176;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1221:
-       YYDEBUG(1221, *YYCURSOR);
+yy1171:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy166;
+                       if (yych <= 'M') goto yy141;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'n') goto yy1222;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'n') goto yy1172;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1222:
-       YYDEBUG(1222, *YYCURSOR);
+yy1172:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'C') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'C') goto yy142;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 'd') goto yy1223;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 'd') goto yy1173;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1223:
-       YYDEBUG(1223, *YYCURSOR);
+yy1173:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1224;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'a') goto yy1174;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1224:
-       YYDEBUG(1224, *YYCURSOR);
+yy1174:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'X') goto yy169;
+                       if (yych <= 'X') goto yy144;
                }
        } else {
                if (yych <= 'x') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'y') goto yy1225;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'y') goto yy1175;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1225:
-       YYDEBUG(1225, *YYCURSOR);
+yy1175:
        yych = *++YYCURSOR;
-       if (yych == ')') goto yy164;
-       goto yy191;
-yy1226:
-       YYDEBUG(1226, *YYCURSOR);
+       if (yych == ')') goto yy139;
+       goto yy166;
+yy1176:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1227;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1177;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1227:
-       YYDEBUG(1227, *YYCURSOR);
+yy1177:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy168;
+                       if (yych <= 'G') goto yy143;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'h') goto yy1228;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'h') goto yy1178;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1228:
-       YYDEBUG(1228, *YYCURSOR);
+yy1178:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '(') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy3;
-                       goto yy1196;
+                       goto yy1146;
                } else {
-                       if (yych == ' ') goto yy1196;
+                       if (yych == ' ') goto yy1146;
                        goto yy3;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= ')') goto yy164;
+                       if (yych <= ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1229:
-       YYDEBUG(1229, *YYCURSOR);
+yy1179:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'T') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'T') goto yy142;
                }
        } else {
                if (yych <= 't') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 'u') goto yy1230;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 'u') goto yy1180;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1230:
-       YYDEBUG(1230, *YYCURSOR);
+yy1180:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy168;
+                       if (yych <= 'Q') goto yy143;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'r') goto yy1231;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'r') goto yy1181;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1231:
-       YYDEBUG(1231, *YYCURSOR);
+yy1181:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy169;
+                       if (yych <= 'C') goto yy144;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'd') goto yy1232;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'd') goto yy1182;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1232:
-       YYDEBUG(1232, *YYCURSOR);
+yy1182:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'A') goto yy1233;
+               if (yych <= 'A') goto yy1183;
                if (yych != 'a') goto yy3;
        }
-yy1233:
-       YYDEBUG(1233, *YYCURSOR);
+yy1183:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy197;
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy172;
        goto yy56;
-yy1234:
-       YYDEBUG(1234, *YYCURSOR);
+yy1184:
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'N') goto yy167;
-                       goto yy1245;
+                       if (yych <= 'N') goto yy142;
+                       goto yy1195;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'o') goto yy1245;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'o') goto yy1195;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1235:
-       YYDEBUG(1235, *YYCURSOR);
+yy1185:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy167;
-                       goto yy1242;
+                       if (yych <= 'D') goto yy142;
+                       goto yy1192;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'e') goto yy1242;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'e') goto yy1192;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1236:
-       YYDEBUG(1236, *YYCURSOR);
+yy1186:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'T') goto yy167;
+                               if (yych != 'T') goto yy142;
                        }
                } else {
                        if (yych <= 's') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 't') goto yy1237;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 't') goto yy1187;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy1237:
-       YYDEBUG(1237, *YYCURSOR);
+yy1187:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'E') goto yy168;
+                               if (yych != 'E') goto yy143;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '`') goto yy218;
-                               goto yy168;
+                               if (yych <= '`') goto yy193;
+                               goto yy143;
                        } else {
-                               if (yych <= 'e') goto yy1238;
-                               if (yych <= 'z') goto yy168;
-                               goto yy218;
+                               if (yych <= 'e') goto yy1188;
+                               if (yych <= 'z') goto yy143;
+                               goto yy193;
                        }
                }
        }
-yy1238:
-       YYDEBUG(1238, *YYCURSOR);
+yy1188:
        yych = *++YYCURSOR;
        if (yych <= 'M') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'L') goto yy169;
+                       if (yych <= 'L') goto yy144;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'm') goto yy1239;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'm') goto yy1189;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1239:
-       YYDEBUG(1239, *YYCURSOR);
+yy1189:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'B') goto yy1240;
+               if (yych <= 'B') goto yy1190;
                if (yych != 'b') goto yy3;
        }
-yy1240:
-       YYDEBUG(1240, *YYCURSOR);
+yy1190:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1241;
+       if (yych == 'E') goto yy1191;
        if (yych != 'e') goto yy56;
-yy1241:
-       YYDEBUG(1241, *YYCURSOR);
+yy1191:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
-       if (yych == 'r') goto yy229;
+       if (yych == 'R') goto yy204;
+       if (yych == 'r') goto yy204;
        goto yy56;
-yy1242:
-       YYDEBUG(1242, *YYCURSOR);
+yy1192:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy168;
+                       if (yych <= 'M') goto yy143;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'n') goto yy1243;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'n') goto yy1193;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1243:
-       YYDEBUG(1243, *YYCURSOR);
+yy1193:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy169;
+                       if (yych <= 'S') goto yy144;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 't') goto yy1244;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 't') goto yy1194;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1244:
-       YYDEBUG(1244, *YYCURSOR);
+yy1194:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'H') goto yy1195;
-               if (yych == 'h') goto yy1195;
+               if (yych <= 'H') goto yy1145;
+               if (yych == 'h') goto yy1145;
                goto yy3;
        }
-yy1245:
-       YYDEBUG(1245, *YYCURSOR);
+yy1195:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy168;
+                       if (yych <= 'M') goto yy143;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'n') goto yy1246;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'n') goto yy1196;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1246:
-       YYDEBUG(1246, *YYCURSOR);
+yy1196:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy169;
-                       goto yy1205;
+                       if (yych <= 'C') goto yy144;
+                       goto yy1155;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'd') goto yy1205;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'd') goto yy1155;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1247:
-       YYDEBUG(1247, *YYCURSOR);
+yy1197:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'U') {
                if (yych <= '/') {
                        if (yych <= ',') {
-                               if (yych == ')') goto yy164;
+                               if (yych == ')') goto yy139;
                                goto yy3;
                        } else {
                                if (yych == '.') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        }
                } else {
                        if (yych <= 'C') {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'B') goto yy166;
-                               goto yy1234;
+                               if (yych <= 'B') goto yy141;
+                               goto yy1184;
                        } else {
-                               if (yych == 'P') goto yy1236;
-                               goto yy166;
+                               if (yych == 'P') goto yy1186;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= 'b') {
                        if (yych <= '^') {
-                               if (yych <= 'V') goto yy1235;
-                               if (yych <= 'Z') goto yy166;
+                               if (yych <= 'V') goto yy1185;
+                               if (yych <= 'Z') goto yy141;
                                goto yy3;
                        } else {
-                               if (yych <= '_') goto yy172;
+                               if (yych <= '_') goto yy147;
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        }
                } else {
                        if (yych <= 'p') {
-                               if (yych <= 'c') goto yy1263;
-                               if (yych <= 'o') goto yy171;
-                               goto yy1265;
+                               if (yych <= 'c') goto yy1213;
+                               if (yych <= 'o') goto yy146;
+                               goto yy1215;
                        } else {
-                               if (yych == 'v') goto yy1264;
-                               if (yych <= 'z') goto yy171;
+                               if (yych == 'v') goto yy1214;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1248:
-       YYDEBUG(1248, *YYCURSOR);
+yy1198:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1229;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'T') goto yy1179;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 't') goto yy1258;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 't') goto yy1208;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1249:
-       YYDEBUG(1249, *YYCURSOR);
+yy1199:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'W') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'X') goto yy1226;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'X') goto yy1176;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'w') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'x') goto yy1255;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'x') goto yy1205;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1250:
-       YYDEBUG(1250, *YYCURSOR);
+yy1200:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1222;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'N') goto yy1172;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy1251;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy1201;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1251:
-       YYDEBUG(1251, *YYCURSOR);
+yy1201:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1223;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'D') goto yy1173;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'd') goto yy1252;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'd') goto yy1202;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1252:
-       YYDEBUG(1252, *YYCURSOR);
+yy1202:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1224;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'A') goto yy1174;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1253;
-                       if (yych <= 'z') goto yy176;
+                       if (yych <= 'a') goto yy1203;
+                       if (yych <= 'z') goto yy151;
                        goto yy3;
                }
        }
-yy1253:
-       YYDEBUG(1253, *YYCURSOR);
+yy1203:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'Y') goto yy1225;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Y') goto yy1175;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'x') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'y') goto yy1254;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'y') goto yy1204;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1254:
-       YYDEBUG(1254, *YYCURSOR);
+yy1204:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '-') {
-               if (yych == ')') goto yy164;
-               if (yych <= ',') goto yy191;
-               goto yy172;
+               if (yych == ')') goto yy139;
+               if (yych <= ',') goto yy166;
+               goto yy147;
        } else {
                if (yych <= '/') {
-                       if (yych <= '.') goto yy191;
-                       goto yy172;
+                       if (yych <= '.') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '_') goto yy172;
-                       goto yy191;
+                       if (yych == '_') goto yy147;
+                       goto yy166;
                }
        }
-yy1255:
-       YYDEBUG(1255, *YYCURSOR);
+yy1205:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1227;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1177;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1256;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1206;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1256:
-       YYDEBUG(1256, *YYCURSOR);
+yy1206:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1228;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'H') goto yy1178;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'h') goto yy1257;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'h') goto yy1207;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1257:
-       YYDEBUG(1257, *YYCURSOR);
+yy1207:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy1196;
+                       if (yych == '\t') goto yy1146;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy1196;
+                       goto yy1146;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
                        if (yych <= '_') {
                                if (yych <= '^') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1258:
-       YYDEBUG(1258, *YYCURSOR);
+yy1208:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'U') goto yy1230;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'U') goto yy1180;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 't') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'u') goto yy1259;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'u') goto yy1209;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1259:
-       YYDEBUG(1259, *YYCURSOR);
+yy1209:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1231;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'R') goto yy1181;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'r') goto yy1260;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'r') goto yy1210;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1260:
-       YYDEBUG(1260, *YYCURSOR);
+yy1210:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1232;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'D') goto yy1182;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'd') goto yy1261;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'd') goto yy1211;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1261:
-       YYDEBUG(1261, *YYCURSOR);
+yy1211:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1233;
+                       if (yych <= 'A') goto yy1183;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1262;
-                       if (yych <= 'z') goto yy178;
+                       if (yych <= 'a') goto yy1212;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1262:
-       YYDEBUG(1262, *YYCURSOR);
+yy1212:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy210;
-       goto yy179;
-yy1263:
-       YYDEBUG(1263, *YYCURSOR);
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy185;
+       goto yy154;
+yy1213:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'O') goto yy1245;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'O') goto yy1195;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'n') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'o') goto yy1274;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'o') goto yy1224;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1264:
-       YYDEBUG(1264, *YYCURSOR);
+yy1214:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1242;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'E') goto yy1192;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy1271;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'e') goto yy1221;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1265:
-       YYDEBUG(1265, *YYCURSOR);
+yy1215:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'S') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'T') goto yy1237;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'T') goto yy1187;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 's') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1266;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 't') goto yy1216;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy1266:
-       YYDEBUG(1266, *YYCURSOR);
+yy1216:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'D') {
-                               if (yych <= '@') goto yy218;
-                               goto yy168;
+                               if (yych <= '@') goto yy193;
+                               goto yy143;
                        } else {
-                               if (yych <= 'E') goto yy1238;
-                               if (yych <= 'Z') goto yy168;
-                               goto yy218;
+                               if (yych <= 'E') goto yy1188;
+                               if (yych <= 'Z') goto yy143;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy176;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy151;
                        } else {
-                               if (yych <= 'e') goto yy1267;
-                               if (yych <= 'z') goto yy176;
-                               goto yy218;
+                               if (yych <= 'e') goto yy1217;
+                               if (yych <= 'z') goto yy151;
+                               goto yy193;
                        }
                }
        }
-yy1267:
-       YYDEBUG(1267, *YYCURSOR);
+yy1217:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'M') goto yy1239;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'M') goto yy1189;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'l') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'm') goto yy1268;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'm') goto yy1218;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1268:
-       YYDEBUG(1268, *YYCURSOR);
+yy1218:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'B') goto yy1240;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'B') goto yy1190;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'b') goto yy1269;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'b') goto yy1219;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1269:
-       YYDEBUG(1269, *YYCURSOR);
+yy1219:
        yych = *++YYCURSOR;
-       if (yych == 'E') goto yy1241;
-       if (yych != 'e') goto yy179;
-       YYDEBUG(1270, *YYCURSOR);
+       if (yych == 'E') goto yy1191;
+       if (yych != 'e') goto yy154;
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
-       if (yych == 'r') goto yy341;
-       goto yy179;
-yy1271:
-       YYDEBUG(1271, *YYCURSOR);
+       if (yych == 'R') goto yy204;
+       if (yych == 'r') goto yy316;
+       goto yy154;
+yy1221:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1243;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'N') goto yy1193;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'n') goto yy1272;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'n') goto yy1222;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1272:
-       YYDEBUG(1272, *YYCURSOR);
+yy1222:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1244;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'T') goto yy1194;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 't') goto yy1273;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 't') goto yy1223;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1273:
-       YYDEBUG(1273, *YYCURSOR);
+yy1223:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'H') goto yy1195;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'H') goto yy1145;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'h') goto yy1213;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'h') goto yy1163;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1274:
-       YYDEBUG(1274, *YYCURSOR);
+yy1224:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1246;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'N') goto yy1196;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'n') goto yy1275;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'n') goto yy1225;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1275:
-       YYDEBUG(1275, *YYCURSOR);
+yy1225:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1205;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'D') goto yy1155;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'd') goto yy1217;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'd') goto yy1167;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1276:
-       YYDEBUG(1276, *YYCURSOR);
+yy1226:
        yych = *++YYCURSOR;
        if (yych <= 'C') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'B') goto yy166;
+                       if (yych <= 'B') goto yy141;
                }
        } else {
                if (yych <= 'b') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'c') goto yy1277;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'c') goto yy1227;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1277:
-       YYDEBUG(1277, *YYCURSOR);
+yy1227:
        yych = *++YYCURSOR;
        if (yych <= 'K') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'J') goto yy167;
+                       if (yych <= 'J') goto yy142;
                }
        } else {
                if (yych <= 'j') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'k') goto yy1278;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'k') goto yy1228;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1278:
-       YYDEBUG(1278, *YYCURSOR);
+yy1228:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ')') {
-               if (yych == ' ') goto yy1279;
+               if (yych == ' ') goto yy1229;
                if (yych <= '(') goto yy3;
-               goto yy164;
+               goto yy139;
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1279:
-       YYDEBUG(1279, *YYCURSOR);
+yy1229:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1280;
+       if (yych == 'O') goto yy1230;
        if (yych != 'o') goto yy56;
-yy1280:
-       YYDEBUG(1280, *YYCURSOR);
+yy1230:
        yych = *++YYCURSOR;
-       if (yych == 'F') goto yy1281;
+       if (yych == 'F') goto yy1231;
        if (yych != 'f') goto yy56;
-yy1281:
-       YYDEBUG(1281, *YYCURSOR);
+yy1231:
        yych = *++YYCURSOR;
        if (yych != ' ') goto yy56;
-       YYDEBUG(1282, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy1283;
-       if (yych <= '2') goto yy1285;
-       if (yych <= '9') goto yy1286;
+       if (yych <= '1') goto yy1233;
+       if (yych <= '2') goto yy1235;
+       if (yych <= '9') goto yy1236;
        goto yy56;
-yy1283:
-       YYDEBUG(1283, *YYCURSOR);
+yy1233:
        yyaccept = 27;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '@') {
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1287;
-               } else {
-                       if (yych <= ' ') goto yy1287;
-                       if (yych <= '/') goto yy1284;
-                       if (yych <= '9') goto yy1286;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych <= 'A') goto yy1289;
-                       if (yych == 'P') goto yy1289;
-               } else {
-                       if (yych <= 'a') goto yy1289;
-                       if (yych == 'p') goto yy1289;
-               }
-       }
-yy1284:
-       YYDEBUG(1284, *YYCURSOR);
-#line 1112 "ext/date/lib/parse_date.re"
+       if (yych <= '/') goto yy1237;
+       if (yych <= '9') goto yy1236;
+       goto yy1237;
+yy1234:
+#line 1053 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("backof | frontof");
                TIMELIB_INIT;
@@ -19627,306 +17383,246 @@ yy1284:
                TIMELIB_DEINIT;
                return TIMELIB_LF_DAY_OF_MONTH;
        }
-#line 19631 "<stdout>"
-yy1285:
-       YYDEBUG(1285, *YYCURSOR);
+#line 17387 "ext/date/lib/parse_date.c"
+yy1235:
        yyaccept = 27;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '@') {
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1287;
-                       goto yy1284;
-               } else {
-                       if (yych <= ' ') goto yy1287;
-                       if (yych <= '/') goto yy1284;
-                       if (yych >= '5') goto yy1284;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych <= 'A') goto yy1289;
-                       if (yych == 'P') goto yy1289;
-                       goto yy1284;
-               } else {
-                       if (yych <= 'a') goto yy1289;
-                       if (yych == 'p') goto yy1289;
-                       goto yy1284;
-               }
-       }
-yy1286:
-       YYDEBUG(1286, *YYCURSOR);
+       if (yych <= '/') goto yy1237;
+       if (yych >= '5') goto yy1237;
+yy1236:
        yyaccept = 27;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'A') {
-               if (yych <= 0x1F) {
-                       if (yych != '\t') goto yy1284;
-               } else {
-                       if (yych <= ' ') goto yy1287;
-                       if (yych <= '@') goto yy1284;
-                       goto yy1289;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych == 'P') goto yy1289;
-                       goto yy1284;
-               } else {
-                       if (yych <= 'a') goto yy1289;
-                       if (yych == 'p') goto yy1289;
-                       goto yy1284;
-               }
-       }
-yy1287:
-       YYDEBUG(1287, *YYCURSOR);
-       ++YYCURSOR;
+       YYMARKER = ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(1288, *YYCURSOR);
+yy1237:
        if (yych <= 'A') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1287;
-                       goto yy56;
+                       if (yych == '\t') goto yy1236;
+                       goto yy1234;
                } else {
-                       if (yych <= ' ') goto yy1287;
-                       if (yych <= '@') goto yy56;
+                       if (yych <= ' ') goto yy1236;
+                       if (yych <= '@') goto yy1234;
                }
        } else {
                if (yych <= '`') {
-                       if (yych != 'P') goto yy56;
+                       if (yych != 'P') goto yy1234;
                } else {
-                       if (yych <= 'a') goto yy1289;
-                       if (yych != 'p') goto yy56;
+                       if (yych <= 'a') goto yy1238;
+                       if (yych != 'p') goto yy1234;
                }
        }
-yy1289:
-       YYDEBUG(1289, *YYCURSOR);
+yy1238:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy1291;
-               if (yych == 'm') goto yy1291;
+               if (yych <= 'M') goto yy1240;
+               if (yych == 'm') goto yy1240;
                goto yy56;
        }
-       YYDEBUG(1290, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy1291;
+       if (yych == 'M') goto yy1240;
        if (yych != 'm') goto yy56;
-yy1291:
-       YYDEBUG(1291, *YYCURSOR);
+yy1240:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy1293;
-               if (yych == '\t') goto yy1293;
+               if (yych <= 0x00) goto yy1242;
+               if (yych == '\t') goto yy1242;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy1293;
+               if (yych <= ' ') goto yy1242;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(1292, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy1293;
+               if (yych <= 0x00) goto yy1242;
                if (yych <= 0x08) goto yy56;
        } else {
                if (yych != ' ') goto yy56;
        }
-yy1293:
-       YYDEBUG(1293, *YYCURSOR);
+yy1242:
        yych = *++YYCURSOR;
-       goto yy1284;
-yy1294:
-       YYDEBUG(1294, *YYCURSOR);
+       goto yy1234;
+yy1243:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'B') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'C') goto yy1277;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'C') goto yy1227;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'b') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'c') goto yy1295;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'c') goto yy1244;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1295:
-       YYDEBUG(1295, *YYCURSOR);
+yy1244:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'J') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'K') goto yy1278;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'K') goto yy1228;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'j') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'k') goto yy1296;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'k') goto yy1245;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1296:
-       YYDEBUG(1296, *YYCURSOR);
+yy1245:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= '(') {
-                       if (yych == ' ') goto yy1279;
+                       if (yych == ' ') goto yy1229;
                        goto yy3;
                } else {
-                       if (yych <= ')') goto yy164;
-                       if (yych == '-') goto yy172;
+                       if (yych <= ')') goto yy139;
+                       if (yych == '-') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy176;
+                       if (yych <= 'z') goto yy151;
                        goto yy3;
                }
        }
-yy1297:
-       YYDEBUG(1297, *YYCURSOR);
+yy1246:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy166;
+                       if (yych <= 'R') goto yy141;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 's') goto yy1298;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 's') goto yy1247;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1298:
-       YYDEBUG(1298, *YYCURSOR);
+yy1247:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1299;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1248;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1299:
-       YYDEBUG(1299, *YYCURSOR);
+yy1248:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '(') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy3;
-                       goto yy1069;
+                       goto yy1044;
                } else {
                        if (yych != ' ') goto yy3;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= ')') goto yy164;
+                       if (yych <= ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1300:
-       YYDEBUG(1300, *YYCURSOR);
+yy1249:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1301;
-       if (yych != 'd') goto yy1070;
-yy1301:
-       YYDEBUG(1301, *YYCURSOR);
+       if (yych == 'D') goto yy1250;
+       if (yych != 'd') goto yy1045;
+yy1250:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1302;
+       if (yych == 'A') goto yy1251;
        if (yych != 'a') goto yy56;
-yy1302:
-       YYDEBUG(1302, *YYCURSOR);
+yy1251:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1303;
+       if (yych == 'Y') goto yy1252;
        if (yych != 'y') goto yy56;
-yy1303:
-       YYDEBUG(1303, *YYCURSOR);
+yy1252:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
-               if (yych != ' ') goto yy1084;
+               if (yych != ' ') goto yy1057;
        } else {
-               if (yych <= 'S') goto yy1109;
-               if (yych == 's') goto yy1109;
-               goto yy1084;
+               if (yych <= 'S') goto yy1082;
+               if (yych == 's') goto yy1082;
+               goto yy1057;
        }
-       YYDEBUG(1304, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1305;
+       if (yych == 'O') goto yy1254;
        if (yych != 'o') goto yy56;
-yy1305:
-       YYDEBUG(1305, *YYCURSOR);
+yy1254:
        yych = *++YYCURSOR;
-       if (yych == 'F') goto yy1306;
+       if (yych == 'F') goto yy1255;
        if (yych != 'f') goto yy56;
-yy1306:
-       YYDEBUG(1306, *YYCURSOR);
+yy1255:
        ++YYCURSOR;
-       YYDEBUG(1307, *YYCURSOR);
-#line 1095 "ext/date/lib/parse_date.re"
+#line 1036 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("firstdayof | lastdayof");
                TIMELIB_INIT;
@@ -19942,1552 +17638,1369 @@ yy1306:
                TIMELIB_DEINIT;
                return TIMELIB_LF_DAY_OF_MONTH;
        }
-#line 19946 "<stdout>"
-yy1308:
-       YYDEBUG(1308, *YYCURSOR);
+#line 17642 "ext/date/lib/parse_date.c"
+yy1257:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy1298;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'S') goto yy1247;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 's') goto yy1309;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 's') goto yy1258;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1309:
-       YYDEBUG(1309, *YYCURSOR);
+yy1258:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1299;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1248;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1310;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1259;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1310:
-       YYDEBUG(1310, *YYCURSOR);
+yy1259:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy1069;
+                       if (yych == '\t') goto yy1044;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy1300;
+                       goto yy1249;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
                        if (yych <= '_') {
                                if (yych <= '^') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1311:
-       YYDEBUG(1311, *YYCURSOR);
+yy1260:
        yych = *++YYCURSOR;
        if (yych <= 'B') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'A') goto yy166;
-                       goto yy1348;
+                       if (yych <= 'A') goto yy141;
+                       goto yy1296;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'b') goto yy1348;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'b') goto yy1296;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1312:
-       YYDEBUG(1312, *YYCURSOR);
+yy1261:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'F') goto yy1338;
-                       if (yych <= 'Q') goto yy166;
-                       goto yy1337;
+                       if (yych == 'F') goto yy1286;
+                       if (yych <= 'Q') goto yy141;
+                       goto yy1285;
                }
        } else {
                if (yych <= 'f') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'e') goto yy166;
-                       goto yy1338;
+                       if (yych <= 'e') goto yy141;
+                       goto yy1286;
                } else {
-                       if (yych == 'r') goto yy1337;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'r') goto yy1285;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1313:
-       YYDEBUG(1313, *YYCURSOR);
+yy1262:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'T') goto yy166;
-                       goto yy1334;
+                       if (yych <= 'T') goto yy141;
+                       goto yy1282;
                }
        } else {
                if (yych <= 't') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'u') goto yy1334;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'u') goto yy1282;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1314:
-       YYDEBUG(1314, *YYCURSOR);
+yy1263:
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'I') goto yy1316;
-                       if (yych <= 'N') goto yy166;
+                       if (yych == 'I') goto yy1265;
+                       if (yych <= 'N') goto yy141;
                }
        } else {
                if (yych <= 'i') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'h') goto yy166;
-                       goto yy1316;
+                       if (yych <= 'h') goto yy141;
+                       goto yy1265;
                } else {
-                       if (yych == 'o') goto yy1315;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'o') goto yy1264;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1315:
-       YYDEBUG(1315, *YYCURSOR);
+yy1264:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy167;
-                       goto yy1319;
+                       if (yych <= 'M') goto yy142;
+                       goto yy1268;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'n') goto yy1319;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'n') goto yy1268;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1316:
-       YYDEBUG(1316, *YYCURSOR);
+yy1265:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'C') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'C') goto yy142;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 'd') goto yy1317;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 'd') goto yy1266;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1317:
-       YYDEBUG(1317, *YYCURSOR);
+yy1266:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1318;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'a') goto yy1267;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1318:
-       YYDEBUG(1318, *YYCURSOR);
+yy1267:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'X') goto yy169;
-                       goto yy1225;
+                       if (yych <= 'X') goto yy144;
+                       goto yy1175;
                }
        } else {
                if (yych <= 'x') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'y') goto yy1225;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'y') goto yy1175;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1319:
-       YYDEBUG(1319, *YYCURSOR);
+yy1268:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy168;
+                       if (yych <= 'S') goto yy143;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 't') goto yy1320;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 't') goto yy1269;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1320:
-       YYDEBUG(1320, *YYCURSOR);
+yy1269:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= ')') {
-               if (yych == ' ') goto yy1321;
+               if (yych == ' ') goto yy1270;
                if (yych <= '(') goto yy3;
-               goto yy164;
+               goto yy139;
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1321:
-       YYDEBUG(1321, *YYCURSOR);
+yy1270:
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1322;
+       if (yych == 'O') goto yy1271;
        if (yych != 'o') goto yy56;
-yy1322:
-       YYDEBUG(1322, *YYCURSOR);
+yy1271:
        yych = *++YYCURSOR;
-       if (yych == 'F') goto yy1323;
+       if (yych == 'F') goto yy1272;
        if (yych != 'f') goto yy56;
-yy1323:
-       YYDEBUG(1323, *YYCURSOR);
+yy1272:
        yych = *++YYCURSOR;
        if (yych != ' ') goto yy56;
-       YYDEBUG(1324, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '1') goto yy1325;
-       if (yych <= '2') goto yy1326;
-       if (yych <= '9') goto yy1327;
+       if (yych <= '1') goto yy1274;
+       if (yych <= '2') goto yy1275;
+       if (yych <= '9') goto yy1276;
        goto yy56;
-yy1325:
-       YYDEBUG(1325, *YYCURSOR);
+yy1274:
        yyaccept = 27;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '@') {
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1328;
-                       goto yy1284;
-               } else {
-                       if (yych <= ' ') goto yy1328;
-                       if (yych <= '/') goto yy1284;
-                       if (yych <= '9') goto yy1327;
-                       goto yy1284;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych <= 'A') goto yy1330;
-                       if (yych == 'P') goto yy1330;
-                       goto yy1284;
-               } else {
-                       if (yych <= 'a') goto yy1330;
-                       if (yych == 'p') goto yy1330;
-                       goto yy1284;
-               }
-       }
-yy1326:
-       YYDEBUG(1326, *YYCURSOR);
+       if (yych <= '/') goto yy1277;
+       if (yych <= '9') goto yy1276;
+       goto yy1277;
+yy1275:
        yyaccept = 27;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '@') {
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1328;
-                       goto yy1284;
-               } else {
-                       if (yych <= ' ') goto yy1328;
-                       if (yych <= '/') goto yy1284;
-                       if (yych >= '5') goto yy1284;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych <= 'A') goto yy1330;
-                       if (yych == 'P') goto yy1330;
-                       goto yy1284;
-               } else {
-                       if (yych <= 'a') goto yy1330;
-                       if (yych == 'p') goto yy1330;
-                       goto yy1284;
-               }
-       }
-yy1327:
-       YYDEBUG(1327, *YYCURSOR);
+       if (yych <= '/') goto yy1277;
+       if (yych >= '5') goto yy1277;
+yy1276:
        yyaccept = 27;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'A') {
-               if (yych <= 0x1F) {
-                       if (yych != '\t') goto yy1284;
-               } else {
-                       if (yych <= ' ') goto yy1328;
-                       if (yych <= '@') goto yy1284;
-                       goto yy1330;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych == 'P') goto yy1330;
-                       goto yy1284;
-               } else {
-                       if (yych <= 'a') goto yy1330;
-                       if (yych == 'p') goto yy1330;
-                       goto yy1284;
-               }
-       }
-yy1328:
-       YYDEBUG(1328, *YYCURSOR);
-       ++YYCURSOR;
+       YYMARKER = ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = *YYCURSOR;
-       YYDEBUG(1329, *YYCURSOR);
+yy1277:
        if (yych <= 'A') {
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy1328;
-                       goto yy56;
+                       if (yych == '\t') goto yy1276;
+                       goto yy1234;
                } else {
-                       if (yych <= ' ') goto yy1328;
-                       if (yych <= '@') goto yy56;
+                       if (yych <= ' ') goto yy1276;
+                       if (yych <= '@') goto yy1234;
                }
        } else {
                if (yych <= '`') {
-                       if (yych != 'P') goto yy56;
+                       if (yych != 'P') goto yy1234;
                } else {
-                       if (yych <= 'a') goto yy1330;
-                       if (yych != 'p') goto yy56;
+                       if (yych <= 'a') goto yy1278;
+                       if (yych != 'p') goto yy1234;
                }
        }
-yy1330:
-       YYDEBUG(1330, *YYCURSOR);
+yy1278:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych != '.') goto yy56;
        } else {
-               if (yych <= 'M') goto yy1332;
-               if (yych == 'm') goto yy1332;
+               if (yych <= 'M') goto yy1280;
+               if (yych == 'm') goto yy1280;
                goto yy56;
        }
-       YYDEBUG(1331, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'M') goto yy1332;
+       if (yych == 'M') goto yy1280;
        if (yych != 'm') goto yy56;
-yy1332:
-       YYDEBUG(1332, *YYCURSOR);
+yy1280:
        yych = *++YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych <= 0x00) goto yy1293;
-               if (yych == '\t') goto yy1293;
+               if (yych <= 0x00) goto yy1242;
+               if (yych == '\t') goto yy1242;
                goto yy56;
        } else {
-               if (yych <= ' ') goto yy1293;
+               if (yych <= ' ') goto yy1242;
                if (yych != '.') goto yy56;
        }
-       YYDEBUG(1333, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '\t') {
-               if (yych <= 0x00) goto yy1293;
+               if (yych <= 0x00) goto yy1242;
                if (yych <= 0x08) goto yy56;
-               goto yy1293;
+               goto yy1242;
        } else {
-               if (yych == ' ') goto yy1293;
+               if (yych == ' ') goto yy1242;
                goto yy56;
        }
-yy1334:
-       YYDEBUG(1334, *YYCURSOR);
+yy1282:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy167;
+                       if (yych <= 'Q') goto yy142;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'r') goto yy1335;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'r') goto yy1283;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1335:
-       YYDEBUG(1335, *YYCURSOR);
+yy1283:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy168;
+                       if (yych <= 'S') goto yy143;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 't') goto yy1336;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 't') goto yy1284;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1336:
-       YYDEBUG(1336, *YYCURSOR);
+yy1284:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy169;
-                       goto yy1205;
+                       if (yych <= 'G') goto yy144;
+                       goto yy1155;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'h') goto yy1205;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'h') goto yy1155;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1337:
-       YYDEBUG(1337, *YYCURSOR);
+yy1285:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy167;
-                       goto yy1340;
+                       if (yych <= 'R') goto yy142;
+                       goto yy1288;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 's') goto yy1340;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 's') goto yy1288;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1338:
-       YYDEBUG(1338, *YYCURSOR);
+yy1286:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1339;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1287;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1339:
-       YYDEBUG(1339, *YYCURSOR);
+yy1287:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy168;
-                       goto yy1228;
+                       if (yych <= 'G') goto yy143;
+                       goto yy1178;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'h') goto yy1228;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'h') goto yy1178;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1340:
-       YYDEBUG(1340, *YYCURSOR);
+yy1288:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy168;
+                       if (yych <= 'S') goto yy143;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 't') goto yy1341;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 't') goto yy1289;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1341:
-       YYDEBUG(1341, *YYCURSOR);
+yy1289:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '(') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy3;
-                       goto yy1196;
+                       goto yy1146;
                } else {
                        if (yych != ' ') goto yy3;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= ')') goto yy164;
+                       if (yych <= ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1342:
-       YYDEBUG(1342, *YYCURSOR);
+yy1290:
        yych = *++YYCURSOR;
-       if (yych == 'D') goto yy1343;
-       if (yych != 'd') goto yy1197;
-yy1343:
-       YYDEBUG(1343, *YYCURSOR);
+       if (yych == 'D') goto yy1291;
+       if (yych != 'd') goto yy1147;
+yy1291:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1344;
+       if (yych == 'A') goto yy1292;
        if (yych != 'a') goto yy56;
-yy1344:
-       YYDEBUG(1344, *YYCURSOR);
+yy1292:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1345;
+       if (yych == 'Y') goto yy1293;
        if (yych != 'y') goto yy56;
-yy1345:
-       YYDEBUG(1345, *YYCURSOR);
+yy1293:
        yyaccept = 25;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
-               if (yych != ' ') goto yy1084;
+               if (yych != ' ') goto yy1057;
        } else {
-               if (yych <= 'S') goto yy1109;
-               if (yych == 's') goto yy1109;
-               goto yy1084;
+               if (yych <= 'S') goto yy1082;
+               if (yych == 's') goto yy1082;
+               goto yy1057;
        }
-       YYDEBUG(1346, *YYCURSOR);
        yych = *++YYCURSOR;
-       if (yych == 'O') goto yy1347;
+       if (yych == 'O') goto yy1295;
        if (yych != 'o') goto yy56;
-yy1347:
-       YYDEBUG(1347, *YYCURSOR);
+yy1295:
        yych = *++YYCURSOR;
-       if (yych == 'F') goto yy1306;
-       if (yych == 'f') goto yy1306;
+       if (yych == 'F') goto yy1255;
+       if (yych == 'f') goto yy1255;
        goto yy56;
-yy1348:
-       YYDEBUG(1348, *YYCURSOR);
+yy1296:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'R') goto yy167;
+                               if (yych != 'R') goto yy142;
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'r') goto yy1349;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'r') goto yy1297;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy1349:
-       YYDEBUG(1349, *YYCURSOR);
+yy1297:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'T') goto yy168;
+                       if (yych <= 'T') goto yy143;
                }
        } else {
                if (yych <= 't') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'u') goto yy1350;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'u') goto yy1298;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1350:
-       YYDEBUG(1350, *YYCURSOR);
+yy1298:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1351;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'a') goto yy1299;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1351:
-       YYDEBUG(1351, *YYCURSOR);
+yy1299:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'R') goto yy1352;
+               if (yych <= 'R') goto yy1300;
                if (yych != 'r') goto yy3;
        }
-yy1352:
-       YYDEBUG(1352, *YYCURSOR);
+yy1300:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy229;
-       if (yych == 'y') goto yy229;
+       if (yych == 'Y') goto yy204;
+       if (yych == 'y') goto yy204;
        goto yy56;
-yy1353:
-       YYDEBUG(1353, *YYCURSOR);
+yy1301:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'B') goto yy1348;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'B') goto yy1296;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'b') goto yy1371;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'b') goto yy1319;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1354:
-       YYDEBUG(1354, *YYCURSOR);
+yy1302:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'F') goto yy1338;
-                               goto yy166;
+                               if (yych == 'F') goto yy1286;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'R') goto yy1337;
-                               goto yy166;
+                               if (yych <= 'R') goto yy1285;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych == 'f') goto yy1367;
-                               goto yy171;
+                               if (yych == 'f') goto yy1315;
+                               goto yy146;
                        } else {
-                               if (yych <= 'r') goto yy1366;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'r') goto yy1314;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1355:
-       YYDEBUG(1355, *YYCURSOR);
+yy1303:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'U') goto yy1334;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'U') goto yy1282;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 't') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'u') goto yy1363;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'u') goto yy1311;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1356:
-       YYDEBUG(1356, *YYCURSOR);
+yy1304:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'I') goto yy1316;
-                               goto yy166;
+                               if (yych == 'I') goto yy1265;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'O') goto yy1315;
-                               goto yy166;
+                               if (yych <= 'O') goto yy1264;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'i') goto yy1358;
-                               goto yy171;
+                               if (yych == 'i') goto yy1306;
+                               goto yy146;
                        } else {
-                               if (yych <= 'o') goto yy1357;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'o') goto yy1305;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1357:
-       YYDEBUG(1357, *YYCURSOR);
+yy1305:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1319;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'N') goto yy1268;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'n') goto yy1361;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'n') goto yy1309;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1358:
-       YYDEBUG(1358, *YYCURSOR);
+yy1306:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1317;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'D') goto yy1266;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'd') goto yy1359;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'd') goto yy1307;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1359:
-       YYDEBUG(1359, *YYCURSOR);
+yy1307:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1318;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'A') goto yy1267;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1360;
-                       if (yych <= 'z') goto yy176;
+                       if (yych <= 'a') goto yy1308;
+                       if (yych <= 'z') goto yy151;
                        goto yy3;
                }
        }
-yy1360:
-       YYDEBUG(1360, *YYCURSOR);
+yy1308:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'Y') goto yy1225;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Y') goto yy1175;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'x') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'y') goto yy1254;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'y') goto yy1204;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1361:
-       YYDEBUG(1361, *YYCURSOR);
+yy1309:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1320;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'T') goto yy1269;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 't') goto yy1362;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 't') goto yy1310;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1362:
-       YYDEBUG(1362, *YYCURSOR);
+yy1310:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= '(') {
-                       if (yych == ' ') goto yy1321;
+                       if (yych == ' ') goto yy1270;
                        goto yy3;
                } else {
-                       if (yych <= ')') goto yy164;
-                       if (yych == '-') goto yy172;
+                       if (yych <= ')') goto yy139;
+                       if (yych == '-') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych <= '_') goto yy172;
+                       if (yych <= '_') goto yy147;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy177;
+                       if (yych <= 'z') goto yy152;
                        goto yy3;
                }
        }
-yy1363:
-       YYDEBUG(1363, *YYCURSOR);
+yy1311:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1335;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'R') goto yy1283;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'r') goto yy1364;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'r') goto yy1312;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1364:
-       YYDEBUG(1364, *YYCURSOR);
+yy1312:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1336;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'T') goto yy1284;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 't') goto yy1365;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 't') goto yy1313;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1365:
-       YYDEBUG(1365, *YYCURSOR);
+yy1313:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1205;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'H') goto yy1155;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'h') goto yy1217;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'h') goto yy1167;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1366:
-       YYDEBUG(1366, *YYCURSOR);
+yy1314:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy1340;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'S') goto yy1288;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 's') goto yy1369;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 's') goto yy1317;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1367:
-       YYDEBUG(1367, *YYCURSOR);
+yy1315:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1339;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1287;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1368;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1316;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1368:
-       YYDEBUG(1368, *YYCURSOR);
+yy1316:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1228;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'H') goto yy1178;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'h') goto yy1257;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'h') goto yy1207;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1369:
-       YYDEBUG(1369, *YYCURSOR);
+yy1317:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1341;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'T') goto yy1289;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 't') goto yy1370;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 't') goto yy1318;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1370:
-       YYDEBUG(1370, *YYCURSOR);
+yy1318:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy1196;
+                       if (yych == '\t') goto yy1146;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy1342;
+                       goto yy1290;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
                        if (yych <= '_') {
                                if (yych <= '^') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1371:
-       YYDEBUG(1371, *YYCURSOR);
+yy1319:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'Q') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'R') goto yy1349;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'R') goto yy1297;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'r') goto yy1372;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'r') goto yy1320;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy1372:
-       YYDEBUG(1372, *YYCURSOR);
+yy1320:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'U') goto yy1350;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'U') goto yy1298;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 't') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'u') goto yy1373;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'u') goto yy1321;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1373:
-       YYDEBUG(1373, *YYCURSOR);
+yy1321:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy3;
-               } else {
-                       if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
-                       goto yy3;
-               }
-       } else {
-               if (yych <= '_') {
-                       if (yych <= 'A') goto yy1351;
-                       if (yych <= 'Z') goto yy169;
-                       if (yych <= '^') goto yy3;
-                       goto yy172;
-               } else {
-                       if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1374;
-                       if (yych <= 'z') goto yy177;
-                       goto yy3;
-               }
-       }
-yy1374:
-       YYDEBUG(1374, *YYCURSOR);
-       yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 'Q') {
-               if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy3;
-               } else {
-                       if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
-                       goto yy3;
-               }
-       } else {
-               if (yych <= '`') {
-                       if (yych <= 'R') goto yy1352;
-                       if (yych == '_') goto yy172;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'r') goto yy1375;
-                       if (yych <= 'z') goto yy178;
-                       goto yy3;
-               }
-       }
-yy1375:
-       YYDEBUG(1375, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy229;
-       if (yych == 'y') goto yy341;
-       goto yy179;
-yy1376:
-       YYDEBUG(1376, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-yy1377:
-       YYDEBUG(1377, *YYCURSOR);
-       yyaccept = 28;
-       YYMARKER = ++YYCURSOR;
-       if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
-       yych = *YYCURSOR;
-       YYDEBUG(1378, *YYCURSOR);
-       if (yych == '.') goto yy1380;
-       if (yych <= '/') goto yy1379;
-       if (yych <= '9') goto yy1377;
-yy1379:
-       YYDEBUG(1379, *YYCURSOR);
-#line 1041 "ext/date/lib/parse_date.re"
-       {
-               timelib_ull i;
-
-               TIMELIB_INIT;
-               TIMELIB_HAVE_RELATIVE();
-               TIMELIB_UNHAVE_DATE();
-               TIMELIB_UNHAVE_TIME();
-               TIMELIB_HAVE_TZ();
-
-               i = timelib_get_unsigned_nr((char **) &ptr, 24);
-               s->time->y = 1970;
-               s->time->m = 1;
-               s->time->d = 1;
-               s->time->h = s->time->i = s->time->s = 0;
-               s->time->us = 0;
-               s->time->relative.s += i;
-               s->time->is_localtime = 1;
-               s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
-               s->time->z = 0;
-               s->time->dst = 0;
-
-               TIMELIB_DEINIT;
-               return TIMELIB_RELATIVE;
+                       if (yych == '.') goto yy3;
+                       if (yych <= '/') goto yy147;
+                       goto yy3;
+               }
+       } else {
+               if (yych <= '_') {
+                       if (yych <= 'A') goto yy1299;
+                       if (yych <= 'Z') goto yy144;
+                       if (yych <= '^') goto yy3;
+                       goto yy147;
+               } else {
+                       if (yych <= '`') goto yy3;
+                       if (yych <= 'a') goto yy1322;
+                       if (yych <= 'z') goto yy152;
+                       goto yy3;
+               }
        }
-#line 21460 "<stdout>"
-yy1380:
-       YYDEBUG(1380, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-       YYDEBUG(1381, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-       YYDEBUG(1382, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-       YYDEBUG(1383, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-       YYDEBUG(1384, *YYCURSOR);
+yy1322:
+       yyaccept = 0;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych <= 'Q') {
+               if (yych <= ',') {
+                       if (yych == ')') goto yy139;
+                       goto yy3;
+               } else {
+                       if (yych == '.') goto yy3;
+                       if (yych <= '/') goto yy147;
+                       goto yy3;
+               }
+       } else {
+               if (yych <= '`') {
+                       if (yych <= 'R') goto yy1300;
+                       if (yych == '_') goto yy147;
+                       goto yy3;
+               } else {
+                       if (yych == 'r') goto yy1323;
+                       if (yych <= 'z') goto yy153;
+                       goto yy3;
+               }
+       }
+yy1323:
        yych = *++YYCURSOR;
-       if (yych <= '/') goto yy56;
-       if (yych >= ':') goto yy56;
-       YYDEBUG(1385, *YYCURSOR);
+       if (yych == 'Y') goto yy204;
+       if (yych == 'y') goto yy316;
+       goto yy154;
+yy1324:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(1386, *YYCURSOR);
+yy1325:
        ++YYCURSOR;
-       YYDEBUG(1387, *YYCURSOR);
-#line 1067 "ext/date/lib/parse_date.re"
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yych <= '/') goto yy1327;
+       if (yych <= '9') goto yy1325;
+yy1327:
+#line 1010 "ext/date/lib/parse_date.re"
        {
-               timelib_ull i, us;
+               timelib_ull i;
 
                TIMELIB_INIT;
                TIMELIB_HAVE_RELATIVE();
@@ -21496,14 +19009,12 @@ yy1380:
                TIMELIB_HAVE_TZ();
 
                i = timelib_get_unsigned_nr((char **) &ptr, 24);
-               us = timelib_get_unsigned_nr((char **) &ptr, 24);
                s->time->y = 1970;
                s->time->m = 1;
                s->time->d = 1;
                s->time->h = s->time->i = s->time->s = 0;
-               s->time->us = 0;
+               s->time->f = 0.0;
                s->time->relative.s += i;
-               s->time->relative.us = us;
                s->time->is_localtime = 1;
                s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
                s->time->z = 0;
@@ -21512,443 +19023,413 @@ yy1380:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 21516 "<stdout>"
-yy1388:
-       YYDEBUG(1388, *YYCURSOR);
+#line 19027 "ext/date/lib/parse_date.c"
+yy1328:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy166;
-                       goto yy1429;
+                       if (yych <= 'M') goto yy141;
+                       goto yy1369;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'n') goto yy1429;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'n') goto yy1369;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1389:
-       YYDEBUG(1389, *YYCURSOR);
+yy1329:
        yych = *++YYCURSOR;
        if (yych <= 'U') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'I') goto yy1421;
-                       if (yych <= 'T') goto yy166;
-                       goto yy1422;
+                       if (yych == 'I') goto yy1361;
+                       if (yych <= 'T') goto yy141;
+                       goto yy1362;
                }
        } else {
                if (yych <= 'i') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'h') goto yy166;
-                       goto yy1421;
+                       if (yych <= 'h') goto yy141;
+                       goto yy1361;
                } else {
-                       if (yych == 'u') goto yy1422;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'u') goto yy1362;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1390:
-       YYDEBUG(1390, *YYCURSOR);
+yy1330:
        yych = *++YYCURSOR;
        if (yych <= 'M') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'D') goto yy1410;
-                       if (yych <= 'L') goto yy166;
-                       goto yy1411;
+                       if (yych == 'D') goto yy1350;
+                       if (yych <= 'L') goto yy141;
+                       goto yy1351;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'c') goto yy166;
-                       goto yy1410;
+                       if (yych <= 'c') goto yy141;
+                       goto yy1350;
                } else {
-                       if (yych == 'm') goto yy1411;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'm') goto yy1351;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1391:
-       YYDEBUG(1391, *YYCURSOR);
+yy1331:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy166;
-                       goto yy1406;
+                       if (yych <= 'D') goto yy141;
+                       goto yy1346;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'e') goto yy1406;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'e') goto yy1346;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1392:
-       YYDEBUG(1392, *YYCURSOR);
+yy1332:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy166;
-                       goto yy1402;
+                       if (yych <= 'D') goto yy141;
+                       goto yy1342;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'e') goto yy1402;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'e') goto yy1342;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1393:
-       YYDEBUG(1393, *YYCURSOR);
+yy1333:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy1029;
+               if (yych == '.') goto yy1004;
                goto yy56;
        } else {
-               if (yych <= '9') goto yy1396;
-               if (yych <= ':') goto yy1029;
+               if (yych <= '9') goto yy1336;
+               if (yych <= ':') goto yy1004;
                goto yy56;
        }
-yy1394:
-       YYDEBUG(1394, *YYCURSOR);
+yy1334:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy1029;
+               if (yych == '.') goto yy1004;
                goto yy56;
        } else {
-               if (yych <= '4') goto yy1396;
-               if (yych == ':') goto yy1029;
+               if (yych <= '4') goto yy1336;
+               if (yych == ':') goto yy1004;
                goto yy56;
        }
-yy1395:
-       YYDEBUG(1395, *YYCURSOR);
+yy1335:
        yych = *++YYCURSOR;
-       if (yych == '.') goto yy1029;
-       if (yych == ':') goto yy1029;
+       if (yych == '.') goto yy1004;
+       if (yych == ':') goto yy1004;
        goto yy56;
-yy1396:
-       YYDEBUG(1396, *YYCURSOR);
+yy1336:
        yych = *++YYCURSOR;
        if (yych <= '/') {
-               if (yych == '.') goto yy1029;
+               if (yych == '.') goto yy1004;
                goto yy56;
        } else {
-               if (yych <= '5') goto yy1397;
-               if (yych == ':') goto yy1029;
+               if (yych <= '5') goto yy1337;
+               if (yych == ':') goto yy1004;
                goto yy56;
        }
-yy1397:
-       YYDEBUG(1397, *YYCURSOR);
+yy1337:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
        if (yych >= ':') goto yy56;
-       YYDEBUG(1398, *YYCURSOR);
        yyaccept = 23;
        yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy1032;
-       if (yych <= '5') goto yy1399;
-       if (yych <= '6') goto yy1400;
-       goto yy1032;
-yy1399:
-       YYDEBUG(1399, *YYCURSOR);
+       if (yych <= '/') goto yy1007;
+       if (yych <= '5') goto yy1339;
+       if (yych <= '6') goto yy1340;
+       goto yy1007;
+yy1339:
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy56;
-       if (yych <= '9') goto yy1401;
+       if (yych <= '9') goto yy1341;
        goto yy56;
-yy1400:
-       YYDEBUG(1400, *YYCURSOR);
+yy1340:
        yych = *++YYCURSOR;
        if (yych != '0') goto yy56;
-yy1401:
-       YYDEBUG(1401, *YYCURSOR);
+yy1341:
        yych = *++YYCURSOR;
-       goto yy1040;
-yy1402:
-       YYDEBUG(1402, *YYCURSOR);
+       goto yy1015;
+yy1342:
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'K') goto yy167;
+                       if (yych <= 'K') goto yy142;
                }
        } else {
                if (yych <= 'k') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'l') goto yy1403;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'l') goto yy1343;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1403:
-       YYDEBUG(1403, *YYCURSOR);
+yy1343:
        yych = *++YYCURSOR;
        if (yych <= 'F') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'E') goto yy168;
+                       if (yych <= 'E') goto yy143;
                }
        } else {
                if (yych <= 'e') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'f') goto yy1404;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'f') goto yy1344;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1404:
-       YYDEBUG(1404, *YYCURSOR);
+yy1344:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy169;
+                       if (yych <= 'S') goto yy144;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 't') goto yy1405;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 't') goto yy1345;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1405:
-       YYDEBUG(1405, *YYCURSOR);
+yy1345:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'H') goto yy1195;
-               if (yych == 'h') goto yy1195;
+               if (yych <= 'H') goto yy1145;
+               if (yych == 'h') goto yy1145;
                goto yy3;
        }
-yy1406:
-       YYDEBUG(1406, *YYCURSOR);
+yy1346:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'R') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'R') goto yy142;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 's') goto yy1407;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 's') goto yy1347;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1407:
-       YYDEBUG(1407, *YYCURSOR);
+yy1347:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy168;
+                       if (yych <= 'C') goto yy143;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'd') goto yy1408;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'd') goto yy1348;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1408:
-       YYDEBUG(1408, *YYCURSOR);
+yy1348:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1409;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'a') goto yy1349;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1409:
-       YYDEBUG(1409, *YYCURSOR);
+yy1349:
        yych = *++YYCURSOR;
        if (yych <= 'X') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'Y') goto yy197;
-               if (yych == 'y') goto yy197;
+               if (yych <= 'Y') goto yy172;
+               if (yych == 'y') goto yy172;
                goto yy3;
        }
-yy1410:
-       YYDEBUG(1410, *YYCURSOR);
+yy1350:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
-               goto yy1418;
+               goto yy1358;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1418;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'a') goto yy1358;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1411:
-       YYDEBUG(1411, *YYCURSOR);
+yy1351:
        yych = *++YYCURSOR;
        if (yych <= 'O') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'N') goto yy167;
+                       if (yych <= 'N') goto yy142;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'o') goto yy1412;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'o') goto yy1352;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1412:
-       YYDEBUG(1412, *YYCURSOR);
+yy1352:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy168;
+                       if (yych <= 'Q') goto yy143;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'r') goto yy1413;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'r') goto yy1353;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1413:
-       YYDEBUG(1413, *YYCURSOR);
+yy1353:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy169;
+                       if (yych <= 'Q') goto yy144;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'r') goto yy1414;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'r') goto yy1354;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1414:
-       YYDEBUG(1414, *YYCURSOR);
+yy1354:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'O') goto yy1415;
+               if (yych <= 'O') goto yy1355;
                if (yych != 'o') goto yy3;
        }
-yy1415:
-       YYDEBUG(1415, *YYCURSOR);
+yy1355:
        yych = *++YYCURSOR;
-       if (yych == 'W') goto yy1416;
+       if (yych == 'W') goto yy1356;
        if (yych != 'w') goto yy56;
-yy1416:
-       YYDEBUG(1416, *YYCURSOR);
+yy1356:
        ++YYCURSOR;
-yy1417:
-       YYDEBUG(1417, *YYCURSOR);
-#line 1029 "ext/date/lib/parse_date.re"
+yy1357:
+#line 998 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("tomorrow");
                TIMELIB_INIT;
@@ -21959,42 +19440,39 @@ yy1417:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 21963 "<stdout>"
-yy1418:
-       YYDEBUG(1418, *YYCURSOR);
+#line 19444 "ext/date/lib/parse_date.c"
+yy1358:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'X') goto yy168;
+                       if (yych <= 'X') goto yy143;
                }
        } else {
                if (yych <= 'x') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'y') goto yy1419;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'y') goto yy1359;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1419:
-       YYDEBUG(1419, *YYCURSOR);
+yy1359:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
        } else {
-               if (yych <= 'Z') goto yy169;
-               if (yych <= '`') goto yy1420;
-               if (yych <= 'z') goto yy169;
+               if (yych <= 'Z') goto yy144;
+               if (yych <= '`') goto yy1360;
+               if (yych <= 'z') goto yy144;
        }
-yy1420:
-       YYDEBUG(1420, *YYCURSOR);
-#line 1019 "ext/date/lib/parse_date.re"
+yy1360:
+#line 988 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("midnight | today");
                TIMELIB_INIT;
@@ -22003,2019 +19481,1939 @@ yy1420:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 22007 "<stdout>"
-yy1421:
-       YYDEBUG(1421, *YYCURSOR);
+#line 19485 "ext/date/lib/parse_date.c"
+yy1361:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych <= 'Q') goto yy167;
-                       if (yych <= 'R') goto yy1427;
-                       goto yy1428;
+                       if (yych <= 'Q') goto yy142;
+                       if (yych <= 'R') goto yy1367;
+                       goto yy1368;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'r') goto yy1427;
-                       if (yych <= 's') goto yy1428;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'r') goto yy1367;
+                       if (yych <= 's') goto yy1368;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1422:
-       YYDEBUG(1422, *YYCURSOR);
+yy1362:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'Q') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'Q') goto yy142;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 'r') goto yy1423;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 'r') goto yy1363;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1423:
-       YYDEBUG(1423, *YYCURSOR);
+yy1363:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy168;
+                       if (yych <= 'R') goto yy143;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 's') goto yy1424;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 's') goto yy1364;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1424:
-       YYDEBUG(1424, *YYCURSOR);
+yy1364:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy169;
+                       if (yych <= 'C') goto yy144;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'd') goto yy1425;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'd') goto yy1365;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1425:
-       YYDEBUG(1425, *YYCURSOR);
+yy1365:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'A') goto yy1426;
+               if (yych <= 'A') goto yy1366;
                if (yych != 'a') goto yy3;
        }
-yy1426:
-       YYDEBUG(1426, *YYCURSOR);
+yy1366:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy197;
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy172;
        goto yy56;
-yy1427:
-       YYDEBUG(1427, *YYCURSOR);
+yy1367:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy168;
-                       goto yy1228;
+                       if (yych <= 'C') goto yy143;
+                       goto yy1178;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'd') goto yy1228;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'd') goto yy1178;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1428:
-       YYDEBUG(1428, *YYCURSOR);
+yy1368:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '(') {
                if (yych <= '\t') {
                        if (yych <= 0x08) goto yy3;
-                       goto yy1069;
+                       goto yy1044;
                } else {
-                       if (yych == ' ') goto yy1069;
+                       if (yych == ' ') goto yy1044;
                        goto yy3;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= ')') goto yy164;
+                       if (yych <= ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1429:
-       YYDEBUG(1429, *YYCURSOR);
+yy1369:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1430;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1370;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1430:
-       YYDEBUG(1430, *YYCURSOR);
+yy1370:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy168;
-                       goto yy1228;
+                       if (yych <= 'G') goto yy143;
+                       goto yy1178;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'h') goto yy1228;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'h') goto yy1178;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1431:
-       YYDEBUG(1431, *YYCURSOR);
+yy1371:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1429;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'N') goto yy1369;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy1461;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy1401;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1432:
-       YYDEBUG(1432, *YYCURSOR);
+yy1372:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'T') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'I') goto yy1421;
-                               goto yy166;
+                               if (yych == 'I') goto yy1361;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'U') goto yy1422;
-                               goto yy166;
+                               if (yych <= 'U') goto yy1362;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych == 'i') goto yy1453;
-                               goto yy171;
+                               if (yych == 'i') goto yy1393;
+                               goto yy146;
                        } else {
-                               if (yych <= 'u') goto yy1454;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'u') goto yy1394;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1433:
-       YYDEBUG(1433, *YYCURSOR);
+yy1373:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'D') goto yy1410;
-                               goto yy166;
+                               if (yych == 'D') goto yy1350;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'M') goto yy1411;
-                               goto yy166;
+                               if (yych <= 'M') goto yy1351;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'l') {
-                               if (yych == 'd') goto yy1444;
-                               goto yy171;
+                               if (yych == 'd') goto yy1384;
+                               goto yy146;
                        } else {
-                               if (yych <= 'm') goto yy1445;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'm') goto yy1385;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1434:
-       YYDEBUG(1434, *YYCURSOR);
+yy1374:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1406;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'E') goto yy1346;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'e') goto yy1440;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'e') goto yy1380;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1435:
-       YYDEBUG(1435, *YYCURSOR);
+yy1375:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1402;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'E') goto yy1342;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'e') goto yy1436;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'e') goto yy1376;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1436:
-       YYDEBUG(1436, *YYCURSOR);
+yy1376:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'K') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'L') goto yy1403;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'L') goto yy1343;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'k') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'l') goto yy1437;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'l') goto yy1377;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1437:
-       YYDEBUG(1437, *YYCURSOR);
+yy1377:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'E') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'F') goto yy1404;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'F') goto yy1344;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'e') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'f') goto yy1438;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'f') goto yy1378;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1438:
-       YYDEBUG(1438, *YYCURSOR);
+yy1378:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1405;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'T') goto yy1345;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 't') goto yy1439;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 't') goto yy1379;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1439:
-       YYDEBUG(1439, *YYCURSOR);
+yy1379:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'H') goto yy1195;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'H') goto yy1145;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'h') goto yy1213;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'h') goto yy1163;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1440:
-       YYDEBUG(1440, *YYCURSOR);
+yy1380:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy1407;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'S') goto yy1347;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 's') goto yy1441;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 's') goto yy1381;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1441:
-       YYDEBUG(1441, *YYCURSOR);
+yy1381:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1408;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'D') goto yy1348;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'd') goto yy1442;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'd') goto yy1382;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1442:
-       YYDEBUG(1442, *YYCURSOR);
+yy1382:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1409;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'A') goto yy1349;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1443;
-                       if (yych <= 'z') goto yy177;
+                       if (yych <= 'a') goto yy1383;
+                       if (yych <= 'z') goto yy152;
                        goto yy3;
                }
        }
-yy1443:
-       YYDEBUG(1443, *YYCURSOR);
+yy1383:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Y') goto yy197;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'Y') goto yy172;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'y') goto yy210;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'y') goto yy185;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1444:
-       YYDEBUG(1444, *YYCURSOR);
+yy1384:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1418;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'A') goto yy1358;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1451;
-                       if (yych <= 'z') goto yy175;
+                       if (yych <= 'a') goto yy1391;
+                       if (yych <= 'z') goto yy150;
                        goto yy3;
                }
        }
-yy1445:
-       YYDEBUG(1445, *YYCURSOR);
+yy1385:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'O') goto yy1412;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'O') goto yy1352;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'n') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'o') goto yy1446;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'o') goto yy1386;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1446:
-       YYDEBUG(1446, *YYCURSOR);
+yy1386:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1413;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'R') goto yy1353;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'r') goto yy1447;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'r') goto yy1387;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1447:
-       YYDEBUG(1447, *YYCURSOR);
+yy1387:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1414;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'R') goto yy1354;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'r') goto yy1448;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'r') goto yy1388;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1448:
-       YYDEBUG(1448, *YYCURSOR);
+yy1388:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'N') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'O') goto yy1415;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'O') goto yy1355;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'o') goto yy1449;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'o') goto yy1389;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1449:
-       YYDEBUG(1449, *YYCURSOR);
+yy1389:
        yych = *++YYCURSOR;
-       if (yych == 'W') goto yy1416;
-       if (yych != 'w') goto yy179;
-       YYDEBUG(1450, *YYCURSOR);
-       yyaccept = 29;
+       if (yych == 'W') goto yy1356;
+       if (yych != 'w') goto yy154;
+       yyaccept = 28;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
-               goto yy1417;
+               if (yych == '-') goto yy147;
+               goto yy1357;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
-               goto yy1417;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
+               goto yy1357;
        }
-yy1451:
-       YYDEBUG(1451, *YYCURSOR);
+yy1391:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'Y') goto yy1419;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Y') goto yy1359;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'x') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'y') goto yy1452;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'y') goto yy1392;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1452:
-       YYDEBUG(1452, *YYCURSOR);
-       yyaccept = 30;
+yy1392:
+       yyaccept = 29;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy1420;
+                       if (yych == ')') goto yy139;
+                       goto yy1360;
                } else {
-                       if (yych == '.') goto yy1420;
-                       goto yy172;
+                       if (yych == '.') goto yy1360;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy1420;
-                       if (yych <= 'Z') goto yy169;
-                       goto yy1420;
+                       if (yych <= '@') goto yy1360;
+                       if (yych <= 'Z') goto yy144;
+                       goto yy1360;
                } else {
-                       if (yych <= '_') goto yy172;
-                       if (yych <= '`') goto yy1420;
-                       if (yych <= 'z') goto yy177;
-                       goto yy1420;
+                       if (yych <= '_') goto yy147;
+                       if (yych <= '`') goto yy1360;
+                       if (yych <= 'z') goto yy152;
+                       goto yy1360;
                }
        }
-yy1453:
-       YYDEBUG(1453, *YYCURSOR);
+yy1393:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '/') {
                                if (yych <= '.') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '@') goto yy3;
-                               if (yych <= 'Q') goto yy167;
-                               goto yy1427;
+                               if (yych <= 'Q') goto yy142;
+                               goto yy1367;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'S') goto yy1428;
-                               goto yy167;
+                               if (yych <= 'S') goto yy1368;
+                               goto yy142;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'q') goto yy175;
-                               goto yy1459;
+                               if (yych <= 'q') goto yy150;
+                               goto yy1399;
                        } else {
-                               if (yych <= 's') goto yy1460;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 's') goto yy1400;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1454:
-       YYDEBUG(1454, *YYCURSOR);
+yy1394:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1423;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'R') goto yy1363;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'r') goto yy1455;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'r') goto yy1395;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1455:
-       YYDEBUG(1455, *YYCURSOR);
+yy1395:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy1424;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'S') goto yy1364;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 's') goto yy1456;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 's') goto yy1396;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1456:
-       YYDEBUG(1456, *YYCURSOR);
+yy1396:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1425;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'D') goto yy1365;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'd') goto yy1457;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'd') goto yy1397;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1457:
-       YYDEBUG(1457, *YYCURSOR);
+yy1397:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1426;
+                       if (yych <= 'A') goto yy1366;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1458;
-                       if (yych <= 'z') goto yy178;
+                       if (yych <= 'a') goto yy1398;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1458:
-       YYDEBUG(1458, *YYCURSOR);
+yy1398:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy197;
-       if (yych == 'y') goto yy210;
-       goto yy179;
-yy1459:
-       YYDEBUG(1459, *YYCURSOR);
+       if (yych == 'Y') goto yy172;
+       if (yych == 'y') goto yy185;
+       goto yy154;
+yy1399:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1228;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'D') goto yy1178;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'd') goto yy1257;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'd') goto yy1207;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1460:
-       YYDEBUG(1460, *YYCURSOR);
+yy1400:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy1069;
+                       if (yych == '\t') goto yy1044;
                        if (yych <= 0x1F) goto yy3;
-                       goto yy1069;
+                       goto yy1044;
                } else {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
                        if (yych <= '_') {
                                if (yych <= '^') goto yy3;
-                               goto yy172;
+                               goto yy147;
                        } else {
                                if (yych <= '`') goto yy3;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1461:
-       YYDEBUG(1461, *YYCURSOR);
+yy1401:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1430;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1370;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1462;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1402;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1462:
-       YYDEBUG(1462, *YYCURSOR);
+yy1402:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1228;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'H') goto yy1178;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'h') goto yy1257;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'h') goto yy1207;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1463:
-       YYDEBUG(1463, *YYCURSOR);
+yy1403:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
                if (yych <= '@') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
-                       if (yych == 'R') goto yy1475;
-                       if (yych <= 'X') goto yy166;
-                       goto yy1476;
+                       if (yych == 'R') goto yy1415;
+                       if (yych <= 'X') goto yy141;
+                       goto yy1416;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'q') goto yy166;
-                       goto yy1475;
+                       if (yych <= 'q') goto yy141;
+                       goto yy1415;
                } else {
-                       if (yych == 'y') goto yy1476;
-                       if (yych <= 'z') goto yy166;
+                       if (yych == 'y') goto yy1416;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1464:
-       YYDEBUG(1464, *YYCURSOR);
+yy1404:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'C') goto yy166;
-                       goto yy1469;
+                       if (yych <= 'C') goto yy141;
+                       goto yy1409;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'd') goto yy1469;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'd') goto yy1409;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1465:
-       YYDEBUG(1465, *YYCURSOR);
+yy1405:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy166;
+                       if (yych <= 'M') goto yy141;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'n') goto yy1466;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'n') goto yy1406;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1466:
-       YYDEBUG(1466, *YYCURSOR);
+yy1406:
        yych = *++YYCURSOR;
        if (yych <= 'D') {
                if (yych <= ')') {
-                       if (yych <= '(') goto yy191;
-                       goto yy164;
+                       if (yych <= '(') goto yy166;
+                       goto yy139;
                } else {
-                       if (yych <= '@') goto yy191;
-                       if (yych <= 'C') goto yy167;
+                       if (yych <= '@') goto yy166;
+                       if (yych <= 'C') goto yy142;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy191;
-                       goto yy167;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy166;
+                       goto yy142;
                } else {
-                       if (yych <= 'd') goto yy1467;
-                       if (yych <= 'z') goto yy167;
-                       goto yy191;
+                       if (yych <= 'd') goto yy1407;
+                       if (yych <= 'z') goto yy142;
+                       goto yy166;
                }
        }
-yy1467:
-       YYDEBUG(1467, *YYCURSOR);
+yy1407:
        yych = *++YYCURSOR;
        if (yych <= 'A') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                if (yych <= '@') goto yy3;
        } else {
                if (yych <= '`') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        goto yy3;
                } else {
-                       if (yych <= 'a') goto yy1468;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'a') goto yy1408;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1468:
-       YYDEBUG(1468, *YYCURSOR);
+yy1408:
        yych = *++YYCURSOR;
        if (yych <= 'Y') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'X') goto yy169;
-                       goto yy1225;
+                       if (yych <= 'X') goto yy144;
+                       goto yy1175;
                }
        } else {
                if (yych <= 'x') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'y') goto yy1225;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'y') goto yy1175;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1469:
-       YYDEBUG(1469, *YYCURSOR);
+yy1409:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy167;
+                       if (yych <= 'M') goto yy142;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'n') goto yy1470;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'n') goto yy1410;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1470:
-       YYDEBUG(1470, *YYCURSOR);
+yy1410:
        yych = *++YYCURSOR;
        if (yych <= 'I') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'H') goto yy168;
+                       if (yych <= 'H') goto yy143;
                }
        } else {
                if (yych <= 'h') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'i') goto yy1471;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'i') goto yy1411;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1471:
-       YYDEBUG(1471, *YYCURSOR);
+yy1411:
        yych = *++YYCURSOR;
        if (yych <= 'G') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'F') goto yy169;
+                       if (yych <= 'F') goto yy144;
                }
        } else {
                if (yych <= 'f') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'g') goto yy1472;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'g') goto yy1412;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1472:
-       YYDEBUG(1472, *YYCURSOR);
+yy1412:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'H') goto yy1473;
+               if (yych <= 'H') goto yy1413;
                if (yych != 'h') goto yy3;
        }
-yy1473:
-       YYDEBUG(1473, *YYCURSOR);
+yy1413:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1474;
+       if (yych == 'T') goto yy1414;
        if (yych != 't') goto yy56;
-yy1474:
-       YYDEBUG(1474, *YYCURSOR);
+yy1414:
        yych = *++YYCURSOR;
-       goto yy1420;
-yy1475:
-       YYDEBUG(1475, *YYCURSOR);
+       goto yy1360;
+yy1415:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych == 'C') goto yy1477;
-                               goto yy167;
+                               if (yych == 'C') goto yy1417;
+                               goto yy142;
                        }
                } else {
                        if (yych <= 'b') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'c') goto yy1477;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'c') goto yy1417;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy1476:
-       YYDEBUG(1476, *YYCURSOR);
+yy1416:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '-') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
-                       if (yych <= 0x1F) goto yy218;
-                       goto yy220;
+                       if (yych == '\t') goto yy195;
+                       if (yych <= 0x1F) goto yy193;
+                       goto yy195;
                } else {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy218;
-                       goto yy221;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy193;
+                       goto yy196;
                }
        } else {
                if (yych <= '@') {
-                       if (yych == '/') goto yy218;
-                       if (yych <= '9') goto yy220;
-                       goto yy218;
+                       if (yych == '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+                       goto yy193;
                } else {
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '`') goto yy218;
-                       if (yych <= 'z') goto yy167;
-                       goto yy218;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '`') goto yy193;
+                       if (yych <= 'z') goto yy142;
+                       goto yy193;
                }
        }
-yy1477:
-       YYDEBUG(1477, *YYCURSOR);
+yy1417:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy168;
-                       goto yy360;
+                       if (yych <= 'G') goto yy143;
+                       goto yy335;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'h') goto yy360;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'h') goto yy335;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1478:
-       YYDEBUG(1478, *YYCURSOR);
+yy1418:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                goto yy3;
                        } else {
-                               if (yych == 'R') goto yy1475;
-                               goto yy166;
+                               if (yych == 'R') goto yy1415;
+                               goto yy141;
                        }
                }
        } else {
                if (yych <= '`') {
                        if (yych <= 'Z') {
-                               if (yych <= 'Y') goto yy1476;
-                               goto yy166;
+                               if (yych <= 'Y') goto yy1416;
+                               goto yy141;
                        } else {
-                               if (yych == '_') goto yy172;
+                               if (yych == '_') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'x') {
-                               if (yych == 'r') goto yy1490;
-                               goto yy171;
+                               if (yych == 'r') goto yy1430;
+                               goto yy146;
                        } else {
-                               if (yych <= 'y') goto yy1491;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'y') goto yy1431;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1479:
-       YYDEBUG(1479, *YYCURSOR);
+yy1419:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1469;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'D') goto yy1409;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'd') goto yy1484;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'd') goto yy1424;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1480:
-       YYDEBUG(1480, *YYCURSOR);
+yy1420:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1466;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'N') goto yy1406;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy1481;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy1421;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1481:
-       YYDEBUG(1481, *YYCURSOR);
+yy1421:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
-                       if (yych <= ',') goto yy191;
-                       goto yy172;
+                       if (yych == ')') goto yy139;
+                       if (yych <= ',') goto yy166;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
-                       if (yych <= '@') goto yy191;
-                       goto yy167;
+                       if (yych == '/') goto yy147;
+                       if (yych <= '@') goto yy166;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'D') goto yy1467;
-                       if (yych <= 'Z') goto yy167;
-                       if (yych <= '^') goto yy191;
-                       goto yy172;
+                       if (yych <= 'D') goto yy1407;
+                       if (yych <= 'Z') goto yy142;
+                       if (yych <= '^') goto yy166;
+                       goto yy147;
                } else {
                        if (yych <= 'c') {
-                               if (yych <= '`') goto yy191;
-                               goto yy175;
+                               if (yych <= '`') goto yy166;
+                               goto yy150;
                        } else {
-                               if (yych <= 'd') goto yy1482;
-                               if (yych <= 'z') goto yy175;
-                               goto yy191;
+                               if (yych <= 'd') goto yy1422;
+                               if (yych <= 'z') goto yy150;
+                               goto yy166;
                        }
                }
        }
-yy1482:
-       YYDEBUG(1482, *YYCURSOR);
+yy1422:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'A') goto yy1468;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'A') goto yy1408;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'a') goto yy1483;
-                       if (yych <= 'z') goto yy176;
+                       if (yych <= 'a') goto yy1423;
+                       if (yych <= 'z') goto yy151;
                        goto yy3;
                }
        }
-yy1483:
-       YYDEBUG(1483, *YYCURSOR);
+yy1423:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'X') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'Y') goto yy1225;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Y') goto yy1175;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'x') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'y') goto yy1254;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'y') goto yy1204;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1484:
-       YYDEBUG(1484, *YYCURSOR);
+yy1424:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1470;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'N') goto yy1410;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'n') goto yy1485;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'n') goto yy1425;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1485:
-       YYDEBUG(1485, *YYCURSOR);
+yy1425:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'H') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'I') goto yy1471;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'I') goto yy1411;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'h') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'i') goto yy1486;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'i') goto yy1426;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1486:
-       YYDEBUG(1486, *YYCURSOR);
+yy1426:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'F') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'G') goto yy1472;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'G') goto yy1412;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'f') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'g') goto yy1487;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'g') goto yy1427;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1487:
-       YYDEBUG(1487, *YYCURSOR);
+yy1427:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'H') goto yy1473;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'H') goto yy1413;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'h') goto yy1488;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'h') goto yy1428;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1488:
-       YYDEBUG(1488, *YYCURSOR);
+yy1428:
        yych = *++YYCURSOR;
-       if (yych == 'T') goto yy1474;
-       if (yych != 't') goto yy179;
-       YYDEBUG(1489, *YYCURSOR);
-       yyaccept = 30;
+       if (yych == 'T') goto yy1414;
+       if (yych != 't') goto yy154;
+       yyaccept = 29;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
-               goto yy1420;
+               if (yych == '-') goto yy147;
+               goto yy1360;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
-               goto yy1420;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
+               goto yy1360;
        }
-yy1490:
-       YYDEBUG(1490, *YYCURSOR);
+yy1430:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'B') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'C') goto yy1477;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'C') goto yy1417;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'b') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'c') goto yy1492;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'c') goto yy1432;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy1491:
-       YYDEBUG(1491, *YYCURSOR);
+yy1431:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '.') {
                if (yych <= ' ') {
-                       if (yych == '\t') goto yy220;
-                       if (yych <= 0x1F) goto yy218;
-                       goto yy220;
+                       if (yych == '\t') goto yy195;
+                       if (yych <= 0x1F) goto yy193;
+                       goto yy195;
                } else {
                        if (yych <= ')') {
-                               if (yych <= '(') goto yy218;
-                               goto yy164;
+                               if (yych <= '(') goto yy193;
+                               goto yy139;
                        } else {
-                               if (yych <= ',') goto yy218;
-                               if (yych <= '-') goto yy336;
-                               goto yy220;
+                               if (yych <= ',') goto yy193;
+                               if (yych <= '-') goto yy311;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= 'Z') {
-                       if (yych <= '/') goto yy172;
-                       if (yych <= '9') goto yy220;
-                       if (yych <= '@') goto yy218;
-                       goto yy167;
+                       if (yych <= '/') goto yy147;
+                       if (yych <= '9') goto yy195;
+                       if (yych <= '@') goto yy193;
+                       goto yy142;
                } else {
                        if (yych <= '_') {
-                               if (yych <= '^') goto yy218;
-                               goto yy172;
+                               if (yych <= '^') goto yy193;
+                               goto yy147;
                        } else {
-                               if (yych <= '`') goto yy218;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= '`') goto yy193;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy1492:
-       YYDEBUG(1492, *YYCURSOR);
+yy1432:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy360;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'H') goto yy335;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'h') goto yy371;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'h') goto yy346;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1493:
-       YYDEBUG(1493, *YYCURSOR);
+yy1433:
        yych = *++YYCURSOR;
        if (yych <= 'W') {
                if (yych <= 'N') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'O') goto yy1501;
-                       if (yych <= 'U') goto yy166;
-                       if (yych <= 'V') goto yy1502;
-                       goto yy1499;
+                       if (yych <= 'O') goto yy1441;
+                       if (yych <= 'U') goto yy141;
+                       if (yych <= 'V') goto yy1442;
+                       goto yy1439;
                }
        } else {
                if (yych <= 'o') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       if (yych <= 'n') goto yy166;
-                       goto yy1501;
+                       if (yych <= 'n') goto yy141;
+                       goto yy1441;
                } else {
                        if (yych <= 'v') {
-                               if (yych <= 'u') goto yy166;
-                               goto yy1502;
+                               if (yych <= 'u') goto yy141;
+                               goto yy1442;
                        } else {
-                               if (yych <= 'w') goto yy1499;
-                               if (yych <= 'z') goto yy166;
+                               if (yych <= 'w') goto yy1439;
+                               if (yych <= 'z') goto yy141;
                                goto yy3;
                        }
                }
        }
-yy1494:
-       YYDEBUG(1494, *YYCURSOR);
+yy1434:
        yych = *++YYCURSOR;
        if (yych <= 'X') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'W') goto yy166;
-                       goto yy1498;
+                       if (yych <= 'W') goto yy141;
+                       goto yy1438;
                }
        } else {
                if (yych <= 'w') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'x') goto yy1498;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'x') goto yy1438;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1495:
-       YYDEBUG(1495, *YYCURSOR);
+yy1435:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy166;
+                       if (yych <= 'M') goto yy141;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 'n') goto yy1496;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 'n') goto yy1436;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1496:
-       YYDEBUG(1496, *YYCURSOR);
+yy1436:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1497;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1437;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1497:
-       YYDEBUG(1497, *YYCURSOR);
+yy1437:
        yych = *++YYCURSOR;
        if (yych <= 'H') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'G') goto yy168;
-                       goto yy1228;
+                       if (yych <= 'G') goto yy143;
+                       goto yy1178;
                }
        } else {
                if (yych <= 'g') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'h') goto yy1228;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'h') goto yy1178;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1498:
-       YYDEBUG(1498, *YYCURSOR);
+yy1438:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
-                       goto yy1428;
+                       if (yych <= 'S') goto yy142;
+                       goto yy1368;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1428;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1368;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1499:
-       YYDEBUG(1499, *YYCURSOR);
+yy1439:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
        } else {
-               if (yych <= 'Z') goto yy167;
-               if (yych <= '`') goto yy1500;
-               if (yych <= 'z') goto yy167;
+               if (yych <= 'Z') goto yy142;
+               if (yych <= '`') goto yy1440;
+               if (yych <= 'z') goto yy142;
        }
-yy1500:
-       YYDEBUG(1500, *YYCURSOR);
-#line 998 "ext/date/lib/parse_date.re"
+yy1440:
+#line 967 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("now");
                TIMELIB_INIT;
@@ -24023,146 +21421,138 @@ yy1500:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 24027 "<stdout>"
-yy1501:
-       YYDEBUG(1501, *YYCURSOR);
+#line 21425 "ext/date/lib/parse_date.c"
+yy1441:
        yych = *++YYCURSOR;
        if (yych <= 'N') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'M') goto yy167;
-                       goto yy1507;
+                       if (yych <= 'M') goto yy142;
+                       goto yy1447;
                }
        } else {
                if (yych <= 'm') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 'n') goto yy1507;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 'n') goto yy1447;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1502:
-       YYDEBUG(1502, *YYCURSOR);
+yy1442:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= ',') {
-                               if (yych <= ')') goto yy164;
-                               goto yy218;
+                               if (yych <= ')') goto yy139;
+                               goto yy193;
                        } else {
-                               if (yych <= '-') goto yy221;
-                               if (yych <= '.') goto yy220;
-                               goto yy218;
+                               if (yych <= '-') goto yy196;
+                               if (yych <= '.') goto yy195;
+                               goto yy193;
                        }
                }
        } else {
                if (yych <= 'Z') {
                        if (yych <= '@') {
-                               if (yych <= '9') goto yy220;
-                               goto yy218;
+                               if (yych <= '9') goto yy195;
+                               goto yy193;
                        } else {
-                               if (yych != 'E') goto yy167;
+                               if (yych != 'E') goto yy142;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '`') goto yy218;
-                               goto yy167;
+                               if (yych <= '`') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'e') goto yy1503;
-                               if (yych <= 'z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'e') goto yy1443;
+                               if (yych <= 'z') goto yy142;
+                               goto yy193;
                        }
                }
        }
-yy1503:
-       YYDEBUG(1503, *YYCURSOR);
+yy1443:
        yych = *++YYCURSOR;
        if (yych <= 'M') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'L') goto yy168;
+                       if (yych <= 'L') goto yy143;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'm') goto yy1504;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'm') goto yy1444;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1504:
-       YYDEBUG(1504, *YYCURSOR);
+yy1444:
        yych = *++YYCURSOR;
        if (yych <= 'B') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'A') goto yy169;
+                       if (yych <= 'A') goto yy144;
                }
        } else {
                if (yych <= 'a') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'b') goto yy1505;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'b') goto yy1445;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1505:
-       YYDEBUG(1505, *YYCURSOR);
+yy1445:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'E') goto yy1506;
+               if (yych <= 'E') goto yy1446;
                if (yych != 'e') goto yy3;
        }
-yy1506:
-       YYDEBUG(1506, *YYCURSOR);
+yy1446:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
-       if (yych == 'r') goto yy229;
+       if (yych == 'R') goto yy204;
+       if (yych == 'r') goto yy204;
        goto yy56;
-yy1507:
-       YYDEBUG(1507, *YYCURSOR);
+yy1447:
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= '@') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
        } else {
-               if (yych <= 'Z') goto yy168;
-               if (yych <= '`') goto yy1508;
-               if (yych <= 'z') goto yy168;
+               if (yych <= 'Z') goto yy143;
+               if (yych <= '`') goto yy1448;
+               if (yych <= 'z') goto yy143;
        }
-yy1508:
-       YYDEBUG(1508, *YYCURSOR);
-#line 1007 "ext/date/lib/parse_date.re"
+yy1448:
+#line 976 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("noon");
                TIMELIB_INIT;
@@ -24173,540 +21563,517 @@ yy1508:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 24177 "<stdout>"
-yy1509:
-       YYDEBUG(1509, *YYCURSOR);
+#line 21567 "ext/date/lib/parse_date.c"
+yy1449:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'V') {
                if (yych <= '.') {
                        if (yych <= ')') {
                                if (yych <= '(') goto yy3;
-                               goto yy164;
+                               goto yy139;
                        } else {
-                               if (yych == '-') goto yy172;
+                               if (yych == '-') goto yy147;
                                goto yy3;
                        }
                } else {
                        if (yych <= 'N') {
-                               if (yych <= '/') goto yy172;
+                               if (yych <= '/') goto yy147;
                                if (yych <= '@') goto yy3;
-                               goto yy166;
+                               goto yy141;
                        } else {
-                               if (yych <= 'O') goto yy1501;
-                               if (yych <= 'U') goto yy166;
-                               goto yy1502;
+                               if (yych <= 'O') goto yy1441;
+                               if (yych <= 'U') goto yy141;
+                               goto yy1442;
                        }
                }
        } else {
                if (yych <= 'n') {
                        if (yych <= '^') {
-                               if (yych <= 'W') goto yy1499;
-                               if (yych <= 'Z') goto yy166;
+                               if (yych <= 'W') goto yy1439;
+                               if (yych <= 'Z') goto yy141;
                                goto yy3;
                        } else {
-                               if (yych <= '_') goto yy172;
+                               if (yych <= '_') goto yy147;
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        }
                } else {
                        if (yych <= 'v') {
-                               if (yych <= 'o') goto yy1516;
-                               if (yych <= 'u') goto yy171;
-                               goto yy1517;
+                               if (yych <= 'o') goto yy1456;
+                               if (yych <= 'u') goto yy146;
+                               goto yy1457;
                        } else {
-                               if (yych <= 'w') goto yy1515;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'w') goto yy1455;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1510:
-       YYDEBUG(1510, *YYCURSOR);
+yy1450:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'W') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'X') goto yy1498;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'X') goto yy1438;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'w') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'x') goto yy1514;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'x') goto yy1454;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1511:
-       YYDEBUG(1511, *YYCURSOR);
+yy1451:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1496;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'N') goto yy1436;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 'n') goto yy1512;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 'n') goto yy1452;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1512:
-       YYDEBUG(1512, *YYCURSOR);
+yy1452:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1497;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1437;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1513;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1453;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1513:
-       YYDEBUG(1513, *YYCURSOR);
+yy1453:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'G') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'H') goto yy1228;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'H') goto yy1178;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'g') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'h') goto yy1257;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'h') goto yy1207;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1514:
-       YYDEBUG(1514, *YYCURSOR);
+yy1454:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1428;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1368;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1460;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1400;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1515:
-       YYDEBUG(1515, *YYCURSOR);
-       yyaccept = 31;
+yy1455:
+       yyaccept = 30;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy1500;
+                       if (yych == ')') goto yy139;
+                       goto yy1440;
                } else {
-                       if (yych == '.') goto yy1500;
-                       goto yy172;
+                       if (yych == '.') goto yy1440;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy1500;
-                       if (yych <= 'Z') goto yy167;
-                       goto yy1500;
+                       if (yych <= '@') goto yy1440;
+                       if (yych <= 'Z') goto yy142;
+                       goto yy1440;
                } else {
-                       if (yych <= '_') goto yy172;
-                       if (yych <= '`') goto yy1500;
-                       if (yych <= 'z') goto yy175;
-                       goto yy1500;
+                       if (yych <= '_') goto yy147;
+                       if (yych <= '`') goto yy1440;
+                       if (yych <= 'z') goto yy150;
+                       goto yy1440;
                }
        }
-yy1516:
-       YYDEBUG(1516, *YYCURSOR);
+yy1456:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'M') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'N') goto yy1507;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'N') goto yy1447;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'm') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 'n') goto yy1522;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 'n') goto yy1462;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1517:
-       YYDEBUG(1517, *YYCURSOR);
+yy1457:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '9') {
                if (yych <= '(') {
                        if (yych <= '\t') {
-                               if (yych <= 0x08) goto yy218;
-                               goto yy220;
+                               if (yych <= 0x08) goto yy193;
+                               goto yy195;
                        } else {
-                               if (yych == ' ') goto yy220;
-                               goto yy218;
+                               if (yych == ' ') goto yy195;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '-') {
-                               if (yych <= ')') goto yy164;
-                               if (yych <= ',') goto yy218;
-                               goto yy336;
+                               if (yych <= ')') goto yy139;
+                               if (yych <= ',') goto yy193;
+                               goto yy311;
                        } else {
-                               if (yych == '/') goto yy172;
-                               goto yy220;
+                               if (yych == '/') goto yy147;
+                               goto yy195;
                        }
                }
        } else {
                if (yych <= '^') {
                        if (yych <= 'D') {
-                               if (yych <= '@') goto yy218;
-                               goto yy167;
+                               if (yych <= '@') goto yy193;
+                               goto yy142;
                        } else {
-                               if (yych <= 'E') goto yy1503;
-                               if (yych <= 'Z') goto yy167;
-                               goto yy218;
+                               if (yych <= 'E') goto yy1443;
+                               if (yych <= 'Z') goto yy142;
+                               goto yy193;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych <= '_') goto yy172;
-                               if (yych <= '`') goto yy218;
-                               goto yy175;
+                               if (yych <= '_') goto yy147;
+                               if (yych <= '`') goto yy193;
+                               goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy1518;
-                               if (yych <= 'z') goto yy175;
-                               goto yy218;
+                               if (yych <= 'e') goto yy1458;
+                               if (yych <= 'z') goto yy150;
+                               goto yy193;
                        }
                }
        }
-yy1518:
-       YYDEBUG(1518, *YYCURSOR);
+yy1458:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'M') goto yy1504;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'M') goto yy1444;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'l') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'm') goto yy1519;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'm') goto yy1459;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1519:
-       YYDEBUG(1519, *YYCURSOR);
+yy1459:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'A') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'B') goto yy1505;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'B') goto yy1445;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'b') goto yy1520;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'b') goto yy1460;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1520:
-       YYDEBUG(1520, *YYCURSOR);
+yy1460:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'E') goto yy1506;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'E') goto yy1446;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'e') goto yy1521;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'e') goto yy1461;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1521:
-       YYDEBUG(1521, *YYCURSOR);
+yy1461:
        yych = *++YYCURSOR;
-       if (yych == 'R') goto yy229;
-       if (yych == 'r') goto yy341;
-       goto yy179;
-yy1522:
-       YYDEBUG(1522, *YYCURSOR);
-       yyaccept = 32;
+       if (yych == 'R') goto yy204;
+       if (yych == 'r') goto yy316;
+       goto yy154;
+yy1462:
+       yyaccept = 31;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
-                       goto yy1508;
+                       if (yych == ')') goto yy139;
+                       goto yy1448;
                } else {
-                       if (yych == '.') goto yy1508;
-                       goto yy172;
+                       if (yych == '.') goto yy1448;
+                       goto yy147;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy1508;
-                       if (yych <= 'Z') goto yy168;
-                       goto yy1508;
+                       if (yych <= '@') goto yy1448;
+                       if (yych <= 'Z') goto yy143;
+                       goto yy1448;
                } else {
-                       if (yych <= '_') goto yy172;
-                       if (yych <= '`') goto yy1508;
-                       if (yych <= 'z') goto yy176;
-                       goto yy1508;
+                       if (yych <= '_') goto yy147;
+                       if (yych <= '`') goto yy1448;
+                       if (yych <= 'z') goto yy151;
+                       goto yy1448;
                }
        }
-yy1523:
-       YYDEBUG(1523, *YYCURSOR);
+yy1463:
        yych = *++YYCURSOR;
        if (yych <= 'S') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'R') goto yy166;
+                       if (yych <= 'R') goto yy141;
                }
        } else {
                if (yych <= 'r') {
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '`') goto yy3;
-                       goto yy166;
+                       goto yy141;
                } else {
-                       if (yych <= 's') goto yy1524;
-                       if (yych <= 'z') goto yy166;
+                       if (yych <= 's') goto yy1464;
+                       if (yych <= 'z') goto yy141;
                        goto yy3;
                }
        }
-yy1524:
-       YYDEBUG(1524, *YYCURSOR);
+yy1464:
        yych = *++YYCURSOR;
        if (yych <= 'T') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'S') goto yy167;
+                       if (yych <= 'S') goto yy142;
                }
        } else {
                if (yych <= 's') {
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '`') goto yy3;
-                       goto yy167;
+                       goto yy142;
                } else {
-                       if (yych <= 't') goto yy1525;
-                       if (yych <= 'z') goto yy167;
+                       if (yych <= 't') goto yy1465;
+                       if (yych <= 'z') goto yy142;
                        goto yy3;
                }
        }
-yy1525:
-       YYDEBUG(1525, *YYCURSOR);
+yy1465:
        yych = *++YYCURSOR;
        if (yych <= 'E') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'D') goto yy168;
+                       if (yych <= 'D') goto yy143;
                }
        } else {
                if (yych <= 'd') {
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '`') goto yy3;
-                       goto yy168;
+                       goto yy143;
                } else {
-                       if (yych <= 'e') goto yy1526;
-                       if (yych <= 'z') goto yy168;
+                       if (yych <= 'e') goto yy1466;
+                       if (yych <= 'z') goto yy143;
                        goto yy3;
                }
        }
-yy1526:
-       YYDEBUG(1526, *YYCURSOR);
+yy1466:
        yych = *++YYCURSOR;
        if (yych <= 'R') {
                if (yych <= ')') {
                        if (yych <= '(') goto yy3;
-                       goto yy164;
+                       goto yy139;
                } else {
                        if (yych <= '@') goto yy3;
-                       if (yych <= 'Q') goto yy169;
+                       if (yych <= 'Q') goto yy144;
                }
        } else {
                if (yych <= 'q') {
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '`') goto yy3;
-                       goto yy169;
+                       goto yy144;
                } else {
-                       if (yych <= 'r') goto yy1527;
-                       if (yych <= 'z') goto yy169;
+                       if (yych <= 'r') goto yy1467;
+                       if (yych <= 'z') goto yy144;
                        goto yy3;
                }
        }
-yy1527:
-       YYDEBUG(1527, *YYCURSOR);
+yy1467:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
-               if (yych == ')') goto yy164;
+               if (yych == ')') goto yy139;
                goto yy3;
        } else {
-               if (yych <= 'D') goto yy1528;
+               if (yych <= 'D') goto yy1468;
                if (yych != 'd') goto yy3;
        }
-yy1528:
-       YYDEBUG(1528, *YYCURSOR);
+yy1468:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1529;
+       if (yych == 'A') goto yy1469;
        if (yych != 'a') goto yy56;
-yy1529:
-       YYDEBUG(1529, *YYCURSOR);
+yy1469:
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1530;
+       if (yych == 'Y') goto yy1470;
        if (yych != 'y') goto yy56;
-yy1530:
-       YYDEBUG(1530, *YYCURSOR);
+yy1470:
        ++YYCURSOR;
-yy1531:
-       YYDEBUG(1531, *YYCURSOR);
-#line 986 "ext/date/lib/parse_date.re"
+yy1471:
+#line 955 "ext/date/lib/parse_date.re"
        {
                DEBUG_OUTPUT("yesterday");
                TIMELIB_INIT;
@@ -24717,180 +22084,172 @@ yy1531:
                TIMELIB_DEINIT;
                return TIMELIB_RELATIVE;
        }
-#line 24721 "<stdout>"
-yy1532:
-       YYDEBUG(1532, *YYCURSOR);
+#line 22088 "ext/date/lib/parse_date.c"
+yy1472:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'R') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy166;
+                       goto yy141;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'S') goto yy1524;
-                       if (yych <= 'Z') goto yy166;
+                       if (yych <= 'S') goto yy1464;
+                       if (yych <= 'Z') goto yy141;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'r') {
                                if (yych <= '`') goto yy3;
-                               goto yy171;
+                               goto yy146;
                        } else {
-                               if (yych <= 's') goto yy1533;
-                               if (yych <= 'z') goto yy171;
+                               if (yych <= 's') goto yy1473;
+                               if (yych <= 'z') goto yy146;
                                goto yy3;
                        }
                }
        }
-yy1533:
-       YYDEBUG(1533, *YYCURSOR);
+yy1473:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'S') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy167;
+                       goto yy142;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'T') goto yy1525;
-                       if (yych <= 'Z') goto yy167;
+                       if (yych <= 'T') goto yy1465;
+                       if (yych <= 'Z') goto yy142;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 's') {
                                if (yych <= '`') goto yy3;
-                               goto yy175;
+                               goto yy150;
                        } else {
-                               if (yych <= 't') goto yy1534;
-                               if (yych <= 'z') goto yy175;
+                               if (yych <= 't') goto yy1474;
+                               if (yych <= 'z') goto yy150;
                                goto yy3;
                        }
                }
        }
-yy1534:
-       YYDEBUG(1534, *YYCURSOR);
+yy1474:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy168;
+                       goto yy143;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'E') goto yy1526;
-                       if (yych <= 'Z') goto yy168;
+                       if (yych <= 'E') goto yy1466;
+                       if (yych <= 'Z') goto yy143;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'd') {
                                if (yych <= '`') goto yy3;
-                               goto yy176;
+                               goto yy151;
                        } else {
-                               if (yych <= 'e') goto yy1535;
-                               if (yych <= 'z') goto yy176;
+                               if (yych <= 'e') goto yy1475;
+                               if (yych <= 'z') goto yy151;
                                goto yy3;
                        }
                }
        }
-yy1535:
-       YYDEBUG(1535, *YYCURSOR);
+yy1475:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'Q') {
                if (yych <= '-') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        if (yych <= ',') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
-                       if (yych == '/') goto yy172;
+                       if (yych == '/') goto yy147;
                        if (yych <= '@') goto yy3;
-                       goto yy169;
+                       goto yy144;
                }
        } else {
                if (yych <= '_') {
-                       if (yych <= 'R') goto yy1527;
-                       if (yych <= 'Z') goto yy169;
+                       if (yych <= 'R') goto yy1467;
+                       if (yych <= 'Z') goto yy144;
                        if (yych <= '^') goto yy3;
-                       goto yy172;
+                       goto yy147;
                } else {
                        if (yych <= 'q') {
                                if (yych <= '`') goto yy3;
-                               goto yy177;
+                               goto yy152;
                        } else {
-                               if (yych <= 'r') goto yy1536;
-                               if (yych <= 'z') goto yy177;
+                               if (yych <= 'r') goto yy1476;
+                               if (yych <= 'z') goto yy152;
                                goto yy3;
                        }
                }
        }
-yy1536:
-       YYDEBUG(1536, *YYCURSOR);
+yy1476:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'C') {
                if (yych <= ',') {
-                       if (yych == ')') goto yy164;
+                       if (yych == ')') goto yy139;
                        goto yy3;
                } else {
                        if (yych == '.') goto yy3;
-                       if (yych <= '/') goto yy172;
+                       if (yych <= '/') goto yy147;
                        goto yy3;
                }
        } else {
                if (yych <= '`') {
-                       if (yych <= 'D') goto yy1528;
-                       if (yych == '_') goto yy172;
+                       if (yych <= 'D') goto yy1468;
+                       if (yych == '_') goto yy147;
                        goto yy3;
                } else {
-                       if (yych == 'd') goto yy1537;
-                       if (yych <= 'z') goto yy178;
+                       if (yych == 'd') goto yy1477;
+                       if (yych <= 'z') goto yy153;
                        goto yy3;
                }
        }
-yy1537:
-       YYDEBUG(1537, *YYCURSOR);
+yy1477:
        yych = *++YYCURSOR;
-       if (yych == 'A') goto yy1529;
-       if (yych != 'a') goto yy179;
-       YYDEBUG(1538, *YYCURSOR);
+       if (yych == 'A') goto yy1469;
+       if (yych != 'a') goto yy154;
        yych = *++YYCURSOR;
-       if (yych == 'Y') goto yy1530;
-       if (yych != 'y') goto yy179;
-       YYDEBUG(1539, *YYCURSOR);
-       yyaccept = 33;
+       if (yych == 'Y') goto yy1470;
+       if (yych != 'y') goto yy154;
+       yyaccept = 32;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 16) {
-               goto yy178;
+               goto yy153;
        }
        if (yych <= '.') {
-               if (yych == '-') goto yy172;
-               goto yy1531;
+               if (yych == '-') goto yy147;
+               goto yy1471;
        } else {
-               if (yych <= '/') goto yy172;
-               if (yych == '_') goto yy172;
-               goto yy1531;
+               if (yych <= '/') goto yy147;
+               if (yych == '_') goto yy147;
+               goto yy1471;
        }
 }
-#line 1788 "ext/date/lib/parse_date.re"
+#line 1729 "ext/date/lib/parse_date.re"
 
 }
 
@@ -24919,13 +22278,13 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
        }
        if (e - s < 0) {
                in.time = timelib_time_ctor();
-               add_error(&in, TIMELIB_ERR_EMPTY_STRING, "Empty string");
+               add_error(&in, "Empty string");
                if (errors) {
                        *errors = in.errors;
                } else {
                        timelib_error_container_dtor(in.errors);
                }
-               in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->us = in.time->dst = in.time->z = TIMELIB_UNSET;
+               in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = in.time->z = TIMELIB_UNSET;
                in.time->is_localtime = in.time->zone_type = 0;
                return in.time;
        }
@@ -24943,7 +22302,7 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
        in.time->h = TIMELIB_UNSET;
        in.time->i = TIMELIB_UNSET;
        in.time->s = TIMELIB_UNSET;
-       in.time->us = TIMELIB_UNSET;
+       in.time->f = TIMELIB_UNSET;
        in.time->z = TIMELIB_UNSET;
        in.time->dst = TIMELIB_UNSET;
        in.tzdb = tzdb;
@@ -24960,11 +22319,11 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
 
        /* do funky checking whether the parsed time was valid time */
        if (in.time->have_time && !timelib_valid_time( in.time->h, in.time->i, in.time->s)) {
-               add_warning(&in, TIMELIB_WARN_INVALID_TIME, "The parsed time was invalid");
+               add_warning(&in, "The parsed time was invalid");
        }
        /* do funky checking whether the parsed date was valid date */
        if (in.time->have_date && !timelib_valid_date( in.time->y, in.time->m, in.time->d)) {
-               add_warning(&in, TIMELIB_WARN_INVALID_DATE, "The parsed date was invalid");
+               add_warning(&in, "The parsed date was invalid");
        }
 
        timelib_free(in.str);
@@ -24979,12 +22338,12 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
 #define TIMELIB_CHECK_NUMBER                                           \
                if (strchr("0123456789", *ptr) == NULL)                        \
                {                                                              \
-                       add_pbf_error(s, TIMELIB_ERR_UNEXPECTED_DATA, "Unexpected data found.", string, begin); \
+                       add_pbf_error(s, "Unexpected data found.", string, begin); \
                }
 #define TIMELIB_CHECK_SIGNED_NUMBER                                    \
                if (strchr("-0123456789", *ptr) == NULL)                       \
                {                                                              \
-                       add_pbf_error(s, TIMELIB_ERR_UNEXPECTED_DATA, "Unexpected data found.", string, begin); \
+                       add_pbf_error(s, "Unexpected data found.", string, begin); \
                }
 
 static void timelib_time_reset_fields(timelib_time *time)
@@ -24995,7 +22354,7 @@ static void timelib_time_reset_fields(timelib_time *time)
        time->m = 1;
        time->d = 1;
        time->h = time->i = time->s = 0;
-       time->us = 0;
+       time->f = 0.0;
        time->tz_info = NULL;
 }
 
@@ -25009,7 +22368,7 @@ static void timelib_time_reset_unset_fields(timelib_time *time)
        if (time->h == TIMELIB_UNSET ) time->h = 0;
        if (time->i == TIMELIB_UNSET ) time->i = 0;
        if (time->s == TIMELIB_UNSET ) time->s = 0;
-       if (time->us == TIMELIB_UNSET ) time->us = 0;
+       if (time->f == TIMELIB_UNSET ) time->f = 0.0;
 }
 
 timelib_time *timelib_parse_from_format(char *format, char *string, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper)
@@ -25036,7 +22395,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        in.time->h = TIMELIB_UNSET;
        in.time->i = TIMELIB_UNSET;
        in.time->s = TIMELIB_UNSET;
-       in.time->us = TIMELIB_UNSET;
+       in.time->f = TIMELIB_UNSET;
        in.time->z = TIMELIB_UNSET;
        in.time->dst = TIMELIB_UNSET;
        in.tzdb = tzdb;
@@ -25054,7 +22413,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                                        tmprel = timelib_lookup_relunit((char **) &ptr);
                                        if (!tmprel) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TEXTUAL_DAY, "A textual day could not be found", string, begin);
+                                               add_pbf_error(s, "A textual day could not be found", string, begin);
                                                break;
                                        } else {
                                                in.time->have_relative = 1;
@@ -25068,7 +22427,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'j': /* two digit day, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->d = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_DAY, "A two digit day could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit day could not be found", string, begin);
                                }
                                break;
                        case 'S': /* day suffix, ignored, nor checked */
@@ -25077,7 +22436,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'z': /* day of year - resets month (0 based) - also initializes everything else to !TIMELIB_UNSET */
                                TIMELIB_CHECK_NUMBER;
                                if ((tmp = timelib_get_nr((char **) &ptr, 3)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_THREE_DIGIT_DAY_OF_YEAR, "A three digit day-of-year could not be found", string, begin);
+                                       add_pbf_error(s, "A three digit day-of-year could not be found", string, begin);
                                } else {
                                        s->time->m = 1;
                                        s->time->d = tmp + 1;
@@ -25089,14 +22448,14 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'n': /* two digit month, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->m = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_MONTH, "A two digit month could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit month could not be found", string, begin);
                                }
                                break;
                        case 'M': /* three letter month */
                        case 'F': /* full month */
                                tmp = timelib_lookup_month((char **) &ptr);
                                if (!tmp) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TEXTUAL_MONTH, "A textual month could not be found", string, begin);
+                                       add_pbf_error(s, "A textual month could not be found", string, begin);
                                } else {
                                        s->time->m = tmp;
                                }
@@ -25106,7 +22465,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        int length = 0;
                                        TIMELIB_CHECK_NUMBER;
                                        if ((s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length)) == TIMELIB_UNSET) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_YEAR, "A two digit year could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit year could not be found", string, begin);
                                        }
                                        TIMELIB_PROCESS_YEAR(s->time->y, length);
                                }
@@ -25114,32 +22473,32 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'Y': /* four digit year */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->y = timelib_get_nr((char **) &ptr, 4)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_FOUR_DIGIT_YEAR, "A four digit year could not be found", string, begin);
+                                       add_pbf_error(s, "A four digit year could not be found", string, begin);
                                }
                                break;
                        case 'g': /* two digit hour, with leading zero */
                        case 'h': /* two digit hour, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_HOUR, "A two digit hour could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit hour could not be found", string, begin);
                                }
                                if (s->time->h > 12) {
-                                       add_pbf_error(s, TIMELIB_ERR_HOUR_LARGER_THAN_12, "Hour can not be higher than 12", string, begin);
+                                       add_pbf_error(s, "Hour can not be higher than 12", string, begin);
                                }
                                break;
                        case 'G': /* two digit hour, with leading zero */
                        case 'H': /* two digit hour, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_HOUR, "A two digit hour could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit hour could not be found", string, begin);
                                }
                                break;
                        case 'a': /* am/pm/a.m./p.m. */
                        case 'A': /* AM/PM/A.M./P.M. */
                                if (s->time->h == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_MERIDIAN_BEFORE_HOUR, "Meridian can only come after an hour has been found", string, begin);
+                                       add_pbf_error(s, "Meridian can only come after an hour has been found", string, begin);
                                } else if ((tmp = timelib_meridian_with_check((char **) &ptr, s->time->h)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_MERIDIAN, "A meridian could not be found", string, begin);
+                                       add_pbf_error(s, "A meridian could not be found", string, begin);
                                } else {
                                        s->time->h += tmp;
                                }
@@ -25152,7 +22511,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        min = timelib_get_nr_ex((char **) &ptr, 2, &length);
                                        if (min == TIMELIB_UNSET || length != 2) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_MINUTE, "A two digit minute could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit minute could not be found", string, begin);
                                        } else {
                                                s->time->i = min;
                                        }
@@ -25166,13 +22525,13 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        sec = timelib_get_nr_ex((char **) &ptr, 2, &length);
                                        if (sec == TIMELIB_UNSET || length != 2) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_SECOND, "A two digit second could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit second could not be found", string, begin);
                                        } else {
                                                s->time->s = sec;
                                        }
                                }
                                break;
-                       case 'u': /* up to six digit microsecond */
+                       case 'u': /* up to six digit millisecond */
                                {
                                        double f;
                                        char *tptr;
@@ -25180,9 +22539,9 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        tptr = ptr;
                                        if ((f = timelib_get_nr((char **) &ptr, 6)) == TIMELIB_UNSET || (ptr - tptr < 1)) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_SIX_DIGIT_MICROSECOND, "A six digit microsecond could not be found", string, begin);
+                                               add_pbf_error(s, "A six digit millisecond could not be found", string, begin);
                                        } else {
-                                               s->time->us = (f * pow(10, 6 - (ptr - tptr)));
+                                               s->time->f = (f / pow(10, (ptr - tptr)));
                                        }
                                }
                                break;
@@ -25197,6 +22556,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                s->time->m = 1;
                                s->time->d = 1;
                                s->time->h = s->time->i = s->time->s = 0;
+                               s->time->f = 0.0;
                                s->time->relative.s += tmp;
                                s->time->is_localtime = 1;
                                s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
@@ -25212,7 +22572,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        int tz_not_found;
                                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                                        if (tz_not_found) {
-                                               add_pbf_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database", string, begin);
+                                               add_pbf_error(s, "The timezone could not be found in the database", string, begin);
                                        }
                                }
                                break;
@@ -25221,7 +22581,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                if (*ptr == ';' || *ptr == ':' || *ptr == '/' || *ptr == '.' || *ptr == ',' || *ptr == '-' || *ptr == '(' || *ptr == ')') {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_SEP_SYMBOL, "The separation symbol ([;:/.,-]) could not be found", string, begin);
+                                       add_pbf_error(s, "The separation symbol ([;:/.,-]) could not be found", string, begin);
                                }
                                break;
 
@@ -25236,7 +22596,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                if (*ptr == *fptr) {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_SEP_SYMBOL, "The separation symbol could not be found", string, begin);
+                                       add_pbf_error(s, "The separation symbol could not be found", string, begin);
                                }
                                break;
 
@@ -25254,14 +22614,14 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                        case '\\': /* escaped char */
                                if(!fptr[1]) {
-                                       add_pbf_error(s, TIMELIB_ERR_EXPECTED_ESCAPE_CHAR, "Escaped character expected", string, begin);
+                                       add_pbf_error(s, "Escaped character expected", string, begin);
                                        break;
                                }
                                fptr++;
                                if (*ptr == *fptr) {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_ESCAPED_CHAR, "The escaped character could not be found", string, begin);
+                                       add_pbf_error(s, "The escaped character could not be found", string, begin);
                                }
                                break;
 
@@ -25275,7 +22635,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                        default:
                                if (*fptr != *ptr) {
-                                       add_pbf_error(s, TIMELIB_ERR_WRONG_FORMAT_SEP, "The format separator does not match", string, begin);
+                                       add_pbf_error(s, "The format separator does not match", string, begin);
                                }
                                ptr++;
                }
@@ -25283,9 +22643,9 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        }
        if (*ptr) {
                if (allow_extra) {
-                       add_pbf_warning(s, TIMELIB_WARN_TRAILING_DATA, "Trailing data", string, ptr);
+                       add_pbf_warning(s, "Trailing data", string, ptr);
                } else {
-                       add_pbf_error(s, TIMELIB_ERR_TRAILING_DATA, "Trailing data", string, ptr);
+                       add_pbf_error(s, "Trailing data", string, ptr);
                }
        }
        /* ignore trailing +'s */
@@ -25306,7 +22666,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        break;
 
                                default:
-                                       add_pbf_error(s, TIMELIB_ERR_DATA_MISSING, "Data missing", string, ptr);
+                                       add_pbf_error(s, "Data missing", string, ptr);
                                        done = 1;
                        }
                }
@@ -25329,13 +22689,13 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        if (s->time->h != TIMELIB_UNSET && s->time->i != TIMELIB_UNSET &&
                s->time->s != TIMELIB_UNSET &&
                !timelib_valid_time( s->time->h, s->time->i, s->time->s)) {
-               add_pbf_warning(s, TIMELIB_WARN_INVALID_TIME, "The parsed time was invalid", string, ptr);
+               add_pbf_warning(s, "The parsed time was invalid", string, ptr);
        }
        /* do funky checking whether the parsed date was valid date */
        if (s->time->y != TIMELIB_UNSET && s->time->m != TIMELIB_UNSET &&
                s->time->d != TIMELIB_UNSET &&
                !timelib_valid_date( s->time->y, s->time->m, s->time->d)) {
-               add_pbf_warning(s, TIMELIB_WARN_INVALID_DATE, "The parsed date was invalid", string, ptr);
+               add_pbf_warning(s, "The parsed date was invalid", string, ptr);
        }
 
        if (errors) {
@@ -25352,22 +22712,15 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
                parsed->h = 0;
                parsed->i = 0;
                parsed->s = 0;
-               parsed->us = 0;
-       }
-       if (
-               parsed->y != TIMELIB_UNSET || parsed->m != TIMELIB_UNSET || parsed->d != TIMELIB_UNSET ||
-               parsed->h != TIMELIB_UNSET || parsed->i != TIMELIB_UNSET || parsed->s != TIMELIB_UNSET
-       ) {
-               if (parsed->us == TIMELIB_UNSET) parsed->us = 0;
-       } else {
-               if (parsed->us == TIMELIB_UNSET) parsed->us = now->us != TIMELIB_UNSET ? now->us : 0;
+               parsed->f = 0;
        }
        if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0;
-       if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
        if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
+       if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
        if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0;
        if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0;
        if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0;
+       if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
        if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0;
        if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0;
 
index 033977252b1473219b785543db99ce840cc7000c..8c506990d1d59c27782faf037edd88f35f042888 100644 (file)
 /* $Id$ */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
+#include <stdio.h>
 #include <ctype.h>
 #include <math.h>
 #include <assert.h>
 
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
 #if defined(_MSC_VER)
 # define strtoll(s, f, b) _atoi64(s)
 #elif !defined(HAVE_STRTOLL)
 # endif
 #endif
 
+#define TIMELIB_UNSET   -99999
+
+#define TIMELIB_SECOND  1
+#define TIMELIB_MINUTE  2
+#define TIMELIB_HOUR    3
+#define TIMELIB_DAY     4
+#define TIMELIB_MONTH   5
+#define TIMELIB_YEAR    6
+#define TIMELIB_WEEKDAY 7
+#define TIMELIB_SPECIAL 8
+
 #define EOI      257
 #define TIME     258
 #define DATE     259
@@ -92,14 +112,14 @@ typedef unsigned char uchar;
 
 #define timelib_string_free timelib_free
 
-#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->us = 0; } }
-#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->us = 0; }
-#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, TIMELIB_ERR_DOUBLE_DATE, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
+#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
+#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; }
+#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
 #define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; }
 #define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; }
 #define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; }
 #define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; }
-#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, TIMELIB_ERR_DOUBLE_TZ, "Double timezone specification") : add_warning(s, TIMELIB_WARN_DOUBLE_TZ, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } }
+#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } }
 
 #define TIMELIB_INIT  s->cur = cursor; str = timelib_string(s); ptr = str
 #define TIMELIB_DEINIT timelib_string_free(str)
@@ -125,6 +145,8 @@ typedef unsigned char uchar;
 #define YYDEBUG(s,c)
 #endif
 
+#include "timelib_structs.h"
+
 typedef struct timelib_elems {
        unsigned int   c; /* Number of elements */
        char         **v; /* Values */
@@ -153,33 +175,21 @@ typedef struct _timelib_relunit {
 } timelib_relunit;
 
 /* The timezone table. */
-static const timelib_tz_lookup_table timelib_timezone_lookup[] = {
+const static timelib_tz_lookup_table timelib_timezone_lookup[] = {
 #include "timezonemap.h"
        { NULL, 0, 0, NULL },
 };
 
-static const timelib_tz_lookup_table timelib_timezone_fallbackmap[] = {
+const static timelib_tz_lookup_table timelib_timezone_fallbackmap[] = {
 #include "fallbackmap.h"
        { NULL, 0, 0, NULL },
 };
 
-static const timelib_tz_lookup_table timelib_timezone_utc[] = {
+const static timelib_tz_lookup_table timelib_timezone_utc[] = {
        { "utc", 0, 0, "UTC" },
 };
 
 static timelib_relunit const timelib_relunit_lookup[] = {
-       { "ms",           TIMELIB_MICROSEC, 1000 },
-       { "msec",         TIMELIB_MICROSEC, 1000 },
-       { "msecs",        TIMELIB_MICROSEC, 1000 },
-       { "millisecond",  TIMELIB_MICROSEC, 1000 },
-       { "milliseconds", TIMELIB_MICROSEC, 1000 },
-       { "µs",           TIMELIB_MICROSEC,    1 },
-       { "usec",         TIMELIB_MICROSEC,    1 },
-       { "usecs",        TIMELIB_MICROSEC,    1 },
-       { "µsec",         TIMELIB_MICROSEC,    1 },
-       { "µsecs",        TIMELIB_MICROSEC,    1 },
-       { "microsecond",  TIMELIB_MICROSEC,    1 },
-       { "microseconds", TIMELIB_MICROSEC,    1 },
        { "sec",         TIMELIB_SECOND,  1 },
        { "secs",        TIMELIB_SECOND,  1 },
        { "second",      TIMELIB_SECOND,  1 },
@@ -332,41 +342,37 @@ uchar *fill(Scanner *s, uchar *cursor){
 }
 #endif
 
-static void add_warning(Scanner *s, int error_code, char *error)
+static void add_warning(Scanner *s, char *error)
 {
        s->errors->warning_count++;
        s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
-       s->errors->warning_messages[s->errors->warning_count - 1].error_code = error_code;
        s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
        s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
        s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
 }
 
-static void add_error(Scanner *s, int error_code, char *error)
+static void add_error(Scanner *s, char *error)
 {
        s->errors->error_count++;
        s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
-       s->errors->error_messages[s->errors->error_count - 1].error_code = error_code;
        s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
        s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0;
        s->errors->error_messages[s->errors->error_count - 1].message = timelib_strdup(error);
 }
 
-static void add_pbf_warning(Scanner *s, int error_code, char *error, char *sptr, char *cptr)
+static void add_pbf_warning(Scanner *s, char *error, char *sptr, char *cptr)
 {
        s->errors->warning_count++;
        s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
-       s->errors->warning_messages[s->errors->warning_count - 1].error_code = error_code;
        s->errors->warning_messages[s->errors->warning_count - 1].position = cptr - sptr;
        s->errors->warning_messages[s->errors->warning_count - 1].character = *cptr;
        s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
 }
 
-static void add_pbf_error(Scanner *s, int error_code, char *error, char *sptr, char *cptr)
+static void add_pbf_error(Scanner *s, char *error, char *sptr, char *cptr)
 {
        s->errors->error_count++;
        s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
-       s->errors->error_messages[s->errors->error_count - 1].error_code = error_code;
        s->errors->error_messages[s->errors->error_count - 1].position = cptr - sptr;
        s->errors->error_messages[s->errors->error_count - 1].character = *cptr;
        s->errors->error_messages[s->errors->error_count - 1].message = timelib_strdup(error);
@@ -486,7 +492,7 @@ static void timelib_skip_day_suffix(char **ptr)
        }
 }
 
-static timelib_sll timelib_get_frac_nr(char **ptr, int max_length)
+static double timelib_get_frac_nr(char **ptr, int max_length)
 {
        char *begin, *end, *str;
        double tmp_nr = TIMELIB_UNSET;
@@ -504,9 +510,12 @@ static timelib_sll timelib_get_frac_nr(char **ptr, int max_length)
                ++len;
        }
        end = *ptr;
-       str = timelib_calloc(1, end - begin);
-       memcpy(str, begin + 1, end - begin - 1);
-       tmp_nr = strtod(str, NULL) * pow(10, 7 - (end - begin));
+       str = timelib_calloc(1, end - begin + 1);
+       memcpy(str, begin, end - begin);
+       if (str[0] == ':') {
+               str[0] = '.';
+       }
+       tmp_nr = strtod(str, NULL);
        timelib_free(str);
        return tmp_nr;
 }
@@ -646,13 +655,12 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
        }
 
        switch (relunit->unit) {
-               case TIMELIB_MICROSEC: s->time->relative.us += amount * relunit->multiplier; break;
-               case TIMELIB_SECOND:   s->time->relative.s += amount * relunit->multiplier; break;
-               case TIMELIB_MINUTE:   s->time->relative.i += amount * relunit->multiplier; break;
-               case TIMELIB_HOUR:     s->time->relative.h += amount * relunit->multiplier; break;
-               case TIMELIB_DAY:      s->time->relative.d += amount * relunit->multiplier; break;
-               case TIMELIB_MONTH:    s->time->relative.m += amount * relunit->multiplier; break;
-               case TIMELIB_YEAR:     s->time->relative.y += amount * relunit->multiplier; break;
+               case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break;
+               case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break;
+               case TIMELIB_HOUR:   s->time->relative.h += amount * relunit->multiplier; break;
+               case TIMELIB_DAY:    s->time->relative.d += amount * relunit->multiplier; break;
+               case TIMELIB_MONTH:  s->time->relative.m += amount * relunit->multiplier; break;
+               case TIMELIB_YEAR:   s->time->relative.y += amount * relunit->multiplier; break;
 
                case TIMELIB_WEEKDAY:
                        TIMELIB_HAVE_WEEKDAY_RELATIVE();
@@ -670,7 +678,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
        }
 }
 
-static const timelib_tz_lookup_table* abbr_search(const char *word, timelib_long gmtoffset, int isdst)
+const static timelib_tz_lookup_table* abbr_search(const char *word, timelib_long gmtoffset, int isdst)
 {
        int first_found = 0;
        const timelib_tz_lookup_table  *tp, *first_found_elem = NULL;
@@ -701,7 +709,7 @@ static const timelib_tz_lookup_table* abbr_search(const char *word, timelib_long
        /* Still didn't find anything, let's find the zone solely based on
         * offset/isdst then */
        for (fmp = timelib_timezone_fallbackmap; fmp->name; fmp++) {
-               if (fmp->gmtoffset == gmtoffset && fmp->type == isdst) {
+               if ((fmp->gmtoffset * 60) == gmtoffset && fmp->type == isdst) {
                        return fmp;
                }
        }
@@ -723,9 +731,9 @@ static timelib_long timelib_lookup_abbr(char **ptr, int *dst, char **tz_abbr, in
        memcpy(word, begin, end - begin);
 
        if ((tp = abbr_search(word, -1, 0))) {
-               value = tp->gmtoffset;
+               value = -tp->gmtoffset / 60;
                *dst = tp->type;
-               value -= tp->type * 3600;
+               value += tp->type * 60;
                *found = 1;
        } else {
                *found = 0;
@@ -735,42 +743,6 @@ static timelib_long timelib_lookup_abbr(char **ptr, int *dst, char **tz_abbr, in
        return value;
 }
 
-#define sHOUR(a) (int)(a * 3600)
-#define sMIN(a) (int)(a * 60)
-
-static timelib_long timelib_parse_tz_cor(char **ptr)
-{
-       char *begin = *ptr, *end;
-       timelib_long  tmp;
-
-       while (isdigit(**ptr) || **ptr == ':') {
-               ++*ptr;
-       }
-       end = *ptr;
-       switch (end - begin) {
-               case 1: /* H */
-               case 2: /* HH */
-                       return sHOUR(strtol(begin, NULL, 10));
-                       break;
-               case 3: /* H:M */
-               case 4: /* H:MM, HH:M, HHMM */
-                       if (begin[1] == ':') {
-                               tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 2, NULL, 10));
-                               return tmp;
-                       } else if (begin[2] == ':') {
-                               tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 3, NULL, 10));
-                               return tmp;
-                       } else {
-                               tmp = strtol(begin, NULL, 10);
-                               return sHOUR(tmp / 100) + sMIN(tmp % 100);
-                       }
-               case 5: /* HH:MM */
-                       tmp = sHOUR(strtol(begin, NULL, 10)) + sMIN(strtol(begin + 3, NULL, 10));
-                       return tmp;
-       }
-       return 0;
-}
-
 timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper)
 {
        timelib_tzinfo *res;
@@ -791,7 +763,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
                *tz_not_found = 0;
                t->dst = 0;
 
-               retval = timelib_parse_tz_cor(ptr);
+               retval = -1 * timelib_parse_tz_cor(ptr);
        } else if (**ptr == '-') {
                ++*ptr;
                t->is_localtime = 1;
@@ -799,7 +771,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
                *tz_not_found = 0;
                t->dst = 0;
 
-               retval = -1 * timelib_parse_tz_cor(ptr);
+               retval = timelib_parse_tz_cor(ptr);
        } else {
                int found = 0;
                timelib_long offset = 0;
@@ -816,9 +788,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
 
                /* Otherwise, we look if we have a TimeZone identifier */
                if (!found || strcmp("UTC", tz_abbr) == 0) {
-                       int dummy_error_code;
-
-                       if ((res = tz_wrapper(tz_abbr, tzdb, &dummy_error_code)) != NULL) {
+                       if ((res = tz_wrapper(tz_abbr, tzdb)) != NULL) {
                                t->tz_info = res;
                                t->zone_type = TIMELIB_ZONETYPE_ID;
                                found++;
@@ -947,15 +917,14 @@ isoweek          = year4 "-"? "W" weekofyear;
 exif             = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
 firstdayof       = 'first day of';
 lastdayof        = 'last day of';
-backof           = 'back of ' hour24 (space? meridian)?;
-frontof          = 'front of ' hour24 (space? meridian)?;
+backof           = 'back of ' hour24 space? meridian?;
+frontof          = 'front of ' hour24 space? meridian?;
 
 /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
 clf              = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
 
 /* Timestamp format: @1126396800 */
 timestamp        = "@" "-"? [0-9]+;
-timestampms      = "@" "-"? [0-9]+ "." [0-9]{6};
 
 /* To fix some ambiguities */
 dateshortwithtimeshort12  = datenoyear timeshort12;
@@ -969,7 +938,7 @@ dateshortwithtimelongtz = datenoyear iso8601normtz;
  */
 reltextnumber = 'first'|'second'|'third'|'fourth'|'fifth'|'sixth'|'seventh'|'eight'|'eighth'|'ninth'|'tenth'|'eleventh'|'twelfth';
 reltexttext = 'next'|'last'|'previous'|'this';
-reltextunit = 'ms' | 'µs' | (('msec'|'millisecond'|'µsec'|'microsecond'|'usec'|'sec'|'second'|'min'|'minute'|'hour'|'day'|'fortnight'|'forthnight'|'month'|'year') 's'?) | 'weeks' | daytext;
+reltextunit = (('sec'|'second'|'min'|'minute'|'hour'|'day'|'fortnight'|'forthnight'|'month'|'year') 's'?) | 'weeks' | daytext;
 
 relnumber = ([+-]*[ \t]*[0-9]+);
 relative = relnumber space? (reltextunit | 'week' );
@@ -1052,7 +1021,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                s->time->m = 1;
                s->time->d = 1;
                s->time->h = s->time->i = s->time->s = 0;
-               s->time->us = 0;
+               s->time->f = 0.0;
                s->time->relative.s += i;
                s->time->is_localtime = 1;
                s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
@@ -1063,34 +1032,6 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                return TIMELIB_RELATIVE;
        }
 
-       timestampms
-       {
-               timelib_ull i, us;
-
-               TIMELIB_INIT;
-               TIMELIB_HAVE_RELATIVE();
-               TIMELIB_UNHAVE_DATE();
-               TIMELIB_UNHAVE_TIME();
-               TIMELIB_HAVE_TZ();
-
-               i = timelib_get_unsigned_nr((char **) &ptr, 24);
-               us = timelib_get_unsigned_nr((char **) &ptr, 24);
-               s->time->y = 1970;
-               s->time->m = 1;
-               s->time->d = 1;
-               s->time->h = s->time->i = s->time->s = 0;
-               s->time->us = 0;
-               s->time->relative.s += i;
-               s->time->relative.us = us;
-               s->time->is_localtime = 1;
-               s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
-               s->time->z = 0;
-               s->time->dst = 0;
-
-               TIMELIB_DEINIT;
-               return TIMELIB_RELATIVE;
-       }
-
        firstdayof | lastdayof
        {
                DEBUG_OUTPUT("firstdayof | lastdayof");
@@ -1181,7 +1122,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == ':' || *ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
                timelib_eat_spaces((char **) &ptr);
@@ -1202,14 +1143,14 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
@@ -1231,7 +1172,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                                break;
                        default:
                                TIMELIB_DEINIT;
-                               add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification");
+                               add_error(s, "Double time specification");
                                return TIMELIB_ERROR;
                }
                s->time->have_time++;
@@ -1275,7 +1216,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
@@ -1473,11 +1414,11 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                s->time->i = timelib_get_nr((char **) &ptr, 2);
                s->time->s = timelib_get_nr((char **) &ptr, 2);
                if (*ptr == '.') {
-                       s->time->us = timelib_get_frac_nr((char **) &ptr, 9);
+                       s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
                        if (*ptr) { /* timezone is optional */
                                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                                if (tz_not_found) {
-                                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                                       add_error(s, "The timezone could not be found in the database");
                                }
                        }
                }
@@ -1580,7 +1521,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                s->time->s = timelib_get_nr((char **) &ptr, 2);
                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                if (tz_not_found) {
-                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                       add_error(s, "The timezone could not be found in the database");
                }
                TIMELIB_DEINIT;
                return TIMELIB_CLF;
@@ -1693,7 +1634,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                TIMELIB_HAVE_TZ();
                s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                if (tz_not_found) {
-                       add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                       add_error(s, "The timezone could not be found in the database");
                }
                TIMELIB_DEINIT;
                return TIMELIB_TIMEZONE;
@@ -1714,7 +1655,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
@@ -1739,14 +1680,14 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
                        s->time->s = timelib_get_nr((char **) &ptr, 2);
 
                        if (*ptr == '.') {
-                               s->time->us = timelib_get_frac_nr((char **) &ptr, 8);
+                               s->time->f = timelib_get_frac_nr((char **) &ptr, 8);
                        }
                }
 
                if (*ptr != '\0') {
                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                        if (tz_not_found) {
-                               add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database");
+                               add_error(s, "The timezone could not be found in the database");
                        }
                }
                TIMELIB_DEINIT;
@@ -1782,7 +1723,7 @@ weekdayof        = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
 
        any
        {
-               add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character");
+               add_error(s, "Unexpected character");
                goto std;
        }
 */
@@ -1813,13 +1754,13 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
        }
        if (e - s < 0) {
                in.time = timelib_time_ctor();
-               add_error(&in, TIMELIB_ERR_EMPTY_STRING, "Empty string");
+               add_error(&in, "Empty string");
                if (errors) {
                        *errors = in.errors;
                } else {
                        timelib_error_container_dtor(in.errors);
                }
-               in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->us = in.time->dst = in.time->z = TIMELIB_UNSET;
+               in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = in.time->z = TIMELIB_UNSET;
                in.time->is_localtime = in.time->zone_type = 0;
                return in.time;
        }
@@ -1837,7 +1778,7 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
        in.time->h = TIMELIB_UNSET;
        in.time->i = TIMELIB_UNSET;
        in.time->s = TIMELIB_UNSET;
-       in.time->us = TIMELIB_UNSET;
+       in.time->f = TIMELIB_UNSET;
        in.time->z = TIMELIB_UNSET;
        in.time->dst = TIMELIB_UNSET;
        in.tzdb = tzdb;
@@ -1854,11 +1795,11 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
 
        /* do funky checking whether the parsed time was valid time */
        if (in.time->have_time && !timelib_valid_time( in.time->h, in.time->i, in.time->s)) {
-               add_warning(&in, TIMELIB_WARN_INVALID_TIME, "The parsed time was invalid");
+               add_warning(&in, "The parsed time was invalid");
        }
        /* do funky checking whether the parsed date was valid date */
        if (in.time->have_date && !timelib_valid_date( in.time->y, in.time->m, in.time->d)) {
-               add_warning(&in, TIMELIB_WARN_INVALID_DATE, "The parsed date was invalid");
+               add_warning(&in, "The parsed date was invalid");
        }
 
        timelib_free(in.str);
@@ -1873,12 +1814,12 @@ timelib_time* timelib_strtotime(char *s, size_t len, struct timelib_error_contai
 #define TIMELIB_CHECK_NUMBER                                           \
                if (strchr("0123456789", *ptr) == NULL)                        \
                {                                                              \
-                       add_pbf_error(s, TIMELIB_ERR_UNEXPECTED_DATA, "Unexpected data found.", string, begin); \
+                       add_pbf_error(s, "Unexpected data found.", string, begin); \
                }
 #define TIMELIB_CHECK_SIGNED_NUMBER                                    \
                if (strchr("-0123456789", *ptr) == NULL)                       \
                {                                                              \
-                       add_pbf_error(s, TIMELIB_ERR_UNEXPECTED_DATA, "Unexpected data found.", string, begin); \
+                       add_pbf_error(s, "Unexpected data found.", string, begin); \
                }
 
 static void timelib_time_reset_fields(timelib_time *time)
@@ -1889,7 +1830,7 @@ static void timelib_time_reset_fields(timelib_time *time)
        time->m = 1;
        time->d = 1;
        time->h = time->i = time->s = 0;
-       time->us = 0;
+       time->f = 0.0;
        time->tz_info = NULL;
 }
 
@@ -1903,7 +1844,7 @@ static void timelib_time_reset_unset_fields(timelib_time *time)
        if (time->h == TIMELIB_UNSET ) time->h = 0;
        if (time->i == TIMELIB_UNSET ) time->i = 0;
        if (time->s == TIMELIB_UNSET ) time->s = 0;
-       if (time->us == TIMELIB_UNSET ) time->us = 0;
+       if (time->f == TIMELIB_UNSET ) time->f = 0.0;
 }
 
 timelib_time *timelib_parse_from_format(char *format, char *string, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper)
@@ -1930,7 +1871,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        in.time->h = TIMELIB_UNSET;
        in.time->i = TIMELIB_UNSET;
        in.time->s = TIMELIB_UNSET;
-       in.time->us = TIMELIB_UNSET;
+       in.time->f = TIMELIB_UNSET;
        in.time->z = TIMELIB_UNSET;
        in.time->dst = TIMELIB_UNSET;
        in.tzdb = tzdb;
@@ -1948,7 +1889,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                                        tmprel = timelib_lookup_relunit((char **) &ptr);
                                        if (!tmprel) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TEXTUAL_DAY, "A textual day could not be found", string, begin);
+                                               add_pbf_error(s, "A textual day could not be found", string, begin);
                                                break;
                                        } else {
                                                in.time->have_relative = 1;
@@ -1962,7 +1903,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'j': /* two digit day, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->d = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_DAY, "A two digit day could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit day could not be found", string, begin);
                                }
                                break;
                        case 'S': /* day suffix, ignored, nor checked */
@@ -1971,7 +1912,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'z': /* day of year - resets month (0 based) - also initializes everything else to !TIMELIB_UNSET */
                                TIMELIB_CHECK_NUMBER;
                                if ((tmp = timelib_get_nr((char **) &ptr, 3)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_THREE_DIGIT_DAY_OF_YEAR, "A three digit day-of-year could not be found", string, begin);
+                                       add_pbf_error(s, "A three digit day-of-year could not be found", string, begin);
                                } else {
                                        s->time->m = 1;
                                        s->time->d = tmp + 1;
@@ -1983,14 +1924,14 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'n': /* two digit month, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->m = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_MONTH, "A two digit month could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit month could not be found", string, begin);
                                }
                                break;
                        case 'M': /* three letter month */
                        case 'F': /* full month */
                                tmp = timelib_lookup_month((char **) &ptr);
                                if (!tmp) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TEXTUAL_MONTH, "A textual month could not be found", string, begin);
+                                       add_pbf_error(s, "A textual month could not be found", string, begin);
                                } else {
                                        s->time->m = tmp;
                                }
@@ -2000,7 +1941,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        int length = 0;
                                        TIMELIB_CHECK_NUMBER;
                                        if ((s->time->y = timelib_get_nr_ex((char **) &ptr, 2, &length)) == TIMELIB_UNSET) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_YEAR, "A two digit year could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit year could not be found", string, begin);
                                        }
                                        TIMELIB_PROCESS_YEAR(s->time->y, length);
                                }
@@ -2008,32 +1949,32 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                        case 'Y': /* four digit year */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->y = timelib_get_nr((char **) &ptr, 4)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_FOUR_DIGIT_YEAR, "A four digit year could not be found", string, begin);
+                                       add_pbf_error(s, "A four digit year could not be found", string, begin);
                                }
                                break;
                        case 'g': /* two digit hour, with leading zero */
                        case 'h': /* two digit hour, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_HOUR, "A two digit hour could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit hour could not be found", string, begin);
                                }
                                if (s->time->h > 12) {
-                                       add_pbf_error(s, TIMELIB_ERR_HOUR_LARGER_THAN_12, "Hour can not be higher than 12", string, begin);
+                                       add_pbf_error(s, "Hour can not be higher than 12", string, begin);
                                }
                                break;
                        case 'G': /* two digit hour, with leading zero */
                        case 'H': /* two digit hour, without leading zero */
                                TIMELIB_CHECK_NUMBER;
                                if ((s->time->h = timelib_get_nr((char **) &ptr, 2)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_HOUR, "A two digit hour could not be found", string, begin);
+                                       add_pbf_error(s, "A two digit hour could not be found", string, begin);
                                }
                                break;
                        case 'a': /* am/pm/a.m./p.m. */
                        case 'A': /* AM/PM/A.M./P.M. */
                                if (s->time->h == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_MERIDIAN_BEFORE_HOUR, "Meridian can only come after an hour has been found", string, begin);
+                                       add_pbf_error(s, "Meridian can only come after an hour has been found", string, begin);
                                } else if ((tmp = timelib_meridian_with_check((char **) &ptr, s->time->h)) == TIMELIB_UNSET) {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_MERIDIAN, "A meridian could not be found", string, begin);
+                                       add_pbf_error(s, "A meridian could not be found", string, begin);
                                } else {
                                        s->time->h += tmp;
                                }
@@ -2046,7 +1987,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        min = timelib_get_nr_ex((char **) &ptr, 2, &length);
                                        if (min == TIMELIB_UNSET || length != 2) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_MINUTE, "A two digit minute could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit minute could not be found", string, begin);
                                        } else {
                                                s->time->i = min;
                                        }
@@ -2060,13 +2001,13 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        sec = timelib_get_nr_ex((char **) &ptr, 2, &length);
                                        if (sec == TIMELIB_UNSET || length != 2) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_TWO_DIGIT_SECOND, "A two digit second could not be found", string, begin);
+                                               add_pbf_error(s, "A two digit second could not be found", string, begin);
                                        } else {
                                                s->time->s = sec;
                                        }
                                }
                                break;
-                       case 'u': /* up to six digit microsecond */
+                       case 'u': /* up to six digit millisecond */
                                {
                                        double f;
                                        char *tptr;
@@ -2074,9 +2015,9 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        TIMELIB_CHECK_NUMBER;
                                        tptr = ptr;
                                        if ((f = timelib_get_nr((char **) &ptr, 6)) == TIMELIB_UNSET || (ptr - tptr < 1)) {
-                                               add_pbf_error(s, TIMELIB_ERR_NO_SIX_DIGIT_MICROSECOND, "A six digit microsecond could not be found", string, begin);
+                                               add_pbf_error(s, "A six digit millisecond could not be found", string, begin);
                                        } else {
-                                               s->time->us = (f * pow(10, 6 - (ptr - tptr)));
+                                               s->time->f = (f / pow(10, (ptr - tptr)));
                                        }
                                }
                                break;
@@ -2091,6 +2032,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                s->time->m = 1;
                                s->time->d = 1;
                                s->time->h = s->time->i = s->time->s = 0;
+                               s->time->f = 0.0;
                                s->time->relative.s += tmp;
                                s->time->is_localtime = 1;
                                s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
@@ -2106,7 +2048,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        int tz_not_found;
                                        s->time->z = timelib_parse_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper);
                                        if (tz_not_found) {
-                                               add_pbf_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database", string, begin);
+                                               add_pbf_error(s, "The timezone could not be found in the database", string, begin);
                                        }
                                }
                                break;
@@ -2115,7 +2057,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                if (*ptr == ';' || *ptr == ':' || *ptr == '/' || *ptr == '.' || *ptr == ',' || *ptr == '-' || *ptr == '(' || *ptr == ')') {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_SEP_SYMBOL, "The separation symbol ([;:/.,-]) could not be found", string, begin);
+                                       add_pbf_error(s, "The separation symbol ([;:/.,-]) could not be found", string, begin);
                                }
                                break;
 
@@ -2130,7 +2072,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                if (*ptr == *fptr) {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_SEP_SYMBOL, "The separation symbol could not be found", string, begin);
+                                       add_pbf_error(s, "The separation symbol could not be found", string, begin);
                                }
                                break;
 
@@ -2148,14 +2090,14 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                        case '\\': /* escaped char */
                                if(!fptr[1]) {
-                                       add_pbf_error(s, TIMELIB_ERR_EXPECTED_ESCAPE_CHAR, "Escaped character expected", string, begin);
+                                       add_pbf_error(s, "Escaped character expected", string, begin);
                                        break;
                                }
                                fptr++;
                                if (*ptr == *fptr) {
                                        ++ptr;
                                } else {
-                                       add_pbf_error(s, TIMELIB_ERR_NO_ESCAPED_CHAR, "The escaped character could not be found", string, begin);
+                                       add_pbf_error(s, "The escaped character could not be found", string, begin);
                                }
                                break;
 
@@ -2169,7 +2111,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
 
                        default:
                                if (*fptr != *ptr) {
-                                       add_pbf_error(s, TIMELIB_ERR_WRONG_FORMAT_SEP, "The format separator does not match", string, begin);
+                                       add_pbf_error(s, "The format separator does not match", string, begin);
                                }
                                ptr++;
                }
@@ -2177,9 +2119,9 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        }
        if (*ptr) {
                if (allow_extra) {
-                       add_pbf_warning(s, TIMELIB_WARN_TRAILING_DATA, "Trailing data", string, ptr);
+                       add_pbf_warning(s, "Trailing data", string, ptr);
                } else {
-                       add_pbf_error(s, TIMELIB_ERR_TRAILING_DATA, "Trailing data", string, ptr);
+                       add_pbf_error(s, "Trailing data", string, ptr);
                }
        }
        /* ignore trailing +'s */
@@ -2200,7 +2142,7 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
                                        break;
 
                                default:
-                                       add_pbf_error(s, TIMELIB_ERR_DATA_MISSING, "Data missing", string, ptr);
+                                       add_pbf_error(s, "Data missing", string, ptr);
                                        done = 1;
                        }
                }
@@ -2223,13 +2165,13 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
        if (s->time->h != TIMELIB_UNSET && s->time->i != TIMELIB_UNSET &&
                s->time->s != TIMELIB_UNSET &&
                !timelib_valid_time( s->time->h, s->time->i, s->time->s)) {
-               add_pbf_warning(s, TIMELIB_WARN_INVALID_TIME, "The parsed time was invalid", string, ptr);
+               add_pbf_warning(s, "The parsed time was invalid", string, ptr);
        }
        /* do funky checking whether the parsed date was valid date */
        if (s->time->y != TIMELIB_UNSET && s->time->m != TIMELIB_UNSET &&
                s->time->d != TIMELIB_UNSET &&
                !timelib_valid_date( s->time->y, s->time->m, s->time->d)) {
-               add_pbf_warning(s, TIMELIB_WARN_INVALID_DATE, "The parsed date was invalid", string, ptr);
+               add_pbf_warning(s, "The parsed date was invalid", string, ptr);
        }
 
        if (errors) {
@@ -2246,22 +2188,15 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
                parsed->h = 0;
                parsed->i = 0;
                parsed->s = 0;
-               parsed->us = 0;
-       }
-       if (
-               parsed->y != TIMELIB_UNSET || parsed->m != TIMELIB_UNSET || parsed->d != TIMELIB_UNSET ||
-               parsed->h != TIMELIB_UNSET || parsed->i != TIMELIB_UNSET || parsed->s != TIMELIB_UNSET
-       ) {
-               if (parsed->us == TIMELIB_UNSET) parsed->us = 0;
-       } else {
-               if (parsed->us == TIMELIB_UNSET) parsed->us = now->us != TIMELIB_UNSET ? now->us : 0;
+               parsed->f = 0;
        }
        if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0;
-       if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
        if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
+       if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
        if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0;
        if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0;
        if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0;
+       if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
        if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0;
        if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0;
 
index de667bf8ca491eff815912ef266d96d18694a6be..237201623be256c0d8bcdffb00de0c358297cb44 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.15.3 on Mon Aug 14 13:00:14 2017 */
+/* Generated by re2c 0.13.5 on Thu Aug 13 10:30:12 2015 */
 #line 1 "ext/date/lib/parse_iso_intervals.re"
 /*
  * The MIT License (MIT)
 /* $Id$ */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
+#include <stdio.h>
 #include <ctype.h>
 
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
 #if defined(_MSC_VER)
 # define strtoll(s, f, b) _atoi64(s)
 #elif !defined(HAVE_STRTOLL)
 # endif
 #endif
 
+#define TIMELIB_UNSET   -99999
+
+#define TIMELIB_SECOND  1
+#define TIMELIB_MINUTE  2
+#define TIMELIB_HOUR    3
+#define TIMELIB_DAY     4
+#define TIMELIB_MONTH   5
+#define TIMELIB_YEAR    6
+
 #define EOI      257
 
 #define TIMELIB_PERIOD  260
@@ -72,6 +90,8 @@ typedef unsigned char uchar;
 #define YYDEBUG(s,c)
 #endif
 
+#include "timelib_structs.h"
+
 typedef struct Scanner {
        int           fd;
        uchar        *lim, *str, *ptr, *cur, *tok, *pos;
@@ -90,6 +110,15 @@ typedef struct Scanner {
        int have_end_date;
 } Scanner;
 
+static void add_warning(Scanner *s, char *error)
+{
+       s->errors->warning_count++;
+       s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
+       s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
+       s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
+       s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
+}
+
 static void add_error(Scanner *s, char *error)
 {
        s->errors->error_count++;
@@ -153,6 +182,55 @@ static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length)
        return dir * timelib_get_nr(ptr, max_length);
 }
 
+static void timelib_eat_spaces(char **ptr)
+{
+       while (**ptr == ' ' || **ptr == '\t') {
+               ++*ptr;
+       }
+}
+
+static void timelib_eat_until_separator(char **ptr)
+{
+       while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) {
+               ++*ptr;
+       }
+}
+
+static timelib_long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb)
+{
+       timelib_long retval = 0;
+
+       *tz_not_found = 0;
+
+       while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') {
+               ++*ptr;
+       }
+       if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) {
+               *ptr += 3;
+       }
+       if (**ptr == '+') {
+               ++*ptr;
+               t->is_localtime = 1;
+               t->zone_type = TIMELIB_ZONETYPE_OFFSET;
+               *tz_not_found = 0;
+               t->dst = 0;
+
+               retval = -1 * timelib_parse_tz_cor(ptr);
+       } else if (**ptr == '-') {
+               ++*ptr;
+               t->is_localtime = 1;
+               t->zone_type = TIMELIB_ZONETYPE_OFFSET;
+               *tz_not_found = 0;
+               t->dst = 0;
+
+               retval = timelib_parse_tz_cor(ptr);
+       }
+       while (**ptr == ')') {
+               ++*ptr;
+       }
+       return retval;
+}
+
 #define timelib_split_free(arg) {       \
        int i;                         \
        for (i = 0; i < arg.c; i++) {  \
@@ -176,49 +254,49 @@ static int scan(Scanner *s)
 std:
        s->tok = cursor;
        s->len = 0;
-#line 204 "ext/date/lib/parse_iso_intervals.re"
+#line 282 "ext/date/lib/parse_iso_intervals.re"
 
 
 
-#line 184 "<stdout>"
+#line 262 "ext/date/lib/parse_iso_intervals.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        static const unsigned char yybm[] = {
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-               128, 128, 128, 128, 128, 128, 128, 128, 
-               128, 128,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+               128, 128, 128, 128, 128, 128, 128, 128,
+               128, 128,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
+                 0,   0,   0,   0,   0,   0,   0,   0,
        };
-       YYDEBUG(0, *YYCURSOR);
+
        if ((YYLIMIT - YYCURSOR) < 20) YYFILL(20);
        yych = *YYCURSOR;
        if (yych <= ',') {
@@ -243,35 +321,30 @@ std:
                        if (yych != 'R') goto yy11;
                }
        }
-       YYDEBUG(2, *YYCURSOR);
        ++YYCURSOR;
        if ((yych = *YYCURSOR) <= '/') goto yy3;
        if (yych <= '9') goto yy98;
 yy3:
-       YYDEBUG(3, *YYCURSOR);
-#line 317 "ext/date/lib/parse_iso_intervals.re"
+#line 395 "ext/date/lib/parse_iso_intervals.re"
        {
                add_error(s, "Unexpected character");
                goto std;
        }
-#line 258 "<stdout>"
+#line 334 "ext/date/lib/parse_iso_intervals.c"
 yy4:
-       YYDEBUG(4, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy3;
        if (yych <= '9') goto yy59;
        goto yy3;
 yy5:
-       YYDEBUG(5, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
        if (yych <= '9') goto yy12;
        if (yych == 'T') goto yy14;
 yy6:
-       YYDEBUG(6, *YYCURSOR);
-#line 244 "ext/date/lib/parse_iso_intervals.re"
+#line 322 "ext/date/lib/parse_iso_intervals.re"
        {
                timelib_sll nr;
                int         in_time = 0;
@@ -312,32 +385,26 @@ yy6:
                TIMELIB_DEINIT;
                return TIMELIB_PERIOD;
        }
-#line 316 "<stdout>"
+#line 389 "ext/date/lib/parse_iso_intervals.c"
 yy7:
-       YYDEBUG(7, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(8, *YYCURSOR);
-#line 306 "ext/date/lib/parse_iso_intervals.re"
+#line 384 "ext/date/lib/parse_iso_intervals.re"
        {
                goto std;
        }
-#line 325 "<stdout>"
+#line 396 "ext/date/lib/parse_iso_intervals.c"
 yy9:
-       YYDEBUG(9, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(10, *YYCURSOR);
-#line 311 "ext/date/lib/parse_iso_intervals.re"
+#line 389 "ext/date/lib/parse_iso_intervals.re"
        {
                s->pos = cursor; s->line++;
                goto std;
        }
-#line 335 "<stdout>"
+#line 404 "ext/date/lib/parse_iso_intervals.c"
 yy11:
-       YYDEBUG(11, *YYCURSOR);
        yych = *++YYCURSOR;
        goto yy3;
 yy12:
-       YYDEBUG(12, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= '9') {
@@ -354,15 +421,13 @@ yy12:
                }
        }
 yy13:
-       YYDEBUG(13, *YYCURSOR);
        YYCURSOR = YYMARKER;
-       if (yyaccept == 0) {
+       if (yyaccept <= 0) {
                goto yy3;
        } else {
                goto yy6;
        }
 yy14:
-       YYDEBUG(14, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 128) {
@@ -370,11 +435,9 @@ yy14:
        }
        goto yy6;
 yy15:
-       YYDEBUG(15, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
-       YYDEBUG(16, *YYCURSOR);
        if (yybm[0+yych] & 128) {
                goto yy15;
        }
@@ -386,28 +449,23 @@ yy15:
                if (yych != 'S') goto yy13;
        }
 yy17:
-       YYDEBUG(17, *YYCURSOR);
        yych = *++YYCURSOR;
        goto yy6;
 yy18:
-       YYDEBUG(18, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
        if (yych <= '9') goto yy22;
        goto yy6;
 yy19:
-       YYDEBUG(19, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
        if (yych >= ':') goto yy6;
 yy20:
-       YYDEBUG(20, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = *YYCURSOR;
-       YYDEBUG(21, *YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '/') goto yy13;
                if (yych <= '9') goto yy20;
@@ -418,22 +476,18 @@ yy20:
                goto yy13;
        }
 yy22:
-       YYDEBUG(22, *YYCURSOR);
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(23, *YYCURSOR);
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy22;
        if (yych == 'S') goto yy17;
        goto yy13;
 yy24:
-       YYDEBUG(24, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych == 'T') goto yy14;
        goto yy6;
 yy25:
-       YYDEBUG(25, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= '9') {
@@ -453,7 +507,6 @@ yy25:
                }
        }
 yy26:
-       YYDEBUG(26, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
@@ -461,7 +514,6 @@ yy26:
        if (yych == 'T') goto yy14;
        goto yy6;
 yy27:
-       YYDEBUG(27, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
@@ -469,7 +521,6 @@ yy27:
        if (yych == 'T') goto yy14;
        goto yy6;
 yy28:
-       YYDEBUG(28, *YYCURSOR);
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy6;
@@ -477,11 +528,9 @@ yy28:
        if (yych == 'T') goto yy14;
        goto yy6;
 yy29:
-       YYDEBUG(29, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
-       YYDEBUG(30, *YYCURSOR);
        if (yych <= 'D') {
                if (yych <= '/') goto yy13;
                if (yych <= '9') goto yy29;
@@ -497,11 +546,9 @@ yy29:
                }
        }
 yy31:
-       YYDEBUG(31, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
-       YYDEBUG(32, *YYCURSOR);
        if (yych <= 'C') {
                if (yych <= '/') goto yy13;
                if (yych <= '9') goto yy31;
@@ -512,17 +559,14 @@ yy31:
                goto yy13;
        }
 yy33:
-       YYDEBUG(33, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
-       YYDEBUG(34, *YYCURSOR);
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy33;
        if (yych == 'D') goto yy24;
        goto yy13;
 yy35:
-       YYDEBUG(35, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= 'L') {
                if (yych <= '9') {
@@ -541,22 +585,18 @@ yy35:
                        goto yy13;
                }
        }
-       YYDEBUG(36, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != '-') goto yy39;
-       YYDEBUG(37, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '0') goto yy40;
        if (yych <= '1') goto yy41;
        goto yy13;
 yy38:
-       YYDEBUG(38, *YYCURSOR);
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = *YYCURSOR;
 yy39:
-       YYDEBUG(39, *YYCURSOR);
        if (yych <= 'L') {
                if (yych <= '9') {
                        if (yych <= '/') goto yy13;
@@ -576,21 +616,17 @@ yy39:
                }
        }
 yy40:
-       YYDEBUG(40, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy42;
        goto yy13;
 yy41:
-       YYDEBUG(41, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '3') goto yy13;
 yy42:
-       YYDEBUG(42, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != '-') goto yy13;
-       YYDEBUG(43, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '0') goto yy44;
@@ -598,70 +634,55 @@ yy42:
        if (yych <= '3') goto yy46;
        goto yy13;
 yy44:
-       YYDEBUG(44, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy47;
        goto yy13;
 yy45:
-       YYDEBUG(45, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy47;
        goto yy13;
 yy46:
-       YYDEBUG(46, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '2') goto yy13;
 yy47:
-       YYDEBUG(47, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != 'T') goto yy13;
-       YYDEBUG(48, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '1') goto yy49;
        if (yych <= '2') goto yy50;
        goto yy13;
 yy49:
-       YYDEBUG(49, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy51;
        goto yy13;
 yy50:
-       YYDEBUG(50, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '5') goto yy13;
 yy51:
-       YYDEBUG(51, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy13;
-       YYDEBUG(52, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(53, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(54, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy13;
-       YYDEBUG(55, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(56, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(57, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(58, *YYCURSOR);
-#line 286 "ext/date/lib/parse_iso_intervals.re"
+#line 364 "ext/date/lib/parse_iso_intervals.re"
        {
                DEBUG_OUTPUT("combinedrep");
                TIMELIB_INIT;
@@ -680,17 +701,14 @@ yy51:
                TIMELIB_DEINIT;
                return TIMELIB_PERIOD;
        }
-#line 684 "<stdout>"
+#line 705 "ext/date/lib/parse_iso_intervals.c"
 yy59:
-       YYDEBUG(59, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(60, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(61, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') {
                if (yych == '-') goto yy64;
@@ -701,40 +719,33 @@ yy59:
                goto yy13;
        }
 yy62:
-       YYDEBUG(62, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy13;
        if (yych <= '9') goto yy85;
        goto yy13;
 yy63:
-       YYDEBUG(63, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '2') goto yy85;
        goto yy13;
 yy64:
-       YYDEBUG(64, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '0') goto yy65;
        if (yych <= '1') goto yy66;
        goto yy13;
 yy65:
-       YYDEBUG(65, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy13;
        if (yych <= '9') goto yy67;
        goto yy13;
 yy66:
-       YYDEBUG(66, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '3') goto yy13;
 yy67:
-       YYDEBUG(67, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != '-') goto yy13;
-       YYDEBUG(68, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '0') goto yy69;
@@ -742,74 +753,58 @@ yy67:
        if (yych <= '3') goto yy71;
        goto yy13;
 yy69:
-       YYDEBUG(69, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy13;
        if (yych <= '9') goto yy72;
        goto yy13;
 yy70:
-       YYDEBUG(70, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy72;
        goto yy13;
 yy71:
-       YYDEBUG(71, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '2') goto yy13;
 yy72:
-       YYDEBUG(72, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != 'T') goto yy13;
-       YYDEBUG(73, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '1') goto yy74;
        if (yych <= '2') goto yy75;
        goto yy13;
 yy74:
-       YYDEBUG(74, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy76;
        goto yy13;
 yy75:
-       YYDEBUG(75, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '5') goto yy13;
 yy76:
-       YYDEBUG(76, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy13;
-       YYDEBUG(77, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(78, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(79, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != ':') goto yy13;
-       YYDEBUG(80, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(81, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(82, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != 'Z') goto yy13;
 yy83:
-       YYDEBUG(83, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(84, *YYCURSOR);
-#line 220 "ext/date/lib/parse_iso_intervals.re"
+#line 298 "ext/date/lib/parse_iso_intervals.re"
        {
                timelib_time *current;
 
@@ -832,9 +827,8 @@ yy83:
                TIMELIB_DEINIT;
                return TIMELIB_ISO_DATE;
        }
-#line 836 "<stdout>"
+#line 831 "ext/date/lib/parse_iso_intervals.c"
 yy85:
-       YYDEBUG(85, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '0') goto yy86;
@@ -842,75 +836,60 @@ yy85:
        if (yych <= '3') goto yy88;
        goto yy13;
 yy86:
-       YYDEBUG(86, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '0') goto yy13;
        if (yych <= '9') goto yy89;
        goto yy13;
 yy87:
-       YYDEBUG(87, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy89;
        goto yy13;
 yy88:
-       YYDEBUG(88, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '2') goto yy13;
 yy89:
-       YYDEBUG(89, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych != 'T') goto yy13;
-       YYDEBUG(90, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '1') goto yy91;
        if (yych <= '2') goto yy92;
        goto yy13;
 yy91:
-       YYDEBUG(91, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych <= '9') goto yy93;
        goto yy13;
 yy92:
-       YYDEBUG(92, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '5') goto yy13;
 yy93:
-       YYDEBUG(93, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(94, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(95, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= '6') goto yy13;
-       YYDEBUG(96, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych <= '/') goto yy13;
        if (yych >= ':') goto yy13;
-       YYDEBUG(97, *YYCURSOR);
        yych = *++YYCURSOR;
        if (yych == 'Z') goto yy83;
        goto yy13;
 yy98:
-       YYDEBUG(98, *YYCURSOR);
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(99, *YYCURSOR);
        if (yych <= '/') goto yy100;
        if (yych <= '9') goto yy98;
 yy100:
-       YYDEBUG(100, *YYCURSOR);
-#line 209 "ext/date/lib/parse_iso_intervals.re"
+#line 287 "ext/date/lib/parse_iso_intervals.re"
        {
                DEBUG_OUTPUT("recurrences");
                TIMELIB_INIT;
@@ -920,9 +899,9 @@ yy100:
                s->have_recurrences = 1;
                return TIMELIB_PERIOD;
        }
-#line 924 "<stdout>"
+#line 903 "ext/date/lib/parse_iso_intervals.c"
 }
-#line 321 "ext/date/lib/parse_iso_intervals.re"
+#line 399 "ext/date/lib/parse_iso_intervals.re"
 
 }
 #ifdef PHP_WIN32
@@ -981,7 +960,7 @@ void timelib_strtointerval(char *s, size_t len,
        in.begin->h = TIMELIB_UNSET;
        in.begin->i = TIMELIB_UNSET;
        in.begin->s = TIMELIB_UNSET;
-       in.begin->us = 0;
+       in.begin->f = 0;
        in.begin->z = 0;
        in.begin->dst = 0;
        in.begin->is_localtime = 0;
@@ -994,7 +973,7 @@ void timelib_strtointerval(char *s, size_t len,
        in.end->h = TIMELIB_UNSET;
        in.end->i = TIMELIB_UNSET;
        in.end->s = TIMELIB_UNSET;
-       in.end->us = 0;
+       in.end->f = 0;
        in.end->z = 0;
        in.end->dst = 0;
        in.end->is_localtime = 0;
index 7a481c836d1cc6bc80ad7beccc16f64d4ff83c04..6f23bb16f276ddedfc866c2c3e28a25ccaffdf29 100644 (file)
 /* $Id$ */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
+#include <stdio.h>
 #include <ctype.h>
 
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
 #if defined(_MSC_VER)
 # define strtoll(s, f, b) _atoi64(s)
 #elif !defined(HAVE_STRTOLL)
 # endif
 #endif
 
+#define TIMELIB_UNSET   -99999
+
+#define TIMELIB_SECOND  1
+#define TIMELIB_MINUTE  2
+#define TIMELIB_HOUR    3
+#define TIMELIB_DAY     4
+#define TIMELIB_MONTH   5
+#define TIMELIB_YEAR    6
+
 #define EOI      257
 
 #define TIMELIB_PERIOD  260
@@ -70,6 +88,8 @@ typedef unsigned char uchar;
 #define YYDEBUG(s,c)
 #endif
 
+#include "timelib_structs.h"
+
 typedef struct Scanner {
        int           fd;
        uchar        *lim, *str, *ptr, *cur, *tok, *pos;
@@ -88,6 +108,15 @@ typedef struct Scanner {
        int have_end_date;
 } Scanner;
 
+static void add_warning(Scanner *s, char *error)
+{
+       s->errors->warning_count++;
+       s->errors->warning_messages = timelib_realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
+       s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
+       s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
+       s->errors->warning_messages[s->errors->warning_count - 1].message = timelib_strdup(error);
+}
+
 static void add_error(Scanner *s, char *error)
 {
        s->errors->error_count++;
@@ -151,6 +180,55 @@ static timelib_ull timelib_get_unsigned_nr(char **ptr, int max_length)
        return dir * timelib_get_nr(ptr, max_length);
 }
 
+static void timelib_eat_spaces(char **ptr)
+{
+       while (**ptr == ' ' || **ptr == '\t') {
+               ++*ptr;
+       }
+}
+
+static void timelib_eat_until_separator(char **ptr)
+{
+       while (strchr(" \t.,:;/-0123456789", **ptr) == NULL) {
+               ++*ptr;
+       }
+}
+
+static timelib_long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb)
+{
+       timelib_long retval = 0;
+
+       *tz_not_found = 0;
+
+       while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') {
+               ++*ptr;
+       }
+       if ((*ptr)[0] == 'G' && (*ptr)[1] == 'M' && (*ptr)[2] == 'T' && ((*ptr)[3] == '+' || (*ptr)[3] == '-')) {
+               *ptr += 3;
+       }
+       if (**ptr == '+') {
+               ++*ptr;
+               t->is_localtime = 1;
+               t->zone_type = TIMELIB_ZONETYPE_OFFSET;
+               *tz_not_found = 0;
+               t->dst = 0;
+
+               retval = -1 * timelib_parse_tz_cor(ptr);
+       } else if (**ptr == '-') {
+               ++*ptr;
+               t->is_localtime = 1;
+               t->zone_type = TIMELIB_ZONETYPE_OFFSET;
+               *tz_not_found = 0;
+               t->dst = 0;
+
+               retval = timelib_parse_tz_cor(ptr);
+       }
+       while (**ptr == ')') {
+               ++*ptr;
+       }
+       return retval;
+}
+
 #define timelib_split_free(arg) {       \
        int i;                         \
        for (i = 0; i < arg.c; i++) {  \
@@ -376,7 +454,7 @@ void timelib_strtointerval(char *s, size_t len,
        in.begin->h = TIMELIB_UNSET;
        in.begin->i = TIMELIB_UNSET;
        in.begin->s = TIMELIB_UNSET;
-       in.begin->us = 0;
+       in.begin->f = 0;
        in.begin->z = 0;
        in.begin->dst = 0;
        in.begin->is_localtime = 0;
@@ -389,7 +467,7 @@ void timelib_strtointerval(char *s, size_t len,
        in.end->h = TIMELIB_UNSET;
        in.end->i = TIMELIB_UNSET;
        in.end->s = TIMELIB_UNSET;
-       in.end->us = 0;
+       in.end->f = 0;
        in.end->z = 0;
        in.end->dst = 0;
        in.end->is_localtime = 0;
index f3e49cb4694582850518d32684c7ede4fa511cf7..20d7eeac1992ec58716c96767a7e479291538b1b 100644 (file)
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
+
+#include <stdio.h>
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
 
 #define TIMELIB_SUPPORTS_V2DATA
 #include "timezonedb.h"
 # endif
 #endif
 
-#if defined(__s390__)
-# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#  define WORDS_BIGENDIAN
-# else
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
 #ifdef WORDS_BIGENDIAN
-static inline uint32_t timelib_conv_int_unsigned(uint32_t value)
-{
-       return value;
-}
+#define timelib_conv_int(l) (l)
 #else
-static inline uint32_t timelib_conv_int_unsigned(uint32_t value)
-{
-       return ((value & 0x000000ff) << 24) +
-               ((value & 0x0000ff00) << 8) +
-               ((value & 0x00ff0000) >> 8) +
-               ((value & 0xff000000) >> 24);
-}
+#define timelib_conv_int(l) ((l & 0x000000ff) << 24) + ((l & 0x0000ff00) << 8) + ((l & 0x00ff0000) >> 8) + ((l & 0xff000000) >> 24)
 #endif
 
-#define timelib_conv_int_signed(value) ((int32_t) timelib_conv_int_unsigned((int32_t) value))
-
-static int read_php_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
+static int read_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
 {
        uint32_t version;
 
@@ -86,67 +78,21 @@ static int read_php_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
        return version;
 }
 
-static int read_tzif_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
-{
-       uint32_t version;
-
-       /* read ID */
-       switch ((*tzf)[4]) {
-               case '\0':
-                       version = 0;
-                       break;
-               case '2':
-                       version = 2;
-                       break;
-               case '3':
-                       version = 3;
-                       break;
-               default:
-                       return -1;
-       }
-       *tzf += 5;
-
-       /* set BC flag and country code to default */
-       tz->bc = 0;
-       tz->location.country_code[0] = '?';
-       tz->location.country_code[1] = '?';
-       tz->location.country_code[2] = '\0';
-
-       /* skip rest of preamble */
-       *tzf += 15;
-
-       return version;
-}
-
-static int read_preamble(const unsigned char **tzf, timelib_tzinfo *tz, unsigned int *type)
-{
-       /* read marker (TZif) or (PHP) */
-       if (memcmp(*tzf, "PHP", 3) == 0) {
-               *type = TIMELIB_TZINFO_PHP;
-               return read_php_preamble(tzf, tz);
-       } else if (memcmp(*tzf, "TZif", 4) == 0) {
-               *type = TIMELIB_TZINFO_ZONEINFO;
-               return read_tzif_preamble(tzf, tz);
-       } else {
-               return -1;
-       }
-}
-
 static void read_header(const unsigned char **tzf, timelib_tzinfo *tz)
 {
        uint32_t buffer[6];
 
        memcpy(&buffer, *tzf, sizeof(buffer));
-       tz->bit32.ttisgmtcnt = timelib_conv_int_unsigned(buffer[0]);
-       tz->bit32.ttisstdcnt = timelib_conv_int_unsigned(buffer[1]);
-       tz->bit32.leapcnt    = timelib_conv_int_unsigned(buffer[2]);
-       tz->bit32.timecnt    = timelib_conv_int_unsigned(buffer[3]);
-       tz->bit32.typecnt    = timelib_conv_int_unsigned(buffer[4]);
-       tz->bit32.charcnt    = timelib_conv_int_unsigned(buffer[5]);
+       tz->bit32.ttisgmtcnt = timelib_conv_int(buffer[0]);
+       tz->bit32.ttisstdcnt = timelib_conv_int(buffer[1]);
+       tz->bit32.leapcnt    = timelib_conv_int(buffer[2]);
+       tz->bit32.timecnt    = timelib_conv_int(buffer[3]);
+       tz->bit32.typecnt    = timelib_conv_int(buffer[4]);
+       tz->bit32.charcnt    = timelib_conv_int(buffer[5]);
        *tzf += sizeof(buffer);
 }
 
-static void skip_64bit_transitions(const unsigned char **tzf, timelib_tzinfo *tz)
+static void skip_64bit_transistions(const unsigned char **tzf, timelib_tzinfo *tz)
 {
        if (tz->bit64.timecnt) {
                *tzf += (sizeof(int64_t) * tz->bit64.timecnt);
@@ -154,7 +100,7 @@ static void skip_64bit_transitions(const unsigned char **tzf, timelib_tzinfo *tz
        }
 }
 
-static int read_transitions(const unsigned char **tzf, timelib_tzinfo *tz)
+static void read_transistions(const unsigned char **tzf, timelib_tzinfo *tz)
 {
        int32_t *buffer = NULL;
        uint32_t i;
@@ -163,22 +109,18 @@ static int read_transitions(const unsigned char **tzf, timelib_tzinfo *tz)
        if (tz->bit32.timecnt) {
                buffer = (int32_t*) timelib_malloc(tz->bit32.timecnt * sizeof(int32_t));
                if (!buffer) {
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                memcpy(buffer, *tzf, sizeof(int32_t) * tz->bit32.timecnt);
                *tzf += (sizeof(int32_t) * tz->bit32.timecnt);
                for (i = 0; i < tz->bit32.timecnt; i++) {
-                       buffer[i] = timelib_conv_int_signed(buffer[i]);
-                       /* Sanity check to see whether TS is just increasing */
-                       if (i > 0 && !(buffer[i] > buffer[i - 1])) {
-                               return TIMELIB_ERROR_CORRUPT_TRANSITIONS_DONT_INCREASE;
-                       }
+                       buffer[i] = timelib_conv_int(buffer[i]);
                }
 
                cbuffer = (unsigned char*) timelib_malloc(tz->bit32.timecnt * sizeof(unsigned char));
                if (!cbuffer) {
                        timelib_free(buffer);
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                memcpy(cbuffer, *tzf, sizeof(unsigned char) * tz->bit32.timecnt);
                *tzf += sizeof(unsigned char) * tz->bit32.timecnt;
@@ -186,8 +128,6 @@ static int read_transitions(const unsigned char **tzf, timelib_tzinfo *tz)
 
        tz->trans = buffer;
        tz->trans_idx = cbuffer;
-
-       return 0;
 }
 
 static void skip_64bit_types(const unsigned char **tzf, timelib_tzinfo *tz)
@@ -205,7 +145,7 @@ static void skip_64bit_types(const unsigned char **tzf, timelib_tzinfo *tz)
        }
 }
 
-static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
+static void read_types(const unsigned char **tzf, timelib_tzinfo *tz)
 {
        unsigned char *buffer;
        int32_t *leap_buffer;
@@ -213,7 +153,7 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
 
        buffer = (unsigned char*) timelib_malloc(tz->bit32.typecnt * sizeof(unsigned char) * 6);
        if (!buffer) {
-               return TIMELIB_ERROR_CANNOT_ALLOCATE;
+               return;
        }
        memcpy(buffer, *tzf, sizeof(unsigned char) * 6 * tz->bit32.typecnt);
        *tzf += sizeof(unsigned char) * 6 * tz->bit32.typecnt;
@@ -221,13 +161,12 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
        tz->type = (ttinfo*) timelib_malloc(tz->bit32.typecnt * sizeof(struct ttinfo));
        if (!tz->type) {
                timelib_free(buffer);
-               return TIMELIB_ERROR_CANNOT_ALLOCATE;
+               return;
        }
 
        for (i = 0; i < tz->bit32.typecnt; i++) {
                j = i * 6;
-               tz->type[i].offset = 0;
-               tz->type[i].offset += (int32_t) (((uint32_t) buffer[j]) << 24) + (buffer[j + 1] << 16) + (buffer[j + 2] << 8) + tz->type[i].offset + buffer[j + 3];
+               tz->type[i].offset = (buffer[j] * 16777216) + (buffer[j + 1] * 65536) + (buffer[j + 2] * 256) + buffer[j + 3];
                tz->type[i].isdst = buffer[j + 4];
                tz->type[i].abbr_idx = buffer[j + 5];
        }
@@ -235,7 +174,7 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
 
        tz->timezone_abbr = (char*) timelib_malloc(tz->bit32.charcnt);
        if (!tz->timezone_abbr) {
-               return TIMELIB_ERROR_CORRUPT_NO_ABBREVIATION;
+               return;
        }
        memcpy(tz->timezone_abbr, *tzf, sizeof(char) * tz->bit32.charcnt);
        *tzf += sizeof(char) * tz->bit32.charcnt;
@@ -243,7 +182,7 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
        if (tz->bit32.leapcnt) {
                leap_buffer = (int32_t *) timelib_malloc(tz->bit32.leapcnt * 2 * sizeof(int32_t));
                if (!leap_buffer) {
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                memcpy(leap_buffer, *tzf, sizeof(int32_t) * tz->bit32.leapcnt * 2);
                *tzf += sizeof(int32_t) * tz->bit32.leapcnt * 2;
@@ -251,11 +190,11 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
                tz->leap_times = (tlinfo*) timelib_malloc(tz->bit32.leapcnt * sizeof(tlinfo));
                if (!tz->leap_times) {
                        timelib_free(leap_buffer);
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                for (i = 0; i < tz->bit32.leapcnt; i++) {
-                       tz->leap_times[i].trans = timelib_conv_int_signed(leap_buffer[i * 2]);
-                       tz->leap_times[i].offset = timelib_conv_int_signed(leap_buffer[i * 2 + 1]);
+                       tz->leap_times[i].trans = timelib_conv_int(leap_buffer[i * 2]);
+                       tz->leap_times[i].offset = timelib_conv_int(leap_buffer[i * 2 + 1]);
                }
                timelib_free(leap_buffer);
        }
@@ -263,7 +202,7 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
        if (tz->bit32.ttisstdcnt) {
                buffer = (unsigned char*) timelib_malloc(tz->bit32.ttisstdcnt * sizeof(unsigned char));
                if (!buffer) {
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                memcpy(buffer, *tzf, sizeof(unsigned char) * tz->bit32.ttisstdcnt);
                *tzf += sizeof(unsigned char) * tz->bit32.ttisstdcnt;
@@ -277,7 +216,7 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
        if (tz->bit32.ttisgmtcnt) {
                buffer = (unsigned char*) timelib_malloc(tz->bit32.ttisgmtcnt * sizeof(unsigned char));
                if (!buffer) {
-                       return TIMELIB_ERROR_CANNOT_ALLOCATE;
+                       return;
                }
                memcpy(buffer, *tzf, sizeof(unsigned char) * tz->bit32.ttisgmtcnt);
                *tzf += sizeof(unsigned char) * tz->bit32.ttisgmtcnt;
@@ -287,8 +226,6 @@ static int read_types(const unsigned char **tzf, timelib_tzinfo *tz)
                }
                timelib_free(buffer);
        }
-
-       return 0;
 }
 
 static void skip_posix_string(const unsigned char **tzf, timelib_tzinfo *tz)
@@ -309,11 +246,11 @@ static void read_location(const unsigned char **tzf, timelib_tzinfo *tz)
        uint32_t comments_len;
 
        memcpy(&buffer, *tzf, sizeof(buffer));
-       tz->location.latitude = timelib_conv_int_unsigned(buffer[0]);
+       tz->location.latitude = timelib_conv_int(buffer[0]);
        tz->location.latitude = (tz->location.latitude / 100000) - 90;
-       tz->location.longitude = timelib_conv_int_unsigned(buffer[1]);
+       tz->location.longitude = timelib_conv_int(buffer[1]);
        tz->location.longitude = (tz->location.longitude / 100000) - 180;
-       comments_len = timelib_conv_int_unsigned(buffer[2]);
+       comments_len = timelib_conv_int(buffer[2]);
        *tzf += sizeof(buffer);
 
        tz->location.comments = timelib_malloc(comments_len + 1);
@@ -322,15 +259,6 @@ static void read_location(const unsigned char **tzf, timelib_tzinfo *tz)
        *tzf += comments_len;
 }
 
-static void set_default_location_and_comments(const unsigned char **tzf, timelib_tzinfo *tz)
-{
-       tz->location.latitude = 0;
-       tz->location.longitude = 0;
-       tz->location.comments = timelib_malloc(2);
-       tz->location.comments[0] = '?';
-       tz->location.comments[1] = '\0';
-}
-
 void timelib_dump_tzinfo(timelib_tzinfo *tz)
 {
        uint32_t i;
@@ -379,13 +307,7 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const
        int left = 0, right = tzdb->index_size - 1;
 #ifdef HAVE_SETLOCALE
        char *cur_locale = NULL, *tmp;
-#endif
-
-       if (tzdb->index_size == 0) {
-               return 0;
-       }
 
-#ifdef HAVE_SETLOCALE
        tmp = setlocale(LC_CTYPE, NULL);
        if (tmp) {
                cur_locale = timelib_strdup(tmp);
@@ -424,10 +346,10 @@ const timelib_tzdb *timelib_builtin_db(void)
        return &timezonedb_builtin;
 }
 
-const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count)
+const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count)
 {
-       *count = tzdb->index_size;
-       return tzdb->index;
+       *count = sizeof(timezonedb_idx_builtin) / sizeof(*timezonedb_idx_builtin);
+       return timezonedb_idx_builtin;
 }
 
 int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb)
@@ -436,17 +358,9 @@ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb)
        return (seek_to_tz_position(&tzf, timezone, tzdb));
 }
 
-static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
+static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
 {
-       if (memcmp(*tzf, "TZif2", 5) == 0) {
-               *tzf += 20;
-               return 1;
-       } else if (memcmp(*tzf, "TZif3", 5) == 0) {
-               *tzf += 20;
-               return 1;
-       } else {
-               return 0;
-       }
+       *tzf += 20;
 }
 
 static void read_64bit_header(const unsigned char **tzf, timelib_tzinfo *tz)
@@ -454,124 +368,43 @@ static void read_64bit_header(const unsigned char **tzf, timelib_tzinfo *tz)
        uint32_t buffer[6];
 
        memcpy(&buffer, *tzf, sizeof(buffer));
-       tz->bit64.ttisgmtcnt = timelib_conv_int_unsigned(buffer[0]);
-       tz->bit64.ttisstdcnt = timelib_conv_int_unsigned(buffer[1]);
-       tz->bit64.leapcnt    = timelib_conv_int_unsigned(buffer[2]);
-       tz->bit64.timecnt    = timelib_conv_int_unsigned(buffer[3]);
-       tz->bit64.typecnt    = timelib_conv_int_unsigned(buffer[4]);
-       tz->bit64.charcnt    = timelib_conv_int_unsigned(buffer[5]);
+       tz->bit64.ttisgmtcnt = timelib_conv_int(buffer[0]);
+       tz->bit64.ttisstdcnt = timelib_conv_int(buffer[1]);
+       tz->bit64.leapcnt    = timelib_conv_int(buffer[2]);
+       tz->bit64.timecnt    = timelib_conv_int(buffer[3]);
+       tz->bit64.typecnt    = timelib_conv_int(buffer[4]);
+       tz->bit64.charcnt    = timelib_conv_int(buffer[5]);
        *tzf += sizeof(buffer);
 }
 
-static timelib_tzinfo* timelib_tzinfo_ctor(char *name)
-{
-       timelib_tzinfo *t;
-       t = timelib_calloc(1, sizeof(timelib_tzinfo));
-       t->name = timelib_strdup(name);
-
-       return t;
-}
-
-timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code)
+timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb)
 {
        const unsigned char *tzf;
        timelib_tzinfo *tmp;
        int version;
-       int transitions_result, types_result;
-       unsigned int type; /* TIMELIB_TZINFO_PHP or TIMELIB_TZINFO_ZONEINFO */
 
        if (seek_to_tz_position(&tzf, timezone, tzdb)) {
                tmp = timelib_tzinfo_ctor(timezone);
 
-               version = read_preamble(&tzf, tmp, &type);
-               if (version == -1) {
-                       *error_code = TIMELIB_ERROR_UNSUPPORTED_VERSION;
-                       timelib_tzinfo_dtor(tmp);
-                       return NULL;
-               }
-//printf("- timezone: %s, version: %0d\n", timezone, version);
-
+               version = read_preamble(&tzf, tmp);
                read_header(&tzf, tmp);
-               if ((transitions_result = read_transitions(&tzf, tmp)) != 0) {
-                       /* Corrupt file as transitions do not increase */
-                       *error_code = transitions_result;
-                       timelib_tzinfo_dtor(tmp);
-                       return NULL;
-               }
-               if ((types_result = read_types(&tzf, tmp)) != 0) {
-                       *error_code = types_result;
-                       timelib_tzinfo_dtor(tmp);
-                       return NULL;
-               }
-               if (version == 2 || version == 3) {
-                       if (!skip_64bit_preamble(&tzf, tmp)) {
-                               /* 64 bit preamble is not in place */
-                               *error_code = TIMELIB_ERROR_CORRUPT_NO_64BIT_PREAMBLE;
-                               return NULL;
-                       }
+               read_transistions(&tzf, tmp);
+               read_types(&tzf, tmp);
+               if (version == 2) {
+                       skip_64bit_preamble(&tzf, tmp);
                        read_64bit_header(&tzf, tmp);
-                       skip_64bit_transitions(&tzf, tmp);
+                       skip_64bit_transistions(&tzf, tmp);
                        skip_64bit_types(&tzf, tmp);
                        skip_posix_string(&tzf, tmp);
                }
-
-               if (type == TIMELIB_TZINFO_PHP) {
-                       read_location(&tzf, tmp);
-               } else {
-                       set_default_location_and_comments(&tzf, tmp);
-               }
+               read_location(&tzf, tmp);
        } else {
-               *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE;
                tmp = NULL;
        }
 
        return tmp;
 }
 
-void timelib_tzinfo_dtor(timelib_tzinfo *tz)
-{
-       TIMELIB_TIME_FREE(tz->name);
-       TIMELIB_TIME_FREE(tz->trans);
-       TIMELIB_TIME_FREE(tz->trans_idx);
-       TIMELIB_TIME_FREE(tz->type);
-       TIMELIB_TIME_FREE(tz->timezone_abbr);
-       TIMELIB_TIME_FREE(tz->leap_times);
-       TIMELIB_TIME_FREE(tz->location.comments);
-       TIMELIB_TIME_FREE(tz);
-       tz = NULL;
-}
-
-timelib_tzinfo *timelib_tzinfo_clone(timelib_tzinfo *tz)
-{
-       timelib_tzinfo *tmp = timelib_tzinfo_ctor(tz->name);
-       tmp->bit32.ttisgmtcnt = tz->bit32.ttisgmtcnt;
-       tmp->bit32.ttisstdcnt = tz->bit32.ttisstdcnt;
-       tmp->bit32.leapcnt = tz->bit32.leapcnt;
-       tmp->bit32.timecnt = tz->bit32.timecnt;
-       tmp->bit32.typecnt = tz->bit32.typecnt;
-       tmp->bit32.charcnt = tz->bit32.charcnt;
-
-       if (tz->bit32.timecnt) {
-               tmp->trans = (int32_t *) timelib_malloc(tz->bit32.timecnt * sizeof(int32_t));
-               tmp->trans_idx = (unsigned char*) timelib_malloc(tz->bit32.timecnt * sizeof(unsigned char));
-               memcpy(tmp->trans, tz->trans, tz->bit32.timecnt * sizeof(int32_t));
-               memcpy(tmp->trans_idx, tz->trans_idx, tz->bit32.timecnt * sizeof(unsigned char));
-       }
-
-       tmp->type = (ttinfo*) timelib_malloc(tz->bit32.typecnt * sizeof(struct ttinfo));
-       memcpy(tmp->type, tz->type, tz->bit32.typecnt * sizeof(struct ttinfo));
-
-       tmp->timezone_abbr = (char*) timelib_malloc(tz->bit32.charcnt);
-       memcpy(tmp->timezone_abbr, tz->timezone_abbr, tz->bit32.charcnt);
-
-       if (tz->bit32.leapcnt) {
-               tmp->leap_times = (tlinfo*) timelib_malloc(tz->bit32.leapcnt * sizeof(tlinfo));
-               memcpy(tmp->leap_times, tz->leap_times, tz->bit32.leapcnt * sizeof(tlinfo));
-       }
-
-       return tmp;
-}
-
 static ttinfo* fetch_timezone_offset(timelib_tzinfo *tz, timelib_sll ts, timelib_sll *transition_time)
 {
        uint32_t i;
@@ -650,18 +483,18 @@ timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *
        int32_t offset = 0, leap_secs = 0;
        char *abbr;
        timelib_time_offset *tmp = timelib_time_offset_ctor();
-       timelib_sll                transition_time;
+       timelib_sll                transistion_time;
 
-       if ((to = fetch_timezone_offset(tz, ts, &transition_time))) {
+       if ((to = fetch_timezone_offset(tz, ts, &transistion_time))) {
                offset = to->offset;
                abbr = &(tz->timezone_abbr[to->abbr_idx]);
                tmp->is_dst = to->isdst;
-               tmp->transition_time = transition_time;
+               tmp->transistion_time = transistion_time;
        } else {
                offset = 0;
                abbr = tz->timezone_abbr;
                tmp->is_dst = 0;
-               tmp->transition_time = 0;
+               tmp->transistion_time = 0;
        }
 
        if ((tl = fetch_leaptime_offset(tz, ts))) {
@@ -683,7 +516,7 @@ timelib_sll timelib_get_current_offset(timelib_time *t)
        switch (t->zone_type) {
                case TIMELIB_ZONETYPE_ABBR:
                case TIMELIB_ZONETYPE_OFFSET:
-                       return t->z + (t->dst * 3600);
+                       return (t->z + t->dst) * -60;
 
                case TIMELIB_ZONETYPE_ID:
                        gmt_offset = timelib_get_time_zone_info(t->sse, t->tz_info);
index ee52de77cbeaf478819cb5f81521bb60ae6672bd..b9fb66f00fbbfd8d24969cfebec582050c126350 100644 (file)
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
 #include <ctype.h>
 #include <math.h>
 
-#define TIMELIB_LLABS(y) (y < 0 ? (y * -1) : y)
+#define TIMELIB_TIME_FREE(m)   \
+       if (m) {                \
+               timelib_free(m);        \
+               m = NULL;       \
+       }                       \
 
-const char *timelib_error_messages[8] = {
-       "No error",
-       "Can not allocate buffer for parsing",
-       "Corrupt tzfile: The transitions in the file don't always increase",
-       "Corrupt tzfile: The expected 64-bit preamble is missing",
-       "Corrupt tzfile: No abbreviation could be found for a transition",
-       "The version used in this timezone identifier is unsupported",
-       "No timezone with this name could be found",
-};
-
-const char *timelib_get_error_message(int error_code)
-{
-       int entries = sizeof(timelib_error_messages) / sizeof(char*);
+#define TIMELIB_LLABS(y) (y < 0 ? (y * -1) : y)
 
-       if (error_code >= 0 && error_code < entries) {
-               return timelib_error_messages[error_code];
-       }
-       return "Unknown error code";
-}
+#define HOUR(a) (int)(a * 60)
 
 timelib_time* timelib_time_ctor(void)
 {
@@ -57,23 +44,12 @@ timelib_time* timelib_time_ctor(void)
        return t;
 }
 
-void timelib_time_dtor(timelib_time* t)
-{
-       TIMELIB_TIME_FREE(t->tz_abbr);
-       TIMELIB_TIME_FREE(t);
-}
-
-int timelib_time_compare(timelib_time *t1, timelib_time *t2)
+timelib_rel_time* timelib_rel_time_ctor(void)
 {
-       if (t1->sse == t2->sse) {
-               if (t1->us == t2->us) {
-                       return 0;
-               }
-
-               return (t1->us < t2->us) ? -1 : 1;
-       }
+       timelib_rel_time *t;
+       t = timelib_calloc(1, sizeof(timelib_rel_time));
 
-       return (t1->sse < t2->sse) ? -1 : 1;
+       return t;
 }
 
 timelib_time* timelib_time_clone(timelib_time *orig)
@@ -89,17 +65,21 @@ timelib_time* timelib_time_clone(timelib_time *orig)
        return tmp;
 }
 
-timelib_rel_time* timelib_rel_time_ctor(void)
+int timelib_time_compare(timelib_time *t1, timelib_time *t2)
 {
-       timelib_rel_time *t;
-       t = timelib_calloc(1, sizeof(timelib_rel_time));
+       if (t1->sse == t2->sse) {
+               if (t1->f == t2->f) {
+                       return 0;
+               }
 
-       return t;
-}
+               if (t1->sse < 0) {
+                       return (t1->f < t2->f) ? 1 : -1;
+               } else {
+                       return (t1->f < t2->f) ? -1 : 1;
+               }
+       }
 
-void timelib_rel_time_dtor(timelib_rel_time* t)
-{
-       TIMELIB_TIME_FREE(t);
+       return (t1->sse < t2->sse) ? -1 : 1;
 }
 
 timelib_rel_time* timelib_rel_time_clone(timelib_rel_time *rel)
@@ -121,6 +101,17 @@ void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr)
        }
 }
 
+void timelib_time_dtor(timelib_time* t)
+{
+       TIMELIB_TIME_FREE(t->tz_abbr);
+       TIMELIB_TIME_FREE(t);
+}
+
+void timelib_rel_time_dtor(timelib_rel_time* t)
+{
+       TIMELIB_TIME_FREE(t);
+}
+
 timelib_time_offset* timelib_time_offset_ctor(void)
 {
        timelib_time_offset *t;
@@ -135,6 +126,55 @@ void timelib_time_offset_dtor(timelib_time_offset* t)
        TIMELIB_TIME_FREE(t);
 }
 
+timelib_tzinfo* timelib_tzinfo_ctor(char *name)
+{
+       timelib_tzinfo *t;
+       t = timelib_calloc(1, sizeof(timelib_tzinfo));
+       t->name = timelib_strdup(name);
+
+       return t;
+}
+
+timelib_tzinfo *timelib_tzinfo_clone(timelib_tzinfo *tz)
+{
+       timelib_tzinfo *tmp = timelib_tzinfo_ctor(tz->name);
+       tmp->bit32.ttisgmtcnt = tz->bit32.ttisgmtcnt;
+       tmp->bit32.ttisstdcnt = tz->bit32.ttisstdcnt;
+       tmp->bit32.leapcnt = tz->bit32.leapcnt;
+       tmp->bit32.timecnt = tz->bit32.timecnt;
+       tmp->bit32.typecnt = tz->bit32.typecnt;
+       tmp->bit32.charcnt = tz->bit32.charcnt;
+
+       tmp->trans = (int32_t *) timelib_malloc(tz->bit32.timecnt * sizeof(int32_t));
+       tmp->trans_idx = (unsigned char*) timelib_malloc(tz->bit32.timecnt * sizeof(unsigned char));
+       memcpy(tmp->trans, tz->trans, tz->bit32.timecnt * sizeof(int32_t));
+       memcpy(tmp->trans_idx, tz->trans_idx, tz->bit32.timecnt * sizeof(unsigned char));
+
+       tmp->type = (ttinfo*) timelib_malloc(tz->bit32.typecnt * sizeof(struct ttinfo));
+       memcpy(tmp->type, tz->type, tz->bit32.typecnt * sizeof(struct ttinfo));
+
+       tmp->timezone_abbr = (char*) timelib_malloc(tz->bit32.charcnt);
+       memcpy(tmp->timezone_abbr, tz->timezone_abbr, tz->bit32.charcnt);
+
+       tmp->leap_times = (tlinfo*) timelib_malloc(tz->bit32.leapcnt * sizeof(tlinfo));
+       memcpy(tmp->leap_times, tz->leap_times, tz->bit32.leapcnt * sizeof(tlinfo));
+
+       return tmp;
+}
+
+void timelib_tzinfo_dtor(timelib_tzinfo *tz)
+{
+       TIMELIB_TIME_FREE(tz->name);
+       TIMELIB_TIME_FREE(tz->trans);
+       TIMELIB_TIME_FREE(tz->trans_idx);
+       TIMELIB_TIME_FREE(tz->type);
+       TIMELIB_TIME_FREE(tz->timezone_abbr);
+       TIMELIB_TIME_FREE(tz->leap_times);
+       TIMELIB_TIME_FREE(tz->location.comments);
+       TIMELIB_TIME_FREE(tz);
+       tz = NULL;
+}
+
 char *timelib_get_tz_abbr_ptr(timelib_time *t)
 {
        if (!t->sse_uptodate) {
@@ -178,24 +218,9 @@ timelib_long timelib_date_to_int(timelib_time *d, int *error)
 
 void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec)
 {
-       if (h > 0) {
-               *hour = floor(h);
-               *min = floor((h - *hour) * 60);
-               *sec = (h - *hour - ((float) *min / 60)) * 3600;
-       } else {
-               *hour = ceil(h);
-               *min = 0 - ceil((h - *hour) * 60);
-               *sec = 0 - (h - *hour - ((float) *min / -60)) * 3600;
-       }
-}
-
-void timelib_hms_to_decimal_hour(int hour, int min, int sec, double *h)
-{
-       if (hour > 0) {
-               *h = ((double)hour + (double)min / 60 + (double)sec / 3600);
-       } else {
-               *h = ((double)hour - (double)min / 60 - (double)sec / 3600);
-       }
+       *hour = floor(h);
+       *min =  floor((h - *hour) * 60);
+       *sec =  (h - *hour - ((float) *min / 60)) * 3600;
 }
 
 void timelib_dump_date(timelib_time *d, int options)
@@ -205,8 +230,8 @@ void timelib_dump_date(timelib_time *d, int options)
        }
        printf("TS: %lld | %s%04lld-%02lld-%02lld %02lld:%02lld:%02lld",
                d->sse, d->y < 0 ? "-" : "", TIMELIB_LLABS(d->y), d->m, d->d, d->h, d->i, d->s);
-       if (d->us > 0) {
-               printf(" 0.%06lld", d->us);
+       if (d->f > +0.0) {
+               printf(" %.5f", d->f);
        }
 
        if (d->is_localtime) {
@@ -235,9 +260,6 @@ void timelib_dump_date(timelib_time *d, int options)
                if (d->have_relative) {
                        printf("%3lldY %3lldM %3lldD / %3lldH %3lldM %3lldS",
                                d->relative.y, d->relative.m, d->relative.d, d->relative.h, d->relative.i, d->relative.s);
-                       if (d->relative.us) {
-                               printf(" 0.%06lld", d->relative.us);
-                       }
                        if (d->relative.first_last_day_of != 0) {
                                switch (d->relative.first_last_day_of) {
                                        case 1:
@@ -285,3 +307,36 @@ void timelib_dump_rel_time(timelib_rel_time *d)
        }
        printf("\n");
 }
+
+timelib_long timelib_parse_tz_cor(char **ptr)
+{
+       char *begin = *ptr, *end;
+       timelib_long  tmp;
+
+       while (isdigit(**ptr) || **ptr == ':') {
+               ++*ptr;
+       }
+       end = *ptr;
+       switch (end - begin) {
+               case 1: /* H */
+               case 2: /* HH */
+                       return HOUR(strtol(begin, NULL, 10));
+                       break;
+               case 3: /* H:M */
+               case 4: /* H:MM, HH:M, HHMM */
+                       if (begin[1] == ':') {
+                               tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 2, NULL, 10);
+                               return tmp;
+                       } else if (begin[2] == ':') {
+                               tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10);
+                               return tmp;
+                       } else {
+                               tmp = strtol(begin, NULL, 10);
+                               return HOUR(tmp / 100) + tmp % 100;
+                       }
+               case 5: /* HH:MM */
+                       tmp = HOUR(strtol(begin, NULL, 10)) + strtol(begin + 3, NULL, 10);
+                       return tmp;
+       }
+       return 0;
+}
index a3450f4f9a61462ce635863a8ed2f65573f95e5a..9a59d89770b7927e211979b65106195598837440 100644 (file)
 #ifndef __TIMELIB_H__
 #define __TIMELIB_H__
 
-#ifdef HAVE_TIMELIB_CONFIG_H
-# include "timelib_config.h"
-#endif
-
-#include <stdlib.h>
+#include "timelib_structs.h"
+#if HAVE_LIMITS_H
 #include <limits.h>
-#include <inttypes.h>
-
-# ifndef HAVE_INT32_T
-#  if SIZEOF_INT == 4
-typedef int int32_t;
-#  elif SIZEOF_LONG == 4
-typedef long int int32_t;
-#  endif
-# endif
-
-# ifndef HAVE_UINT32_T
-#  if SIZEOF_INT == 4
-typedef unsigned int uint32_t;
-#  elif SIZEOF_LONG == 4
-typedef unsigned long int uint32_t;
-#  endif
-# endif
-
-#ifdef _WIN32
-# if _MSC_VER >= 1600
-# include <stdint.h>
-# endif
-# ifndef SIZEOF_INT
-#  define SIZEOF_INT 4
-# endif
-# ifndef SIZEOF_LONG
-#  define SIZEOF_LONG 4
-# endif
-# ifndef int32_t
-typedef __int32           int32_t;
-# endif
-# ifndef uint32_t
-typedef unsigned __int32  uint32_t;
-# endif
-# ifndef int64_t
-typedef __int64           int64_t;
-# endif
-# ifndef uint64_t
-typedef unsigned __int64  uint64_t;
-# endif
-# ifndef PRId32
-#  define PRId32       "I32d"
-# endif
-# ifndef PRIu32
-#  define PRIu32       "I32u"
-# endif
-# ifndef PRId64
-#  define PRId64       "I64d"
-# endif
-# ifndef PRIu64
-#  define PRIu64       "I64u"
-# endif
-# ifndef INT32_MAX
-#define INT32_MAX    _I32_MAX
-# endif
-# ifndef INT32_MIN
-#define INT32_MIN    ((int32_t)_I32_MIN)
-# endif
-# ifndef UINT32_MAX
-#define UINT32_MAX   _UI32_MAX
-# endif
-# ifndef INT64_MIN
-#define INT64_MIN    ((int64_t)_I64_MIN)
-# endif
-# ifndef INT64_MAX
-#define INT64_MAX    _I64_MAX
-# endif
-# ifndef UINT64_MAX
-#define UINT64_MAX   _UI64_MAX
-# endif
-#endif
-
-#if (defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64)) && !defined(TIMELIB_FORCE_LONG32)
-typedef int64_t timelib_long;
-typedef uint64_t timelib_ulong;
-# define TIMELIB_LONG_MAX INT64_MAX
-# define TIMELIB_LONG_MIN INT64_MIN
-# define TIMELIB_ULONG_MAX UINT64_MAX
-# define TIMELIB_LONG_FMT "%" PRId64
-# define TIMELIB_ULONG_FMT "%" PRIu64
-#else
-typedef int32_t timelib_long;
-typedef uint32_t timelib_ulong;
-# define TIMELIB_LONG_MAX INT32_MAX
-# define TIMELIB_LONG_MIN INT32_MIN
-# define TIMELIB_ULONG_MAX UINT32_MAX
-# define TIMELIB_LONG_FMT "%" PRId32
-# define TIMELIB_ULONG_FMT "%" PRIu32
 #endif
 
-#if defined(_MSC_VER)
-typedef uint64_t timelib_ull;
-typedef int64_t timelib_sll;
-# define TIMELIB_LL_CONST(n) n ## i64
-#else
-typedef unsigned long long timelib_ull;
-typedef signed long long timelib_sll;
-# define TIMELIB_LL_CONST(n) n ## ll
-#endif
-
-typedef struct ttinfo ttinfo;
-typedef struct tlinfo tlinfo;
-
-typedef struct tlocinfo
-{
-       char country_code[3];
-       double latitude;
-       double longitude;
-       char *comments;
-} tlocinfo;
-
-typedef struct timelib_tzinfo
-{
-       char    *name;
-       struct {
-               uint32_t ttisgmtcnt;
-               uint32_t ttisstdcnt;
-               uint32_t leapcnt;
-               uint32_t timecnt;
-               uint32_t typecnt;
-               uint32_t charcnt;
-       } bit32;
-       struct {
-               uint64_t ttisgmtcnt;
-               uint64_t ttisstdcnt;
-               uint64_t leapcnt;
-               uint64_t timecnt;
-               uint64_t typecnt;
-               uint64_t charcnt;
-       } bit64;
-
-       int32_t *trans;
-       unsigned char *trans_idx;
-
-       ttinfo  *type;
-       char    *timezone_abbr;
-
-       tlinfo  *leap_times;
-       unsigned char bc;
-       tlocinfo location;
-} timelib_tzinfo;
-
-typedef struct timelib_rel_time {
-       timelib_sll y, m, d; /* Years, Months and Days */
-       timelib_sll h, i, s; /* Hours, mInutes and Seconds */
-       timelib_sll us;      /* Microseconds */
-
-       int weekday; /* Stores the day in 'next monday' */
-       int weekday_behavior; /* 0: the current day should *not* be counted when advancing forwards; 1: the current day *should* be counted */
-
-       int first_last_day_of;
-       int invert; /* Whether the difference should be inverted */
-       timelib_sll days; /* Contains the number of *days*, instead of Y-M-D differences */
-
-       struct {
-               unsigned int type;
-               timelib_sll amount;
-       } special;
-
-       unsigned int   have_weekday_relative, have_special_relative;
-} timelib_rel_time;
-
-typedef struct timelib_time_offset {
-       int32_t      offset;
-       unsigned int leap_secs;
-       unsigned int is_dst;
-       char        *abbr;
-       timelib_sll  transition_time;
-} timelib_time_offset;
-
-typedef struct timelib_time {
-       timelib_sll      y, m, d;     /* Year, Month, Day */
-       timelib_sll      h, i, s;     /* Hour, mInute, Second */
-       timelib_sll      us;          /* Microseconds */
-       int              z;           /* UTC offset in seconds */
-       char            *tz_abbr;     /* Timezone abbreviation (display only) */
-       timelib_tzinfo  *tz_info;     /* Timezone structure */
-       signed int       dst;         /* Flag if we were parsing a DST zone */
-       timelib_rel_time relative;
-
-       timelib_sll      sse;         /* Seconds since epoch */
-
-       unsigned int   have_time, have_date, have_zone, have_relative, have_weeknr_day;
-
-       unsigned int   sse_uptodate; /* !0 if the sse member is up to date with the date/time members */
-       unsigned int   tim_uptodate; /* !0 if the date/time members are up to date with the sse member */
-       unsigned int   is_localtime; /*  1 if the current struct represents localtime, 0 if it is in GMT */
-       unsigned int   zone_type;    /*  1 time offset,
-                                     *  3 TimeZone identifier,
-                                     *  2 TimeZone abbreviation */
-} timelib_time;
-
-typedef struct timelib_abbr_info {
-       timelib_sll  utc_offset;
-       char        *abbr;
-       int          dst;
-} timelib_abbr_info;
-
-#define TIMELIB_WARN_MASK                      0x1ff
-#define TIMELIB_ERR_MASK                       0x2ff
-
-#define TIMELIB_WARN_DOUBLE_TZ                 0x101
-#define TIMELIB_WARN_INVALID_TIME              0x102
-#define TIMELIB_WARN_INVALID_DATE              0x103
-#define TIMELIB_WARN_TRAILING_DATA             0x11a
-
-#define TIMELIB_ERR_DOUBLE_TZ                  0x201
-#define TIMELIB_ERR_TZID_NOT_FOUND             0x202
-#define TIMELIB_ERR_DOUBLE_TIME                0x203
-#define TIMELIB_ERR_DOUBLE_DATE                0x204
-#define TIMELIB_ERR_UNEXPECTED_CHARACTER       0x205
-#define TIMELIB_ERR_EMPTY_STRING               0x206
-#define TIMELIB_ERR_UNEXPECTED_DATA            0x207
-#define TIMELIB_ERR_NO_TEXTUAL_DAY             0x208
-#define TIMELIB_ERR_NO_TWO_DIGIT_DAY           0x209
-#define TIMELIB_ERR_NO_THREE_DIGIT_DAY_OF_YEAR 0x20a
-#define TIMELIB_ERR_NO_TWO_DIGIT_MONTH         0x20b
-#define TIMELIB_ERR_NO_TEXTUAL_MONTH           0x20c
-#define TIMELIB_ERR_NO_TWO_DIGIT_YEAR          0x20d
-#define TIMELIB_ERR_NO_FOUR_DIGIT_YEAR         0x20e
-#define TIMELIB_ERR_NO_TWO_DIGIT_HOUR          0x20f
-#define TIMELIB_ERR_HOUR_LARGER_THAN_12        0x210
-#define TIMELIB_ERR_MERIDIAN_BEFORE_HOUR       0x211
-#define TIMELIB_ERR_NO_MERIDIAN                0x212
-#define TIMELIB_ERR_NO_TWO_DIGIT_MINUTE        0x213
-#define TIMELIB_ERR_NO_TWO_DIGIT_SECOND        0x214
-#define TIMELIB_ERR_NO_SIX_DIGIT_MICROSECOND   0x215
-#define TIMELIB_ERR_NO_SEP_SYMBOL              0x216
-#define TIMELIB_ERR_EXPECTED_ESCAPE_CHAR       0x217
-#define TIMELIB_ERR_NO_ESCAPED_CHAR            0x218
-#define TIMELIB_ERR_WRONG_FORMAT_SEP           0x219
-#define TIMELIB_ERR_TRAILING_DATA              0x21a
-#define TIMELIB_ERR_DATA_MISSING               0x21b
-
-#define TIMELIB_ZONETYPE_OFFSET 1
-#define TIMELIB_ZONETYPE_ABBR   2
-#define TIMELIB_ZONETYPE_ID     3
-
-typedef struct timelib_error_message {
-       int         error_code;
-       int         position;
-       char        character;
-       char       *message;
-} timelib_error_message;
-
-typedef struct timelib_error_container {
-       struct timelib_error_message *error_messages;
-       struct timelib_error_message *warning_messages;
-       int                           error_count;
-       int                           warning_count;
-} timelib_error_container;
-
-typedef struct _timelib_tz_lookup_table {
-       char       *name;
-       int         type;
-       float       gmtoffset;
-       char       *full_tz_name;
-} timelib_tz_lookup_table;
-
-typedef struct _timelib_tzdb_index_entry {
-       char *id;
-       unsigned int pos;
-} timelib_tzdb_index_entry;
-
-typedef struct _timelib_tzdb {
-       char                           *version;
-       int                             index_size;
-       const timelib_tzdb_index_entry *index;
-       const unsigned char            *data;
-} timelib_tzdb;
-
 #ifndef timelib_malloc
 # define timelib_malloc  malloc
 # define timelib_realloc realloc
@@ -310,8 +38,8 @@ typedef struct _timelib_tzdb {
 # define timelib_free    free
 #endif
 
-#define TIMELIB_VERSION 201705
-#define TIMELIB_ASCII_VERSION "2017.05beta7"
+#define TIMELIB_VERSION 201602
+#define TIMELIB_ASCII_VERSION "2016.02"
 
 #define TIMELIB_NONE             0x00
 #define TIMELIB_OVERRIDE_TIME    0x01
@@ -319,172 +47,51 @@ typedef struct _timelib_tzdb {
 
 #define TIMELIB_UNSET   -99999
 
-/* An entry for each of these error codes is also in the
- * timelib_error_messages array in timelib.c */
-#define TIMELIB_ERROR_NO_ERROR                            0x00
-#define TIMELIB_ERROR_CANNOT_ALLOCATE                     0x01
-#define TIMELIB_ERROR_CORRUPT_TRANSITIONS_DONT_INCREASE   0x02
-#define TIMELIB_ERROR_CORRUPT_NO_64BIT_PREAMBLE           0x03
-#define TIMELIB_ERROR_CORRUPT_NO_ABBREVIATION             0x04
-#define TIMELIB_ERROR_UNSUPPORTED_VERSION                 0x05
-#define TIMELIB_ERROR_NO_SUCH_TIMEZONE                    0x06
+#define TIMELIB_SPECIAL_WEEKDAY                   0x01
+#define TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH      0x02
+#define TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH 0x03
+
+#define TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH        0x01
+#define TIMELIB_SPECIAL_LAST_DAY_OF_MONTH         0x02
+
+#ifndef LONG_MAX
+#define LONG_MAX 2147483647L
+#endif
 
-#ifdef __cplusplus
-extern "C" {
+#ifndef LONG_MIN
+#define LONG_MIN (- LONG_MAX - 1)
+#endif
+
+#if defined(_MSC_VER) && !defined(strcasecmp)
+#define strcasecmp stricmp
+#endif
+
+#if defined(_MSC_VER) && !defined(strncasecmp)
+#define strncasecmp strnicmp
 #endif
 
 /* Function pointers */
-typedef timelib_tzinfo* (*timelib_tz_get_wrapper)(char *tzname, const timelib_tzdb *tzdb, int *error_code);
+typedef timelib_tzinfo* (*timelib_tz_get_wrapper)(char *tzname, const timelib_tzdb *tzdb);
 
 /* From dow.c */
-/* Calculates the day of the week from y, m, and d. 0=Sunday..6=Saturday */
 timelib_sll timelib_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d);
-
-/* Calculates the day of the ISO week from y, m, and d. 1=Monday, 7=Sunday */
 timelib_sll timelib_iso_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d);
-
-/* Calculates the day of the year according to y-m-d. 0=Jan 1st..364/365=Dec
- * 31st */
 timelib_sll timelib_day_of_year(timelib_sll y, timelib_sll m, timelib_sll d);
-
-/* Calculates the day of the year according to y-w-dow. 0..364/365 */
-timelib_sll timelib_daynr_from_weeknr(timelib_sll iy, timelib_sll iw, timelib_sll id);
-
-/* Calculates the number of days in month m for year y. 28..31 */
+timelib_sll timelib_daynr_from_weeknr(timelib_sll y, timelib_sll w, timelib_sll d);
 timelib_sll timelib_days_in_month(timelib_sll y, timelib_sll m);
-
-/* Calculates the ISO year and week from y, m, and d, into iw and iy */
 void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iw, timelib_sll *iy);
-
-/* Calculates the ISO year, week, and day of week from y, m, and d, into iy,
- * iw, and id */
-void timelib_isodate_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iy, timelib_sll *iw, timelib_sll *id);
-
-/* Calculates the year, month, and day from iy, iw, and iw, into y, m, and d */
-void timelib_date_from_isodate(timelib_sll iy, timelib_sll iw, timelib_sll id, timelib_sll *y, timelib_sll *m, timelib_sll *d);
-
-/* Returns true if h, i and s fit in the range 00:00:00..23:59:59, false
- * otherwise */
 int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s);
-
-/* Returns true if m fits in the range 1..12, and d fits in the range
- * 1..<days-in-month> for year y */
 int timelib_valid_date(timelib_sll y, timelib_sll m, timelib_sll d);
 
 /* From parse_date.re */
-
-/* Parses the date/time string in 's' with length 'len' into the constituent
- * parts of timelib_time*.
- *
- * Depending on the contents of the string 's', not all elements might be
- * filled. You can check whether a specific element has been parsed by
- * comparing with the TIMELIB_UNSET define.
- *
- * If errors occur, this function keeps already parsed elements in the
- * returned timelib_time* value.
- *
- * If the **errors points to a timelib_error_container variable, warnings
- * and errors will be recorded. You are responsible for freeing the stored
- * information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
- * inspect errors->warnings_count.
- *
- * The returned timelib_time* value is dynamically allocated and should be
- * freed with timelib_time_dtor().
- */
 timelib_time *timelib_strtotime(char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper);
-
-/* Parses the date/time string in 's' with length 'len' into the constituent
- * parts of timelib_time* according to the format in 'format'.
- *
- * Depending on the contents of the string 's', not all elements might be
- * filled. You can check whether a specific element has been parsed by
- * comparing with the TIMELIB_UNSET define.
- *
- * If errors occur, this function keeps already parsed elements in the
- * returned timelib_time* value.
- *
- * If the **errors points to a timelib_error_container variable, warnings
- * and errors will be recorded. You are responsible for freeing the stored
- * information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
- * inspect errors->warnings_count.
- *
- * The returned timelib_time* value is dynamically allocated and should be
- * freed with timelib_time_dtor().
- */
 timelib_time *timelib_parse_from_format(char *format, char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper);
-
-/* Fills the gaps in the parsed timelib_time with information from the reference date/time in 'now'
- *
- * If any of the 'parsed' y, m, d, h, i or s parameters is unset (TIMELIB_UNSET):
- * - if microtime (us) is unset, then the us of the parsed time is set to 0.
- * - else if microtime (us) is unset and 'now'->'us' is set, use it, otherwise use 0.
- *
- * For either of the 'parsed' y, m, d, h, i, s, z (utc offset in seconds) or
- * dst is unset, set it to the corresponding value in 'now' if set, otherwise
- * set it to 0.
- *
- * It duplicates tz_abbr if unset in 'parsed' but set in 'now'.
- *
- * It duplicates tz_info if unset in 'parsed', but set in 'now' unless
- * TIMELIB_NO_CLONE is passed, in which case only the pointer in 'parsed' is
- * set to 'now'.
- *
- * If the option TIMELIB_OVERRIDE_TIME is passed and the parsed date/time has
- * no time portion, the function will ignore the time aspect in 'now' and
- * instead fill it with zeros.
- */
 void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options);
-
-/* Tries to convert a time zone abbreviation, gmtoffset and/or isdst flag
- * combination to a time zone identifier.
- *
- * If 'abbr' is either 'utc' or 'gmt' (case insensitve) then "UTC" is
- * returned.
- *
- * It first uses the data in the timezonemap.h file to find a matching
- * abbreviation/GMT offset combination. If not found, it uses the data in
- * fallbackmap.h to match only the GMT offset/isdst flag to try to find a
- * match. If nothing is found, NULL is returned.
- *
- * The returned char* is not duplicated, and should not be freed.
- */
 char *timelib_timezone_id_from_abbr(const char *abbr, timelib_long gmtoffset, int isdst);
-
-/* Returns an array of known time zone abbreviations
- *
- * This file is generated from the time zone database through the
- * gettzmapping.php scripts, which requires that an up-to-date time zone
- * database is used with the PHP binary that runs the script.
- *
- * Each item in the returned list contains the abbreviation, a flag whether
- * it's an abbreviation used with DST, the UTC offset in seconds, and the name
- * of the time zone identifier that this abbreviation belongs to.
- *
- * The order for each specific abbreviation is controlled through the
- * preference list in the gettzmapping.php script. Time zones that match the
- * pattern Â±\d{2,4} are excluded
- */
 const timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void);
-
-/**
- * DEPRECATED, but still used by PHP.
- */
-timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper);
+timelib_long timelib_parse_tz_cor(char**);
 
 /* From parse_iso_intervals.re */
-
-/**
- * Parses a subset of an ISO 8601 intervals specification string into its
- * constituent parts.
- *
- * If the **errors points to a timelib_error_container variable, warnings
- * and errors will be recorded. You are responsible for freeing the stored
- * information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
- * inspect errors->warnings_count.
- */
 void timelib_strtointerval(char *s, size_t len,
                            timelib_time **begin, timelib_time **end,
                                                   timelib_rel_time **period, int *recurrences,
@@ -492,395 +99,66 @@ void timelib_strtointerval(char *s, size_t len,
 
 
 /* From tm2unixtime.c */
-
-/**
- * Uses the y/m/d/h/i/s fields to calculate and store the equivalent timestamp
- * in the sse field.
- *
- * It uses the time zone information associated with 'time' to account for the
- * right UTC offset and/or DST rules. You can associate time zone information
- * with the timelib_set_timezone_* functions (see below).
- *
- * If the type is 'TIMELIB_ZONETYPE_ID' and there is no associated tzinfo, it
- * will use the second argument 'tzi' to provide the rules necessary to
- * calculate the right timestamp.
- */
 void timelib_update_ts(timelib_time* time, timelib_tzinfo* tzi);
-
-/**
- * Takes the information from the y/m/d/h/i/s fields and makes sure their
- * values are in the right range.
- *
- * If a value under- or overflows it will adjust the larger measure up (or
- * down). It also takes into account leap days.
- */
 void timelib_do_normalize(timelib_time *base);
-
-/**
- * Takes the information from the y/m/d/h/i/s fields of 'rt' and makes sure
- * their values are in the right range.
- *
- * If a value under- or overflows it will adjust the larger measure up (or
- * down). As this function operates on a *relative date/time*, it also takes
- * into account leap days and correctly accounts for the difference depending
- * on the base date/time in 'base'.
- */
 void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt);
 
 /* From unixtime2tm.c */
-
-/**
- * Takes the unix timestamp in seconds from 'ts' and populates the y/m/d/h/i/s
- * fields of 'tm' without taking time zones into account
- */
+int timelib_apply_localtime(timelib_time *t, unsigned int localtime);
 void timelib_unixtime2gmt(timelib_time* tm, timelib_sll ts);
-
-/**
- * Takes the Unix timestamp from 'ts', and calculates the y/m/d/h/i/s fields
- * according to the time zone information attached to 'tm'.
- */
 void timelib_unixtime2local(timelib_time *tm, timelib_sll ts);
-
-/**
- * Takes the Unix timestamp stored in 'tm', and calculates the y/m/d/h/i/s
- * fields according to the time zone information attached to 'tm'.
- */
 void timelib_update_from_sse(timelib_time *tm);
-
-/**
- * Attaches the UTC offset as time zone information to 't'.
- *
- * 'utc_offset' is in seconds East of UTC.
- */
 void timelib_set_timezone_from_offset(timelib_time *t, timelib_sll utc_offset);
-
-/**
- * Attaches the information from 'abbr_info' as time zone information to 't'.
- *
- * The timelib_abbr_info struct contains an abbreviation ('abbr') which string
- * value is duplicated, as well as a 'utc_offset' and 'dst' flag. It only
- * supports a 'dst' change over of 1 hour.
- */
 void timelib_set_timezone_from_abbr(timelib_time *t, timelib_abbr_info abbr_info);
-
-/**
- * Attaches the time zone information in 'tz' to to 't'.
- *
- * It fetches the right UTC offset that is currently stored in the time
- * stamp field in 't' ('sse'), and assigns that to the 'z' field and 'dst'
- * field (whether DST is in effect at the time). It also sets the current
- * abbrevation to the 'tz_addr' field, making sure that if a value was already
- * set it was freed.
- *
- * The time zone information in 'tz' is *not* duplicated into the 't' field so
- * it should not be freed until all timelib_time* variables have been freed as
- * well.
- */
 void timelib_set_timezone(timelib_time *t, timelib_tzinfo *tz);
 
 /* From parse_tz.c */
-
-/**
- * Returns whether the time zone ID 'timezone' is available in the time zone
- * database as pointed to be 'tzdb'.
- */
 int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb);
-
-/**
- * Converts the binary stored time zone information from 'tzdb' for the time
- * zone 'timeozne' into a structure the library can use for calculations.
- *
- * The function can be used on both timelib_builtin_db as well as a time zone
- * db as opened by timelib_zoneinfo.
- * The function will return null upon failure, and also set an error code
- * through 'error_code'. 'error_code' must not be a null pointer. The error
- * code is one of the TIMELIB_ERROR_* constants as listed above. These error
- * constants can be converted into a string by timelib_get_error_message.
- *
- * This function allocates memory for the new time zone structure, which must
- * be freed after use. Although it is recommended that a cache of each used
- * time zone is kept.
- */
-timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code);
-
-/**
- * Frees up the resources allocated by 'timelib_parse_tzfile'.
- */
-void timelib_tzinfo_dtor(timelib_tzinfo *tz);
-
-/**
- * Deep-clones a timelib_tzinfo structure.
- *
- * This allocates resources that need to be freed with 'timelib_tzinfo_dtor'
- */
-timelib_tzinfo* timelib_tzinfo_clone(timelib_tzinfo *tz);
-
-/**
- * Returns whether DST is active with time zone 'tz' for the time stamp 'ts'.
- *
- * Returns 0 if DST is not active, 1 if DST is active, or -1 if no transitions
- * were available through 'tz'.
- */
+timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb);
 int timelib_timestamp_is_in_dst(timelib_sll ts, timelib_tzinfo *tz);
-
-/**
- * Returns offset information with time zone 'tz' for the time stamp 'ts'.
- *
- * The returned information contains: the offset in seconds East of UTC (in
- * 'offset'), whether DST is active ('is_dst'), what the current time zone
- * abbreviation is ('abbr') and the transition time that got to this state (in
- * 'transistion_time');
- */
 timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *tz);
-
-/**
- * Returns the UTC offset currently applicable for the information stored in 't'.
- *
- * The value returned is the UTC offset in seconds East.
- */
 timelib_sll timelib_get_current_offset(timelib_time *t);
-
-/**
- * Displays debugging information about the time zone information in 'tz'.
- */
 void timelib_dump_tzinfo(timelib_tzinfo *tz);
-
-/**
- * Returns a pointer to the built-in time zone database.
- *
- * You must *not* free the returned pointer as it is part of the text segment.
- */
 const timelib_tzdb *timelib_builtin_db(void);
-
-/**
- * Returns a pointer to the start of an array containing a list of timezone identifiers.
- *
- * The amount of entries in the array is returned through the 'count' OUT parameter.
- *
- * Each entry contains the time zone ID ('id' field), and the position within the time zone
- * information ('pos' field). The pos field should not be used.
- */
-const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count);
-
-/* From parse_zoneinfo.c */
-
-/**
- * Scans the directory and subdirectories of 'directory' for valid time zone files and builds
- * a time zone database out of these files.
- *
- * Typically, the directory should point to '/usr/share/zoneinfo'.
- *
- * Unlike 'timelib_builtin_db', the return value of this function must be freed
- * with the 'timelib_zoneinfo_dtor' function.
- */
-timelib_tzdb *timelib_zoneinfo(char *directory);
-
-/**
- * Frees up the resources as created through 'timelib_zoneinfo'.
- *
- * This function must be used to free up all the resources that have been
- * allocated while calling 'timelib_zoneinfo'.
- */
-void timelib_zoneinfo_dtor(timelib_tzdb *tzdb);
+const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count);
+timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper);
 
 /* From timelib.c */
+timelib_tzinfo* timelib_tzinfo_ctor(char *name);
+void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr);
+void timelib_time_tz_name_update(timelib_time* tm, char* tz_name);
+void timelib_tzinfo_dtor(timelib_tzinfo *tz);
+timelib_tzinfo* timelib_tzinfo_clone(timelib_tzinfo *tz);
 
-/**
- * Returns a static string containing an error message belonging to a specific
- * error code.
- */
-const char *timelib_get_error_message(int error_code);
-
-/**
- * Allocates resources for the relative time structure.
- *
- * Must be freed with 'timelib_rel_time_dtor'.
- */
 timelib_rel_time* timelib_rel_time_ctor(void);
-
-/**
- * Frees up the resources as allocated through 'timelib_rel_time_ctor'.
- */
 void timelib_rel_time_dtor(timelib_rel_time* t);
-
-/**
- * Creates a new timelib_rel_time resource and copies over the information
- * from 'tz'.
- *
- * Must be freed with 'timelib_rel_time_dtor'.
- */
 timelib_rel_time* timelib_rel_time_clone(timelib_rel_time *tz);
 
-/**
- * Allocates resources for the time structure.
- *
- * Must be freed with 'timelib_time_dtor'.
- */
 timelib_time* timelib_time_ctor(void);
-
-/**
- * Frees up the resources as allocated through 'timelib_time_ctor'.
- */
+void timelib_time_set_option(timelib_time* tm, int option, void* option_value);
 void timelib_time_dtor(timelib_time* t);
-
-/**
- * Creates a new timelib_time resource and copies over the information
- * from 'orig'.
- *
- * Must be freed with 'timelib_time_dtor'.
- */
 timelib_time* timelib_time_clone(timelib_time* orig);
-
-/**
- * Compares two timelib_time structures and returns which one is earlier in
- * time.
- *
- * To decide which comes earlier it uses the 'sse' (Seconds Since Epoch) and
- * 'us' (microseconds) fields.
- *
- * Returns -1 if t1 < t2, 0 if t1 == t2, and -1 if t1 > t2.
- */
 int timelib_time_compare(timelib_time *t1, timelib_time *t2);
 
-/**
- * Allocates resources for the time offset structure.
- *
- * Must be freed with 'timelib_time_offset_dtor'.
- */
 timelib_time_offset* timelib_time_offset_ctor(void);
-
-/**
- * Frees up the resources as allocated through 'timelib_time_offset_ctor'.
- */
 void timelib_time_offset_dtor(timelib_time_offset* t);
 
-/**
- * Frees up the resources allocated while converting strings to timelib_time
- * structures with the timelib_strtotime and timelib_strtointerval functions.
- */
 void timelib_error_container_dtor(timelib_error_container *errors);
 
-/**
- * Converts the 'sse' value of 'd' to a timelib_long type.
- *
- * If the value fits in the TIMELIB_LONG_MIN and TIMELIB_LONG_MAX range, the
- * value is cast to (timelib_long) and returned. If *error is not a NULL
- * pointer, it will be set to 0.
- *
- * If the value does *not* fit in the range, the function returns 0 and if
- * *error is not a NULL pointer, it will be set to 1.
- *
- * timelib_long is a 32 bit signed long integer on 32 bit platforms, and a 64
- * bit signed long long integer on 64 bit platforms. In other words, it makes
- * sure that the value in 'sse' (which is always a signed long long 64 bit
- * integer) can be used safely outside of the library.
- */
 timelib_long timelib_date_to_int(timelib_time *d, int *error);
-
-/**
- * Displays debugging information about the date/time information stored in 'd'.
- *
- * 'options' is a bit field, where:
- * - 1 controls whether the relative time portion is shown.
- * - 2 controls whether the zone type is shown.
- */
 void timelib_dump_date(timelib_time *d, int options);
-
-/**
- * Displays debugging information about the relative time information stored
- * in 'd'.
- */
 void timelib_dump_rel_time(timelib_rel_time *d);
 
-/**
- * Converts a decimal hour into hour/min/sec components
- */
 void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec);
-
-/**
- * Converts hour/min/sec values into a decimal hour
- */
-void timelib_hms_to_decimal_hour(int hour, int min, int sec, double *h);
+timelib_long timelib_parse_tz_cor(char **ptr);
 
 /* from astro.c */
-
-/**
- * Converts the Unix Epoch time stamp 'ts' to a Julian Day
- *
- * The value returned is the number of whole days since -4714-11-24T12:00:00 UTC
- * (in the proleptic Gregorian calendar):
- * https://en.wikipedia.org/wiki/Julian_day
- */
-double timelib_ts_to_julianday(timelib_sll ts);
-
-/**
- * Converts the Unix Epoch time stamp 'ts' to the J2000 epoch
- *
- * The value returned is the number of whole days since 2000-01-01T12:00:00
- * UTC: https://en.wikipedia.org/wiki/Epoch_(astronomy)#Julian_years_and_J2000
- */
-double timelib_ts_to_j2000(timelib_sll ts);
-
-/**
- * Calculates when the Sun is above a certain latitude.
- *
- * Parameters:
- * - time: A timelib_time time describing that needs to specific midnight for a
- *         specific day.
- * - lon: The longitude of the observer (East positive, West negative).
- * - lat: The latitude of the observer (North positive, South negative).
- * - altit: The altitude. Set to -35/60 for rise/set, -6 for civil twilight,
- *          -12 for nautical, and -18 for astronomical twilight.
- * - upper_limb: set to non-zero for rise/set calculations, and 0 for twilight
- *               calculations.
- *
- * Out Parameters:
- * - h_rise: The decimal hour when the Sun rises
- * - h_set: The decimal hour when the Sun sets
- * - ts_rise: The Unix timestamp of the Sun rising
- * - ts_set: The Unix timestamp of the Sun setting
- * - ts_transit: The Unix timestmap of the Sun transitting through South
- *
- * Return Values:
- * - 0: The Sun rises and sets.
- * - +1: The Sun is always above the horizon. (ts_rise is set to ts_transit -
- *       (12 * 3600); ts_set is set to ts_transit + (12 * 3600).
- * - -1: The Sun is awlays below the horizon. (ts_rise and ts_set are set
- *       to ts_transit)
- */
+double timelib_ts_to_juliandate(timelib_sll ts);
 int timelib_astro_rise_set_altitude(timelib_time *time, double lon, double lat, double altit, int upper_limb, double *h_rise, double *h_set, timelib_sll *ts_rise, timelib_sll *ts_set, timelib_sll *ts_transit);
 
 /* from interval.c */
-
-/**
- * Calculates the difference between two times
- *
- * The result is a timelib_rel_time structure that describes how you can
- * convert from 'one' to 'two' with 'timelib_add'. This does *not* necessarily
- * mean that you can go from 'two' to 'one' by using 'timelib_sub' due to the
- * way months and days are calculated.
- */
 timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two);
-
-/**
- * Adds the relative time information 'interval' to the base time 't'.
- *
- * This can be a relative time as created by 'timelib_diff', but also by more
- * complex statements such as "next workday".
- */
 timelib_time *timelib_add(timelib_time *t, timelib_rel_time *interval);
-
-/**
- * Subtracts the relative time information 'interval' to the base time 't'.
- *
- * This can be a relative time as created by 'timelib_diff'. Unlike with
- * 'timelib_add', this does not support more complex statements such as "next
- * workday".
- */
 timelib_time *timelib_sub(timelib_time *t, timelib_rel_time *interval);
 
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
 #endif
index e112380da052758fb000fffe57bb63fc8b211b2a..c7255727f24e6dd6b99e133ee42677c1a3c5c4ad 100644 (file)
@@ -69,15 +69,12 @@ TL_CHECK_INT_TYPE(uint32_t)
 
 dnl Check for headers needed by timelib
 AC_CHECK_HEADERS([ \
-sys/time.h \
 sys/types.h \
+inttypes.h \
 stdint.h \
-dirent.h \
 string.h \
-strings.h \
-unistd.h \
-io.h
+stdlib.h
 ])
 
 dnl Check for strtoll, atoll
-AC_CHECK_FUNCS(strtoll atoll strftime gettimeofday)
+AC_CHECK_FUNCS(strtoll atoll strftime)
diff --git a/ext/date/lib/timelib_private.h b/ext/date/lib/timelib_private.h
deleted file mode 100644 (file)
index cd402e0..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 Derick Rethans
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __TIMELIB_PRIVATE_H__
-#define __TIMELIB_PRIVATE_H__
-
-#ifdef HAVE_SETLOCALE
-# include "locale.h"
-#endif
-
-#ifdef HAVE_TIMELIB_CONFIG_H
-# include "timelib_config.h"
-#endif
-
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-
-#ifdef _WIN32
-# ifdef HAVE_WINSOCK2_H
-#  include <winsock2.h>
-# endif
-#endif
-
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#if defined(HAVE_STDINT_H)
-# include <stdint.h>
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_IO_H
-# include <io.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#endif
-
-#include <stdio.h>
-
-#if HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#define TIMELIB_SECOND   1
-#define TIMELIB_MINUTE   2
-#define TIMELIB_HOUR     3
-#define TIMELIB_DAY      4
-#define TIMELIB_MONTH    5
-#define TIMELIB_YEAR     6
-#define TIMELIB_WEEKDAY  7
-#define TIMELIB_SPECIAL  8
-#define TIMELIB_MICROSEC 9
-
-#define TIMELIB_SPECIAL_WEEKDAY                   0x01
-#define TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH      0x02
-#define TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH 0x03
-
-#define TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH        0x01
-#define TIMELIB_SPECIAL_LAST_DAY_OF_MONTH         0x02
-
-#define SECS_PER_ERA   TIMELIB_LL_CONST(12622780800)
-#define SECS_PER_DAY   86400
-#define DAYS_PER_YEAR    365
-#define DAYS_PER_LYEAR   366
-/* 400*365 days + 97 leap days */
-#define DAYS_PER_LYEAR_PERIOD 146097
-#define YEARS_PER_LYEAR_PERIOD 400
-
-#define TIMELIB_TZINFO_PHP       0x01
-#define TIMELIB_TZINFO_ZONEINFO  0x02
-
-#define timelib_is_leap(y) ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
-
-#define TIMELIB_DEBUG(s)  if (0) { s }
-
-#define TIMELIB_TIME_FREE(m)    \
-       if (m) {        \
-               timelib_free(m);    \
-               m = NULL;   \
-       }
-
-typedef struct ttinfo
-{
-       int32_t      offset;
-       int          isdst;
-       unsigned int abbr_idx;
-
-       unsigned int isstdcnt;
-       unsigned int isgmtcnt;
-} ttinfo;
-
-typedef struct tlinfo
-{
-       int32_t  trans;
-       int32_t  offset;
-} tlinfo;
-
-
-#ifndef LONG_MAX
-#define LONG_MAX 2147483647L
-#endif
-
-#ifndef LONG_MIN
-#define LONG_MIN (- LONG_MAX - 1)
-#endif
-
-#if defined(_MSC_VER) && !defined(strcasecmp)
-#define strcasecmp stricmp
-#endif
-
-#if defined(_MSC_VER) && !defined(strncasecmp)
-#define strncasecmp strnicmp
-#endif
-
-/* From unixtime2tm.c */
-int timelib_apply_localtime(timelib_time *t, unsigned int localtime);
-
-/* From parse_tz.c */
-void timelib_time_tz_abbr_update(timelib_time* tm, char* tz_abbr);
-
-
-#endif
diff --git a/ext/date/lib/timelib_structs.h b/ext/date/lib/timelib_structs.h
new file mode 100644 (file)
index 0000000..d381757
--- /dev/null
@@ -0,0 +1,315 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2015 Derick Rethans
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __TIMELIB_STRUCTS_H__
+#define __TIMELIB_STRUCTS_H__
+
+#ifdef HAVE_TIMELIB_CONFIG_H
+# include "timelib_config.h"
+#endif
+
+#ifndef TIMELIB_OMIT_STDINT
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#if defined(HAVE_INTTYPES_H)
+#include <inttypes.h>
+#elif defined(HAVE_STDINT_H)
+#include <stdint.h>
+#endif
+
+# ifndef HAVE_INT32_T
+#  if SIZEOF_INT == 4
+typedef int int32_t;
+#  elif SIZEOF_LONG == 4
+typedef long int int32_t;
+#  endif
+# endif
+
+# ifndef HAVE_UINT32_T
+#  if SIZEOF_INT == 4
+typedef unsigned int uint32_t;
+#  elif SIZEOF_LONG == 4
+typedef unsigned long int uint32_t;
+#  endif
+# endif
+
+#ifdef _WIN32
+# if _MSC_VER >= 1600
+# include <stdint.h>
+# endif
+# ifndef SIZEOF_INT
+#  define SIZEOF_INT 4
+# endif
+# ifndef SIZEOF_LONG
+#  define SIZEOF_LONG 4
+# endif
+# ifndef int32_t
+typedef __int32           int32_t;
+# endif
+# ifndef uint32_t
+typedef unsigned __int32  uint32_t;
+# endif
+# ifndef int64_t
+typedef __int64           int64_t;
+# endif
+# ifndef uint64_t
+typedef unsigned __int64  uint64_t;
+# endif
+# ifndef PRId32
+#  define PRId32       "I32d"
+# endif
+# ifndef PRIu32
+#  define PRIu32       "I32u"
+# endif
+# ifndef PRId64
+#  define PRId64       "I64d"
+# endif
+# ifndef PRIu64
+#  define PRIu64       "I64u"
+# endif
+# ifndef INT32_MAX
+#define INT32_MAX    _I32_MAX
+# endif
+# ifndef INT32_MIN
+#define INT32_MIN    ((int32_t)_I32_MIN)
+# endif
+# ifndef UINT32_MAX
+#define UINT32_MAX   _UI32_MAX
+# endif
+# ifndef INT64_MIN
+#define INT64_MIN    ((int64_t)_I64_MIN)
+# endif
+# ifndef INT64_MAX
+#define INT64_MAX    _I64_MAX
+# endif
+# ifndef UINT64_MAX
+#define UINT64_MAX   _UI64_MAX
+# endif
+#endif
+
+#endif /* TIMELIB_OMIT_STDINT */
+
+#include <stdio.h>
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64)
+typedef int64_t timelib_long;
+typedef uint64_t timelib_ulong;
+# define TIMELIB_LONG_MAX INT64_MAX
+# define TIMELIB_LONG_MIN INT64_MIN
+# define TIMELIB_ULONG_MAX UINT64_MAX
+# define TIMELIB_LONG_FMT "%" PRId64
+# define TIMELIB_ULONG_FMT "%" PRIu64
+#else
+typedef int32_t timelib_long;
+typedef uint32_t timelib_ulong;
+# define TIMELIB_LONG_MAX INT32_MAX
+# define TIMELIB_LONG_MIN INT32_MIN
+# define TIMELIB_ULONG_MAX UINT32_MAX
+# define TIMELIB_LONG_FMT "%" PRId32
+# define TIMELIB_ULONG_FMT "%" PRIu32
+#endif
+
+#if defined(_MSC_VER)
+typedef uint64_t timelib_ull;
+typedef int64_t timelib_sll;
+# define TIMELIB_LL_CONST(n) n ## i64
+#else
+typedef unsigned long long timelib_ull;
+typedef signed long long timelib_sll;
+# define TIMELIB_LL_CONST(n) n ## ll
+#endif
+
+typedef struct ttinfo
+{
+       int32_t      offset;
+       int          isdst;
+       unsigned int abbr_idx;
+
+       unsigned int isstdcnt;
+       unsigned int isgmtcnt;
+} ttinfo;
+
+typedef struct tlinfo
+{
+       int32_t  trans;
+       int32_t  offset;
+} tlinfo;
+
+typedef struct tlocinfo
+{
+       char country_code[3];
+       double latitude;
+       double longitude;
+       char *comments;
+} tlocinfo;
+
+typedef struct timelib_tzinfo
+{
+       char    *name;
+       struct {
+               uint32_t ttisgmtcnt;
+               uint32_t ttisstdcnt;
+               uint32_t leapcnt;
+               uint32_t timecnt;
+               uint32_t typecnt;
+               uint32_t charcnt;
+       } bit32;
+       struct {
+               uint64_t ttisgmtcnt;
+               uint64_t ttisstdcnt;
+               uint64_t leapcnt;
+               uint64_t timecnt;
+               uint64_t typecnt;
+               uint64_t charcnt;
+       } bit64;
+
+       int32_t *trans;
+       unsigned char *trans_idx;
+
+       ttinfo  *type;
+       char    *timezone_abbr;
+
+       tlinfo  *leap_times;
+       unsigned char bc;
+       tlocinfo location;
+} timelib_tzinfo;
+
+typedef struct timelib_special {
+       unsigned int type;
+       timelib_sll amount;
+} timelib_special;
+
+typedef struct timelib_rel_time {
+       timelib_sll y, m, d; /* Years, Months and Days */
+       timelib_sll h, i, s; /* Hours, mInutes and Seconds */
+
+       int weekday; /* Stores the day in 'next monday' */
+       int weekday_behavior; /* 0: the current day should *not* be counted when advancing forwards; 1: the current day *should* be counted */
+
+       int first_last_day_of;
+       int invert; /* Whether the difference should be inverted */
+       timelib_sll days; /* Contains the number of *days*, instead of Y-M-D differences */
+
+       timelib_special  special;
+       unsigned int   have_weekday_relative, have_special_relative;
+} timelib_rel_time;
+
+typedef struct timelib_time_offset {
+       int32_t      offset;
+       unsigned int leap_secs;
+       unsigned int is_dst;
+       char        *abbr;
+       timelib_sll  transistion_time;
+} timelib_time_offset;
+
+typedef struct timelib_time {
+       timelib_sll      y, m, d;     /* Year, Month, Day */
+       timelib_sll      h, i, s;     /* Hour, mInute, Second */
+       double           f;           /* Fraction */
+       int              z;           /* GMT offset in minutes */
+       char            *tz_abbr;     /* Timezone abbreviation (display only) */
+       timelib_tzinfo  *tz_info;     /* Timezone structure */
+       signed int       dst;         /* Flag if we were parsing a DST zone */
+       timelib_rel_time relative;
+
+       timelib_sll      sse;         /* Seconds since epoch */
+
+       unsigned int   have_time, have_date, have_zone, have_relative, have_weeknr_day;
+
+       unsigned int   sse_uptodate; /* !0 if the sse member is up to date with the date/time members */
+       unsigned int   tim_uptodate; /* !0 if the date/time members are up to date with the sse member */
+       unsigned int   is_localtime; /*  1 if the current struct represents localtime, 0 if it is in GMT */
+       unsigned int   zone_type;    /*  1 time offset,
+                                     *  3 TimeZone identifier,
+                                     *  2 TimeZone abbreviation */
+} timelib_time;
+
+typedef struct timelib_abbr_info {
+       timelib_sll  utc_offset;
+       char        *abbr;
+       int          dst;
+} timelib_abbr_info;
+
+typedef struct timelib_error_message {
+       int         position;
+       char        character;
+       char       *message;
+} timelib_error_message;
+
+typedef struct timelib_error_container {
+       struct timelib_error_message *error_messages;
+       struct timelib_error_message *warning_messages;
+       int                           error_count;
+       int                           warning_count;
+} timelib_error_container;
+
+typedef struct _timelib_tz_lookup_table {
+       char       *name;
+       int         type;
+       float       gmtoffset;
+       char       *full_tz_name;
+} timelib_tz_lookup_table;
+
+typedef struct _timelib_tzdb_index_entry {
+       char *id;
+       unsigned int pos;
+} timelib_tzdb_index_entry;
+
+typedef struct _timelib_tzdb {
+       char                           *version;
+       int                             index_size;
+       const timelib_tzdb_index_entry *index;
+       const unsigned char            *data;
+} timelib_tzdb;
+
+#define TIMELIB_ZONETYPE_OFFSET 1
+#define TIMELIB_ZONETYPE_ABBR   2
+#define TIMELIB_ZONETYPE_ID     3
+
+#define SECS_PER_ERA   TIMELIB_LL_CONST(12622780800)
+#define SECS_PER_DAY   86400
+#define DAYS_PER_YEAR    365
+#define DAYS_PER_LYEAR   366
+/* 400*365 days + 97 leap days */
+#define DAYS_PER_LYEAR_PERIOD 146097
+#define YEARS_PER_LYEAR_PERIOD 400
+
+#define timelib_is_leap(y) ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
+
+#define TIMELIB_DEBUG(s)  if (0) { s }
+
+#endif
index 5859d22f66aa0e75c64fd2cb9ea776983465be37..41471909ac9e96116311c5bf8d54cab290e2e379 100644 (file)
@@ -4,18 +4,23 @@
        { "acdt",  1,  37800, "Australia/North"               },
        { "acdt",  1,  37800, "Australia/South"               },
        { "acdt",  1,  37800, "Australia/Yancowinna"          },
-       { "acst",  0,  32400, "Australia/Adelaide"            },
+       { "acst",  1, -14400, "America/Porto_Acre"            },
        { "acst",  0,  34200, "Australia/Adelaide"            },
-       { "acst",  0,  32400, "Australia/Broken_Hill"         },
-       { "acst",  0,  32400, "Australia/Darwin"              },
-       { "acst",  0,  32400, "Australia/North"               },
-       { "acst",  0,  32400, "Australia/South"               },
-       { "acst",  0,  32400, "Australia/Yancowinna"          },
+       { "acst",  1, -14400, "America/Eirunepe"              },
+       { "acst",  1, -14400, "America/Rio_Branco"            },
+       { "acst",  1, -14400, "Brazil/Acre"                   },
+       { "acst",  0,  34200, "Asia/Jayapura"                 },
        { "acst",  0,  34200, "Australia/Broken_Hill"         },
        { "acst",  0,  34200, "Australia/Darwin"              },
        { "acst",  0,  34200, "Australia/North"               },
        { "acst",  0,  34200, "Australia/South"               },
        { "acst",  0,  34200, "Australia/Yancowinna"          },
+       { "act",   0, -18000, "America/Porto_Acre"            },
+       { "act",   0, -18000, "America/Eirunepe"              },
+       { "act",   0, -18000, "America/Rio_Branco"            },
+       { "act",   0, -18000, "Brazil/Acre"                   },
+       { "acwdt", 1,  35100, "Australia/Eucla"               },
+       { "acwst", 0,  31500, "Australia/Eucla"               },
        { "addt",  1,  -7200, "America/Goose_Bay"             },
        { "addt",  1,  -7200, "America/Pangnirtung"           },
        { "adt",   1, -10800, "America/Halifax"               },
@@ -29,6 +34,7 @@
        { "adt",   1, -10800, "America/Thule"                 },
        { "adt",   1, -10800, "Atlantic/Bermuda"              },
        { "adt",   1, -10800, "Canada/Atlantic"               },
+       { "adt",   1,  14400, "Asia/Baghdad"                  },
        { "aedt",  1,  39600, "Australia/Melbourne"           },
        { "aedt",  1,  39600, "Antarctica/Macquarie"          },
        { "aedt",  1,  39600, "Australia/ACT"                 },
        { "aest",  0,  36000, "Australia/Sydney"              },
        { "aest",  0,  36000, "Australia/Tasmania"            },
        { "aest",  0,  36000, "Australia/Victoria"            },
+       { "aft",   0,  16200, "Asia/Kabul"                    },
+       { "aft",   0,  14400, "Asia/Kabul"                    },
        { "ahdt",  1, -32400, "America/Anchorage"             },
        { "ahst",  0, -36000, "America/Anchorage"             },
        { "ahst",  0, -36000, "America/Adak"                  },
        { "ahst",  0, -36000, "America/Atka"                  },
        { "akdt",  1, -28800, "America/Anchorage"             },
        { "akdt",  1, -28800, "America/Juneau"                },
-       { "akdt",  1, -28800, "America/Metlakatla"            },
        { "akdt",  1, -28800, "America/Nome"                  },
        { "akdt",  1, -28800, "America/Sitka"                 },
        { "akdt",  1, -28800, "America/Yakutat"               },
        { "akst",  0, -32400, "America/Anchorage"             },
        { "akst",  0, -32400, "America/Juneau"                },
-       { "akst",  0, -32400, "America/Metlakatla"            },
        { "akst",  0, -32400, "America/Nome"                  },
        { "akst",  0, -32400, "America/Sitka"                 },
        { "akst",  0, -32400, "America/Yakutat"               },
+       { "aktst", 1,  21600, "Asia/Aqtobe"                   },
+       { "aktt",  0,  21600, "Asia/Aqtobe"                   },
+       { "aktt",  0,  14400, "Asia/Aqtobe"                   },
+       { "aktt",  0,  18000, "Asia/Aqtobe"                   },
+       { "almst", 1,  25200, "Asia/Almaty"                   },
+       { "almt",  0,  21600, "Asia/Almaty"                   },
+       { "almt",  0,  18000, "Asia/Almaty"                   },
+       { "amst",  1,  18000, "Asia/Yerevan"                  },
+       { "amst",  1,  14400, "Asia/Yerevan"                  },
+       { "amst",  1, -10800, "America/Boa_Vista"             },
+       { "amst",  1, -10800, "America/Campo_Grande"          },
+       { "amst",  1, -10800, "America/Cuiaba"                },
+       { "amst",  1, -10800, "America/Manaus"                },
+       { "amst",  1, -10800, "America/Porto_Velho"           },
+       { "amst",  1, -10800, "America/Santarem"              },
+       { "amst",  1, -10800, "Brazil/West"                   },
+       { "amt",   0,  14400, "Asia/Yerevan"                  },
+       { "amt",   0,  10800, "Asia/Yerevan"                  },
        { "amt",   0, -13840, "America/Asuncion"              },
+       { "amt",   0, -14400, "America/Boa_Vista"             },
+       { "amt",   0, -14400, "America/Campo_Grande"          },
+       { "amt",   0, -14400, "America/Cuiaba"                },
+       { "amt",   0, -14400, "America/Eirunepe"              },
+       { "amt",   0, -14400, "America/Manaus"                },
+       { "amt",   0, -14400, "America/Porto_Acre"            },
+       { "amt",   0, -14400, "America/Porto_Velho"           },
+       { "amt",   0, -14400, "America/Rio_Branco"            },
+       { "amt",   0, -14400, "America/Santarem"              },
+       { "amt",   0, -14400, "Brazil/Acre"                   },
+       { "amt",   0, -14400, "Brazil/West"                   },
        { "amt",   0,   1172, "Europe/Amsterdam"              },
        { "amt",   0,   5692, "Europe/Athens"                 },
+       { "anast", 1,  50400, "Asia/Anadyr"                   },
+       { "anast", 1,  43200, "Asia/Anadyr"                   },
+       { "anast", 1,  46800, "Asia/Anadyr"                   },
+       { "anat",  0,  46800, "Asia/Anadyr"                   },
+       { "anat",  0,  39600, "Asia/Anadyr"                   },
+       { "anat",  0,  43200, "Asia/Anadyr"                   },
+       { "ant",   0, -16200, "America/Curacao"               },
+       { "ant",   0, -16200, "America/Aruba"                 },
+       { "ant",   0, -16200, "America/Kralendijk"            },
+       { "ant",   0, -16200, "America/Lower_Princes"         },
        { "apt",   1, -10800, "America/Halifax"               },
        { "apt",   1, -10800, "America/Blanc-Sablon"          },
        { "apt",   1, -10800, "America/Glace_Bay"             },
        { "apt",   1, -10800, "America/Pangnirtung"           },
        { "apt",   1, -10800, "America/Puerto_Rico"           },
        { "apt",   1, -10800, "Canada/Atlantic"               },
-       { "apt",   1, -32400, "America/Anchorage"             },
+       { "aqtst", 1,  21600, "Asia/Aqtau"                    },
+       { "aqtst", 1,  18000, "Asia/Aqtau"                    },
+       { "aqtst", 1,  21600, "Asia/Aqtobe"                   },
+       { "aqtt",  0,  18000, "Asia/Aqtau"                    },
+       { "aqtt",  0,  14400, "Asia/Aqtau"                    },
+       { "aqtt",  0,  18000, "Asia/Aqtobe"                   },
+       { "arst",  1,  -7200, "America/Buenos_Aires"          },
+       { "arst",  1, -10800, "America/Buenos_Aires"          },
+       { "arst",  1, -10800, "America/Argentina/Buenos_Aires" },
+       { "arst",  1, -10800, "America/Argentina/Catamarca"   },
+       { "arst",  1, -10800, "America/Argentina/ComodRivadavia" },
+       { "arst",  1, -10800, "America/Argentina/Cordoba"     },
+       { "arst",  1, -10800, "America/Argentina/Jujuy"       },
+       { "arst",  1, -10800, "America/Argentina/La_Rioja"    },
+       { "arst",  1, -10800, "America/Argentina/Mendoza"     },
+       { "arst",  1, -10800, "America/Argentina/Rio_Gallegos" },
+       { "arst",  1, -10800, "America/Argentina/Salta"       },
+       { "arst",  1, -10800, "America/Argentina/San_Juan"    },
+       { "arst",  1, -10800, "America/Argentina/San_Luis"    },
+       { "arst",  1, -10800, "America/Argentina/Tucuman"     },
+       { "arst",  1, -10800, "America/Argentina/Ushuaia"     },
+       { "arst",  1, -10800, "America/Catamarca"             },
+       { "arst",  1, -10800, "America/Cordoba"               },
+       { "arst",  1, -10800, "America/Jujuy"                 },
+       { "arst",  1, -10800, "America/Mendoza"               },
+       { "arst",  1, -10800, "America/Rosario"               },
+       { "arst",  1, -10800, "Antarctica/Palmer"             },
+       { "arst",  1,  -7200, "America/Argentina/Buenos_Aires" },
+       { "arst",  1,  -7200, "America/Argentina/Catamarca"   },
+       { "arst",  1,  -7200, "America/Argentina/ComodRivadavia" },
+       { "arst",  1,  -7200, "America/Argentina/Cordoba"     },
+       { "arst",  1,  -7200, "America/Argentina/Jujuy"       },
+       { "arst",  1,  -7200, "America/Argentina/La_Rioja"    },
+       { "arst",  1,  -7200, "America/Argentina/Mendoza"     },
+       { "arst",  1,  -7200, "America/Argentina/Rio_Gallegos" },
+       { "arst",  1,  -7200, "America/Argentina/Salta"       },
+       { "arst",  1,  -7200, "America/Argentina/San_Juan"    },
+       { "arst",  1,  -7200, "America/Argentina/San_Luis"    },
+       { "arst",  1,  -7200, "America/Argentina/Tucuman"     },
+       { "arst",  1,  -7200, "America/Argentina/Ushuaia"     },
+       { "arst",  1,  -7200, "America/Catamarca"             },
+       { "arst",  1,  -7200, "America/Cordoba"               },
+       { "arst",  1,  -7200, "America/Jujuy"                 },
+       { "arst",  1,  -7200, "America/Mendoza"               },
+       { "arst",  1,  -7200, "America/Rosario"               },
+       { "arst",  1,  -7200, "Antarctica/Palmer"             },
+       { "art",   0, -10800, "America/Buenos_Aires"          },
+       { "art",   0, -14400, "America/Buenos_Aires"          },
+       { "art",   0, -10800, "America/Argentina/Buenos_Aires" },
+       { "art",   0, -10800, "America/Argentina/Catamarca"   },
+       { "art",   0, -10800, "America/Argentina/ComodRivadavia" },
+       { "art",   0, -10800, "America/Argentina/Cordoba"     },
+       { "art",   0, -10800, "America/Argentina/Jujuy"       },
+       { "art",   0, -10800, "America/Argentina/La_Rioja"    },
+       { "art",   0, -10800, "America/Argentina/Mendoza"     },
+       { "art",   0, -10800, "America/Argentina/Rio_Gallegos" },
+       { "art",   0, -10800, "America/Argentina/Salta"       },
+       { "art",   0, -10800, "America/Argentina/San_Juan"    },
+       { "art",   0, -10800, "America/Argentina/San_Luis"    },
+       { "art",   0, -10800, "America/Argentina/Tucuman"     },
+       { "art",   0, -10800, "America/Argentina/Ushuaia"     },
+       { "art",   0, -10800, "America/Catamarca"             },
+       { "art",   0, -10800, "America/Cordoba"               },
+       { "art",   0, -10800, "America/Jujuy"                 },
+       { "art",   0, -10800, "America/Mendoza"               },
+       { "art",   0, -10800, "America/Rosario"               },
+       { "art",   0, -10800, "Antarctica/Palmer"             },
+       { "art",   0, -14400, "America/Argentina/Buenos_Aires" },
+       { "art",   0, -14400, "America/Argentina/Catamarca"   },
+       { "art",   0, -14400, "America/Argentina/ComodRivadavia" },
+       { "art",   0, -14400, "America/Argentina/Cordoba"     },
+       { "art",   0, -14400, "America/Argentina/Jujuy"       },
+       { "art",   0, -14400, "America/Argentina/La_Rioja"    },
+       { "art",   0, -14400, "America/Argentina/Mendoza"     },
+       { "art",   0, -14400, "America/Argentina/Rio_Gallegos" },
+       { "art",   0, -14400, "America/Argentina/Salta"       },
+       { "art",   0, -14400, "America/Argentina/San_Juan"    },
+       { "art",   0, -14400, "America/Argentina/San_Luis"    },
+       { "art",   0, -14400, "America/Argentina/Tucuman"     },
+       { "art",   0, -14400, "America/Argentina/Ushuaia"     },
+       { "art",   0, -14400, "America/Catamarca"             },
+       { "art",   0, -14400, "America/Cordoba"               },
+       { "art",   0, -14400, "America/Jujuy"                 },
+       { "art",   0, -14400, "America/Mendoza"               },
+       { "art",   0, -14400, "America/Rosario"               },
+       { "art",   0, -14400, "Antarctica/Palmer"             },
+       { "ashst", 1,  21600, "Asia/Ashkhabad"                },
+       { "ashst", 1,  18000, "Asia/Ashkhabad"                },
+       { "ashst", 1,  18000, "Asia/Ashgabat"                 },
+       { "ashst", 1,  21600, "Asia/Ashgabat"                 },
+       { "asht",  0,  18000, "Asia/Ashkhabad"                },
+       { "asht",  0,  14400, "Asia/Ashkhabad"                },
+       { "asht",  0,  14400, "Asia/Ashgabat"                 },
+       { "asht",  0,  18000, "Asia/Ashgabat"                 },
+       { "ast",   0,  10800, "Asia/Riyadh"                   },
        { "ast",   0, -14400, "America/Anguilla"              },
        { "ast",   0, -14400, "America/Antigua"               },
        { "ast",   0, -14400, "America/Aruba"                 },
        { "ast",   0, -14400, "America/Virgin"                },
        { "ast",   0, -14400, "Atlantic/Bermuda"              },
        { "ast",   0, -14400, "Canada/Atlantic"               },
-       { "ast",   0, -36000, "America/Anchorage"             },
+       { "ast",   0,  10800, "Asia/Aden"                     },
+       { "ast",   0,  10800, "Asia/Baghdad"                  },
+       { "ast",   0,  10800, "Asia/Bahrain"                  },
+       { "ast",   0,  10800, "Asia/Kuwait"                   },
+       { "ast",   0,  10800, "Asia/Qatar"                    },
        { "awdt",  1,  32400, "Australia/Perth"               },
        { "awdt",  1,  32400, "Australia/West"                },
        { "awst",  0,  28800, "Australia/Perth"               },
+       { "awst",  0,  28800, "Antarctica/Casey"              },
        { "awst",  0,  28800, "Australia/West"                },
        { "awt",   1, -10800, "America/Halifax"               },
        { "awt",   1, -10800, "America/Blanc-Sablon"          },
        { "awt",   1, -10800, "America/Pangnirtung"           },
        { "awt",   1, -10800, "America/Puerto_Rico"           },
        { "awt",   1, -10800, "Canada/Atlantic"               },
-       { "awt",   1, -32400, "America/Anchorage"             },
+       { "azomt", 1,      0, "Atlantic/Azores"               },
+       { "azost", 1,      0, "Atlantic/Azores"               },
+       { "azost", 1,  -3600, "Atlantic/Azores"               },
+       { "azot",  0,  -3600, "Atlantic/Azores"               },
+       { "azot",  0,  -7200, "Atlantic/Azores"               },
+       { "azst",  1,  18000, "Asia/Baku"                     },
+       { "azst",  1,  14400, "Asia/Baku"                     },
+       { "azt",   0,  14400, "Asia/Baku"                     },
+       { "azt",   0,  10800, "Asia/Baku"                     },
+       { "bakst", 1,  18000, "Asia/Baku"                     },
+       { "bakst", 1,  14400, "Asia/Baku"                     },
+       { "bakt",  0,  14400, "Asia/Baku"                     },
+       { "bakt",  0,  10800, "Asia/Baku"                     },
        { "bdst",  1,   7200, "Europe/London"                 },
+       { "bdst",  1,  25200, "Asia/Dacca"                    },
+       { "bdst",  1,  25200, "Asia/Dhaka"                    },
        { "bdst",  1,   7200, "Europe/Belfast"                },
        { "bdst",  1,   7200, "Europe/Gibraltar"              },
        { "bdst",  1,   7200, "Europe/Guernsey"               },
        { "bdst",  1,   7200, "Europe/Jersey"                 },
        { "bdst",  1,   7200, "GB"                            },
        { "bdt",   1, -36000, "America/Adak"                  },
+       { "bdt",   0,  21600, "Asia/Dacca"                    },
        { "bdt",   1, -36000, "America/Atka"                  },
        { "bdt",   1, -36000, "America/Nome"                  },
+       { "bdt",   0,  21600, "Asia/Dhaka"                    },
+       { "beat",  0,   9000, "Africa/Mogadishu"              },
+       { "beat",  0,   9000, "Africa/Addis_Ababa"            },
+       { "beat",  0,   9000, "Africa/Asmara"                 },
+       { "beat",  0,   9000, "Africa/Asmera"                 },
+       { "beat",  0,   9000, "Africa/Dar_es_Salaam"          },
+       { "beat",  0,   9000, "Africa/Djibouti"               },
+       { "beat",  0,   9000, "Africa/Kampala"                },
+       { "beat",  0,   9000, "Africa/Nairobi"                },
+       { "beat",  0,   9000, "Indian/Antananarivo"           },
+       { "beat",  0,   9000, "Indian/Comoro"                 },
+       { "beat",  0,   9000, "Indian/Mayotte"                },
+       { "beaut", 0,   9900, "Africa/Nairobi"                },
+       { "beaut", 0,   9900, "Africa/Addis_Ababa"            },
+       { "beaut", 0,   9900, "Africa/Asmara"                 },
+       { "beaut", 0,   9900, "Africa/Asmera"                 },
+       { "beaut", 0,   9900, "Africa/Dar_es_Salaam"          },
+       { "beaut", 0,   9900, "Africa/Djibouti"               },
+       { "beaut", 0,   9900, "Africa/Kampala"                },
+       { "beaut", 0,   9900, "Africa/Mogadishu"              },
+       { "beaut", 0,   9900, "Indian/Antananarivo"           },
+       { "beaut", 0,   9900, "Indian/Comoro"                 },
+       { "beaut", 0,   9900, "Indian/Mayotte"                },
        { "bmt",   0, -14309, "America/Barbados"              },
        { "bmt",   0,   6264, "Europe/Tiraspol"               },
        { "bmt",   0, -17776, "America/Bogota"                },
-       { "bmt",   0,   1050, "Europe/Brussels"               },
        { "bmt",   0,  10656, "Asia/Baghdad"                  },
-       { "bmt",   0,   1786, "Europe/Busingen"               },
-       { "bmt",   0,   1786, "Europe/Vaduz"                  },
-       { "bmt",   0,   1786, "Europe/Zurich"                 },
        { "bmt",   0,  24124, "Asia/Bangkok"                  },
        { "bmt",   0,  24124, "Asia/Phnom_Penh"               },
        { "bmt",   0,  24124, "Asia/Vientiane"                },
        { "bmt",   0,  25632, "Asia/Jakarta"                  },
        { "bmt",   0,   6264, "Europe/Bucharest"              },
        { "bmt",   0,   6264, "Europe/Chisinau"               },
+       { "bnt",   0,  28800, "Asia/Brunei"                   },
+       { "bnt",   0,  27000, "Asia/Brunei"                   },
+       { "bortst", 1,  30000, "Asia/Kuching"                  },
+       { "bort",  0,  28800, "Asia/Kuching"                  },
+       { "bort",  0,  27000, "Asia/Kuching"                  },
        { "bost",  1, -12756, "America/La_Paz"                },
+       { "bot",   0, -14400, "America/La_Paz"                },
+       { "brst",  1,  -7200, "America/Sao_Paulo"             },
+       { "brst",  1,  -7200, "America/Araguaina"             },
+       { "brst",  1,  -7200, "America/Bahia"                 },
+       { "brst",  1,  -7200, "America/Belem"                 },
+       { "brst",  1,  -7200, "America/Fortaleza"             },
+       { "brst",  1,  -7200, "America/Maceio"                },
+       { "brst",  1,  -7200, "America/Recife"                },
+       { "brst",  1,  -7200, "Brazil/East"                   },
+       { "brt",   0, -10800, "America/Sao_Paulo"             },
+       { "brt",   0, -10800, "America/Araguaina"             },
+       { "brt",   0, -10800, "America/Bahia"                 },
+       { "brt",   0, -10800, "America/Belem"                 },
+       { "brt",   0, -10800, "America/Fortaleza"             },
+       { "brt",   0, -10800, "America/Maceio"                },
+       { "brt",   0, -10800, "America/Recife"                },
+       { "brt",   0, -10800, "America/Santarem"              },
+       { "brt",   0, -10800, "Brazil/East"                   },
        { "bst",   1,   3600, "Europe/London"                 },
        { "bst",   0,   3600, "Europe/London"                 },
        { "bst",   0, -39600, "America/Adak"                  },
        { "bst",   0, -39600, "America/Atka"                  },
        { "bst",   0, -39600, "America/Nome"                  },
+       { "bst",   0, -39600, "Pacific/Midway"                },
+       { "bst",   0, -39600, "Pacific/Pago_Pago"             },
+       { "bst",   0, -39600, "Pacific/Samoa"                 },
        { "bst",   0,   3600, "Europe/Belfast"                },
        { "bst",   0,   3600, "Europe/Guernsey"               },
        { "bst",   0,   3600, "Europe/Isle_of_Man"            },
        { "bst",   1,   3600, "Europe/Isle_of_Man"            },
        { "bst",   1,   3600, "Europe/Jersey"                 },
        { "bst",   1,   3600, "GB"                            },
+       { "bst",   0,  39600, "Pacific/Bougainville"          },
+       { "btt",   0,  21600, "Asia/Thimbu"                   },
+       { "btt",   0,  21600, "Asia/Thimphu"                  },
+       { "burt",  0,  23400, "Asia/Kolkata"                  },
+       { "burt",  0,  23400, "Asia/Calcutta"                 },
+       { "burt",  0,  23400, "Asia/Dacca"                    },
+       { "burt",  0,  23400, "Asia/Dhaka"                    },
+       { "burt",  0,  23400, "Asia/Rangoon"                  },
+       { "cant",  0,  -3600, "Atlantic/Canary"               },
+       { "capt",  1, -32400, "America/Anchorage"             },
        { "cast",  0,  34200, "Australia/Adelaide"            },
        { "cast",  1,  10800, "Africa/Juba"                   },
        { "cast",  1,  10800, "Africa/Khartoum"               },
+       { "cast",  0,  39600, "Antarctica/Casey"              },
+       { "cat",   0, -36000, "America/Anchorage"             },
        { "cat",   0,   7200, "Africa/Khartoum"               },
        { "cat",   0,   7200, "Africa/Blantyre"               },
        { "cat",   0,   7200, "Africa/Bujumbura"              },
        { "cat",   0,   7200, "Africa/Lusaka"                 },
        { "cat",   0,   7200, "Africa/Maputo"                 },
        { "cat",   0,   7200, "Africa/Windhoek"               },
+       { "cawt",  1, -32400, "America/Anchorage"             },
+       { "cct",   0,  23400, "Indian/Cocos"                  },
        { "cddt",  1, -14400, "America/Rankin_Inlet"          },
        { "cddt",  1, -14400, "America/Resolute"              },
        { "cdt",   1, -18000, "America/Chicago"               },
        { "cdt",   1,  32400, "Asia/Chongqing"                },
        { "cdt",   1,  32400, "Asia/Chungking"                },
        { "cdt",   1,  32400, "Asia/Harbin"                   },
-       { "cdt",   1,  32400, "Asia/Macao"                    },
-       { "cdt",   1,  32400, "Asia/Macau"                    },
        { "cdt",   1,  32400, "Asia/Taipei"                   },
        { "cdt",   1,  32400, "PRC"                           },
        { "cdt",   1,  32400, "ROC"                           },
        { "cest",  1,   7200, "Africa/Ceuta"                  },
        { "cest",  1,   7200, "Africa/Tripoli"                },
        { "cest",  1,   7200, "Africa/Tunis"                  },
+       { "cest",  1,   7200, "Antarctica/Troll"              },
        { "cest",  1,   7200, "Arctic/Longyearbyen"           },
        { "cest",  1,   7200, "Atlantic/Jan_Mayen"            },
        { "cest",  1,   7200, "Europe/Amsterdam"              },
        { "cet",   0,   3600, "Europe/Zagreb"                 },
        { "cet",   0,   3600, "Europe/Zaporozhye"             },
        { "cet",   0,   3600, "Europe/Zurich"                 },
+       { "cgst",  1,  -3600, "America/Scoresbysund"          },
+       { "cgt",   0,  -7200, "America/Scoresbysund"          },
+       { "chadt", 1,  49500, "Pacific/Chatham"               },
+       { "chast", 0,  45900, "Pacific/Chatham"               },
+       { "chast", 0,  44100, "Pacific/Chatham"               },
+       { "chdt",  1, -19800, "America/Belize"                },
+       { "chost", 1,  36000, "Asia/Choibalsan"               },
+       { "chost", 1,  32400, "Asia/Choibalsan"               },
+       { "chot",  0,  32400, "Asia/Choibalsan"               },
+       { "chot",  0,  28800, "Asia/Choibalsan"               },
+       { "chut",  0,  36000, "Pacific/Chuuk"                 },
+       { "chut",  0,  36000, "Pacific/Truk"                  },
+       { "chut",  0,  36000, "Pacific/Yap"                   },
+       { "ckhst", 1, -34200, "Pacific/Rarotonga"             },
+       { "ckt",   0, -36000, "Pacific/Rarotonga"             },
+       { "ckt",   0, -37800, "Pacific/Rarotonga"             },
+       { "clst",  1, -10800, "America/Santiago"              },
+       { "clst",  1, -14400, "America/Santiago"              },
+       { "clst",  1, -10800, "Antarctica/Palmer"             },
+       { "clst",  1, -10800, "Chile/Continental"             },
+       { "clst",  1, -14400, "Chile/Continental"             },
+       { "clt",   0, -14400, "America/Santiago"              },
+       { "clt",   0, -10800, "America/Santiago"              },
+       { "clt",   0, -18000, "America/Santiago"              },
+       { "clt",   0, -10800, "Antarctica/Palmer"             },
+       { "clt",   0, -10800, "Chile/Continental"             },
+       { "clt",   0, -14400, "Antarctica/Palmer"             },
+       { "clt",   0, -14400, "Chile/Continental"             },
+       { "clt",   0, -18000, "Chile/Continental"             },
        { "cmt",   0, -15408, "America/Argentina/Buenos_Aires" },
        { "cmt",   0, -15408, "America/Argentina/Catamarca"   },
        { "cmt",   0, -15408, "America/Argentina/ComodRivadavia" },
        { "cmt",   0, -16356, "America/La_Paz"                },
        { "cmt",   0, -19176, "America/Cayman"                },
        { "cmt",   0, -19176, "America/Panama"                },
-       { "cmt",   0,   3020, "Europe/Copenhagen"             },
        { "cmt",   0,   6900, "Europe/Chisinau"               },
        { "cmt",   0,   6900, "Europe/Tiraspol"               },
+       { "cost",  1, -14400, "America/Bogota"                },
+       { "cot",   0, -18000, "America/Bogota"                },
        { "cpt",   1, -18000, "America/Chicago"               },
        { "cpt",   1, -18000, "America/Atikokan"              },
        { "cpt",   1, -18000, "America/Coral_Harbour"         },
        { "cst",   0,  28800, "Asia/Taipei"                   },
        { "cst",   0,  28800, "PRC"                           },
        { "cst",   0,  28800, "ROC"                           },
+       { "cut",   0,   8400, "Europe/Zaporozhye"             },
+       { "cvst",  1,  -3600, "Atlantic/Cape_Verde"           },
+       { "cvt",   0,  -7200, "Atlantic/Cape_Verde"           },
+       { "cvt",   0,  -3600, "Atlantic/Cape_Verde"           },
        { "cwt",   1, -18000, "America/Chicago"               },
        { "cwt",   1, -18000, "America/Atikokan"              },
        { "cwt",   1, -18000, "America/Coral_Harbour"         },
        { "cwt",   1, -18000, "America/Winnipeg"              },
        { "cwt",   1, -18000, "Canada/Central"                },
        { "cwt",   1, -18000, "Mexico/General"                },
+       { "cxt",   0,  25200, "Indian/Christmas"              },
        { "chst",  0,  36000, "Pacific/Guam"                  },
        { "chst",  0,  36000, "Pacific/Saipan"                },
+       { "dact",  0,  21600, "Asia/Dacca"                    },
+       { "dact",  0,  21600, "Asia/Dhaka"                    },
+       { "davt",  0,  25200, "Antarctica/Davis"              },
+       { "davt",  0,  18000, "Antarctica/Davis"              },
+       { "ddut",  0,  36000, "Antarctica/DumontDUrville"     },
        { "dmt",   0,  -1521, "Europe/Dublin"                 },
+       { "dusst", 1,  25200, "Asia/Dushanbe"                 },
+       { "dusst", 1,  21600, "Asia/Dushanbe"                 },
+       { "dust",  0,  21600, "Asia/Dushanbe"                 },
+       { "dust",  0,  18000, "Asia/Dushanbe"                 },
+       { "easst", 1, -21600, "Chile/EasterIsland"            },
+       { "easst", 1, -18000, "Chile/EasterIsland"            },
+       { "easst", 1, -18000, "Pacific/Easter"                },
+       { "easst", 1, -21600, "Pacific/Easter"                },
+       { "east",  0, -18000, "Chile/EasterIsland"            },
+       { "east",  0, -21600, "Chile/EasterIsland"            },
+       { "east",  0, -25200, "Chile/EasterIsland"            },
+       { "east",  0, -18000, "Pacific/Easter"                },
+       { "east",  0, -21600, "Pacific/Easter"                },
+       { "east",  0, -25200, "Pacific/Easter"                },
        { "eat",   0,  10800, "Africa/Khartoum"               },
        { "eat",   0,  10800, "Africa/Addis_Ababa"            },
        { "eat",   0,  10800, "Africa/Asmara"                 },
        { "eat",   0,  10800, "Indian/Antananarivo"           },
        { "eat",   0,  10800, "Indian/Comoro"                 },
        { "eat",   0,  10800, "Indian/Mayotte"                },
+       { "ect",   0, -18000, "America/Guayaquil"             },
+       { "ect",   0, -18000, "Pacific/Galapagos"             },
        { "eddt",  1, -10800, "America/Iqaluit"               },
        { "edt",   1, -14400, "America/New_York"              },
        { "edt",   1, -14400, "America/Cancun"                },
        { "eest",  1,  10800, "Asia/Amman"                    },
        { "eest",  1,  10800, "Asia/Beirut"                   },
        { "eest",  1,  10800, "Asia/Damascus"                 },
-       { "eest",  1,  10800, "Asia/Famagusta"                },
        { "eest",  1,  10800, "Asia/Gaza"                     },
        { "eest",  1,  10800, "Asia/Hebron"                   },
        { "eest",  1,  10800, "Asia/Istanbul"                 },
        { "eest",  1,  10800, "Europe/Moscow"                 },
        { "eest",  1,  10800, "Europe/Nicosia"                },
        { "eest",  1,  10800, "Europe/Riga"                   },
+       { "eest",  1,  10800, "Europe/Samara"                 },
        { "eest",  1,  10800, "Europe/Simferopol"             },
        { "eest",  1,  10800, "Europe/Sofia"                  },
        { "eest",  1,  10800, "Europe/Tallinn"                },
        { "eest",  1,  10800, "Europe/Warsaw"                 },
        { "eest",  1,  10800, "Europe/Zaporozhye"             },
        { "eet",   0,   7200, "Europe/Helsinki"               },
+       { "eet",   1,  10800, "Asia/Gaza"                     },
+       { "eet",   1,  10800, "Asia/Hebron"                   },
        { "eet",   0,   7200, "Africa/Cairo"                  },
        { "eet",   0,   7200, "Africa/Tripoli"                },
        { "eet",   0,   7200, "Asia/Amman"                    },
        { "eet",   0,   7200, "Asia/Beirut"                   },
        { "eet",   0,   7200, "Asia/Damascus"                 },
-       { "eet",   0,   7200, "Asia/Famagusta"                },
        { "eet",   0,   7200, "Asia/Gaza"                     },
        { "eet",   0,   7200, "Asia/Hebron"                   },
        { "eet",   0,   7200, "Asia/Istanbul"                 },
        { "eet",   0,   7200, "Europe/Vilnius"                },
        { "eet",   0,   7200, "Europe/Warsaw"                 },
        { "eet",   0,   7200, "Europe/Zaporozhye"             },
+       { "egst",  1,      0, "America/Scoresbysund"          },
+       { "egt",   0,  -3600, "America/Scoresbysund"          },
+       { "ehdt",  1, -16200, "America/Santo_Domingo"         },
        { "emt",   0, -26248, "Chile/EasterIsland"            },
        { "emt",   0, -26248, "Pacific/Easter"                },
        { "ept",   1, -14400, "America/New_York"              },
        { "ewt",   1, -14400, "America/Thunder_Bay"           },
        { "ewt",   1, -14400, "America/Toronto"               },
        { "ewt",   1, -14400, "Canada/Eastern"                },
+       { "fet",   0,  10800, "Europe/Kaliningrad"            },
+       { "fet",   0,  10800, "Europe/Minsk"                  },
        { "ffmt",  0, -14660, "America/Martinique"            },
+       { "fjst",  1,  46800, "Pacific/Fiji"                  },
+       { "fjt",   0,  43200, "Pacific/Fiji"                  },
+       { "fkst",  1,  -7200, "Atlantic/Stanley"              },
+       { "fkst",  0, -10800, "Atlantic/Stanley"              },
+       { "fkst",  1, -10800, "Atlantic/Stanley"              },
+       { "fkt",   0, -14400, "Atlantic/Stanley"              },
+       { "fkt",   0, -10800, "Atlantic/Stanley"              },
        { "fmt",   0,  -4056, "Atlantic/Madeira"              },
+       { "fnst",  1,  -3600, "America/Noronha"               },
+       { "fnst",  1,  -3600, "Brazil/DeNoronha"              },
+       { "fnt",   0,  -7200, "America/Noronha"               },
+       { "fnt",   0,  -7200, "Brazil/DeNoronha"              },
+       { "fort",  0,  18000, "Asia/Aqtau"                    },
+       { "fort",  0,  14400, "Asia/Aqtau"                    },
+       { "frust", 1,  25200, "Asia/Bishkek"                  },
+       { "frust", 1,  21600, "Asia/Bishkek"                  },
+       { "frut",  0,  21600, "Asia/Bishkek"                  },
+       { "frut",  0,  18000, "Asia/Bishkek"                  },
+       { "galt",  0, -21600, "Pacific/Galapagos"             },
+       { "gamt",  0, -32400, "Pacific/Gambier"               },
+       { "gbgt",  0, -13500, "America/Guyana"                },
+       { "gest",  1,  14400, "Asia/Tbilisi"                  },
+       { "gest",  1,  18000, "Asia/Tbilisi"                  },
+       { "get",   0,  14400, "Asia/Tbilisi"                  },
+       { "get",   0,  10800, "Asia/Tbilisi"                  },
+       { "gft",   0, -14400, "America/Cayenne"               },
+       { "gft",   0, -10800, "America/Cayenne"               },
+       { "ghst",  1,   1200, "Africa/Accra"                  },
+       { "gilt",  0,  43200, "Pacific/Tarawa"                },
        { "gmt",   0,      0, "Africa/Abidjan"                },
        { "gmt",   0,      0, "Africa/Accra"                  },
        { "gmt",   0,      0, "Africa/Bamako"                 },
        { "gmt",   0,      0, "Europe/Jersey"                 },
        { "gmt",   0,      0, "Europe/London"                 },
        { "gmt",   0,      0, "GB"                            },
+       { "gst",   0,  14400, "Asia/Dubai"                    },
+       { "gst",   0,  -7200, "Atlantic/South_Georgia"        },
+       { "gst",   0,  14400, "Asia/Bahrain"                  },
+       { "gst",   0,  14400, "Asia/Muscat"                   },
+       { "gst",   0,  14400, "Asia/Qatar"                    },
        { "gst",   0,  36000, "Pacific/Guam"                  },
        { "gst",   0,  36000, "Pacific/Saipan"                },
+       { "gyt",   0, -14400, "America/Guyana"                },
+       { "gyt",   0, -10800, "America/Guyana"                },
+       { "gyt",   0, -13500, "America/Guyana"                },
+       { "hadt",  1, -32400, "America/Adak"                  },
+       { "hadt",  1, -32400, "America/Atka"                  },
+       { "hast",  0, -36000, "America/Adak"                  },
+       { "hast",  0, -36000, "America/Atka"                  },
        { "hdt",   1, -34200, "Pacific/Honolulu"              },
-       { "hdt",   1, -32400, "America/Adak"                  },
-       { "hdt",   1, -32400, "America/Atka"                  },
        { "hdt",   1, -34200, "Pacific/Johnston"              },
        { "hkst",  1,  32400, "Asia/Hong_Kong"                },
        { "hkt",   0,  28800, "Asia/Hong_Kong"                },
        { "hmt",   0,  21200, "Asia/Kolkata"                  },
        { "hmt",   0,   5989, "Europe/Helsinki"               },
        { "hmt",   0,   5989, "Europe/Mariehamn"              },
+       { "hovst", 1,  28800, "Asia/Hovd"                     },
+       { "hovt",  0,  25200, "Asia/Hovd"                     },
+       { "hovt",  0,  21600, "Asia/Hovd"                     },
        { "hst",   0, -36000, "Pacific/Honolulu"              },
        { "hst",   0, -37800, "Pacific/Honolulu"              },
-       { "hst",   0, -36000, "America/Adak"                  },
-       { "hst",   0, -36000, "America/Atka"                  },
        { "hst",   0, -36000, "Pacific/Johnston"              },
        { "hst",   0, -37800, "Pacific/Johnston"              },
+       { "ict",   0,  25200, "Asia/Bangkok"                  },
+       { "ict",   0,  25200, "Asia/Ho_Chi_Minh"              },
+       { "ict",   0,  25200, "Asia/Phnom_Penh"               },
+       { "ict",   0,  25200, "Asia/Saigon"                   },
+       { "ict",   0,  25200, "Asia/Vientiane"                },
        { "iddt",  1,  14400, "Asia/Jerusalem"                },
        { "iddt",  1,  14400, "Asia/Tel_Aviv"                 },
        { "idt",   1,  10800, "Asia/Jerusalem"                },
        { "idt",   1,  10800, "Asia/Gaza"                     },
        { "idt",   1,  10800, "Asia/Hebron"                   },
        { "idt",   1,  10800, "Asia/Tel_Aviv"                 },
+       { "idt",   0,  28800, "Asia/Ho_Chi_Minh"              },
+       { "idt",   0,  28800, "Asia/Saigon"                   },
+       { "ihst",  1,  21600, "Asia/Colombo"                  },
        { "imt",   0,  25025, "Asia/Irkutsk"                  },
        { "imt",   0,   7016, "Asia/Istanbul"                 },
        { "imt",   0,   7016, "Europe/Istanbul"               },
-       { "imt",   0,   7016, "Europe/Sofia"                  },
+       { "iot",   0,  21600, "Indian/Chagos"                 },
+       { "iot",   0,  18000, "Indian/Chagos"                 },
+       { "irdt",  1,  16200, "Asia/Tehran"                   },
+       { "irdt",  1,  18000, "Asia/Tehran"                   },
+       { "irkst", 1,  32400, "Asia/Irkutsk"                  },
+       { "irkst", 1,  28800, "Asia/Irkutsk"                  },
+       { "irkt",  0,  28800, "Asia/Irkutsk"                  },
+       { "irkt",  0,  25200, "Asia/Irkutsk"                  },
+       { "irkt",  0,  32400, "Asia/Irkutsk"                  },
+       { "irkt",  0,  28800, "Asia/Chita"                    },
+       { "irst",  0,  12600, "Asia/Tehran"                   },
+       { "irst",  0,  14400, "Asia/Tehran"                   },
+       { "isst",  1,      0, "Atlantic/Reykjavik"            },
        { "ist",   0,   7200, "Asia/Jerusalem"                },
+       { "ist",   0,  -3600, "Atlantic/Reykjavik"            },
        { "ist",   0,  19800, "Asia/Calcutta"                 },
+       { "ist",   0,  19800, "Asia/Colombo"                  },
+       { "ist",   0,  19800, "Asia/Dacca"                    },
+       { "ist",   0,  19800, "Asia/Dhaka"                    },
+       { "ist",   0,  19800, "Asia/Karachi"                  },
+       { "ist",   0,  19800, "Asia/Kathmandu"                },
+       { "ist",   0,  19800, "Asia/Katmandu"                 },
        { "ist",   0,  19800, "Asia/Kolkata"                  },
+       { "ist",   0,  19800, "Asia/Thimbu"                   },
+       { "ist",   0,  19800, "Asia/Thimphu"                  },
        { "ist",   1,   2079, "Europe/Dublin"                 },
+       { "ist",   1,  23400, "Asia/Calcutta"                 },
+       { "ist",   1,  23400, "Asia/Colombo"                  },
+       { "ist",   1,  23400, "Asia/Karachi"                  },
+       { "ist",   1,  23400, "Asia/Kolkata"                  },
        { "ist",   0,   3600, "Europe/Dublin"                 },
        { "ist",   1,   3600, "Europe/Dublin"                 },
        { "ist",   0,   7200, "Asia/Gaza"                     },
        { "ist",   0,   7200, "Asia/Hebron"                   },
        { "ist",   0,   7200, "Asia/Tel_Aviv"                 },
+       { "javt",  0,  26400, "Asia/Jakarta"                  },
+       { "jcst",  0,  32400, "Asia/Pyongyang"                },
+       { "jcst",  0,  32400, "Asia/Sakhalin"                 },
+       { "jcst",  0,  32400, "Asia/Seoul"                    },
+       { "jcst",  0,  32400, "Asia/Tokyo"                    },
+       { "jcst",  0,  32400, "ROK"                           },
        { "jdt",   1,  36000, "Asia/Tokyo"                    },
        { "jmt",   0,   8440, "Asia/Jerusalem"                },
        { "jmt",   0,   8440, "Asia/Tel_Aviv"                 },
        { "jst",   0,  32400, "Asia/Tokyo"                    },
+       { "jst",   0,  32400, "Asia/Dili"                     },
+       { "jst",   0,  32400, "Asia/Ho_Chi_Minh"              },
        { "jst",   0,  32400, "Asia/Hong_Kong"                },
+       { "jst",   0,  32400, "Asia/Jakarta"                  },
+       { "jst",   0,  32400, "Asia/Kuala_Lumpur"             },
+       { "jst",   0,  32400, "Asia/Kuching"                  },
+       { "jst",   0,  32400, "Asia/Makassar"                 },
+       { "jst",   0,  32400, "Asia/Manila"                   },
+       { "jst",   0,  32400, "Asia/Pontianak"                },
        { "jst",   0,  32400, "Asia/Pyongyang"                },
+       { "jst",   0,  32400, "Asia/Rangoon"                  },
+       { "jst",   0,  32400, "Asia/Saigon"                   },
+       { "jst",   0,  32400, "Asia/Sakhalin"                 },
        { "jst",   0,  32400, "Asia/Seoul"                    },
+       { "jst",   0,  32400, "Asia/Singapore"                },
        { "jst",   0,  32400, "Asia/Taipei"                   },
+       { "jst",   0,  32400, "Asia/Ujung_Pandang"            },
+       { "jst",   0,  32400, "Pacific/Bougainville"          },
+       { "jst",   0,  32400, "Pacific/Nauru"                 },
        { "jst",   0,  32400, "ROC"                           },
        { "jst",   0,  32400, "ROK"                           },
+       { "jwst",  0,  28800, "Asia/Taipei"                   },
+       { "jwst",  0,  28800, "ROC"                           },
+       { "kart",  0,  18000, "Asia/Karachi"                  },
        { "kdt",   1,  36000, "Asia/Seoul"                    },
        { "kdt",   1,  34200, "Asia/Seoul"                    },
        { "kdt",   1,  34200, "ROK"                           },
        { "kdt",   1,  36000, "ROK"                           },
+       { "kgst",  1,  21600, "Asia/Bishkek"                  },
+       { "kgt",   0,  18000, "Asia/Bishkek"                  },
+       { "kgt",   0,  21600, "Asia/Bishkek"                  },
+       { "kizst", 1,  21600, "Asia/Qyzylorda"                },
+       { "kizt",  0,  21600, "Asia/Qyzylorda"                },
+       { "kizt",  0,  14400, "Asia/Qyzylorda"                },
+       { "kizt",  0,  18000, "Asia/Qyzylorda"                },
        { "kmt",   0,   5736, "Europe/Vilnius"                },
        { "kmt",   0, -18431, "America/Grand_Turk"            },
        { "kmt",   0, -18431, "America/Jamaica"               },
        { "kmt",   0,   7324, "Europe/Kiev"                   },
+       { "kost",  0,  43200, "Pacific/Kosrae"                },
+       { "kost",  0,  39600, "Pacific/Kosrae"                },
+       { "krast", 1,  28800, "Asia/Krasnoyarsk"              },
+       { "krast", 1,  25200, "Asia/Krasnoyarsk"              },
+       { "krast", 1,  25200, "Asia/Novokuznetsk"             },
+       { "krast", 1,  28800, "Asia/Novokuznetsk"             },
+       { "krat",  0,  25200, "Asia/Krasnoyarsk"              },
+       { "krat",  0,  21600, "Asia/Krasnoyarsk"              },
+       { "krat",  0,  28800, "Asia/Krasnoyarsk"              },
+       { "krat",  0,  21600, "Asia/Novokuznetsk"             },
+       { "krat",  0,  25200, "Asia/Novokuznetsk"             },
        { "kst",   0,  30600, "Asia/Seoul"                    },
        { "kst",   0,  32400, "Asia/Pyongyang"                },
        { "kst",   0,  32400, "Asia/Seoul"                    },
        { "kst",   0,  30600, "Asia/Pyongyang"                },
        { "kst",   0,  30600, "ROK"                           },
        { "kst",   0,  32400, "ROK"                           },
+       { "kuyst", 1,  18000, "Europe/Samara"                 },
+       { "kuyt",  0,  14400, "Europe/Samara"                 },
+       { "kuyt",  0,  10800, "Europe/Samara"                 },
+       { "kwat",  0, -43200, "Pacific/Kwajalein"             },
+       { "lhdt",  1,  39600, "Australia/LHI"                 },
+       { "lhdt",  1,  39600, "Australia/Lord_Howe"           },
+       { "lhdt",  1,  41400, "Australia/LHI"                 },
+       { "lhdt",  1,  41400, "Australia/Lord_Howe"           },
+       { "lhst",  0,  37800, "Australia/Lord_Howe"           },
+       { "lhst",  0,  37800, "Australia/LHI"                 },
+       { "lint",  0,  50400, "Pacific/Kiritimati"            },
+       { "lint",  0, -36000, "Pacific/Kiritimati"            },
+       { "lint",  0, -38400, "Pacific/Kiritimati"            },
+       { "lkt",   0,  23400, "Asia/Colombo"                  },
+       { "lkt",   0,  21600, "Asia/Colombo"                  },
+       { "lrt",   0,  -2670, "Africa/Monrovia"               },
        { "lst",   1,   9394, "Europe/Riga"                   },
+       { "madmt", 1,   3600, "Atlantic/Madeira"              },
+       { "madst", 1,      0, "Atlantic/Madeira"              },
+       { "madt",  0,  -3600, "Atlantic/Madeira"              },
+       { "magst", 1,  43200, "Asia/Magadan"                  },
+       { "magst", 1,  39600, "Asia/Magadan"                  },
+       { "magst", 1,  39600, "Asia/Srednekolymsk"            },
+       { "magst", 1,  39600, "Asia/Ust-Nera"                 },
+       { "magst", 1,  43200, "Asia/Srednekolymsk"            },
+       { "magst", 1,  43200, "Asia/Ust-Nera"                 },
+       { "magt",  0,  36000, "Asia/Magadan"                  },
+       { "magt",  0,  39600, "Asia/Magadan"                  },
+       { "magt",  0,  43200, "Asia/Magadan"                  },
+       { "magt",  0,  36000, "Asia/Srednekolymsk"            },
+       { "magt",  0,  36000, "Asia/Ust-Nera"                 },
+       { "magt",  0,  39600, "Asia/Srednekolymsk"            },
+       { "magt",  0,  39600, "Asia/Ust-Nera"                 },
+       { "magt",  0,  43200, "Asia/Srednekolymsk"            },
+       { "magt",  0,  43200, "Asia/Ust-Nera"                 },
+       { "malst", 1,  26400, "Asia/Singapore"                },
+       { "malst", 1,  26400, "Asia/Kuala_Lumpur"             },
+       { "malt",  0,  27000, "Asia/Singapore"                },
+       { "malt",  0,  25200, "Asia/Singapore"                },
+       { "malt",  0,  26400, "Asia/Singapore"                },
+       { "malt",  0,  25200, "Asia/Kuala_Lumpur"             },
+       { "malt",  0,  26400, "Asia/Kuala_Lumpur"             },
+       { "malt",  0,  27000, "Asia/Kuala_Lumpur"             },
+       { "mart",  0, -34200, "Pacific/Marquesas"             },
+       { "mawt",  0,  21600, "Antarctica/Mawson"             },
+       { "mawt",  0,  18000, "Antarctica/Mawson"             },
        { "mddt",  1, -18000, "America/Cambridge_Bay"         },
        { "mddt",  1, -18000, "America/Yellowknife"           },
        { "mdst",  1,  16279, "Europe/Moscow"                 },
        { "mdt",   1, -21600, "Canada/Mountain"               },
        { "mdt",   1, -21600, "Canada/Saskatchewan"           },
        { "mdt",   1, -21600, "Mexico/BajaSur"                },
+       { "mht",   0,  43200, "Pacific/Kwajalein"             },
+       { "mht",   0,  39600, "Pacific/Kwajalein"             },
+       { "mht",   0,  39600, "Pacific/Majuro"                },
+       { "mht",   0,  43200, "Pacific/Majuro"                },
+       { "mist",  0,  39600, "Antarctica/Macquarie"          },
        { "mmt",   0,   9017, "Europe/Moscow"                 },
        { "mmt",   0,   9079, "Europe/Moscow"                 },
        { "mmt",   0, -13484, "America/Montevideo"            },
        { "mmt",   0, -20712, "America/Managua"               },
        { "mmt",   0,  -2588, "Africa/Monrovia"               },
-       { "mmt",   0,  -2670, "Africa/Monrovia"               },
        { "mmt",   0,  17640, "Indian/Maldives"               },
        { "mmt",   0,  19172, "Asia/Colombo"                  },
+       { "mmt",   0,  23400, "Asia/Rangoon"                  },
        { "mmt",   0,  28656, "Asia/Makassar"                 },
        { "mmt",   0,  28656, "Asia/Ujung_Pandang"            },
        { "mmt",   0,   6600, "Europe/Minsk"                  },
+       { "most",  1,  32400, "Asia/Macao"                    },
+       { "most",  1,  32400, "Asia/Macau"                    },
+       { "mot",   0,  28800, "Asia/Macao"                    },
+       { "mot",   0,  28800, "Asia/Macau"                    },
        { "mpt",   1, -21600, "America/Denver"                },
        { "mpt",   1, -21600, "America/Boise"                 },
        { "mpt",   1, -21600, "America/Cambridge_Bay"         },
        { "msd",   1,  14400, "Europe/Kiev"                   },
        { "msd",   1,  14400, "Europe/Minsk"                  },
        { "msd",   1,  14400, "Europe/Riga"                   },
+       { "msd",   1,  14400, "Europe/Samara"                 },
        { "msd",   1,  14400, "Europe/Simferopol"             },
        { "msd",   1,  14400, "Europe/Tallinn"                },
        { "msd",   1,  14400, "Europe/Tiraspol"               },
        { "msd",   1,  14400, "Europe/Uzhgorod"               },
        { "msd",   1,  14400, "Europe/Vilnius"                },
+       { "msd",   1,  14400, "Europe/Volgograd"              },
        { "msd",   1,  14400, "Europe/Zaporozhye"             },
        { "msk",   0,  10800, "Europe/Moscow"                 },
        { "msk",   0,  14400, "Europe/Moscow"                 },
        { "msk",   0,  10800, "Europe/Kiev"                   },
        { "msk",   0,  10800, "Europe/Minsk"                  },
        { "msk",   0,  10800, "Europe/Riga"                   },
+       { "msk",   0,  10800, "Europe/Samara"                 },
        { "msk",   0,  10800, "Europe/Simferopol"             },
        { "msk",   0,  10800, "Europe/Tallinn"                },
        { "msk",   0,  10800, "Europe/Tiraspol"               },
        { "msk",   0,  10800, "Europe/Uzhgorod"               },
        { "msk",   0,  10800, "Europe/Vilnius"                },
+       { "msk",   0,  10800, "Europe/Volgograd"              },
        { "msk",   0,  10800, "Europe/Zaporozhye"             },
        { "msk",   0,  14400, "Europe/Simferopol"             },
+       { "msk",   0,  14400, "Europe/Volgograd"              },
+       { "msm",   1,  18000, "Europe/Moscow"                 },
        { "mst",   0, -25200, "America/Denver"                },
        { "mst",   0, -25200, "America/Bahia_Banderas"        },
        { "mst",   0, -25200, "America/Boise"                 },
        { "mst",   0, -25200, "America/Dawson_Creek"          },
        { "mst",   0, -25200, "America/Edmonton"              },
        { "mst",   0, -25200, "America/Ensenada"              },
-       { "mst",   0, -25200, "America/Fort_Nelson"           },
        { "mst",   0, -25200, "America/Hermosillo"            },
        { "mst",   0, -25200, "America/Inuvik"                },
        { "mst",   0, -25200, "America/Mazatlan"              },
        { "mst",   0, -25200, "Mexico/BajaSur"                },
        { "mst",   0, -25200, "Mexico/General"                },
        { "mst",   1,  12679, "Europe/Moscow"                 },
+       { "must",  1,  18000, "Indian/Mauritius"              },
+       { "mut",   0,  14400, "Indian/Mauritius"              },
+       { "mvt",   0,  18000, "Indian/Maldives"               },
        { "mwt",   1, -21600, "America/Denver"                },
        { "mwt",   1, -21600, "America/Boise"                 },
        { "mwt",   1, -21600, "America/Cambridge_Bay"         },
        { "mwt",   1, -21600, "Canada/East-Saskatchewan"      },
        { "mwt",   1, -21600, "Canada/Mountain"               },
        { "mwt",   1, -21600, "Canada/Saskatchewan"           },
+       { "myt",   0,  28800, "Asia/Kuala_Lumpur"             },
+       { "myt",   0,  28800, "Asia/Kuching"                  },
+       { "ncst",  1,  43200, "Pacific/Noumea"                },
+       { "nct",   0,  39600, "Pacific/Noumea"                },
        { "nddt",  1,  -5400, "America/St_Johns"              },
        { "nddt",  1,  -5400, "Canada/Newfoundland"           },
        { "ndt",   1,  -9052, "America/St_Johns"              },
        { "ndt",   1,  -9000, "Canada/Newfoundland"           },
        { "ndt",   1,  -9052, "America/Goose_Bay"             },
        { "ndt",   1,  -9052, "Canada/Newfoundland"           },
+       { "negt",  0, -12600, "America/Paramaribo"            },
+       { "nest",  1,   4800, "Europe/Amsterdam"              },
+       { "net",   0,   1200, "Europe/Amsterdam"              },
+       { "nft",   0,  41400, "Pacific/Norfolk"               },
+       { "nmt",   0,  40320, "Pacific/Norfolk"               },
+       { "novst", 1,  25200, "Asia/Novosibirsk"              },
+       { "novst", 1,  28800, "Asia/Novosibirsk"              },
+       { "novst", 1,  25200, "Asia/Novokuznetsk"             },
+       { "novt",  0,  21600, "Asia/Novosibirsk"              },
+       { "novt",  0,  25200, "Asia/Novosibirsk"              },
+       { "novt",  0,  21600, "Asia/Novokuznetsk"             },
+       { "novt",  0,  25200, "Asia/Novokuznetsk"             },
        { "npt",   1,  -9000, "America/St_Johns"              },
+       { "npt",   0,  20700, "Asia/Katmandu"                 },
        { "npt",   1, -36000, "America/Adak"                  },
        { "npt",   1, -36000, "America/Atka"                  },
        { "npt",   1, -36000, "America/Nome"                  },
        { "npt",   1,  -9000, "America/Goose_Bay"             },
        { "npt",   1,  -9000, "Canada/Newfoundland"           },
+       { "npt",   0,  20700, "Asia/Kathmandu"                },
+       { "nrt",   0,  43200, "Pacific/Nauru"                 },
+       { "nrt",   0,  41400, "Pacific/Nauru"                 },
        { "nst",   0, -12600, "America/St_Johns"              },
        { "nst",   0, -12652, "America/St_Johns"              },
        { "nst",   1,   4772, "Europe/Amsterdam"              },
        { "nst",   0, -39600, "America/Adak"                  },
        { "nst",   0, -39600, "America/Atka"                  },
        { "nst",   0, -39600, "America/Nome"                  },
+       { "nst",   0, -39600, "Pacific/Midway"                },
+       { "nst",   0, -39600, "Pacific/Pago_Pago"             },
+       { "nst",   0, -39600, "Pacific/Samoa"                 },
+       { "nut",   0, -39600, "Pacific/Niue"                  },
+       { "nut",   0, -40800, "Pacific/Niue"                  },
+       { "nut",   0, -41400, "Pacific/Niue"                  },
        { "nwt",   1,  -9000, "America/St_Johns"              },
        { "nwt",   1, -36000, "America/Adak"                  },
        { "nwt",   1, -36000, "America/Atka"                  },
        { "nzst",  1,  45000, "Antarctica/McMurdo"            },
        { "nzst",  1,  45000, "Antarctica/South_Pole"         },
        { "nzst",  1,  45000, "NZ"                            },
+       { "omsst", 1,  25200, "Asia/Omsk"                     },
+       { "omsst", 1,  21600, "Asia/Omsk"                     },
+       { "omst",  0,  21600, "Asia/Omsk"                     },
+       { "omst",  0,  18000, "Asia/Omsk"                     },
+       { "omst",  0,  25200, "Asia/Omsk"                     },
+       { "orast", 1,  18000, "Asia/Oral"                     },
+       { "orat",  0,  18000, "Asia/Oral"                     },
+       { "orat",  0,  14400, "Asia/Oral"                     },
        { "pddt",  1, -21600, "America/Inuvik"                },
        { "pdt",   1, -25200, "America/Los_Angeles"           },
        { "pdt",   1, -25200, "America/Boise"                 },
        { "pdt",   1, -25200, "America/Dawson"                },
        { "pdt",   1, -25200, "America/Dawson_Creek"          },
        { "pdt",   1, -25200, "America/Ensenada"              },
-       { "pdt",   1, -25200, "America/Fort_Nelson"           },
        { "pdt",   1, -25200, "America/Juneau"                },
        { "pdt",   1, -25200, "America/Metlakatla"            },
        { "pdt",   1, -25200, "America/Santa_Isabel"          },
        { "pdt",   1, -25200, "Canada/Pacific"                },
        { "pdt",   1, -25200, "Canada/Yukon"                  },
        { "pdt",   1, -25200, "Mexico/BajaNorte"              },
+       { "pest",  1, -14400, "America/Lima"                  },
+       { "petst", 1,  46800, "Asia/Kamchatka"                },
+       { "petst", 1,  43200, "Asia/Kamchatka"                },
+       { "pett",  0,  43200, "Asia/Kamchatka"                },
+       { "pett",  0,  39600, "Asia/Kamchatka"                },
+       { "pet",   0, -18000, "America/Lima"                  },
+       { "pgt",   0,  36000, "Pacific/Bougainville"          },
+       { "pgt",   0,  36000, "Pacific/Port_Moresby"          },
+       { "phot",  0,  46800, "Pacific/Enderbury"             },
+       { "phot",  0, -39600, "Pacific/Enderbury"             },
+       { "phot",  0, -43200, "Pacific/Enderbury"             },
+       { "phst",  1,  32400, "Asia/Manila"                   },
+       { "pht",   0,  28800, "Asia/Manila"                   },
        { "pkst",  1,  21600, "Asia/Karachi"                  },
        { "pkt",   0,  18000, "Asia/Karachi"                  },
        { "plmt",  0,  25590, "Asia/Ho_Chi_Minh"              },
        { "plmt",  0,  25590, "Asia/Saigon"                   },
-       { "pmmt",  0,  35312, "Pacific/Bougainville"          },
-       { "pmmt",  0,  35312, "Pacific/Port_Moresby"          },
+       { "pmdt",  1,  -7200, "America/Miquelon"              },
+       { "pmst",  0, -10800, "America/Miquelon"              },
        { "pmt",   0, -13236, "America/Paramaribo"            },
        { "pmt",   0, -13252, "America/Paramaribo"            },
+       { "pmt",   0,  36000, "Antarctica/DumontDUrville"     },
        { "pmt",   0,  13505, "Asia/Yekaterinburg"            },
        { "pmt",   0,  26240, "Asia/Pontianak"                },
-       { "pmt",   0,   3464, "Europe/Bratislava"             },
-       { "pmt",   0,   3464, "Europe/Prague"                 },
        { "pmt",   0,    561, "Africa/Algiers"                },
        { "pmt",   0,    561, "Africa/Tunis"                  },
        { "pmt",   0,    561, "Europe/Monaco"                 },
        { "pmt",   0,    561, "Europe/Paris"                  },
+       { "pnt",   0, -30600, "Pacific/Pitcairn"              },
+       { "pont",  0,  39600, "Pacific/Pohnpei"               },
+       { "pont",  0,  39600, "Pacific/Ponape"                },
        { "ppmt",  0, -17340, "America/Port-au-Prince"        },
        { "ppt",   1, -25200, "America/Los_Angeles"           },
        { "ppt",   1, -25200, "America/Dawson_Creek"          },
        { "ppt",   1, -25200, "America/Ensenada"              },
-       { "ppt",   1, -25200, "America/Fort_Nelson"           },
        { "ppt",   1, -25200, "America/Juneau"                },
        { "ppt",   1, -25200, "America/Metlakatla"            },
        { "ppt",   1, -25200, "America/Santa_Isabel"          },
        { "pst",   0, -28800, "America/Dawson"                },
        { "pst",   0, -28800, "America/Dawson_Creek"          },
        { "pst",   0, -28800, "America/Ensenada"              },
-       { "pst",   0, -28800, "America/Fort_Nelson"           },
        { "pst",   0, -28800, "America/Hermosillo"            },
        { "pst",   0, -28800, "America/Inuvik"                },
        { "pst",   0, -28800, "America/Juneau"                },
        { "pst",   0, -28800, "Canada/Yukon"                  },
        { "pst",   0, -28800, "Mexico/BajaNorte"              },
        { "pst",   0, -28800, "Mexico/BajaSur"                },
+       { "pst",   0, -28800, "Pacific/Pitcairn"              },
        { "pwt",   1, -25200, "America/Los_Angeles"           },
        { "pwt",   1, -25200, "America/Dawson_Creek"          },
        { "pwt",   1, -25200, "America/Ensenada"              },
-       { "pwt",   1, -25200, "America/Fort_Nelson"           },
        { "pwt",   1, -25200, "America/Juneau"                },
        { "pwt",   1, -25200, "America/Metlakatla"            },
        { "pwt",   1, -25200, "America/Santa_Isabel"          },
        { "pwt",   1, -25200, "America/Vancouver"             },
        { "pwt",   1, -25200, "Canada/Pacific"                },
        { "pwt",   1, -25200, "Mexico/BajaNorte"              },
+       { "pwt",   0,  32400, "Pacific/Palau"                 },
+       { "pyst",  1, -10800, "America/Asuncion"              },
+       { "pyt",   0, -14400, "America/Asuncion"              },
+       { "pyt",   0, -10800, "America/Asuncion"              },
        { "qmt",   0, -18840, "America/Guayaquil"             },
+       { "qyzst", 1,  25200, "Asia/Qyzylorda"                },
+       { "qyzt",  0,  21600, "Asia/Qyzylorda"                },
+       { "qyzt",  0,  18000, "Asia/Qyzylorda"                },
+       { "ret",   0,  14400, "Indian/Reunion"                },
        { "rmt",   0,   5794, "Europe/Riga"                   },
        { "rmt",   0,  23080, "Asia/Rangoon"                  },
-       { "rmt",   0,  23080, "Asia/Yangon"                   },
-       { "rmt",   0,   2996, "Europe/Rome"                   },
-       { "rmt",   0,   2996, "Europe/San_Marino"             },
-       { "rmt",   0,   2996, "Europe/Vatican"                },
+       { "rott",  0, -10800, "Antarctica/Rothera"            },
+       { "sakst", 1,  39600, "Asia/Sakhalin"                 },
+       { "sakst", 1,  43200, "Asia/Sakhalin"                 },
+       { "sakt",  0,  36000, "Asia/Sakhalin"                 },
+       { "sakt",  0,  39600, "Asia/Sakhalin"                 },
+       { "samst", 1,  21600, "Asia/Samarkand"                },
+       { "samst", 1,  14400, "Europe/Samara"                 },
+       { "samst", 1,  18000, "Europe/Samara"                 },
+       { "samt",  0,  18000, "Asia/Samarkand"                },
+       { "samt",  0,  14400, "Asia/Samarkand"                },
+       { "samt",  0,  10800, "Europe/Samara"                 },
+       { "samt",  0,  14400, "Europe/Samara"                 },
        { "sast",  0,   7200, "Africa/Johannesburg"           },
        { "sast",  1,  10800, "Africa/Johannesburg"           },
        { "sast",  0,   5400, "Africa/Johannesburg"           },
        { "sast",  0,   7200, "Africa/Maseru"                 },
        { "sast",  0,   7200, "Africa/Mbabane"                },
        { "sast",  0,   7200, "Africa/Windhoek"               },
+       { "sbt",   0,  39600, "Pacific/Guadalcanal"           },
+       { "sct",   0,  14400, "Indian/Mahe"                   },
        { "sdmt",  0, -16800, "America/Santo_Domingo"         },
-       { "set",   0,   3614, "Europe/Stockholm"              },
+       { "sdt",   1, -36000, "Pacific/Apia"                  },
+       { "sgt",   0,  28800, "Asia/Singapore"                },
+       { "sgt",   0,  27000, "Asia/Singapore"                },
+       { "shest", 1,  21600, "Asia/Aqtau"                    },
+       { "shet",  0,  21600, "Asia/Aqtau"                    },
+       { "shet",  0,  18000, "Asia/Aqtau"                    },
        { "sjmt",  0, -20173, "America/Costa_Rica"            },
        { "smt",   0, -13884, "Atlantic/Stanley"              },
-       { "smt",   0, -16966, "America/Punta_Arenas"          },
        { "smt",   0, -16966, "America/Santiago"              },
        { "smt",   0, -16966, "Chile/Continental"             },
        { "smt",   0,  24925, "Asia/Kuala_Lumpur"             },
        { "smt",   0,  24925, "Asia/Singapore"                },
        { "smt",   0,   8160, "Europe/Simferopol"             },
+       { "sret",  0,  39600, "Asia/Srednekolymsk"            },
+       { "srt",   0, -10800, "America/Paramaribo"            },
+       { "srt",   0, -12600, "America/Paramaribo"            },
        { "sst",   0, -39600, "Pacific/Samoa"                 },
+       { "sst",   0, -39600, "Pacific/Apia"                  },
        { "sst",   0, -39600, "Pacific/Midway"                },
        { "sst",   0, -39600, "Pacific/Pago_Pago"             },
+       { "stat",  0,  10800, "Europe/Volgograd"              },
+       { "stat",  0,  14400, "Europe/Volgograd"              },
+       { "svest", 1,  21600, "Asia/Yekaterinburg"            },
+       { "svest", 1,  18000, "Asia/Yekaterinburg"            },
+       { "svet",  0,  18000, "Asia/Yekaterinburg"            },
+       { "svet",  0,  14400, "Asia/Yekaterinburg"            },
+       { "swat",  0,   5400, "Africa/Windhoek"               },
+       { "syot",  0,  10800, "Antarctica/Syowa"              },
+       { "taht",  0, -36000, "Pacific/Tahiti"                },
+       { "tasst", 1,  25200, "Asia/Samarkand"                },
+       { "tasst", 1,  21600, "Asia/Tashkent"                 },
+       { "tasst", 1,  25200, "Asia/Tashkent"                 },
+       { "tast",  0,  21600, "Asia/Samarkand"                },
+       { "tast",  0,  18000, "Asia/Tashkent"                 },
+       { "tast",  0,  21600, "Asia/Tashkent"                 },
+       { "tbist", 1,  18000, "Asia/Tbilisi"                  },
+       { "tbist", 1,  14400, "Asia/Tbilisi"                  },
+       { "tbit",  0,  14400, "Asia/Tbilisi"                  },
+       { "tbit",  0,  10800, "Asia/Tbilisi"                  },
        { "tbmt",  0,  10751, "Asia/Tbilisi"                  },
+       { "tft",   0,  18000, "Indian/Kerguelen"              },
+       { "tjt",   0,  18000, "Asia/Dushanbe"                 },
+       { "tkt",   0, -39600, "Pacific/Fakaofo"               },
+       { "tkt",   0,  46800, "Pacific/Fakaofo"               },
+       { "tlt",   0,  32400, "Asia/Dili"                     },
+       { "tlt",   0,  28800, "Asia/Dili"                     },
        { "tmt",   0,  12344, "Asia/Tehran"                   },
        { "tmt",   0,   5940, "Europe/Tallinn"                },
+       { "tmt",   0,  14400, "Asia/Ashgabat"                 },
+       { "tmt",   0,  14400, "Asia/Ashkhabad"                },
+       { "tmt",   0,  18000, "Asia/Ashgabat"                 },
+       { "tmt",   0,  18000, "Asia/Ashkhabad"                },
+       { "tost",  1,  50400, "Pacific/Tongatapu"             },
+       { "tot",   0,  46800, "Pacific/Tongatapu"             },
+       { "tot",   0,  44400, "Pacific/Tongatapu"             },
+       { "trst",  1,  14400, "Europe/Istanbul"               },
+       { "trst",  1,  14400, "Asia/Istanbul"                 },
+       { "trt",   0,  10800, "Europe/Istanbul"               },
+       { "trt",   0,  10800, "Asia/Istanbul"                 },
+       { "tsat",  0,  10800, "Europe/Volgograd"              },
+       { "tvt",   0,  43200, "Pacific/Funafuti"              },
        { "uct",   0,      0, "Etc/UCT"                       },
+       { "ulast", 1,  32400, "Asia/Ulaanbaatar"              },
+       { "ulast", 1,  32400, "Asia/Ulan_Bator"               },
+       { "ulat",  0,  28800, "Asia/Ulaanbaatar"              },
+       { "ulat",  0,  25200, "Asia/Ulaanbaatar"              },
+       { "ulat",  0,  25200, "Asia/Choibalsan"               },
+       { "ulat",  0,  25200, "Asia/Ulan_Bator"               },
+       { "ulat",  0,  28800, "Asia/Choibalsan"               },
+       { "ulat",  0,  28800, "Asia/Ulan_Bator"               },
+       { "urast", 1,  21600, "Asia/Oral"                     },
+       { "urast", 1,  18000, "Asia/Oral"                     },
+       { "urat",  0,  21600, "Asia/Oral"                     },
+       { "urat",  0,  14400, "Asia/Oral"                     },
+       { "urat",  0,  18000, "Asia/Oral"                     },
+       { "utc",   0,      0, "Antarctica/Troll"              },
        { "utc",   0,      0, "Etc/Universal"                 },
        { "utc",   0,      0, "Etc/UTC"                       },
        { "utc",   0,      0, "Etc/Zulu"                      },
        { "utc",   0,      0, "UTC"                           },
        { "utc",   0,      0, "UTC"                           },
+       { "uyhst", 1,  -9000, "America/Montevideo"            },
+       { "uyhst", 1, -10800, "America/Montevideo"            },
+       { "uyst",  1,  -7200, "America/Montevideo"            },
+       { "uyt",   0, -10800, "America/Montevideo"            },
+       { "uyt",   0, -12600, "America/Montevideo"            },
+       { "uzst",  1,  21600, "Asia/Samarkand"                },
+       { "uzst",  1,  21600, "Asia/Tashkent"                 },
+       { "uzt",   0,  18000, "Asia/Samarkand"                },
+       { "uzt",   0,  18000, "Asia/Tashkent"                 },
+       { "vet",   0, -16200, "America/Caracas"               },
+       { "vet",   0, -14400, "America/Caracas"               },
+       { "vlast", 1,  39600, "Asia/Vladivostok"              },
+       { "vlast", 1,  36000, "Asia/Vladivostok"              },
+       { "vlast", 1,  39600, "Asia/Khandyga"                 },
+       { "vlat",  0,  36000, "Asia/Vladivostok"              },
+       { "vlat",  0,  32400, "Asia/Vladivostok"              },
+       { "vlat",  0,  39600, "Asia/Vladivostok"              },
+       { "vlat",  0,  36000, "Asia/Khandyga"                 },
+       { "vlat",  0,  36000, "Asia/Ust-Nera"                 },
+       { "vlat",  0,  39600, "Asia/Khandyga"                 },
+       { "vlat",  0,  39600, "Asia/Ust-Nera"                 },
+       { "volst", 1,  14400, "Europe/Volgograd"              },
+       { "volst", 1,  18000, "Europe/Volgograd"              },
+       { "volt",  0,  10800, "Europe/Volgograd"              },
+       { "volt",  0,  14400, "Europe/Volgograd"              },
+       { "vost",  0,  21600, "Antarctica/Vostok"             },
+       { "vust",  1,  43200, "Pacific/Efate"                 },
+       { "vut",   0,  39600, "Pacific/Efate"                 },
+       { "wakt",  0,  43200, "Pacific/Wake"                  },
+       { "warst", 1, -10800, "America/Mendoza"               },
+       { "warst", 1, -10800, "America/Argentina/Jujuy"       },
+       { "warst", 1, -10800, "America/Argentina/Mendoza"     },
+       { "warst", 1, -10800, "America/Argentina/San_Luis"    },
+       { "warst", 1, -10800, "America/Jujuy"                 },
+       { "wart",  0, -14400, "America/Mendoza"               },
+       { "wart",  0, -14400, "America/Argentina/Catamarca"   },
+       { "wart",  0, -14400, "America/Argentina/ComodRivadavia" },
+       { "wart",  0, -14400, "America/Argentina/Cordoba"     },
+       { "wart",  0, -14400, "America/Argentina/Jujuy"       },
+       { "wart",  0, -14400, "America/Argentina/La_Rioja"    },
+       { "wart",  0, -14400, "America/Argentina/Mendoza"     },
+       { "wart",  0, -14400, "America/Argentina/Rio_Gallegos" },
+       { "wart",  0, -14400, "America/Argentina/Salta"       },
+       { "wart",  0, -14400, "America/Argentina/San_Juan"    },
+       { "wart",  0, -14400, "America/Argentina/San_Luis"    },
+       { "wart",  0, -14400, "America/Argentina/Tucuman"     },
+       { "wart",  0, -14400, "America/Argentina/Ushuaia"     },
+       { "wart",  0, -14400, "America/Catamarca"             },
+       { "wart",  0, -14400, "America/Cordoba"               },
+       { "wart",  0, -14400, "America/Jujuy"                 },
+       { "wart",  0, -14400, "America/Rosario"               },
        { "wast",  1,   7200, "Africa/Windhoek"               },
        { "wast",  1,   7200, "Africa/Ndjamena"               },
        { "wat",   0,   3600, "Africa/Brazzaville"            },
+       { "wat",   0,  -3600, "Africa/Bissau"                 },
+       { "wat",   0,  -3600, "Africa/El_Aaiun"               },
        { "wat",   0,   3600, "Africa/Bangui"                 },
        { "wat",   0,   3600, "Africa/Douala"                 },
        { "wat",   0,   3600, "Africa/Kinshasa"               },
        { "wet",   0,      0, "Europe/Luxembourg"             },
        { "wet",   0,      0, "Europe/Madrid"                 },
        { "wet",   0,      0, "Europe/Monaco"                 },
+       { "wft",   0,  43200, "Pacific/Wallis"                },
+       { "wgst",  1,  -7200, "America/Godthab"               },
+       { "wgst",  1,  -7200, "America/Danmarkshavn"          },
+       { "wgt",   0, -10800, "America/Godthab"               },
+       { "wgt",   0, -10800, "America/Danmarkshavn"          },
        { "wib",   0,  25200, "Asia/Jakarta"                  },
        { "wib",   0,  25200, "Asia/Pontianak"                },
+       { "wib",   0,  27000, "Asia/Jakarta"                  },
+       { "wib",   0,  27000, "Asia/Pontianak"                },
+       { "wib",   0,  28800, "Asia/Jakarta"                  },
+       { "wib",   0,  28800, "Asia/Pontianak"                },
+       { "wita",  0,  28800, "Asia/Dili"                     },
        { "wita",  0,  28800, "Asia/Makassar"                 },
        { "wita",  0,  28800, "Asia/Pontianak"                },
        { "wita",  0,  28800, "Asia/Ujung_Pandang"            },
        { "wit",   0,  32400, "Asia/Jayapura"                 },
        { "wmt",   0,   5040, "Europe/Vilnius"                },
        { "wmt",   0,   5040, "Europe/Warsaw"                 },
+       { "wsdt",  1,  50400, "Pacific/Apia"                  },
+       { "wsst",  0, -41400, "Pacific/Apia"                  },
+       { "wsst",  0,  46800, "Pacific/Apia"                  },
+       { "xjt",   0,  21600, "Asia/Kashgar"                  },
+       { "xjt",   0,  21600, "Asia/Urumqi"                   },
+       { "yakst", 1,  36000, "Asia/Yakutsk"                  },
+       { "yakst", 1,  32400, "Asia/Yakutsk"                  },
+       { "yakst", 1,  32400, "Asia/Chita"                    },
+       { "yakst", 1,  32400, "Asia/Khandyga"                 },
+       { "yakst", 1,  36000, "Asia/Chita"                    },
+       { "yakst", 1,  36000, "Asia/Khandyga"                 },
+       { "yakt",  0,  32400, "Asia/Yakutsk"                  },
+       { "yakt",  0,  28800, "Asia/Yakutsk"                  },
+       { "yakt",  0,  36000, "Asia/Yakutsk"                  },
+       { "yakt",  0,  28800, "Asia/Chita"                    },
+       { "yakt",  0,  28800, "Asia/Khandyga"                 },
+       { "yakt",  0,  28800, "Asia/Ust-Nera"                 },
+       { "yakt",  0,  32400, "Asia/Chita"                    },
+       { "yakt",  0,  32400, "Asia/Khandyga"                 },
+       { "yakt",  0,  32400, "Asia/Ust-Nera"                 },
+       { "yakt",  0,  36000, "Asia/Chita"                    },
+       { "yakt",  0,  36000, "Asia/Khandyga"                 },
        { "yddt",  1, -25200, "America/Dawson"                },
        { "yddt",  1, -25200, "America/Whitehorse"            },
        { "yddt",  1, -25200, "Canada/Yukon"                  },
        { "ydt",   1, -28800, "America/Whitehorse"            },
        { "ydt",   1, -28800, "America/Yakutat"               },
        { "ydt",   1, -28800, "Canada/Yukon"                  },
+       { "yekst", 1,  21600, "Asia/Yekaterinburg"            },
+       { "yekt",  0,  18000, "Asia/Yekaterinburg"            },
+       { "yekt",  0,  21600, "Asia/Yekaterinburg"            },
+       { "yerst", 1,  18000, "Asia/Yerevan"                  },
+       { "yerst", 1,  14400, "Asia/Yerevan"                  },
+       { "yert",  0,  14400, "Asia/Yerevan"                  },
+       { "yert",  0,  10800, "Asia/Yerevan"                  },
        { "ypt",   1, -28800, "America/Dawson"                },
        { "ypt",   1, -28800, "America/Whitehorse"            },
        { "ypt",   1, -28800, "America/Yakutat"               },
        { "w",     0, -36000, NULL                            },
        { "x",     0, -39600, NULL                            },
        { "y",     0, -43200, NULL                            },
+       { "zzz",   0,      0, "Antarctica/Davis"              },
+       { "zzz",   0,      0, "America/Cambridge_Bay"         },
+       { "zzz",   0,      0, "America/Inuvik"                },
+       { "zzz",   0,      0, "America/Iqaluit"               },
+       { "zzz",   0,      0, "America/Pangnirtung"           },
+       { "zzz",   0,      0, "America/Rankin_Inlet"          },
+       { "zzz",   0,      0, "America/Resolute"              },
+       { "zzz",   0,      0, "America/Yellowknife"           },
+       { "zzz",   0,      0, "Antarctica/Casey"              },
+       { "zzz",   0,      0, "Antarctica/DumontDUrville"     },
+       { "zzz",   0,      0, "Antarctica/Macquarie"          },
+       { "zzz",   0,      0, "Antarctica/Mawson"             },
+       { "zzz",   0,      0, "Antarctica/Palmer"             },
+       { "zzz",   0,      0, "Antarctica/Rothera"            },
+       { "zzz",   0,      0, "Antarctica/Syowa"              },
+       { "zzz",   0,      0, "Antarctica/Troll"              },
+       { "zzz",   0,      0, "Antarctica/Vostok"             },
+       { "zzz",   0,      0, "Indian/Kerguelen"              },
        { "z",     0,      0, NULL                            },
index 42a59cfaa65538aa30f57a126bdbceee1fe66fe8..83ff40b3856de5e16f45c6668f3780de22000a1e 100644 (file)
@@ -23,7 +23,6 @@
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
 
 /*                                    jan  feb  mrt  apr  may  jun  jul  aug  sep  oct  nov  dec */
 static int month_tab_leap[12]     = {  -1,  30,  59,  90, 120, 151, 181, 212, 243, 273, 304, 334 };
@@ -33,18 +32,6 @@ static int month_tab[12]          = {   0,  31,  59,  90, 120, 151, 181, 212, 24
 static int days_in_month_leap[13] = {  31,  31,  29,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31 };
 static int days_in_month[13]      = {  31,  31,  28,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31 };
 
-static void do_range_limit_fraction(timelib_sll *fraction, timelib_sll *seconds)
-{
-       if (*fraction < 0) {
-               *fraction += 1000000;
-               *seconds -= 1;
-       }
-       if (*fraction > 1000000) {
-               *fraction -= 1000000;
-               *seconds += 1;
-       }
-}
-
 static void do_range_limit(timelib_sll start, timelib_sll end, timelib_sll adj, timelib_sll *a, timelib_sll *b)
 {
        if (*a < start) {
@@ -203,47 +190,13 @@ void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt)
        do_range_limit(0, 12, 12, &rt->m, &rt->y);
 }
 
-#define EPOCH_DAY 719468
-
-static void magic_date_calc(timelib_time *time)
-{
-       timelib_sll y, ddd, mi, mm, dd, g;
-
-       /* The algorithm doesn't work before the year 1 */
-       if (time->d < -719498) {
-               return;
-       }
-
-       g = time->d + EPOCH_DAY - 1;
-
-       y = (10000 * g + 14780) / 3652425;
-       ddd = g - ((365*y) + (y/4) - (y/100) + (y/400));
-       if (ddd < 0) {
-               y--;
-               ddd = g - ((365*y) + (y/4) - (y/100) + (y/400));
-       }
-       mi = (100 * ddd + 52) / 3060;
-       mm = ((mi + 2) % 12) + 1;
-       y = y + (mi + 2) / 12;
-       dd = ddd - ((mi * 306 + 5) / 10) + 1;
-       time->y = y;
-       time->m = mm;
-       time->d = dd;
-}
-
 void timelib_do_normalize(timelib_time* time)
 {
-       if (time->us != TIMELIB_UNSET) do_range_limit_fraction(&time->us, &time->s);
        if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->s, &time->i);
        if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->i, &time->h);
        if (time->s != TIMELIB_UNSET) do_range_limit(0, 24, 24, &time->h, &time->d);
        do_range_limit(1, 13, 12, &time->m, &time->y);
 
-       /* Short cut if we're doing things against the Epoch */
-       if (time->y == 1970 && time->m == 1 && time->d != 1) {
-               magic_date_calc(time);
-       }
-
        do {} while (do_range_limit_days(&time->y, &time->m, &time->d));
        do_range_limit(1, 13, 12, &time->m, &time->y);
 }
@@ -256,8 +209,6 @@ static void do_adjust_relative(timelib_time* time)
        timelib_do_normalize(time);
 
        if (time->have_relative) {
-               time->us += time->relative.us;
-
                time->s += time->relative.s;
                time->i += time->relative.i;
                time->h += time->relative.h;
@@ -433,15 +384,16 @@ static timelib_sll do_adjust_timezone(timelib_time *tz, timelib_tzinfo *tzi)
                case TIMELIB_ZONETYPE_OFFSET:
 
                        tz->is_localtime = 1;
-                       return -tz->z;
+                       return tz->z * 60;
                        break;
 
                case TIMELIB_ZONETYPE_ABBR: {
                        timelib_sll tmp;
 
                        tz->is_localtime = 1;
-                       tmp = -tz->z;
-                       tmp -= tz->dst * 3600;
+                       tmp = tz->z;
+                       tmp -= tz->dst * 60;
+                       tmp *= 60;
                        return tmp;
                        }
                        break;
@@ -455,19 +407,19 @@ static timelib_sll do_adjust_timezone(timelib_time *tz, timelib_tzinfo *tzi)
                        if (tzi) {
                                timelib_time_offset *before, *after;
                                timelib_sll          tmp;
-                               int                  in_transition;
+                               int                  in_transistion;
 
                                tz->is_localtime = 1;
                                before = timelib_get_time_zone_info(tz->sse, tzi);
                                after = timelib_get_time_zone_info(tz->sse - before->offset, tzi);
                                timelib_set_timezone(tz, tzi);
 
-                               in_transition = (
-                                       ((tz->sse - after->offset) >= (after->transition_time + (before->offset - after->offset))) &&
-                                       ((tz->sse - after->offset) < after->transition_time)
+                               in_transistion = (
+                                       ((tz->sse - after->offset) >= (after->transistion_time + (before->offset - after->offset))) &&
+                                       ((tz->sse - after->offset) < after->transistion_time)
                                );
 
-                               if ((before->offset != after->offset) && !in_transition) {
+                               if ((before->offset != after->offset) && !in_transistion) {
                                        tmp = -after->offset;
                                } else {
                                        tmp = -tz->z;
index 43bfe818f55d7c7943f920cc768ba9622113d89d..bdef26defcbcb4b5831afddd1598920c7d0eb549 100644 (file)
  */
 
 #include "timelib.h"
-#include "timelib_private.h"
+
+#include <stdio.h>
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
 
 static int month_tab_leap[12] = { -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
 static int month_tab[12] =      { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
@@ -49,7 +60,7 @@ void timelib_unixtime2gmt(timelib_time* tm, timelib_sll ts)
        if (ts >= 0) {
                tmp_days = days + 1;
 
-               if (tmp_days > DAYS_PER_LYEAR_PERIOD || tmp_days <= -DAYS_PER_LYEAR_PERIOD) {
+               if (tmp_days >= DAYS_PER_LYEAR_PERIOD || tmp_days <= -DAYS_PER_LYEAR_PERIOD) {
                        cur_year += YEARS_PER_LYEAR_PERIOD * (tmp_days / DAYS_PER_LYEAR_PERIOD);
                        tmp_days -= DAYS_PER_LYEAR_PERIOD * (tmp_days / DAYS_PER_LYEAR_PERIOD);
                }
@@ -138,7 +149,7 @@ void timelib_update_from_sse(timelib_time *tm)
        switch (tm->zone_type) {
                case TIMELIB_ZONETYPE_ABBR:
                case TIMELIB_ZONETYPE_OFFSET: {
-                       timelib_unixtime2gmt(tm, tm->sse + tm->z + (tm->dst * 3600));
+                       timelib_unixtime2gmt(tm, tm->sse - (tm->z * 60) + (tm->dst * 3600));
 
                        goto cleanup;
                }
@@ -176,7 +187,7 @@ void timelib_unixtime2local(timelib_time *tm, timelib_sll ts)
                        int z = tm->z;
                        signed int dst = tm->dst;
 
-                       timelib_unixtime2gmt(tm, ts + tm->z + (tm->dst * 3600));
+                       timelib_unixtime2gmt(tm, ts - (tm->z * 60) + (tm->dst * 3600));
 
                        tm->sse = ts;
                        tm->z = z;
index b50afc7dbe982c02c6d9187d14c5963a4cbef06c..00722d3c8e2399e7566204ed9373846998093907 100644 (file)
@@ -29,7 +29,6 @@
 #include "php_date.h"
 #include "zend_interfaces.h"
 #include "lib/timelib.h"
-#include "lib/timelib_private.h"
 #include <time.h>
 
 #ifdef PHP_WIN32
@@ -925,7 +924,6 @@ PHP_MINFO_FUNCTION(date)
 static timelib_tzinfo *php_date_parse_tzfile(char *formal_tzname, const timelib_tzdb *tzdb)
 {
        timelib_tzinfo *tzi;
-       int dummy_error_code;
 
        if(!DATEG(tzcache)) {
                ALLOC_HASHTABLE(DATEG(tzcache));
@@ -936,14 +934,14 @@ static timelib_tzinfo *php_date_parse_tzfile(char *formal_tzname, const timelib_
                return tzi;
        }
 
-       tzi = timelib_parse_tzfile(formal_tzname, tzdb, &dummy_error_code);
+       tzi = timelib_parse_tzfile(formal_tzname, tzdb);
        if (tzi) {
                zend_hash_str_add_ptr(DATEG(tzcache), formal_tzname, strlen(formal_tzname), tzi);
        }
        return tzi;
 }
 
-timelib_tzinfo *php_date_parse_tzfile_wrapper(char *formal_tzname, const timelib_tzdb *tzdb, int *dummy_error_code)
+timelib_tzinfo *php_date_parse_tzfile_wrapper(char *formal_tzname, const timelib_tzdb *tzdb)
 {
        return php_date_parse_tzfile(formal_tzname, tzdb);
 }
@@ -1094,13 +1092,13 @@ static zend_string *date_format(char *format, size_t format_len, timelib_time *t
        if (localtime) {
                if (t->zone_type == TIMELIB_ZONETYPE_ABBR) {
                        offset = timelib_time_offset_ctor();
-                       offset->offset = (t->z + (t->dst * 3600));
+                       offset->offset = (t->z - (t->dst * 60)) * -60;
                        offset->leap_secs = 0;
                        offset->is_dst = t->dst;
                        offset->abbr = timelib_strdup(t->tz_abbr);
                } else if (t->zone_type == TIMELIB_ZONETYPE_OFFSET) {
                        offset = timelib_time_offset_ctor();
-                       offset->offset = (t->z);
+                       offset->offset = (t->z) * -60;
                        offset->leap_secs = 0;
                        offset->is_dst = 0;
                        offset->abbr = timelib_malloc(9); /* GMT±xxxx\0 */
@@ -1165,8 +1163,8 @@ static zend_string *date_format(char *format, size_t format_len, timelib_time *t
                        case 'H': length = slprintf(buffer, 32, "%02d", (int) t->h); break;
                        case 'i': length = slprintf(buffer, 32, "%02d", (int) t->i); break;
                        case 's': length = slprintf(buffer, 32, "%02d", (int) t->s); break;
-                       case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->us)); break;
-                       case 'v': length = slprintf(buffer, 32, "%03d", (int) floor(t->us / 1000)); break;
+                       case 'u': length = slprintf(buffer, 32, "%06d", (int) floor(t->f * 1000000 + 0.5)); break;
+                       case 'v': length = slprintf(buffer, 32, "%03d", (int) floor(t->f * 1000 + 0.5)); break;
 
                        /* timezone */
                        case 'I': length = slprintf(buffer, 32, "%d", localtime ? offset->is_dst : 0); break;
@@ -1304,13 +1302,13 @@ PHPAPI int php_idate(char format, time_t ts, int localtime)
        if (!localtime) {
                if (t->zone_type == TIMELIB_ZONETYPE_ABBR) {
                        offset = timelib_time_offset_ctor();
-                       offset->offset = (t->z + (t->dst * 3600));
+                       offset->offset = (t->z - (t->dst * 60)) * -60;
                        offset->leap_secs = 0;
                        offset->is_dst = t->dst;
                        offset->abbr = timelib_strdup(t->tz_abbr);
                } else if (t->zone_type == TIMELIB_ZONETYPE_OFFSET) {
                        offset = timelib_time_offset_ctor();
-                       offset->offset = (t->z + (t->dst * 3600));
+                       offset->offset = (t->z - (t->dst * 60)) * -60;
                        offset->leap_secs = 0;
                        offset->is_dst = t->dst;
                        offset->abbr = timelib_malloc(9); /* GMT±xxxx\0 */
@@ -2258,9 +2256,9 @@ static HashTable *date_object_get_properties(zval *object) /* {{{ */
                                timelib_sll utc_offset = dateobj->time->z;
 
                                ZSTR_LEN(tmpstr) = snprintf(ZSTR_VAL(tmpstr), sizeof("+05:00"), "%c%02d:%02d",
-                                       utc_offset < 0 ? '-' : '+',
-                                       abs(utc_offset / 3600),
-                                       abs(((utc_offset % 3600) / 60)));
+                                       utc_offset > 0 ? '-' : '+',
+                                       abs(utc_offset / 60),
+                                       abs((utc_offset % 60)));
 
                                ZVAL_NEW_STR(&zv, tmpstr);
                                }
@@ -2350,9 +2348,9 @@ static HashTable *date_object_get_properties_timezone(zval *object) /* {{{ */
                        zend_string *tmpstr = zend_string_alloc(sizeof("UTC+05:00")-1, 0);
 
                        ZSTR_LEN(tmpstr) = snprintf(ZSTR_VAL(tmpstr), sizeof("+05:00"), "%c%02d:%02d",
-                               tzobj->tzi.utc_offset < 0 ? '-' : '+',
-                               abs(tzobj->tzi.utc_offset / 3600),
-                               abs(((tzobj->tzi.utc_offset % 3600) / 60)));
+                       tzobj->tzi.utc_offset > 0 ? '-' : '+',
+                       abs(tzobj->tzi.utc_offset / 60),
+                       abs((tzobj->tzi.utc_offset % 60)));
 
                        ZVAL_NEW_STR(&zv, tmpstr);
                        }
@@ -2949,10 +2947,10 @@ void php_date_do_return_parsed_time(INTERNAL_FUNCTION_PARAMETERS, timelib_time *
        PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(minute,    i);
        PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(second,    s);
 
-       if (parsed_time->us == -99999) {
+       if (parsed_time->f == -99999) {
                add_assoc_bool(return_value, "fraction", 0);
        } else {
-               add_assoc_double(return_value, "fraction", (double)parsed_time->us / 1000000.0);
+               add_assoc_double(return_value, "fraction", parsed_time->f);
        }
 
        zval_from_error_container(return_value, error);
@@ -3401,10 +3399,10 @@ PHP_FUNCTION(date_offset_get)
                                timelib_time_offset_dtor(offset);
                                break;
                        case TIMELIB_ZONETYPE_OFFSET:
-                               RETVAL_LONG(dateobj->time->z);
+                               RETVAL_LONG(dateobj->time->z * -60);
                                break;
                        case TIMELIB_ZONETYPE_ABBR:
-                               RETVAL_LONG((dateobj->time->z + (3600 * dateobj->time->dst)));
+                               RETVAL_LONG((dateobj->time->z - (60 * dateobj->time->dst)) * -60);
                                break;
                }
                return;
@@ -3818,9 +3816,9 @@ PHP_FUNCTION(timezone_name_get)
                        timelib_sll utc_offset = tzobj->tzi.utc_offset;
 
                        ZSTR_LEN(tmpstr) = snprintf(ZSTR_VAL(tmpstr), sizeof("+05:00"), "%c%02d:%02d",
-                               utc_offset < 0 ? '-' : '+',
-                               abs(utc_offset / 3600),
-                               abs(((utc_offset % 3600) / 60)));
+                               utc_offset > 0 ? '-' : '+',
+                               abs(utc_offset / 60),
+                               abs((utc_offset % 60)));
 
                        RETURN_NEW_STR(tmpstr);
                        }
@@ -3881,10 +3879,10 @@ PHP_FUNCTION(timezone_offset_get)
                        timelib_time_offset_dtor(offset);
                        break;
                case TIMELIB_ZONETYPE_OFFSET:
-                       RETURN_LONG(tzobj->tzi.utc_offset);
+                       RETURN_LONG(tzobj->tzi.utc_offset * -60);
                        break;
                case TIMELIB_ZONETYPE_ABBR:
-                       RETURN_LONG(tzobj->tzi.z.utc_offset + (tzobj->tzi.z.dst * 3600));
+                       RETURN_LONG((tzobj->tzi.z.utc_offset - (tzobj->tzi.z.dst*60)) * -60);
                        break;
        }
 }
index ff42de5dea179ba203cb6ea5c447df8f664d7878..8b392297036a3dadc3c8e571081f6632a8013ffb 100644 (file)
@@ -8,7 +8,7 @@ date_default_timezone_set('UTC');
   echo "Done\n";
 ?>
 --EXPECTF--
-array(5) {
+array(6) {
   [0]=>
   array(3) {
     ["dst"]=>
@@ -16,7 +16,7 @@ array(5) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(13) "Etc/Universal"
+    string(16) "Antarctica/Troll"
   }
   [1]=>
   array(3) {
@@ -25,7 +25,7 @@ array(5) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(7) "Etc/UTC"
+    string(13) "Etc/Universal"
   }
   [2]=>
   array(3) {
@@ -34,7 +34,7 @@ array(5) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(8) "Etc/Zulu"
+    string(7) "Etc/UTC"
   }
   [3]=>
   array(3) {
@@ -43,7 +43,7 @@ array(5) {
     ["offset"]=>
     int(0)
     ["timezone_id"]=>
-    string(3) "UTC"
+    string(8) "Etc/Zulu"
   }
   [4]=>
   array(3) {
@@ -54,5 +54,14 @@ array(5) {
     ["timezone_id"]=>
     string(3) "UTC"
   }
+  [5]=>
+  array(3) {
+    ["dst"]=>
+    bool(false)
+    ["offset"]=>
+    int(0)
+    ["timezone_id"]=>
+    string(3) "UTC"
+  }
 }
 Done
index e4d25b008c7e4d798c5b2ff1bfb916915d3930b3..8e6e33bd173bdffc78778ec305adc8774df23405 100644 (file)
@@ -53,9 +53,30 @@ Array
     [comments] => %s
 )
 Array
+(
+    [country_code] => %s
+    [latitude] => %f
+    [longitude] => %f
+    [comments] => 
+)
+Array
 (
     [country_code] => %s
     [latitude] => %f
     [longitude] => %f
     [comments] => %s
 )
+Array
+(
+    [country_code] => %s
+    [latitude] => %f
+    [longitude] => %f
+    [comments] => %s
+)
+Array
+(
+    [country_code] => %s
+    [latitude] => %f
+    [longitude] => %f
+    [comments] => 
+)
index 5d68abe05f4afc7267788ea0cc6227d921407a53..e4a5dbd1757b8712d65f92f91f3cc9bec5a3c25a 100644 (file)
@@ -29,15 +29,15 @@ string(5) "array"
 int(%d)
 
 -- Format a sample entry --
-array(12) {
+array(11) {
   [0]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(18) "Australia/Adelaide"
+    string(18) "America/Porto_Acre"
   }
   [1]=>
   array(3) {
@@ -51,49 +51,40 @@ array(12) {
   [2]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(21) "Australia/Broken_Hill"
+    string(16) "America/Eirunepe"
   }
   [3]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(16) "Australia/Darwin"
+    string(18) "America/Rio_Branco"
   }
   [4]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(15) "Australia/North"
+    string(11) "Brazil/Acre"
   }
   [5]=>
   array(3) {
     ["dst"]=>
     bool(false)
     ["offset"]=>
-    int(32400)
+    int(34200)
     ["timezone_id"]=>
-    string(15) "Australia/South"
+    string(13) "Asia/Jayapura"
   }
   [6]=>
-  array(3) {
-    ["dst"]=>
-    bool(false)
-    ["offset"]=>
-    int(32400)
-    ["timezone_id"]=>
-    string(20) "Australia/Yancowinna"
-  }
-  [7]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -102,7 +93,7 @@ array(12) {
     ["timezone_id"]=>
     string(21) "Australia/Broken_Hill"
   }
-  [8]=>
+  [7]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -111,7 +102,7 @@ array(12) {
     ["timezone_id"]=>
     string(16) "Australia/Darwin"
   }
-  [9]=>
+  [8]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -120,7 +111,7 @@ array(12) {
     ["timezone_id"]=>
     string(15) "Australia/North"
   }
-  [10]=>
+  [9]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -129,7 +120,7 @@ array(12) {
     ["timezone_id"]=>
     string(15) "Australia/South"
   }
-  [11]=>
+  [10]=>
   array(3) {
     ["dst"]=>
     bool(false)
index 84d979cf71e723e4e5ba23e02c11a8da8eb2b1f7..03f5205daa1fcf09a50aa2e84c8a1bc0ce692bdb 100644 (file)
@@ -42,7 +42,7 @@ array(16) {
   ["zone_type"]=>
   int(2)
   ["zone"]=>
-  int(3600)
+  int(-60)
   ["is_dst"]=>
   bool(false)
   ["tz_abbr"]=>
index 076d0e9a24dcdee23a3618f6cbc8296ab5d4c530..022a1861b49cb845378bbde8606ae2e437bb8f89 100644 (file)
@@ -40,20 +40,20 @@ echo "\n";
 NULL
 NULL
 
-int(3600)
+int(-60)
 string(1) "A"
 
-int(3600)
+int(-60)
 string(1) "A"
 
-int(3600)
+int(-60)
 string(1) "A"
 
-int(3600)
+int(-60)
 string(1) "A"
 
-int(3600)
+int(-60)
 string(1) "A"
 
-int(3600)
+int(-60)
 string(1) "A"
index a312b52260cf4196d32e4fd352f9cee5f7fceec5..20733c686a0b64f6a2af4dc198551f23dac9b9f2 100644 (file)
@@ -5,7 +5,7 @@ date.timezone=Asia/Singapore
 --FILE--
 <?php
 
-print strtotime('2008-05-23 00:00:00 +08');
+print strtotime('2008-05-23 00:00:00 SGT');
 print "\n";
 print strtotime('2008-05-23 00:00:00');
 
index 3f0d6953d25bc6c8ebe893c389e94b11f4a90b77..93b7715fe523b19505a6e4a8ee8117ff17c426ec 100644 (file)
@@ -7,10 +7,10 @@ date_default_timezone_set('UTC');
 $earlyDate1 = DateTime::createFromFormat('U.u', '1.8642')->modify('-5 seconds');
 $earlyDate2 = DateTime::createFromFormat('U.u', '1.2768')->modify('-5 seconds');
 $earlyDate3 = DateTime::createFromFormat('U.u', '1.2768')->modify('-5 seconds');
-// var_dump($earlyDate1, $earlyDate2, $earlyDate3);
+
 var_dump($earlyDate1 == $earlyDate2);
-var_dump($earlyDate1 > $earlyDate2);
-var_dump($earlyDate2 < $earlyDate1);
+var_dump($earlyDate1 < $earlyDate2);
+var_dump($earlyDate2 > $earlyDate1);
 var_dump($earlyDate2 == $earlyDate3);
 --EXPECT--
 bool(false)
index 73fe8257238ee948debc0ca59882a9d52abcd77f..fd1394c77a68e1cb7e0a16825a2ee952eddc1219 100644 (file)
@@ -104,7 +104,7 @@ array(15) {
   ["zone_type"]=>
   int(1)
   ["zone"]=>
-  int(-43200)
+  int(720)
   ["is_dst"]=>
   bool(false)
 }
@@ -228,7 +228,7 @@ array(15) {
   ["zone_type"]=>
   int(1)
   ["zone"]=>
-  int(-10800)
+  int(180)
   ["is_dst"]=>
   bool(false)
 }
index 44b6d112e4d1c80c2fe99e01288f1052310d7e75..e4f893baafc659d11f8d23b2498b68cd05a4fd89 100644 (file)
@@ -10,22 +10,22 @@ echo "Done\n";
 --EXPECTF--    
 array(9) {
   ["sunrise"]=>
-  int(1165897761)
+  int(1165897782)
   ["sunset"]=>
-  int(1165934160)
+  int(1165934168)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165896156)
+  int(1165896176)
   ["civil_twilight_end"]=>
-  int(1165935765)
+  int(1165935773)
   ["nautical_twilight_begin"]=>
-  int(1165894334)
+  int(1165894353)
   ["nautical_twilight_end"]=>
-  int(1165937588)
+  int(1165937597)
   ["astronomical_twilight_begin"]=>
-  int(1165892551)
+  int(1165892570)
   ["astronomical_twilight_end"]=>
-  int(1165939371)
+  int(1165939380)
 }
 Done
index 4df725187decbb0eca64738db542975fc9d2f81d..6233392da4e6b73cf99137bf67368ed2f989a031 100644 (file)
@@ -11,13 +11,13 @@ foreach ($sun_info as $key => $elem )
 echo "Done\n";
 ?>
 --EXPECTF--
-2007-04-13 06:13:31 CEST sunrise
-2007-04-13 20:30:51 CEST sunset
-2007-04-13 13:22:11 CEST transit
-2007-04-13 05:29:22 CEST civil_twilight_begin
-2007-04-13 21:15:00 CEST civil_twilight_end
-2007-04-13 04:31:43 CEST nautical_twilight_begin
-2007-04-13 22:12:39 CEST nautical_twilight_end
-2007-04-13 03:17:01 CEST astronomical_twilight_begin
-2007-04-13 23:27:21 CEST astronomical_twilight_end
+2007-04-13 06:12:19 CEST sunrise
+2007-04-13 20:31:50 CEST sunset
+2007-04-13 13:22:05 CEST transit
+2007-04-13 05:28:03 CEST civil_twilight_begin
+2007-04-13 21:16:06 CEST civil_twilight_end
+2007-04-13 04:30:08 CEST nautical_twilight_begin
+2007-04-13 22:14:01 CEST nautical_twilight_end
+2007-04-13 03:14:36 CEST astronomical_twilight_begin
+2007-04-13 23:29:33 CEST astronomical_twilight_end
 Done
index 1faafea1d970bc1f441a821c896377adf69e7226..9c056e9dc0d71d9d8263f8e7fbbb99abfd58f3e1 100644 (file)
@@ -84,331 +84,331 @@ foreach($inputs as $input) {
 -- Iteration 1 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 2 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 3 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 4 --
 array(9) {
   ["sunrise"]=>
-  int(-69672)
+  int(-69665)
   ["sunset"]=>
-  int(-33281)
+  int(-33260)
   ["transit"]=>
-  int(-51476)
+  int(-51462)
   ["civil_twilight_begin"]=>
-  int(-71277)
+  int(-71269)
   ["civil_twilight_end"]=>
-  int(-31675)
+  int(-31655)
   ["nautical_twilight_begin"]=>
-  int(-73100)
+  int(-73092)
   ["nautical_twilight_end"]=>
-  int(-29852)
+  int(-29832)
   ["astronomical_twilight_begin"]=>
-  int(-74883)
+  int(-74874)
   ["astronomical_twilight_end"]=>
-  int(-28069)
+  int(-28050)
 }
 
 -- Iteration 5 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 6 --
 array(9) {
   ["sunrise"]=>
-  int(-69672)
+  int(-69665)
   ["sunset"]=>
-  int(-33281)
+  int(-33260)
   ["transit"]=>
-  int(-51476)
+  int(-51462)
   ["civil_twilight_begin"]=>
-  int(-71277)
+  int(-71269)
   ["civil_twilight_end"]=>
-  int(-31675)
+  int(-31655)
   ["nautical_twilight_begin"]=>
-  int(-73100)
+  int(-73092)
   ["nautical_twilight_end"]=>
-  int(-29852)
+  int(-29832)
   ["astronomical_twilight_begin"]=>
-  int(-74883)
+  int(-74874)
   ["astronomical_twilight_end"]=>
-  int(-28069)
+  int(-28050)
 }
 
 -- Iteration 7 --
 array(9) {
   ["sunrise"]=>
-  int(1226368)
+  int(1226363)
   ["sunset"]=>
-  int(1263442)
+  int(1263468)
   ["transit"]=>
-  int(1244905)
+  int(1244916)
   ["civil_twilight_begin"]=>
-  int(1224792)
+  int(1224788)
   ["civil_twilight_end"]=>
-  int(1265019)
+  int(1265044)
   ["nautical_twilight_begin"]=>
-  int(1222996)
+  int(1222993)
   ["nautical_twilight_end"]=>
-  int(1266815)
+  int(1266839)
   ["astronomical_twilight_begin"]=>
-  int(1221234)
+  int(1221233)
   ["astronomical_twilight_end"]=>
-  int(1268576)
+  int(1268599)
 }
 
 -- Iteration 8 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 9 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 10 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 11 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 12 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 13 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 14 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 15 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 16 --
@@ -444,49 +444,49 @@ bool(false)
 -- Iteration 22 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 23 --
 array(9) {
   ["sunrise"]=>
-  int(16742)
+  int(16748)
   ["sunset"]=>
-  int(53161)
+  int(53182)
   ["transit"]=>
-  int(34951)
+  int(34965)
   ["civil_twilight_begin"]=>
-  int(15138)
+  int(15145)
   ["civil_twilight_end"]=>
-  int(54765)
+  int(54786)
   ["nautical_twilight_begin"]=>
-  int(13316)
+  int(13324)
   ["nautical_twilight_end"]=>
-  int(56587)
+  int(56607)
   ["astronomical_twilight_begin"]=>
-  int(11534)
+  int(11542)
   ["astronomical_twilight_end"]=>
-  int(58369)
+  int(58389)
 }
 
 -- Iteration 24 --
 
 Warning: date_sun_info() expects parameter 1 to be integer, resource given in %s on line %d
 bool(false)
-===Done===
+===Done===
\ No newline at end of file
index 8c8267a2342606d95af87d193e4c062148a98e7d..61f9b29bf8eb59f7ec142897d85c023d57903f74 100644 (file)
@@ -84,45 +84,45 @@ foreach($inputs as $input) {
 -- Iteration 1 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 2 --
 array(9) {
   ["sunrise"]=>
-  int(1165894240)
+  int(1165894254)
   ["sunset"]=>
-  int(1165937681)
+  int(1165937695)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892898)
+  int(1165892911)
   ["civil_twilight_end"]=>
-  int(1165939024)
+  int(1165939038)
   ["nautical_twilight_begin"]=>
-  int(1165891330)
+  int(1165891344)
   ["nautical_twilight_end"]=>
-  int(1165940591)
+  int(1165940606)
   ["astronomical_twilight_begin"]=>
-  int(1165889758)
+  int(1165889771)
   ["astronomical_twilight_end"]=>
-  int(1165942164)
+  int(1165942179)
 }
 
 -- Iteration 3 --
@@ -132,283 +132,283 @@ array(9) {
   ["sunset"]=>
   bool(true)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
   bool(true)
   ["civil_twilight_end"]=>
   bool(true)
   ["nautical_twilight_begin"]=>
-  int(1165883368)
+  int(1165883331)
   ["nautical_twilight_end"]=>
-  int(1165948554)
+  int(1165948619)
   ["astronomical_twilight_begin"]=>
-  int(1165890281)
+  int(1165890260)
   ["astronomical_twilight_end"]=>
-  int(1165941641)
+  int(1165941690)
 }
 
 -- Iteration 4 --
 array(9) {
   ["sunrise"]=>
-  int(1165894072)
+  int(1165894085)
   ["sunset"]=>
-  int(1165937850)
+  int(1165937865)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165895418)
+  int(1165895431)
   ["civil_twilight_end"]=>
-  int(1165936504)
+  int(1165936519)
   ["nautical_twilight_begin"]=>
-  int(1165896984)
+  int(1165896998)
   ["nautical_twilight_end"]=>
-  int(1165934938)
+  int(1165934952)
   ["astronomical_twilight_begin"]=>
-  int(1165898549)
+  int(1165898564)
   ["astronomical_twilight_end"]=>
-  int(1165933372)
+  int(1165933386)
 }
 
 -- Iteration 5 --
 array(9) {
   ["sunrise"]=>
-  int(1165895221)
+  int(1165895237)
   ["sunset"]=>
-  int(1165936701)
+  int(1165936713)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165893858)
+  int(1165893873)
   ["civil_twilight_end"]=>
-  int(1165938064)
+  int(1165938077)
   ["nautical_twilight_begin"]=>
-  int(1165892278)
+  int(1165892293)
   ["nautical_twilight_end"]=>
-  int(1165939643)
+  int(1165939656)
   ["astronomical_twilight_begin"]=>
-  int(1165890706)
+  int(1165890721)
   ["astronomical_twilight_end"]=>
-  int(1165941215)
+  int(1165941229)
 }
 
 -- Iteration 6 --
 array(9) {
   ["sunrise"]=>
-  int(1165893046)
+  int(1165893058)
   ["sunset"]=>
-  int(1165938875)
+  int(1165938891)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165891669)
+  int(1165891680)
   ["civil_twilight_end"]=>
-  int(1165940253)
+  int(1165940269)
   ["nautical_twilight_begin"]=>
-  int(1165890044)
+  int(1165890055)
   ["nautical_twilight_end"]=>
-  int(1165941878)
+  int(1165941895)
   ["astronomical_twilight_begin"]=>
-  int(1165888392)
+  int(1165888402)
   ["astronomical_twilight_end"]=>
-  int(1165943530)
+  int(1165943548)
 }
 
 -- Iteration 7 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 8 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 9 --
 array(9) {
   ["sunrise"]=>
-  int(1165894189)
+  int(1165894203)
   ["sunset"]=>
-  int(1165937733)
+  int(1165937747)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892846)
+  int(1165892860)
   ["civil_twilight_end"]=>
-  int(1165939075)
+  int(1165939090)
   ["nautical_twilight_begin"]=>
-  int(1165891278)
+  int(1165891292)
   ["nautical_twilight_end"]=>
-  int(1165940643)
+  int(1165940658)
   ["astronomical_twilight_begin"]=>
-  int(1165889704)
+  int(1165889717)
   ["astronomical_twilight_end"]=>
-  int(1165942217)
+  int(1165942233)
 }
 
 -- Iteration 10 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 11 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 12 --
 array(9) {
   ["sunrise"]=>
-  int(1165894240)
+  int(1165894254)
   ["sunset"]=>
-  int(1165937681)
+  int(1165937695)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892898)
+  int(1165892911)
   ["civil_twilight_end"]=>
-  int(1165939024)
+  int(1165939038)
   ["nautical_twilight_begin"]=>
-  int(1165891330)
+  int(1165891344)
   ["nautical_twilight_end"]=>
-  int(1165940591)
+  int(1165940606)
   ["astronomical_twilight_begin"]=>
-  int(1165889758)
+  int(1165889771)
   ["astronomical_twilight_end"]=>
-  int(1165942164)
+  int(1165942179)
 }
 
 -- Iteration 13 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 14 --
 array(9) {
   ["sunrise"]=>
-  int(1165894240)
+  int(1165894254)
   ["sunset"]=>
-  int(1165937681)
+  int(1165937695)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892898)
+  int(1165892911)
   ["civil_twilight_end"]=>
-  int(1165939024)
+  int(1165939038)
   ["nautical_twilight_begin"]=>
-  int(1165891330)
+  int(1165891344)
   ["nautical_twilight_end"]=>
-  int(1165940591)
+  int(1165940606)
   ["astronomical_twilight_begin"]=>
-  int(1165889758)
+  int(1165889771)
   ["astronomical_twilight_end"]=>
-  int(1165942164)
+  int(1165942179)
 }
 
 -- Iteration 15 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 16 --
@@ -444,45 +444,45 @@ bool(false)
 -- Iteration 22 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 23 --
 array(9) {
   ["sunrise"]=>
-  int(1165894138)
+  int(1165894152)
   ["sunset"]=>
-  int(1165937784)
+  int(1165937798)
   ["transit"]=>
-  int(1165915961)
+  int(1165915975)
   ["civil_twilight_begin"]=>
-  int(1165892795)
+  int(1165892809)
   ["civil_twilight_end"]=>
-  int(1165939127)
+  int(1165939141)
   ["nautical_twilight_begin"]=>
-  int(1165891226)
+  int(1165891239)
   ["nautical_twilight_end"]=>
-  int(1165940696)
+  int(1165940710)
   ["astronomical_twilight_begin"]=>
-  int(1165889650)
+  int(1165889663)
   ["astronomical_twilight_end"]=>
-  int(1165942271)
+  int(1165942287)
 }
 
 -- Iteration 24 --
index 28af4266235ee0c35bb7060a9b1be7207934cdc7..909ecf06fb3a99d27c9c2076f40ed2460b48c370 100644 (file)
@@ -85,331 +85,331 @@ foreach($inputs as $input) {
 -- Iteration 1 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 2 --
 array(9) {
   ["sunrise"]=>
-  int(1165905981)
+  int(1165906002)
   ["sunset"]=>
-  int(1165942378)
+  int(1165942385)
   ["transit"]=>
-  int(1165924179)
+  int(1165924194)
   ["civil_twilight_begin"]=>
-  int(1165904376)
+  int(1165904396)
   ["civil_twilight_end"]=>
-  int(1165943983)
+  int(1165943991)
   ["nautical_twilight_begin"]=>
-  int(1165902553)
+  int(1165902573)
   ["nautical_twilight_end"]=>
-  int(1165945806)
+  int(1165945814)
   ["astronomical_twilight_begin"]=>
-  int(1165900771)
+  int(1165900789)
   ["astronomical_twilight_end"]=>
-  int(1165947588)
+  int(1165947598)
 }
 
 -- Iteration 3 --
 array(9) {
   ["sunrise"]=>
-  int(1165879309)
+  int(1165879335)
   ["sunset"]=>
-  int(1165917937)
+  int(1165917916)
   ["transit"]=>
-  int(1165898623)
+  int(1165898625)
   ["civil_twilight_begin"]=>
-  int(1165877787)
+  int(1165877811)
   ["civil_twilight_end"]=>
-  int(1165919460)
+  int(1165919440)
   ["nautical_twilight_begin"]=>
-  int(1165876041)
+  int(1165876064)
   ["nautical_twilight_end"]=>
-  int(1165921205)
+  int(1165921187)
   ["astronomical_twilight_begin"]=>
-  int(1165874319)
+  int(1165874341)
   ["astronomical_twilight_end"]=>
-  int(1165922928)
+  int(1165922910)
 }
 
 -- Iteration 4 --
 array(9) {
   ["sunrise"]=>
-  int(1165864467)
+  int(1165864483)
   ["sunset"]=>
-  int(1165900749)
+  int(1165900762)
   ["transit"]=>
-  int(1165882608)
+  int(1165882623)
   ["civil_twilight_begin"]=>
-  int(1165862856)
+  int(1165862873)
   ["civil_twilight_end"]=>
-  int(1165902359)
+  int(1165902372)
   ["nautical_twilight_begin"]=>
-  int(1165861029)
+  int(1165861045)
   ["nautical_twilight_end"]=>
-  int(1165904187)
+  int(1165904200)
   ["astronomical_twilight_begin"]=>
-  int(1165859242)
+  int(1165859259)
   ["astronomical_twilight_end"]=>
-  int(1165905973)
+  int(1165905987)
 }
 
 -- Iteration 5 --
 array(9) {
   ["sunrise"]=>
-  int(1165903700)
+  int(1165903721)
   ["sunset"]=>
-  int(1165940097)
+  int(1165940105)
   ["transit"]=>
-  int(1165921899)
+  int(1165921913)
   ["civil_twilight_begin"]=>
-  int(1165902095)
+  int(1165902115)
   ["civil_twilight_end"]=>
-  int(1165941702)
+  int(1165941711)
   ["nautical_twilight_begin"]=>
-  int(1165900272)
+  int(1165900292)
   ["nautical_twilight_end"]=>
-  int(1165943525)
+  int(1165943534)
   ["astronomical_twilight_begin"]=>
-  int(1165898490)
+  int(1165898508)
   ["astronomical_twilight_end"]=>
-  int(1165945308)
+  int(1165945317)
 }
 
 -- Iteration 6 --
 array(9) {
   ["sunrise"]=>
-  int(1165908743)
+  int(1165908763)
   ["sunset"]=>
-  int(1165945138)
+  int(1165945146)
   ["transit"]=>
-  int(1165926940)
+  int(1165926954)
   ["civil_twilight_begin"]=>
-  int(1165907137)
+  int(1165907157)
   ["civil_twilight_end"]=>
-  int(1165946743)
+  int(1165946752)
   ["nautical_twilight_begin"]=>
-  int(1165905315)
+  int(1165905334)
   ["nautical_twilight_end"]=>
-  int(1165948566)
+  int(1165948575)
   ["astronomical_twilight_begin"]=>
-  int(1165903532)
+  int(1165903551)
   ["astronomical_twilight_end"]=>
-  int(1165950349)
+  int(1165950358)
 }
 
 -- Iteration 7 --
 array(9) {
   ["sunrise"]=>
-  int(1165920008)
+  int(1165919856)
   ["sunset"]=>
-  int(1165970177)
+  int(1165969985)
   ["transit"]=>
-  int(1165945092)
+  int(1165944920)
   ["civil_twilight_begin"]=>
-  int(1165918353)
+  int(1165918203)
   ["civil_twilight_end"]=>
-  int(1165971832)
+  int(1165971638)
   ["nautical_twilight_begin"]=>
-  int(1165916371)
+  int(1165916223)
   ["nautical_twilight_end"]=>
-  int(1165973814)
+  int(1165973617)
   ["astronomical_twilight_begin"]=>
-  int(1165914258)
+  int(1165914116)
   ["astronomical_twilight_end"]=>
-  int(1165975927)
+  int(1165975725)
 }
 
 -- Iteration 8 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 9 --
 array(9) {
   ["sunrise"]=>
-  int(1165906101)
+  int(1165906122)
   ["sunset"]=>
-  int(1165942498)
+  int(1165942505)
   ["transit"]=>
-  int(1165924300)
+  int(1165924314)
   ["civil_twilight_begin"]=>
-  int(1165904496)
+  int(1165904516)
   ["civil_twilight_end"]=>
-  int(1165944103)
+  int(1165944111)
   ["nautical_twilight_begin"]=>
-  int(1165902673)
+  int(1165902693)
   ["nautical_twilight_end"]=>
-  int(1165945926)
+  int(1165945934)
   ["astronomical_twilight_begin"]=>
-  int(1165900891)
+  int(1165900910)
   ["astronomical_twilight_end"]=>
-  int(1165947708)
+  int(1165947718)
 }
 
 -- Iteration 10 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 11 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 12 --
 array(9) {
   ["sunrise"]=>
-  int(1165905981)
+  int(1165906002)
   ["sunset"]=>
-  int(1165942378)
+  int(1165942385)
   ["transit"]=>
-  int(1165924179)
+  int(1165924194)
   ["civil_twilight_begin"]=>
-  int(1165904376)
+  int(1165904396)
   ["civil_twilight_end"]=>
-  int(1165943983)
+  int(1165943991)
   ["nautical_twilight_begin"]=>
-  int(1165902553)
+  int(1165902573)
   ["nautical_twilight_end"]=>
-  int(1165945806)
+  int(1165945814)
   ["astronomical_twilight_begin"]=>
-  int(1165900771)
+  int(1165900789)
   ["astronomical_twilight_end"]=>
-  int(1165947588)
+  int(1165947598)
 }
 
 -- Iteration 13 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 14 --
 array(9) {
   ["sunrise"]=>
-  int(1165905981)
+  int(1165906002)
   ["sunset"]=>
-  int(1165942378)
+  int(1165942385)
   ["transit"]=>
-  int(1165924179)
+  int(1165924194)
   ["civil_twilight_begin"]=>
-  int(1165904376)
+  int(1165904396)
   ["civil_twilight_end"]=>
-  int(1165943983)
+  int(1165943991)
   ["nautical_twilight_begin"]=>
-  int(1165902553)
+  int(1165902573)
   ["nautical_twilight_end"]=>
-  int(1165945806)
+  int(1165945814)
   ["astronomical_twilight_begin"]=>
-  int(1165900771)
+  int(1165900789)
   ["astronomical_twilight_end"]=>
-  int(1165947588)
+  int(1165947598)
 }
 
 -- Iteration 15 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 16 --
@@ -445,45 +445,45 @@ bool(false)
 -- Iteration 22 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 23 --
 array(9) {
   ["sunrise"]=>
-  int(1165906221)
+  int(1165906242)
   ["sunset"]=>
-  int(1165942618)
+  int(1165942625)
   ["transit"]=>
-  int(1165924420)
+  int(1165924434)
   ["civil_twilight_begin"]=>
-  int(1165904616)
+  int(1165904636)
   ["civil_twilight_end"]=>
-  int(1165944223)
+  int(1165944231)
   ["nautical_twilight_begin"]=>
-  int(1165902793)
+  int(1165902813)
   ["nautical_twilight_end"]=>
-  int(1165946046)
+  int(1165946054)
   ["astronomical_twilight_begin"]=>
-  int(1165901011)
+  int(1165901030)
   ["astronomical_twilight_end"]=>
-  int(1165947828)
+  int(1165947838)
 }
 
 -- Iteration 24 --
index ccb0ad83259f0b9f944a329f6827a7e5a14cae1c..c9b8aa37cac397f6c9ab5241388c0691f9a33d27 100644 (file)
@@ -109,38 +109,38 @@ foreach($inputs as $key =>$value) {
 
 --int 0--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --int 1--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --int 12345--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --int -12345--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --float 10.5--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --float -10.5--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --float .5--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --empty array--
 
@@ -188,33 +188,33 @@ bool(false)
 
 --uppercase NULL--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --lowercase null--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --lowercase true--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --lowercase false--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --uppercase TRUE--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --uppercase FALSE--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --empty string DQ--
 
@@ -306,11 +306,11 @@ bool(false)
 
 --undefined var--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 
 --unset var--
 string(5) "08:56"
-float(8.943%d)
-int(28596)
+float(8.944%d)
+int(28599)
 ===DONE===
index 537171c24bf434e74da013d3f129e4ef0b4db0f9..b93c53e9e675fac33204230a9d743fd91b88ef67 100644 (file)
@@ -103,12 +103,12 @@ foreach($inputs as $key =>$value) {
 --int 0--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --int 1--
 string(5) "01:09"
 float(1.155%d)
-int(1218177560)
+int(1218177558)
 
 --int 12345--
 bool(false)
@@ -167,32 +167,32 @@ bool(false)
 --uppercase NULL--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --lowercase null--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --lowercase true--
 string(5) "01:09"
 float(1.155%d)
-int(1218177560)
+int(1218177558)
 
 --lowercase false--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --uppercase TRUE--
 string(5) "01:09"
 float(1.155%d)
-int(1218177560)
+int(1218177558)
 
 --uppercase FALSE--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --empty string DQ--
 
@@ -285,10 +285,10 @@ bool(false)
 --undefined var--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 
 --unset var--
 string(5) "01:10"
 float(1.174%d)
-int(1218177629)
+int(1218177627)
 ===DONE===
index 7909ca110097dcfc77e186dea6b680ad9242caf6..94c28902727505b06740cb09f228e66f50c79d5d 100644 (file)
@@ -103,24 +103,24 @@ foreach($inputs as $key =>$value) {
 *** Testing date_sunrise() : usage variation ***
 
 --int 0--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --int 1--
-string(5) "05:07"
-float(5.129%d)
-int(1218172067)
+string(5) "05:08"
+float(5.133%d)
+int(1218172081)
 
 --int 12345--
 string(5) "21:45"
-float(21.757%d)
-int(1218145525)
+float(21.759%d)
+int(1218145534)
 
 --int -12345--
 string(5) "12:41"
-float(12.694%d)
-int(1218199301)
+float(12.698%d)
+int(1218199315)
 
 --empty array--
 
@@ -167,34 +167,34 @@ Warning: date_sunrise() expects parameter 4 to be float, array given in %s on li
 bool(false)
 
 --uppercase NULL--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --lowercase null--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --lowercase true--
-string(5) "05:07"
-float(5.129%d)
-int(1218172067)
+string(5) "05:08"
+float(5.133%d)
+int(1218172081)
 
 --lowercase false--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --uppercase TRUE--
-string(5) "05:07"
-float(5.129%d)
-int(1218172067)
+string(5) "05:08"
+float(5.133%d)
+int(1218172081)
 
 --uppercase FALSE--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --empty string DQ--
 
@@ -285,12 +285,12 @@ Warning: date_sunrise() expects parameter 4 to be float, object given in %s on l
 bool(false)
 
 --undefined var--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 
 --unset var--
-string(5) "05:11"
-float(5.196%d)
-int(1218172307)
+string(5) "05:12"
+float(5.200%d)
+int(1218172321)
 ===DONE===
index 9858c890bae41bea11d5985045e309673bcef867..c7925dada361702cb3eea64e403a46d1d303ccfe 100644 (file)
@@ -113,14 +113,14 @@ bool(false)
 bool(false)
 
 --int 12345--
-string(5) "09:50"
-float(9.849%d)
-int(1218169259)
+string(5) "09:51"
+float(9.855%d)
+int(1218169278)
 
 --int -12345--
 string(5) "09:54"
-float(9.904%d)
-int(1218169455)
+float(9.9097820911118)
+int(1218169475)
 
 --empty array--
 
index 4c7a8e762ca60ab536baf0b1e133bd5abf1794dc..360f756438ad9b73d9de8695d9c1089797336073 100644 (file)
@@ -102,24 +102,24 @@ foreach($inputs as $key =>$value) {
 *** Testing date_sunrise() : usage variation ***
 
 --int 0--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --int 1--
-string(5) "06:47"
-float(6.796%d)
-int(1218174468)
+string(5) "06:48"
+float(6.800%d)
+int(1218174483)
 
 --int 12345--
-string(5) "14:47"
-float(14.796%d)
-int(1218174468)
+string(5) "14:48"
+float(14.800%d)
+int(1218174483)
 
 --int -12345--
-string(5) "12:47"
-float(12.796%d)
-int(1218174468)
+string(5) "12:48"
+float(12.800%d)
+int(1218174483)
 
 --empty array--
 
@@ -166,34 +166,34 @@ Warning: date_sunrise() expects parameter 6 to be float, array given in %s on li
 bool(false)
 
 --uppercase NULL--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --lowercase null--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --lowercase true--
-string(5) "06:47"
-float(6.796%d)
-int(1218174468)
+string(5) "06:48"
+float(6.800%d)
+int(1218174483)
 
 --lowercase false--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --uppercase TRUE--
-string(5) "06:47"
-float(6.796%d)
-int(1218174468)
+string(5) "06:48"
+float(6.800%d)
+int(1218174483)
 
 --uppercase FALSE--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --empty string DQ--
 
@@ -284,12 +284,12 @@ Warning: date_sunrise() expects parameter 6 to be float, object given in %s on l
 bool(false)
 
 --undefined var--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 
 --unset var--
-string(5) "05:47"
-float(5.796%d)
-int(1218174468)
+string(5) "05:48"
+float(5.800%d)
+int(1218174483)
 ===DONE===
index 6e9c2ec83b3e816a16dd5044d2f197cf5095c74d..fa5f363a5dce99bbc74ee9c2f9edfb4db8ef6d5e 100644 (file)
@@ -36,15 +36,15 @@ foreach($inputs as $timezone => $value) {
 ===DONE===
 --EXPECTF--
 *** Testing date_sunrise() : usage variation ***
-string(5) "06:42"
 string(5) "06:41"
-string(5) "05:07"
+string(5) "06:41"
 string(5) "05:09"
-string(5) "05:58"
+string(5) "05:11"
 string(5) "05:59"
-string(5) "07:31"
+string(5) "06:00"
 string(5) "07:30"
-string(5) "05:52"
+string(5) "07:29"
+string(5) "05:53"
 string(5) "05:53"
 string(5) "05:59"
 string(5) "06:01"
index 99b6230338c39622c15cd0c1cd9c6163fb87dd2c..9c7307082fb78e31f5282e5b15bd313ad1dbb15e 100644 (file)
@@ -109,38 +109,38 @@ foreach($inputs as $key =>$value) {
 
 --int 0--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --int 1--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --int 12345--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --int -12345--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --float 10.5--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --float -10.5--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --float .5--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --empty array--
 
@@ -188,33 +188,33 @@ bool(false)
 
 --uppercase NULL--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --lowercase null--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --lowercase true--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --lowercase false--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --uppercase TRUE--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --uppercase FALSE--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --empty string DQ--
 
@@ -306,11 +306,11 @@ bool(false)
 
 --undefined var--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 
 --unset var--
 string(5) "18:22"
-float(18.373%d)
-int(62545)
+float(18.377%d)
+int(62558)
 ===DONE===
index 0a51ac6b171360bf948f53ec590921967a83b93b..0bc98c148d21bfcc72643828a198349bf981c68e 100644 (file)
@@ -105,13 +105,13 @@ foreach($inputs as $key =>$value) {
 
 --int 0--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --int 1--
-string(5) "17:45"
-float(17.750%d)
-int(1218197701)
+string(5) "17:44"
+float(17.749%d)
+int(1218197698)
 
 --int 12345--
 bool(false)
@@ -169,33 +169,33 @@ bool(false)
 
 --uppercase NULL--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --lowercase null--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --lowercase true--
-string(5) "17:45"
-float(17.750%d)
-int(1218197701)
+string(5) "17:44"
+float(17.749%d)
+int(1218197698)
 
 --lowercase false--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --uppercase TRUE--
-string(5) "17:45"
-float(17.750%d)
-int(1218197701)
+string(5) "17:44"
+float(17.749%d)
+int(1218197698)
 
 --uppercase FALSE--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --empty string DQ--
 
@@ -287,11 +287,11 @@ bool(false)
 
 --undefined var--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 
 --unset var--
 string(5) "17:43"
-float(17.731%d)
-int(1218197632)
+float(17.730%d)
+int(1218197630)
 ===DONE===
index c892f87c099fbd8f09150853560026cdea729c80..a9798a6b9fe03db5abfcc5614c606baeebcc0f83 100644 (file)
@@ -104,13 +104,13 @@ foreach($inputs as $key =>$value) {
 
 --int 0--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --int 1--
 string(5) "23:59"
-float(23.995%d)
-int(1218220185)
+float(23.992%d)
+int(1218220174)
 
 --int 12345--
 string(5) "17:15"
@@ -118,9 +118,9 @@ float(17.259%d)
 int(1218195932)
 
 --int -12345--
-string(5) "12:19"
-float(12.319%d)
-int(1218178151)
+string(5) "12:18"
+float(12.316%d)
+int(1218178138)
 
 --empty array--
 
@@ -168,33 +168,33 @@ bool(false)
 
 --uppercase NULL--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --lowercase null--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --lowercase true--
 string(5) "23:59"
-float(23.995%d)
-int(1218220185)
+float(23.992%d)
+int(1218220174)
 
 --lowercase false--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --uppercase TRUE--
 string(5) "23:59"
-float(23.995%d)
-int(1218220185)
+float(23.992%d)
+int(1218220174)
 
 --uppercase FALSE--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --empty string DQ--
 
@@ -286,11 +286,11 @@ bool(false)
 
 --undefined var--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 
 --unset var--
 string(5) "00:03"
-float(0.062%d)
-int(1218220425)
+float(0.059%d)
+int(1218220414)
 ===DONE===
index 579e1c8eb01e7714091233660b04819c4dcd24a1..c5c333f3d2d55f06df1fa233025be69c6a43ab77 100644 (file)
@@ -114,8 +114,8 @@ bool(false)
 
 --int 12345--
 string(5) "19:20"
-float(19.343%d)
-int(1218203437)
+float(19.340%d)
+int(1218203424)
 
 --int -12345--
 bool(false)
index 29b31f6e95767c7946139557315dc55d989245a1..d34f897bb146d0d1ea85ad6db3935ddb0116e578 100644 (file)
@@ -103,24 +103,24 @@ foreach($inputs as $key =>$value) {
 *** Testing date_sunset() : usage variation ***
 
 --int 0--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --int 1--
-string(5) "13:41"
-float(13.684%d)
-int(1218199264)
+string(5) "13:40"
+float(13.681%d)
+int(1218199253)
 
 --int 12345--
-string(5) "21:41"
-float(21.684%d)
-int(1218199264)
+string(5) "21:40"
+float(21.681%d)
+int(1218199253)
 
 --int -12345--
-string(5) "19:41"
-float(19.684%d)
-int(1218199264)
+string(5) "19:40"
+float(19.681%d)
+int(1218199253)
 
 --empty array--
 
@@ -167,34 +167,34 @@ Warning: date_sunset() expects parameter 6 to be float, array given in %s on lin
 bool(false)
 
 --uppercase NULL--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --lowercase null--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --lowercase true--
-string(5) "13:41"
-float(13.684%d)
-int(1218199264)
+string(5) "13:40"
+float(13.681%d)
+int(1218199253)
 
 --lowercase false--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --uppercase TRUE--
-string(5) "13:41"
-float(13.684%d)
-int(1218199264)
+string(5) "13:40"
+float(13.681%d)
+int(1218199253)
 
 --uppercase FALSE--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --empty string DQ--
 
@@ -285,12 +285,12 @@ Warning: date_sunset() expects parameter 6 to be float, object given in %s on li
 bool(false)
 
 --undefined var--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 
 --unset var--
-string(5) "12:41"
-float(12.684%d)
-int(1218199264)
+string(5) "12:40"
+float(12.681%d)
+int(1218199253)
 ===DONE===
index 67bd2f418257c5462b63c7dd17b67572d3ebc576..0c64d969e20f5597196d25a01cdc83cf49925cdc 100644 (file)
@@ -42,24 +42,24 @@ string(5) "18:13"
 string(5) "18:13"
 
 --US/Alaska--
-string(5) "21:02"
-string(5) "20:59"
+string(5) "21:00"
+string(5) "20:57"
 
 --America/Chicago--
-string(5) "19:52"
 string(5) "19:51"
+string(5) "19:50"
 
 --America/Montevideo--
 string(5) "18:08"
-string(5) "18:08"
+string(5) "18:09"
 
 --Africa/Casablanca--
-string(5) "19:18"
 string(5) "19:17"
+string(5) "19:16"
 
 --Europe/Moscow--
-string(5) "21:10"
-string(5) "21:08"
+string(5) "21:09"
+string(5) "21:07"
 
 --Asia/Hong_Kong--
 string(5) "18:55"
index 8309b69c51ee66e85912d2b9037c35f29b19ee4d..59acb122c56b83d36a4df63865d5ad888b312041 100644 (file)
@@ -16,27 +16,27 @@ for($a=1;$a<=12;$a++){
 }
 ?>
 --EXPECTF--
-1041395858 06:37 6.6274307083%d
-1041432434 16:47 16.787476435%d
-1044073871 06:31 6.5198435465%d
-1044112440 17:14 17.233560530%d
-1046491524 06:05 6.0901858662%d
-1046533056 17:37 17.626724279%d
-1049167610 05:26 5.4473483216%d
-1049212759 17:59 17.988854003%d
-1051757554 04:52 4.8761196793%d
-1051805991 18:19 18.330987470%d
-1054434782 04:33 4.5506171719%d
-1054485634 18:40 18.676282498%d
-1057026940 04:35 4.5946862151%d
-1057078197 18:49 18.832651294%d
-1059706395 04:53 4.8875657219%d
-1059755854 18:37 18.626282855%d
-1062385985 05:13 5.2182752537%d
-1062432319 18:05 18.088728929%d
-1064979083 05:31 5.5233314120%d
-1065021981 17:26 17.439368589%d
-1067658825 05:53 5.8959513887%d
-1067698295 16:51 16.859972460%d
-1070252367 06:19 6.3241991396%d
-1070289384 16:36 16.606870705%d
+1041395864 06:37 6.6290131458%d
+1041432452 16:47 16.792451114%d
+1044073855 06:30 6.5154089279%d
+1044112463 17:14 17.239870289%d
+1046491495 06:04 6.0822145033%d
+1046533075 17:37 17.632011035%d
+1049167581 05:26 5.4394438111%d
+1049212774 17:59 17.993035729%d
+1051757532 04:52 4.8701934126%d
+1051806007 18:20 18.335390508%d
+1054434776 04:32 4.5489827182%d
+1054485647 18:40 18.679812949%d
+1057026949 04:35 4.5971956372%d
+1057078197 18:49 18.832563396%d
+1059706409 04:53 4.8916575089%d
+1059755837 18:37 18.621440704%d
+1062385999 05:13 5.2220951121%d
+1062432291 18:04 18.080957168%d
+1064979098 05:31 5.5273199215%d
+1065021952 17:25 17.431339135%d
+1067658845 05:54 5.9016292870%d
+1067698274 16:51 16.853902453%d
+1070252387 06:19 6.3299242689%d
+1070289382 16:36 16.606312600%d
index c3510f1e649dd4366498e8aacabdc9964e850f8f..73af2acf3dd42037acdd429b72eb6252b9b263ce 100644 (file)
@@ -26,18 +26,18 @@ var_dump( $abbr["acst"] );
 --EXPECTF--
 *** Testing timezone_abbreviations_list() : basic functionality ***
 string(5) "array"
-int(142)
+int(%d)
 
 -- Format a sample entry --
-array(12) {
+array(11) {
   [0]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(18) "Australia/Adelaide"
+    string(18) "America/Porto_Acre"
   }
   [1]=>
   array(3) {
@@ -51,49 +51,40 @@ array(12) {
   [2]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(21) "Australia/Broken_Hill"
+    string(16) "America/Eirunepe"
   }
   [3]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(16) "Australia/Darwin"
+    string(18) "America/Rio_Branco"
   }
   [4]=>
   array(3) {
     ["dst"]=>
-    bool(false)
+    bool(true)
     ["offset"]=>
-    int(32400)
+    int(-14400)
     ["timezone_id"]=>
-    string(15) "Australia/North"
+    string(11) "Brazil/Acre"
   }
   [5]=>
   array(3) {
     ["dst"]=>
     bool(false)
     ["offset"]=>
-    int(32400)
+    int(34200)
     ["timezone_id"]=>
-    string(15) "Australia/South"
+    string(13) "Asia/Jayapura"
   }
   [6]=>
-  array(3) {
-    ["dst"]=>
-    bool(false)
-    ["offset"]=>
-    int(32400)
-    ["timezone_id"]=>
-    string(20) "Australia/Yancowinna"
-  }
-  [7]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -102,7 +93,7 @@ array(12) {
     ["timezone_id"]=>
     string(21) "Australia/Broken_Hill"
   }
-  [8]=>
+  [7]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -111,7 +102,7 @@ array(12) {
     ["timezone_id"]=>
     string(16) "Australia/Darwin"
   }
-  [9]=>
+  [8]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -120,7 +111,7 @@ array(12) {
     ["timezone_id"]=>
     string(15) "Australia/North"
   }
-  [10]=>
+  [9]=>
   array(3) {
     ["dst"]=>
     bool(false)
@@ -129,7 +120,7 @@ array(12) {
     ["timezone_id"]=>
     string(15) "Australia/South"
   }
-  [11]=>
+  [10]=>
   array(3) {
     ["dst"]=>
     bool(false)
index b6a0bd94f7a7ac0d2be8a000b62ce9d6ff62ba31..b591fe28f92a2a33cbd3c4a85aeea3248db76e38 100644 (file)
@@ -24,6 +24,11 @@ var_dump( timezone_name_from_abbr("EDT") );
 echo "-- Lookup with name and offset--\n"; 
 var_dump( timezone_name_from_abbr("ADT", -10800) );
 var_dump( timezone_name_from_abbr("ADT", 14400) );
+var_dump( timezone_name_from_abbr("AKTT", 14400) );
+var_dump( timezone_name_from_abbr("aktt", 18000) );
+var_dump( timezone_name_from_abbr("Aktt", 21600) );
+var_dump( timezone_name_from_abbr("AMST", -10800) );
+var_dump( timezone_name_from_abbr("amst", 180000) );
 
 echo "-- Tests without valid name - uses gmtOffset and isdst to find match --\n"; 
 var_dump( timezone_name_from_abbr("", 3600, 1) );
@@ -46,7 +51,12 @@ string(13) "Europe/Berlin"
 string(16) "America/New_York"
 -- Lookup with name and offset--
 string(15) "America/Halifax"
-string(15) "America/Halifax"
+string(12) "Asia/Baghdad"
+string(11) "Asia/Aqtobe"
+string(11) "Asia/Aqtobe"
+string(11) "Asia/Aqtobe"
+string(17) "America/Boa_Vista"
+string(12) "Asia/Yerevan"
 -- Tests without valid name - uses gmtOffset and isdst to find match --
 string(13) "Europe/London"
 string(17) "America/Sao_Paulo"
@@ -55,4 +65,4 @@ string(15) "America/Halifax"
 -- Tests with invalid offsets --
 bool(false)
 bool(false)
-===DONE===
+===DONE===
\ No newline at end of file
index 01d27cc35f3fef779c400fcd3e5deebdd8cd5f07..f1bf75ab0fa67455cf8a17281c26c73d45543b02 100644 (file)
@@ -56,8 +56,8 @@ U_CFUNC TimeZone *timezone_convert_datetimezone(int type,
                        break;
                case TIMELIB_ZONETYPE_OFFSET: {
                        int offset_mins = is_datetime
-                               ? ((php_date_obj*)object)->time->z / 60
-                               : (int)((php_timezone_obj*)object)->tzi.utc_offset / 60,
+                               ? -((php_date_obj*)object)->time->z
+                               : -(int)((php_timezone_obj*)object)->tzi.utc_offset,
                                hours = offset_mins / 60,
                                minutes = offset_mins - hours * 60;
                        minutes *= minutes > 0 ? 1 : -1;
index 68afbd78ce2a7ce25eb7067b99e54296da0f2df8..d1e8e2e0a678b44cb179d87106c3330f89b439bd 100644 (file)
@@ -83,8 +83,8 @@ U_CFUNC zval *timezone_convert_to_datetimezone(const TimeZone *timeZone,
                 * so we must mess with DateTimeZone structure ourselves */
                tzobj->initialized        = 1;
                tzobj->type                       = TIMELIB_ZONETYPE_OFFSET;
-               //convert offset from milliseconds to seconds
-               tzobj->tzi.utc_offset = timeZone->getRawOffset() / 1000;
+               //convert offset from milliseconds to minutes
+               tzobj->tzi.utc_offset = -1 * timeZone->getRawOffset() / (60 * 1000);
        } else {
                zend_string *u8str;
                /* Call the constructor! */