sql: Remove redundant PRAGMA secure_delete=ON.

Chrome builds SQLite with SQLITE_SECURE_DELETE [1], so the default value
for the secure_delete PRAGMA [2] is already true.

[1] https://www.sqlite.org/compile.html#secure_delete
[2] https://www.sqlite.org/pragma.html#pragma_secure_delete

Bug: 910955
Change-Id: I27ef32770a980c8c6030675e79698d7a31e47a9d
Reviewed-on: https://chromium-review.googlesource.com/c/1357824
Commit-Queue: Victor Costan <[email protected]>
Reviewed-by: Chris Mumford <[email protected]>
Cr-Commit-Position: refs/heads/master@{#613866}
diff --git a/sql/database.cc b/sql/database.cc
index 623bd8b..bb6b456 100644
--- a/sql/database.cc
+++ b/sql/database.cc
@@ -1663,8 +1663,8 @@
     OnSqliteError(err, nullptr, "PRAGMA auto_vacuum");
 
     // Retry or bail out if the error handler poisoned the handle.
-    // TODO(shess): Move this handling to one place (see also sqlite3_open and
-    // secure_delete).  Possibly a wrapper function?
+    // TODO(shess): Move this handling to one place (see also sqlite3_open).
+    //              Possibly a wrapper function?
     if (poisoned_) {
       Close();
       if (retry_flag == RETRY_ON_POISON)
@@ -1715,13 +1715,8 @@
     ignore_result(ExecuteWithTimeout(cache_size_sql.c_str(), kBusyTimeout));
   }
 
-  if (!ExecuteWithTimeout("PRAGMA secure_delete=ON", kBusyTimeout)) {
-    bool was_poisoned = poisoned_;
-    Close();
-    if (was_poisoned && retry_flag == RETRY_ON_POISON)
-      return OpenInternal(file_name, NO_RETRY);
-    return false;
-  }
+  static_assert(SQLITE_SECURE_DELETE == 1,
+                "Chrome assumes secure_delete is on by default.");
 
   // Set a reasonable chunk size for larger files.  This reduces churn from
   // remapping memory on size changes.  It also reduces filesystem
diff --git a/third_party/blink/web_tests/storage/websql/test-authorizer-expected.txt b/third_party/blink/web_tests/storage/websql/test-authorizer-expected.txt
index e2cc54f..3b4a88f 100644
--- a/third_party/blink/web_tests/storage/websql/test-authorizer-expected.txt
+++ b/third_party/blink/web_tests/storage/websql/test-authorizer-expected.txt
@@ -22,7 +22,7 @@
 SQLITE_ATTACH statement failed: could not prepare statement (23 not authorized)
 SQLITE_DETACH statement failed: could not prepare statement (23 not authorized)
 SQLITE_REINDEX statement failed: could not prepare statement (1 near "REINDEX": syntax error)
-SQLITE_ANALYZE statement failed: could not prepare statement (23 not authorized)
+SQLITE_ANALYZE statement failed: could not prepare statement (1 near "ANALYZE": syntax error)
 SQLITE_DROP_INDEX statement succeeded.
 SQLITE_DROP_TEMP_TABLE statement succeeded.
 SQLITE_DROP_TEMP_TRIGGER statement succeeded.
@@ -61,7 +61,7 @@
 SQLITE_ATTACH statement failed: could not prepare statement (23 not authorized)
 SQLITE_DETACH statement failed: could not prepare statement (23 not authorized)
 SQLITE_REINDEX statement failed: could not prepare statement (1 near "REINDEX": syntax error)
-SQLITE_ANALYZE statement failed: could not prepare statement (23 not authorized)
+SQLITE_ANALYZE statement failed: could not prepare statement (1 near "ANALYZE": syntax error)
 SQLITE_DROP_INDEX statement failed: could not prepare statement (23 not authorized)
 SQLITE_DROP_TEMP_TABLE statement failed: could not prepare statement (23 not authorized)
 SQLITE_DROP_TEMP_TRIGGER statement failed: could not prepare statement (23 not authorized)
diff --git a/third_party/sqlite/BUILD.gn b/third_party/sqlite/BUILD.gn
index ca25b3b..cbd700a 100644
--- a/third_party/sqlite/BUILD.gn
+++ b/third_party/sqlite/BUILD.gn
@@ -90,6 +90,17 @@
     "SQLITE_OMIT_SHARED_CACHE",
     "SQLITE_USE_ALLOCA",
 
+    # Chrome doesn't use the ANALYZE SQLite extension.
+    #
+    # ANALYZE [1] is non-standard, and currently performs a table scan to
+    # update statistics used by the query planner. Chrome uses straightforward
+    # database schemas which do not require the level of fine tuning provided
+    # by ANALYZE, and we generally cannot afford the I/O cost of the required
+    # table scans.
+    #
+    # [1] https://www.sqlite.org/lang_analyze.html
+    "SQLITE_OMIT_ANALYZE",
+
     # Chrome initializes SQLite manually in //sql/connection.cc.
     "SQLITE_OMIT_AUTOINIT",
 
diff --git a/third_party/sqlite/amalgamation/sqlite3.c b/third_party/sqlite/amalgamation/sqlite3.c
index 1e9f1a6e..f8273ff 100644
--- a/third_party/sqlite/amalgamation/sqlite3.c
+++ b/third_party/sqlite/amalgamation/sqlite3.c
@@ -146292,17 +146292,17 @@
 #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
 #define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
 #define YYFALLBACK 1
-#define YYNSTATE             486
-#define YYNRULE              336
+#define YYNSTATE             484
+#define YYNRULE              334
 #define YYNTOKEN             146
-#define YY_MAX_SHIFT         485
-#define YY_MIN_SHIFTREDUCE   699
-#define YY_MAX_SHIFTREDUCE   1034
-#define YY_ERROR_ACTION      1035
-#define YY_ACCEPT_ACTION     1036
-#define YY_NO_ACTION         1037
-#define YY_MIN_REDUCE        1038
-#define YY_MAX_REDUCE        1373
+#define YY_MAX_SHIFT         483
+#define YY_MIN_SHIFTREDUCE   696
+#define YY_MAX_SHIFTREDUCE   1029
+#define YY_ERROR_ACTION      1030
+#define YY_ACCEPT_ACTION     1031
+#define YY_NO_ACTION         1032
+#define YY_MIN_REDUCE        1033
+#define YY_MAX_REDUCE        1366
 /************* End control #defines *******************************************/
 #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
 
@@ -146369,170 +146369,170 @@
 **  yy_default[]       Default action for each state.
 **
 *********** Begin parsing tables **********************************************/
-#define YY_ACTTAB_COUNT (1618)
+#define YY_ACTTAB_COUNT (1614)
 static const YYACTIONTYPE yy_action[] = {
- /*     0 */   480, 1107, 1107,   97,   94,  182,   97,   94,  182, 1036,
- /*    10 */     1,    1,  485, 1038,  230,  230,  349,  450,  259, 1119,
- /*    20 */   119,   57,   57, 1296, 1102, 1081,  477, 1115,  827,  451,
- /*    30 */   477, 1165,    5, 1102,  215,  123,  828,   28,   12,   12,
- /*    40 */   305,  104,  105,   95, 1012, 1012,  891,  894,  884,  884,
- /*    50 */   102,  102,  103,  103,  103,  103,  462,  405, 1337,  236,
- /*    60 */   236,  236,  236,  237,  237,  452, 1076, 1318,  485, 1038,
- /*    70 */  1010,  477,  349,  477,  259,  477,  119,  212,  179,   81,
- /*    80 */    97,   94,  182, 1115,  192,  125,  101,  101,  101,  101,
- /*    90 */   100,  100,   99,   99,   99,   98,  380,  104,  105,   95,
- /*   100 */  1012, 1012,  891,  894,  884,  884,  102,  102,  103,  103,
- /*   110 */   103,  103,  382, 1010,  108,  236,  236,  347,  100,  100,
- /*   120 */    99,   99,   99,   98,  380,  106,  242,  477,  349,  101,
- /*   130 */   101,  101,  101,  100,  100,   99,   99,   99,   98,  380,
- /*   140 */   192,  380,  101,  101,  101,  101,  100,  100,   99,   99,
- /*   150 */    99,   98,  380,  104,  105,   95, 1012, 1012,  891,  894,
- /*   160 */   884,  884,  102,  102,  103,  103,  103,  103,  382,   99,
- /*   170 */    99,   99,   98,  380,  480,  398,  280,  204,  185,   66,
- /*   180 */   435,  432,  431,  991,  349,  175,  174, 1164,  211,   67,
- /*   190 */   430,  881,  881,  892,  895,   57,   57,  344,  101,  101,
- /*   200 */   101,  101,  100,  100,   99,   99,   99,   98,  380,  104,
- /*   210 */   105,   95, 1012, 1012,  891,  894,  884,  884,  102,  102,
- /*   220 */   103,  103,  103,  103, 1027,  991,  992,  993,  204,  871,
- /*   230 */   462,  435,  432,  431,  231,  345,   97,   94,  182,  461,
- /*   240 */   349,  430,  973, 1367,  294,  864, 1367,   98,  380,  863,
- /*   250 */   991,  885,  377,  376,  101,  101,  101,  101,  100,  100,
- /*   260 */    99,   99,   99,   98,  380,  104,  105,   95, 1012, 1012,
- /*   270 */   891,  894,  884,  884,  102,  102,  103,  103,  103,  103,
- /*   280 */   863,  863,  865,  480, 1196,  480,  258,  471,   97,   94,
- /*   290 */   182,  167,  991,  992,  993,  292,  349, 1019, 1009, 1019,
- /*   300 */   735,  853,  991,  336,   57,   57,   57,   57,  971,  142,
+ /*     0 */   478, 1102, 1102,   97,   94,  182,   97,   94,  182, 1031,
+ /*    10 */     1,    1,  483, 1033,  229,  229,  347,  448,  258, 1114,
+ /*    20 */   119,   57,   57, 1291, 1097, 1076,  475, 1110,  824,  449,
+ /*    30 */   475, 1160,    5, 1097,  214,  123,  825,   28,   12,   12,
+ /*    40 */   303,  104,  105,   95, 1007, 1007,  888,  891,  881,  881,
+ /*    50 */   102,  102,  103,  103,  103,  103,  460,  403, 1330,  235,
+ /*    60 */   235,  235,  235,  236,  236,  450, 1071, 1311,  483, 1033,
+ /*    70 */  1005,  475,  347,  475,  258,  475,  119,  211,  179,   81,
+ /*    80 */    97,   94,  182, 1110,  191,  125,  101,  101,  101,  101,
+ /*    90 */   100,  100,   99,   99,   99,   98,  378,  104,  105,   95,
+ /*   100 */  1007, 1007,  888,  891,  881,  881,  102,  102,  103,  103,
+ /*   110 */   103,  103,  380, 1005,  108,  235,  235,  345,  100,  100,
+ /*   120 */    99,   99,   99,   98,  378,  106,  241,  475,  347,  101,
+ /*   130 */   101,  101,  101,  100,  100,   99,   99,   99,   98,  378,
+ /*   140 */   191,  378,  101,  101,  101,  101,  100,  100,   99,   99,
+ /*   150 */    99,   98,  378,  104,  105,   95, 1007, 1007,  888,  891,
+ /*   160 */   881,  881,  102,  102,  103,  103,  103,  103,  380,   99,
+ /*   170 */    99,   99,   98,  378,  478,  396,  278,  203,  185,   66,
+ /*   180 */   433,  430,  429,  986,  347,  175,  174, 1159,  210,   67,
+ /*   190 */   428,  878,  878,  889,  892,   57,   57,  342,  101,  101,
+ /*   200 */   101,  101,  100,  100,   99,   99,   99,   98,  378,  104,
+ /*   210 */   105,   95, 1007, 1007,  888,  891,  881,  881,  102,  102,
+ /*   220 */   103,  103,  103,  103, 1022,  986,  987,  988,  203,  868,
+ /*   230 */   460,  433,  430,  429,  230,  343,   97,   94,  182,  459,
+ /*   240 */   347,  428,  968, 1360,  292,  861, 1360,   98,  378,  860,
+ /*   250 */   986,  882,  375,  374,  101,  101,  101,  101,  100,  100,
+ /*   260 */    99,   99,   99,   98,  378,  104,  105,   95, 1007, 1007,
+ /*   270 */   888,  891,  881,  881,  102,  102,  103,  103,  103,  103,
+ /*   280 */   860,  860,  862,  478, 1191,  478,  257,  469,   97,   94,
+ /*   290 */   182,  167,  986,  987,  988,  290,  347, 1014, 1004, 1014,
+ /*   300 */   732,  850,  986,  334,   57,   57,   57,   57,  966,  142,
  /*   310 */   101,  101,  101,  101,  100,  100,   99,   99,   99,   98,
- /*   320 */   380,  104,  105,   95, 1012, 1012,  891,  894,  884,  884,
- /*   330 */   102,  102,  103,  103,  103,  103,  480,  793,  279,  462,
- /*   340 */  1196,  457,  407,  480,  991,  992,  993, 1341,  441,  258,
- /*   350 */   471,  362,  349,  474,  474,  474,  728,   56,   56,  287,
- /*   360 */   338,  290,  142,  422,   57,   57,  101,  101,  101,  101,
- /*   370 */   100,  100,   99,   99,   99,   98,  380,  104,  105,   95,
- /*   380 */  1012, 1012,  891,  894,  884,  884,  102,  102,  103,  103,
- /*   390 */   103,  103,  236,  236,  272,  480,  353,  973, 1368,  375,
- /*   400 */   171, 1368,  258,  471,  477,  385,  991,  363,  349,  378,
- /*   410 */   378,  378,  872,  320,  932,  853,   57,   57,   87,  403,
+ /*   320 */   378,  104,  105,   95, 1007, 1007,  888,  891,  881,  881,
+ /*   330 */   102,  102,  103,  103,  103,  103,  478,  790,  277,  460,
+ /*   340 */  1191,  455,  405,  478,  986,  987,  988, 1334,  439,  257,
+ /*   350 */   469,  360,  347,  472,  472,  472,  725,   56,   56,  285,
+ /*   360 */   336,  288,  142,  420,   57,   57,  101,  101,  101,  101,
+ /*   370 */   100,  100,   99,   99,   99,   98,  378,  104,  105,   95,
+ /*   380 */  1007, 1007,  888,  891,  881,  881,  102,  102,  103,  103,
+ /*   390 */   103,  103,  235,  235,  270,  478,  351,  968, 1361,  373,
+ /*   400 */   171, 1361,  257,  469,  475,  383,  986,  361,  347,  376,
+ /*   410 */   376,  376,  869,  318,  929,  850,   57,   57,   87,  401,
  /*   420 */    85,  149,  101,  101,  101,  101,  100,  100,   99,   99,
- /*   430 */    99,   98,  380,  104,  105,   95, 1012, 1012,  891,  894,
- /*   440 */   884,  884,  102,  102,  103,  103,  103,  103,  991,  992,
- /*   450 */   993,  379,  279,  393,  267,  479,    8,  383,  269,  358,
- /*   460 */   271,  167,  991,  971,  349,  937,  937,  419,  858,  327,
- /*   470 */   317,  416,  934,  341,  413,  265,  934,  163,  101,  101,
- /*   480 */   101,  101,  100,  100,   99,   99,   99,   98,  380,  104,
- /*   490 */   105,   95, 1012, 1012,  891,  894,  884,  884,  102,  102,
- /*   500 */   103,  103,  103,  103,  991,  992,  993,  236,  236,  417,
- /*   510 */   478,  480,  783,  783,  702,  703,  704,  398,  280,  477,
- /*   520 */   349,  166, 1105, 1105,  270,  266,  397,  207,  206,  205,
- /*   530 */   456,  277,   42,   42,  101,  101,  101,  101,  100,  100,
- /*   540 */    99,   99,   99,   98,  380,  104,  105,   95, 1012, 1012,
- /*   550 */   891,  894,  884,  884,  102,  102,  103,  103,  103,  103,
- /*   560 */   388,  180, 1265,  236,  236,  358,  480,  319,  333, 1032,
- /*   570 */   333,  972, 1369,  334,  257,  477,  349,  388,  387, 1265,
- /*   580 */  1267,  305,  305,  346, 1113, 1305, 1056,   43,   43,  444,
+ /*   430 */    99,   98,  378,  104,  105,   95, 1007, 1007,  888,  891,
+ /*   440 */   881,  881,  102,  102,  103,  103,  103,  103,  986,  987,
+ /*   450 */   988,  377,  277,  391,  265,  477,    8,  381,  267,  356,
+ /*   460 */   269,  167,  986,  966,  347,  934,  934,  417,  855,  325,
+ /*   470 */   315,  414,  931,  339,  411,  263,  931,  163,  101,  101,
+ /*   480 */   101,  101,  100,  100,   99,   99,   99,   98,  378,  104,
+ /*   490 */   105,   95, 1007, 1007,  888,  891,  881,  881,  102,  102,
+ /*   500 */   103,  103,  103,  103,  986,  987,  988,  235,  235,  415,
+ /*   510 */   476,  478,  780,  780,  699,  700,  701,  396,  278,  475,
+ /*   520 */   347,  166, 1100, 1100,  268,  264,  395,  206,  205,  204,
+ /*   530 */   454,  275,   42,   42,  101,  101,  101,  101,  100,  100,
+ /*   540 */    99,   99,   99,   98,  378,  104,  105,   95, 1007, 1007,
+ /*   550 */   888,  891,  881,  881,  102,  102,  103,  103,  103,  103,
+ /*   560 */   386,  180, 1260,  235,  235,  356,  478,  317,  331, 1027,
+ /*   570 */   331,  967, 1362,  332,  256,  475,  347,  386,  385, 1260,
+ /*   580 */  1262,  303,  303,  344, 1108, 1298, 1051,   43,   43,  442,
  /*   590 */   101,  101,  101,  101,  100,  100,   99,   99,   99,   98,
- /*   600 */   380,  104,  105,   95, 1012, 1012,  891,  894,  884,  884,
- /*   610 */   102,  102,  103,  103,  103,  103,  236,  236,  236,  236,
- /*   620 */   405,  236,  236,  405,  788,  358,  127,  124,  477,  787,
- /*   630 */   477,  243,  349,  477, 1033,  422, 1033,  168,  422,  422,
- /*   640 */   447,  422,  388,  465, 1265,   83,  101,  101,  101,  101,
- /*   650 */   100,  100,   99,   99,   99,   98,  380,  104,  105,   95,
- /*   660 */  1012, 1012,  891,  894,  884,  884,  102,  102,  103,  103,
- /*   670 */   103,  103,  236,  236,  480,  236,  236, 1295,  480, 1196,
- /*   680 */  1261, 1114, 1196, 1110,  477,  384,  422,  477,  349,  246,
- /*   690 */   305,  244,  247,  995,  306,   11,   11,  411,  306,   33,
+ /*   600 */   378,  104,  105,   95, 1007, 1007,  888,  891,  881,  881,
+ /*   610 */   102,  102,  103,  103,  103,  103,  235,  235,  235,  235,
+ /*   620 */   403,  235,  235,  403,  785,  356,  127,  124,  475,  784,
+ /*   630 */   475,  242,  347,  475, 1028,  420, 1028,  168,  420,  420,
+ /*   640 */   445,  420,  386,  463, 1260,   83,  101,  101,  101,  101,
+ /*   650 */   100,  100,   99,   99,   99,   98,  378,  104,  105,   95,
+ /*   660 */  1007, 1007,  888,  891,  881,  881,  102,  102,  103,  103,
+ /*   670 */   103,  103,  235,  235,  478,  235,  235, 1290,  478, 1191,
+ /*   680 */  1256, 1109, 1191, 1105,  475,  382,  420,  475,  347,  245,
+ /*   690 */   303,  243,  246,  990,  304,   11,   11,  409,  304,   33,
  /*   700 */    33,   86,  101,  101,  101,  101,  100,  100,   99,   99,
- /*   710 */    99,   98,  380,  104,  105,   95, 1012, 1012,  891,  894,
- /*   720 */   884,  884,  102,  102,  103,  103,  103,  103,  285,  480,
- /*   730 */   366,  480, 1302, 1196,  373,  126,  995, 1059,  355,  473,
- /*   740 */   355,    8,  258,  471,  349,  176,  364,  356,  143,  418,
+ /*   710 */    99,   98,  378,  104,  105,   95, 1007, 1007,  888,  891,
+ /*   720 */   881,  881,  102,  102,  103,  103,  103,  103,  283,  478,
+ /*   730 */   364,  478, 1295, 1191,  371,  126,  990, 1054,  353,  471,
+ /*   740 */   353,    8,  257,  469,  347,  176,  362,  354,  143,  416,
  /*   750 */    44,   44,   45,   45,  103,  103,  103,  103,  101,  101,
- /*   760 */   101,  101,  100,  100,   99,   99,   99,   98,  380,  104,
- /*   770 */    93,   95, 1012, 1012,  891,  894,  884,  884,  102,  102,
- /*   780 */   103,  103,  103,  103,  480,  453,  480,  245,  101,  101,
- /*   790 */   101,  101,  100,  100,   99,   99,   99,   98,  380,  349,
- /*   800 */   374,  235,  179,  189,  208,   46,   46,   47,   47,  411,
- /*   810 */   411,  412,   80,  440,  101,  101,  101,  101,  100,  100,
- /*   820 */    99,   99,   99,   98,  380,  105,   95, 1012, 1012,  891,
- /*   830 */   894,  884,  884,  102,  102,  103,  103,  103,  103,  788,
- /*   840 */  1340,  480,  827,  758,  787,  968,  276,  261,  335,   80,
- /*   850 */   828,  748,  747,  349,   78,  371,  264,  157,  354,  122,
- /*   860 */   738, 1263,   48,   48,   13,  755,  756, 1150,  454,  101,
- /*   870 */   101,  101,  101,  100,  100,   99,   99,   99,   98,  380,
- /*   880 */    95, 1012, 1012,  891,  894,  884,  884,  102,  102,  103,
- /*   890 */   103,  103,  103,   90,  472,  991,    3,  724,  740,  278,
- /*   900 */   248,  714, 1149,  738,  399,  953,  191,  392,  812,  855,
- /*   910 */   475,  404,  214,  406,  214,  233,  214,  921,  812,  931,
- /*   920 */   954,  931,  749,  101,  101,  101,  101,  100,  100,   99,
- /*   930 */    99,   99,   98,  380,  381,  368,  955,  991,  992,  993,
- /*   940 */   724,  222,  239,  304,  438,  299,  437,  209,  469,   90,
- /*   950 */   472,  991,    3,  297,  436,  303,   22,  769,  142,  390,
- /*   960 */   921,  871,  158,  396,  750,  302,  475,   88,   88,  770,
- /*   970 */   409,  930,  238,  930,   89,  167,  381,  482,  481,  867,
- /*   980 */   480,  863,    4, 1308,  377,  376,  181,  348,   23,  914,
- /*   990 */   381, 1085, 1016,  991,  992,  993,  181, 1018,  258,  471,
- /*  1000 */   991,   34,   34,  369,  469, 1017,  273,  250,  731,  250,
- /*  1010 */  1284,  812,  863,  863,  865,  866,   19,  871, 1283,  400,
- /*  1020 */   991,  812,  867,   88,   88,  792, 1254,  414,  282, 1019,
- /*  1030 */    89, 1019,  381,  482,  481,  871,  467,  863, 1317,  981,
- /*  1040 */   240,  850,  991,  992,  993,  331,  331,  330,  225,  328,
- /*  1050 */   731,  864,  711,  410, 1146,  863,   90,  472,  286,    3,
- /*  1060 */  1137,  953,  991,  992,  993,  186,  427,  263,  863,  863,
- /*  1070 */   865,  866,   19,  475,  480,  262,  954, 1330,  480,  289,
- /*  1080 */   480,  291,  293,  480, 1098,  480,  863,  863,  865,  463,
- /*  1090 */   281, 1084,  955,   80,  208,    9,    9,  381, 1083,   57,
- /*  1100 */    57,    9,    9,  991,    9,    9,    9,    9,  187,  360,
- /*  1110 */  1082,  469,  298,  468,  991,  365,  188,  307,  367,  137,
- /*  1120 */   249,  236,  236,  308,  871,   82,  472, 1158,    3,  480,
- /*  1130 */    88,   88, 1195,  477,  462,  428, 1133,   89,  210,  381,
- /*  1140 */   482,  481,  475,  464,  863,  991,  992,  993,  354,  255,
- /*  1150 */    35,   35,  215,    2,  350, 1144,  991,  992,  993,  258,
- /*  1160 */   471,  981,  240,  466,  297, 1201,  381,  331,  331,  330,
- /*  1170 */   225,  328,  814, 1065,  711,  863,  863,  865,  866,   19,
- /*  1180 */   469,  295,  386,  813,   80,  142, 1058,  186, 1010,  263,
- /*  1190 */  1047,  991, 1046,  871, 1048,  917, 1324,  262,  210,   88,
- /*  1200 */    88,  480,  821,  169,  423,  214,   89,  389,  381,  482,
- /*  1210 */   481,  228, 1130,  863,  310,  103,  103,  103,  103,   96,
- /*  1220 */   312,  480,    9,    9,  314,  258,  471,    7,  173,  785,
- /*  1230 */   187, 1010,   92,  991,  992,  993,  459,  722,  188,  480,
- /*  1240 */   121,  137,   37,   37,  863,  863,  865,  866,   19,  101,
- /*  1250 */   101,  101,  101,  100,  100,   99,   99,   99,   98,  380,
- /*  1260 */    49,   49,  332,  184, 1180,  480,  391,  480,  786,  480,
- /*  1270 */   268,   92,  275,  480, 1188,  480,  350,  340,  480,  408,
- /*  1280 */   480,  258,  471,  433,  442,  480,   50,   50,   51,   51,
- /*  1290 */    10,   10,  177,  480,   38,   38,   52,   52,  480,  110,
- /*  1300 */   110,   53,   53, 1081,  386,  480,   39,   39,  316,  470,
- /*  1310 */   480, 1327,  480,  301,   54,   54,  236,  236,  480,   55,
- /*  1320 */    55,  480, 1027,  480, 1258,  480,   40,   40,  477,  443,
- /*  1330 */   480,  131,  131,  132,  132, 1257,  480,  325,  172,   62,
- /*  1340 */    62,  480,   41,   41,   58,   58,  111,  111,  145,  217,
- /*  1350 */  1301,   59,   59,  480, 1024,  480,  357,  112,  112,  402,
- /*  1360 */   480,  155,  113,  113,  480,  140, 1185,  480,   65,  480,
- /*  1370 */    25,  480,  147,  480,  109,  109,  130,  130,   68,  480,
- /*  1380 */   394,  129,  129,   78,  480,  117,  117,  480,  116,  116,
- /*  1390 */   114,  114,  115,  115,   61,   61,  480, 1177,  150,  151,
- /*  1400 */    63,   63,  152,  426,  153,   60,   60,  395,   32,   32,
- /*  1410 */   339,  194, 1191,   26,  159,  337,  401,   36,   36,  415,
- /*  1420 */    73,  198, 1252,  421,  200, 1272,  284,  229,  164,  424,
- /*  1430 */   288,  201,  342, 1049,  202,  439, 1101,  370, 1092, 1100,
- /*  1440 */   740, 1091, 1099,  372,  455, 1073, 1141,  343,   77, 1072,
- /*  1450 */   300,  309, 1071, 1339, 1142,  311,  253,  446,  254, 1140,
- /*  1460 */   449,  313,  216, 1139,    6,  315,  318, 1238,   84,  107,
- /*  1470 */    79,  256,  460,  223,  458, 1055,   24,  483,  986,  224,
- /*  1480 */   226,  227,  484,  144, 1044, 1039, 1123,  323,  321,  322,
- /*  1490 */   324,  120, 1288,  133, 1289,  351,  251,  260,  352,  170,
- /*  1500 */   183, 1287,  134,  241,  118,  929, 1286, 1069,  847,  927,
- /*  1510 */   146, 1068,  135,   64,  136, 1066,  190,  148,  772,  274,
- /*  1520 */   193,  943,  154,  851,  138,  359,  361,  156,   69,  139,
- /*  1530 */    70,  946,   71,   72,  195,  942,  196,  128,   14,  197,
- /*  1540 */   935,  283,  160,  420,  214, 1021,  199,  161,   27,  713,
- /*  1550 */   302,  203,  425,  429,  434,  751,  162,   74,   15,  141,
- /*  1560 */   296,   16,   75,  252,  870,  869,  897,  982,  976,   29,
- /*  1570 */    76,   30,  445,  977,  178,  448,  232,  234,  165,  782,
- /*  1580 */   213,  815,  820,   92,   80,  912,   17,  898,  219,   18,
- /*  1590 */   896,  900,  952,  901,  951,   20,  218,   31,  476,  868,
- /*  1600 */   220,  723,   91,   21,  329, 1037,  326, 1037,  221, 1037,
- /*  1610 */  1037, 1037, 1037, 1037, 1332, 1037, 1037, 1331,
+ /*   760 */   101,  101,  100,  100,   99,   99,   99,   98,  378,  104,
+ /*   770 */    93,   95, 1007, 1007,  888,  891,  881,  881,  102,  102,
+ /*   780 */   103,  103,  103,  103,  478,  451,  478,  244,  101,  101,
+ /*   790 */   101,  101,  100,  100,   99,   99,   99,   98,  378,  347,
+ /*   800 */   372,  234,  179,  188,  207,   46,   46,   47,   47,  409,
+ /*   810 */   409,  410,   80,  438,  101,  101,  101,  101,  100,  100,
+ /*   820 */    99,   99,   99,   98,  378,  105,   95, 1007, 1007,  888,
+ /*   830 */   891,  881,  881,  102,  102,  103,  103,  103,  103,  785,
+ /*   840 */  1333,  478,  824,  755,  784,  963,  274,  262,  333,   80,
+ /*   850 */   825,  745,  744,  347,   78,  369, 1258,  157,  352,  122,
+ /*   860 */   752,  753,   48,   48,   13,  928,  735,  928,  452,  101,
+ /*   870 */   101,  101,  101,  100,  100,   99,   99,   99,   98,  378,
+ /*   880 */    95, 1007, 1007,  888,  891,  881,  881,  102,  102,  103,
+ /*   890 */   103,  103,  103,   90,  470,  986,    3,  721,  737,  276,
+ /*   900 */   247,  711,  301,  407,  397,  950,  190, 1145,  852,  735,
+ /*   910 */   473,  213,  300,  402, 1144,  232,  213,  390,  809,  927,
+ /*   920 */   951,  927,  746,  101,  101,  101,  101,  100,  100,   99,
+ /*   930 */    99,   99,   98,  378,  379,  366,  952,  986,  987,  988,
+ /*   940 */   721,  221,  238,  302,  436,  297,  435,  208,  467,   90,
+ /*   950 */   470,  986,    3,  295,  434,  388,   22,  766,  142,  404,
+ /*   960 */   142,  868,  213,  394,  747, 1301,  473,   88,   88,  767,
+ /*   970 */   158,  271, 1279, 1080,   89,  167,  379,  480,  479, 1079,
+ /*   980 */  1278,  860,  387,  214,  375,  374,  408,  346,   23,  911,
+ /*   990 */   379, 1078, 1011,  986,  987,  988,  181, 1013,  257,  469,
+ /*  1000 */   257,  469,  412,  367,  467, 1012,  280,  249,  986,  249,
+ /*  1010 */     4,  425,  860,  860,  862,  863,   19,  868, 1141, 1005,
+ /*  1020 */   284,  809,  918,   88,   88,  789, 1249,  287,  289, 1014,
+ /*  1030 */    89, 1014,  379,  480,  479,  986,    2,  860,  398,  207,
+ /*  1040 */    90,  470,  478,    3,  291,  478,  279, 1132,  986,   80,
+ /*  1050 */   986,  987,  988,  461, 1093, 1077,  440,  473,   82,  470,
+ /*  1060 */   847,    3, 1005,   57,   57,  918,   38,   38,  860,  860,
+ /*  1070 */   862,  863,   19,  426,  986,  473,  209,  986,  987,  988,
+ /*  1080 */   293,  379,  237,   80,  478,  235,  235,  986,  235,  235,
+ /*  1090 */   986,  987,  988,  352,  864,  467,  950,  475,  460,  379,
+ /*  1100 */   475,  441,  296,  305,  811,    9,    9,  462,  868,  295,
+ /*  1110 */   306,  951, 1153,  467,   88,   88,  986,  987,  988,  358,
+ /*  1120 */   809,   89, 1190,  379,  480,  479,  868,  952,  860,  986,
+ /*  1130 */   987,  988,   88,   88, 1128,  254,  478,  864, 1139,   89,
+ /*  1140 */   464,  379,  480,  479,  914,  465,  860,  209,  466,  818,
+ /*  1150 */  1196,  478,  213,  478, 1060, 1053,  810,   34,   34,  860,
+ /*  1160 */   860,  862,  863,   19, 1042, 1041,  103,  103,  103,  103,
+ /*  1170 */    96, 1043,    9,    9,    9,    9, 1317,  860,  860,  862,
+ /*  1180 */   863,   19, 1310,  976,  239,  421,  363, 1323,  365,  329,
+ /*  1190 */   329,  328,  224,  326,  478,  169,  708, 1125,  181,  478,
+ /*  1200 */   101,  101,  101,  101,  100,  100,   99,   99,   99,   98,
+ /*  1210 */   378,  261,  227,    7,  308,    9,    9,  478,  310,  260,
+ /*  1220 */     9,    9,  478,  809,  478,  312,  478,  173,  478,  248,
+ /*  1230 */   782,  330,  478,   92,  457,  478,  184,  728,   35,   35,
+ /*  1240 */   389, 1175,  266,   37,   37,   49,   49,   50,   50,   51,
+ /*  1250 */    51, 1183,  186,   10,   10,  478,   52,   52,  177,  719,
+ /*  1260 */   187,  478,  121,  137,  868,  976,  239,  431,  478,  338,
+ /*  1270 */   478,  329,  329,  328,  224,  326,  110,  110,  708,  728,
+ /*  1280 */   861, 1076,   53,   53,  860,  478,  299,  478,  273,   39,
+ /*  1290 */    39,   54,   54,  261,  406, 1253,  783,  478,  348,   92,
+ /*  1300 */   478,  260,  478,  257,  469, 1252,   55,   55,   40,   40,
+ /*  1310 */   478,  314,  323,  468,  478,  860,  860,  862,  131,  131,
+ /*  1320 */   172,  132,  132,   62,   62, 1320,  384,  478, 1022,  478,
+ /*  1330 */  1019,   41,   41,  145,  186,   58,   58,  478,   65,   68,
+ /*  1340 */   478,  216,  187,  478,  400,  137,  478, 1180,  111,  111,
+ /*  1350 */    59,   59,  355,  478,  155,  478,  140,  478,  112,  112,
+ /*  1360 */   478,  113,  113,   25,  109,  109,  147,  130,  130,  478,
+ /*  1370 */    78,  478,  392,  478,  129,  129,  117,  117,  116,  116,
+ /*  1380 */   348,  114,  114,  478, 1172,  257,  469,  393,  478,  150,
+ /*  1390 */   115,  115,   61,   61,   63,   63,  424,  478,  337,  151,
+ /*  1400 */   152,  193,  153,   26,   60,   60,  335,  413,  384,   32,
+ /*  1410 */    32,  197,  399, 1186,  159, 1247,  419,   73,   36,   36,
+ /*  1420 */   228,  199,  164,  286, 1267,  282,  200,  422, 1044,  340,
+ /*  1430 */   201,  437, 1096, 1095, 1094,  368,  737, 1087,  341, 1067,
+ /*  1440 */   370, 1068,  298,  453,   77,  252, 1136,  253, 1066, 1332,
+ /*  1450 */   307,  215,  309, 1086,  444,    6,  311,  447, 1137,  316,
+ /*  1460 */  1135, 1233, 1134,   84,  255,  313,  458,  107,  222,   79,
+ /*  1470 */   456, 1050,   24,  481,  981,  223,  225,  226,  482,  349,
+ /*  1480 */  1039, 1118, 1034,  133,  321,  319,  320,  322,  170,  120,
+ /*  1490 */  1283,  350, 1284,  250,  259,  134, 1282, 1281,  183,  240,
+ /*  1500 */   118,  926,  144, 1064, 1063,  924,   64,  844,  135, 1061,
+ /*  1510 */   146,  136,  189,  148,  769,  272,  192,  940,  154,  138,
+ /*  1520 */   848,  357,  359,  156,   69,  139,   70,   71,   72,  943,
+ /*  1530 */   194,  195,  939,   14,  128,  196,  932,  281,  213,  160,
+ /*  1540 */  1016,  418,  198,  161,   27,  710,  423,  300,  202,  427,
+ /*  1550 */   432,  748,  162,   74,   15,  141,  294,   16,   75,  251,
+ /*  1560 */   867,  866,  894,  178,  971,   29,   76,   30,  443,  972,
+ /*  1570 */   165,  446,  231,  233,  812,  779,  212,  817,   92,   80,
+ /*  1580 */   909,  895,  893,  897,  949,   17,  898,  948,   18,  217,
+ /*  1590 */   218,   20,   31,  474,  865,  720,   91,  327,   21,  977,
+ /*  1600 */   324, 1032, 1032,  219,  220, 1032, 1032, 1032, 1325, 1032,
+ /*  1610 */  1032, 1032, 1032, 1324,
 };
 static const YYCODETYPE yy_lookahead[] = {
  /*     0 */   153,  192,  193,  226,  227,  228,  226,  227,  228,  146,
@@ -146621,82 +146621,82 @@
  /*   830 */    47,   48,   49,   50,   51,   52,   53,   54,   55,  118,
  /*   840 */    20,  153,   28,   23,  123,   20,   20,  153,   23,   23,
  /*   850 */    36,  103,  104,   16,  132,   16,  153,   19,   98,   19,
- /*   860 */    57,  153,  174,  175,   19,    4,    5,  153,   99,   86,
+ /*   860 */     4,    5,  174,  175,   19,  135,   57,  137,   99,   86,
  /*   870 */    87,   88,   89,   90,   91,   92,   93,   94,   95,   96,
  /*   880 */    43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
  /*   890 */    53,   54,   55,   16,   17,   57,   19,   57,  109,  243,
- /*   900 */   243,   18,  153,  100,   59,    9,  124,  153,   23,   20,
- /*   910 */    33,   20,   23,   20,   23,   20,   23,   57,   23,  135,
+ /*   900 */   243,   18,  104,   16,   59,    9,  124,  153,   20,  100,
+ /*   910 */    33,   23,  114,   20,  153,   20,   23,  153,   23,  135,
  /*   920 */    24,  137,   32,   86,   87,   88,   89,   90,   91,   92,
  /*   930 */    93,   94,   95,   96,   57,   96,   40,   99,  100,  101,
  /*   940 */   100,  102,  103,  104,  105,  106,  107,  108,   71,   16,
- /*   950 */    17,   57,   19,  114,   64,  104,   19,   61,   81,  223,
- /*   960 */   100,   84,   19,   80,   74,  114,   33,   90,   91,   73,
- /*   970 */    16,  135,   19,  137,   97,  153,   99,  100,  101,   57,
- /*   980 */   153,  104,   19,  153,   90,   91,  101,  165,   51,  106,
+ /*   950 */    17,   57,   19,  114,   64,  223,   19,   61,   81,   20,
+ /*   960 */    81,   84,   23,   80,   74,  153,   33,   90,   91,   73,
+ /*   970 */    19,  153,  153,  183,   97,  153,   99,  100,  101,  183,
+ /*   980 */   153,  104,  103,   21,   90,   91,   99,  165,   51,  106,
  /*   990 */    57,  183,   98,   99,  100,  101,  101,  103,  121,  122,
- /*  1000 */    57,  174,  175,  113,   71,  111,  153,  185,   57,  187,
- /*  1010 */   153,  126,  135,  136,  137,  138,  139,   84,  153,  112,
- /*  1020 */    57,  126,  100,   90,   91,   92,  143,  153,  153,  135,
- /*  1030 */    97,  137,   99,  100,  101,   84,  193,  104,    0,    1,
- /*  1040 */     2,  134,   99,  100,  101,    7,    8,    9,   10,   11,
- /*  1050 */    99,  100,   14,   99,  153,  104,   16,   17,  153,   19,
- /*  1060 */   214,    9,   99,  100,  101,   27,   16,   29,  135,  136,
- /*  1070 */   137,  138,  139,   33,  153,   37,   24,  124,  153,  153,
- /*  1080 */   153,  153,  153,  153,  153,  153,  135,  136,  137,  164,
- /*  1090 */    20,  183,   40,   23,   44,  174,  175,   57,  183,  174,
- /*  1100 */   175,  174,  175,   57,  174,  175,  174,  175,   70,  188,
- /*  1110 */   153,   71,  153,   61,   57,  188,   78,  153,  188,   81,
- /*  1120 */   188,  196,  197,  153,   84,   16,   17,  153,   19,  153,
- /*  1130 */    90,   91,  153,  208,  209,   20,  153,   97,   23,   99,
- /*  1140 */   100,  101,   33,  218,  104,   99,  100,  101,   98,  211,
- /*  1150 */   174,  175,   21,   19,  116,  153,   99,  100,  101,  121,
- /*  1160 */   122,    1,    2,  153,  114,  153,   57,    7,    8,    9,
- /*  1170 */    10,   11,  126,  153,   14,  135,  136,  137,  138,  139,
- /*  1180 */    71,   20,  144,  126,   23,   81,  153,   27,   57,   29,
- /*  1190 */   153,   57,  153,   84,  153,   20,  153,   37,   23,   90,
- /*  1200 */    91,  153,   20,  199,  239,   23,   97,  103,   99,  100,
- /*  1210 */   101,  238,  211,  104,  211,   52,   53,   54,   55,   56,
- /*  1220 */   211,  153,  174,  175,  211,  121,  122,  200,  172,   20,
- /*  1230 */    70,  100,   23,   99,  100,  101,  188,   20,   78,  153,
- /*  1240 */    23,   81,  174,  175,  135,  136,  137,  138,  139,   86,
- /*  1250 */    87,   88,   89,   90,   91,   92,   93,   94,   95,   96,
- /*  1260 */   174,  175,  151,  248,  203,  153,  215,  153,   20,  153,
- /*  1270 */   215,   23,  244,  153,  203,  153,  116,  203,  153,  244,
- /*  1280 */   153,  121,  122,  178,  164,  153,  174,  175,  174,  175,
- /*  1290 */   174,  175,  186,  153,  174,  175,  174,  175,  153,  174,
- /*  1300 */   175,  174,  175,  182,  144,  153,  174,  175,  215,  232,
- /*  1310 */   153,  156,  153,  177,  174,  175,  196,  197,  153,  174,
- /*  1320 */   175,  153,   58,  153,  177,  153,  174,  175,  208,  209,
- /*  1330 */   153,  174,  175,  174,  175,  177,  153,  202,  200,  174,
- /*  1340 */   175,  153,  174,  175,  174,  175,  174,  175,  248,  124,
- /*  1350 */   160,  174,  175,  153,   35,  153,  160,  174,  175,   98,
- /*  1360 */   153,   19,  174,  175,  153,   41,  225,  153,  245,  153,
- /*  1370 */   224,  153,  191,  153,  174,  175,  174,  175,  245,  153,
- /*  1380 */    15,  174,  175,  132,  153,  174,  175,  153,  174,  175,
- /*  1390 */   174,  175,  174,  175,  174,  175,  153,  203,  194,  194,
- /*  1400 */   174,  175,  194,   15,  194,  174,  175,  160,  174,  175,
- /*  1410 */   225,  159,  191,  224,  191,  203,  203,  174,  175,  160,
- /*  1420 */   140,  159,  203,   60,  159,  241,  240,  160,   19,  179,
- /*  1430 */   160,  159,  179,  160,  159,   98,  176,   62,  184,  176,
- /*  1440 */   109,  184,  176,   96,  127,  176,  217,  179,   98,  178,
- /*  1450 */   176,  216,  176,  176,  217,  216,  234,  179,  234,  217,
- /*  1460 */   179,  216,  160,  217,   19,  216,  160,  229,  140,  131,
- /*  1470 */   130,  231,  128,   22,  129,  163,   23,  162,   10,  154,
- /*  1480 */   154,    3,  152,  251,  152,  152,  207,  204,  206,  205,
- /*  1490 */   203,  180,  172,  166,  172,  254,  180,  145,  254,   19,
- /*  1500 */    12,  172,  166,   83,   13,   20,  172,  172,  122,   20,
- /*  1510 */   133,  172,  166,  172,  113,  172,   21,  125,   17,   13,
- /*  1520 */   127,    1,  125,  134,  113,   59,   34,  133,   51,  113,
- /*  1530 */    51,   99,   51,   51,   31,    1,  124,    2,   19,   98,
- /*  1540 */    68,  143,   68,   38,   23,   75,  124,   98,   21,   17,
- /*  1550 */   114,  108,   16,   67,   67,   25,   19,   19,   19,   34,
- /*  1560 */    20,   19,   19,   67,   20,   20,   20,    1,   20,   19,
- /*  1570 */    23,   19,   21,   20,  124,   21,   20,   20,   19,  118,
- /*  1580 */    31,  126,   99,   23,   23,   20,   31,   20,   19,   31,
- /*  1590 */    20,   20,   20,    8,   20,   19,   23,   19,   23,   20,
- /*  1600 */   124,   20,   19,   19,   12,  255,   20,  255,  124,  255,
- /*  1610 */   255,  255,  255,  255,  124,  255,  255,  124,  255,  255,
+ /*  1000 */   121,  122,  153,  113,   71,  111,  153,  185,   57,  187,
+ /*  1010 */    19,   16,  135,  136,  137,  138,  139,   84,  153,   57,
+ /*  1020 */   153,  126,   57,   90,   91,   92,  143,  153,  153,  135,
+ /*  1030 */    97,  137,   99,  100,  101,   57,   19,  104,  112,   44,
+ /*  1040 */    16,   17,  153,   19,  153,  153,   20,  214,   57,   23,
+ /*  1050 */    99,  100,  101,  164,  153,  153,  164,   33,   16,   17,
+ /*  1060 */   134,   19,  100,  174,  175,  100,  174,  175,  135,  136,
+ /*  1070 */   137,  138,  139,   20,   57,   33,   23,   99,  100,  101,
+ /*  1080 */    20,   57,   19,   23,  153,  196,  197,   57,  196,  197,
+ /*  1090 */    99,  100,  101,   98,   57,   71,    9,  208,  209,   57,
+ /*  1100 */   208,  209,  153,  153,  126,  174,  175,  218,   84,  114,
+ /*  1110 */   153,   24,  153,   71,   90,   91,   99,  100,  101,  188,
+ /*  1120 */    23,   97,  153,   99,  100,  101,   84,   40,  104,   99,
+ /*  1130 */   100,  101,   90,   91,  153,  211,  153,  100,  153,   97,
+ /*  1140 */   153,   99,  100,  101,   20,  193,  104,   23,   61,   20,
+ /*  1150 */   153,  153,   23,  153,  153,  153,  126,  174,  175,  135,
+ /*  1160 */   136,  137,  138,  139,  153,  153,   52,   53,   54,   55,
+ /*  1170 */    56,  153,  174,  175,  174,  175,  153,  135,  136,  137,
+ /*  1180 */   138,  139,    0,    1,    2,  239,  188,  124,  188,    7,
+ /*  1190 */     8,    9,   10,   11,  153,  199,   14,  211,  101,  153,
+ /*  1200 */    86,   87,   88,   89,   90,   91,   92,   93,   94,   95,
+ /*  1210 */    96,   29,  238,  200,  211,  174,  175,  153,  211,   37,
+ /*  1220 */   174,  175,  153,  126,  153,  211,  153,  172,  153,  188,
+ /*  1230 */    20,  151,  153,   23,  188,  153,  248,   57,  174,  175,
+ /*  1240 */   215,  203,  215,  174,  175,  174,  175,  174,  175,  174,
+ /*  1250 */   175,  203,   70,  174,  175,  153,  174,  175,  186,   20,
+ /*  1260 */    78,  153,   23,   81,   84,    1,    2,  178,  153,  203,
+ /*  1270 */   153,    7,    8,    9,   10,   11,  174,  175,   14,   99,
+ /*  1280 */   100,  182,  174,  175,  104,  153,  177,  153,  244,  174,
+ /*  1290 */   175,  174,  175,   29,  244,  177,   20,  153,  116,   23,
+ /*  1300 */   153,   37,  153,  121,  122,  177,  174,  175,  174,  175,
+ /*  1310 */   153,  215,  202,  232,  153,  135,  136,  137,  174,  175,
+ /*  1320 */   200,  174,  175,  174,  175,  156,  144,  153,   58,  153,
+ /*  1330 */    35,  174,  175,  248,   70,  174,  175,  153,  245,  245,
+ /*  1340 */   153,  124,   78,  153,   98,   81,  153,  225,  174,  175,
+ /*  1350 */   174,  175,  160,  153,   19,  153,   41,  153,  174,  175,
+ /*  1360 */   153,  174,  175,  224,  174,  175,  191,  174,  175,  153,
+ /*  1370 */   132,  153,   15,  153,  174,  175,  174,  175,  174,  175,
+ /*  1380 */   116,  174,  175,  153,  203,  121,  122,  160,  153,  194,
+ /*  1390 */   174,  175,  174,  175,  174,  175,   15,  153,  225,  194,
+ /*  1400 */   194,  159,  194,  224,  174,  175,  203,  160,  144,  174,
+ /*  1410 */   175,  159,  203,  191,  191,  203,   60,  140,  174,  175,
+ /*  1420 */   160,  159,   19,  160,  241,  240,  159,  179,  160,  179,
+ /*  1430 */   159,   98,  176,  176,  176,   62,  109,  184,  179,  178,
+ /*  1440 */    96,  176,  176,  127,   98,  234,  217,  234,  176,  176,
+ /*  1450 */   216,  160,  216,  184,  179,   19,  216,  179,  217,  160,
+ /*  1460 */   217,  229,  217,  140,  231,  216,  128,  131,   22,  130,
+ /*  1470 */   129,  163,   23,  162,   10,  154,  154,    3,  152,  254,
+ /*  1480 */   152,  207,  152,  166,  204,  206,  205,  203,   19,  180,
+ /*  1490 */   172,  254,  172,  180,  145,  166,  172,  172,   12,   83,
+ /*  1500 */    13,   20,  251,  172,  172,   20,  172,  122,  166,  172,
+ /*  1510 */   133,  113,   21,  125,   17,   13,  127,    1,  125,  113,
+ /*  1520 */   134,   59,   34,  133,   51,  113,   51,   51,   51,   99,
+ /*  1530 */    31,  124,    1,   19,    2,   98,   68,  143,   23,   68,
+ /*  1540 */    75,   38,  124,   98,   21,   17,   16,  114,  108,   67,
+ /*  1550 */    67,   25,   19,   19,   19,   34,   20,   19,   19,   67,
+ /*  1560 */    20,   20,   20,  124,   20,   19,   23,   19,   21,   20,
+ /*  1570 */    19,   21,   20,   20,  126,  118,   31,   99,   23,   23,
+ /*  1580 */    20,   20,   20,   20,   20,   31,    8,   20,   31,   23,
+ /*  1590 */    19,   19,   19,   23,   20,   20,   19,   12,   19,    1,
+ /*  1600 */    20,  255,  255,  124,  124,  255,  255,  255,  124,  255,
+ /*  1610 */   255,  255,  255,  124,  255,  255,  255,  255,  255,  255,
  /*  1620 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
  /*  1630 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
  /*  1640 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
@@ -146711,77 +146711,76 @@
  /*  1730 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
  /*  1740 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
  /*  1750 */   255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
- /*  1760 */   255,  255,  255,  255,
 };
-#define YY_SHIFT_COUNT    (485)
+#define YY_SHIFT_COUNT    (483)
 #define YY_SHIFT_MIN      (0)
-#define YY_SHIFT_MAX      (1592)
+#define YY_SHIFT_MAX      (1598)
 static const unsigned short int yy_shift_ofst[] = {
- /*     0 */  1160, 1038,  877,  877,  281, 1040, 1040, 1040,  228,    0,
- /*    10 */     0,  112,  672, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- /*    20 */  1040, 1040,  894,  894,  126, 1104,  281,  281,  281,  281,
+ /*     0 */  1264, 1182,  877,  877,  281, 1024, 1024, 1024,  228,    0,
+ /*    10 */     0,  112,  672, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
+ /*    20 */  1024, 1024,  894,  894,  126,  879,  281,  281,  281,  281,
  /*    30 */   281,  281,   56,  168,  224,  280,  336,  392,  448,  504,
  /*    40 */   560,  616,  672,  672,  672,  672,  672,  672,  672,  672,
  /*    50 */   672,  672,  672,  672,  672,  672,  672,  672,  672,  728,
- /*    60 */   672,  783,  837,  837,  933, 1040, 1040, 1040, 1040, 1040,
- /*    70 */  1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- /*    80 */  1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- /*    90 */  1040, 1040, 1040, 1040, 1040, 1109, 1040, 1040, 1040, 1040,
- /*   100 */  1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1163,
+ /*    60 */   672,  783,  837,  837,  933, 1024, 1024, 1024, 1024, 1024,
+ /*    70 */  1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
+ /*    80 */  1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
+ /*    90 */  1024, 1024, 1024, 1024, 1024, 1042, 1024, 1024, 1024, 1024,
+ /*   100 */  1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1114,
  /*   110 */   702,  702,  702,  702,  702,   43,   28,   77,  193,  883,
- /*   120 */  1050,  162,  162,  193,  165,  165,  165,  165,   64,  152,
- /*   130 */    45, 1618, 1618,  839,  839,  839,  838,  349,  838,  838,
+ /*   120 */   995,  162,  162,  193,  165,  165,  165,  165,   64,  152,
+ /*   130 */    45, 1614, 1614,  839,  839,  839,  838,  349,  838,  838,
  /*   140 */   896,  896,  405,  223,  378,  193,  193,  193,  193,  193,
  /*   150 */   193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
  /*   160 */   193,  193,  193,  193,  193,  193,  406,  636,  636,  621,
- /*   170 */  1618, 1618, 1618,  951,  145,  145,  943,   75,  245,  963,
- /*   180 */  1046, 1057, 1134,  193,  193,  193,  193,  193,  193,  193,
- /*   190 */   193,  193,  342,  193,  193,  193,  193,  193,  193,  193,
- /*   200 */   193,  193,  193,  193,  193,  890,  890,  890,  193,  193,
- /*   210 */   193,  193,  895,  193,  193,  193,   13,  193,  193, 1052,
- /*   220 */   193,  193,  193,  193,  193,  193,  193,  193,  355,  446,
- /*   230 */   393, 1131, 1131, 1131, 1131,  885,  393,  393,  721,   95,
- /*   240 */   510,  166,  722,  769,  769,  954,  722,  722,  954,  789,
- /*   250 */   820,  760,  814,  814,  814,  769,  278,  275,  506,   16,
- /*   260 */  1264, 1225, 1319, 1319, 1225, 1261, 1342, 1324, 1251, 1365,
- /*   270 */  1365, 1365, 1365, 1225, 1388, 1251, 1251, 1261, 1342, 1324,
- /*   280 */  1324, 1251, 1225, 1388, 1280, 1363, 1225, 1388, 1409, 1225,
- /*   290 */  1388, 1225, 1388, 1409, 1337, 1337, 1337, 1375, 1409, 1337,
- /*   300 */  1331, 1337, 1375, 1337, 1337, 1409, 1347, 1347, 1409, 1317,
- /*   310 */  1350, 1317, 1350, 1317, 1350, 1317, 1350, 1225, 1445, 1225,
- /*   320 */  1328, 1338, 1344, 1340, 1345, 1251, 1451, 1453, 1468, 1468,
- /*   330 */  1478, 1478, 1478, 1618, 1618, 1618, 1618, 1618, 1618, 1618,
- /*   340 */  1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618, 1618,  147,
- /*   350 */   381,  549,  551,  282,  417,  840,  825,  937,  782,  907,
- /*   360 */   826,  845,  889,  891,  893, 1070, 1115, 1161,  803,  748,
- /*   370 */   861,  851,  860, 1175, 1182, 1209,  784,  836, 1217, 1248,
- /*   380 */   922,  953, 1480, 1352, 1488, 1420, 1491, 1485, 1489, 1386,
- /*   390 */  1377, 1401, 1495, 1392, 1501, 1393, 1506, 1520, 1397, 1389,
- /*   400 */  1411, 1466, 1492, 1394, 1477, 1479, 1481, 1482, 1416, 1432,
- /*   410 */  1503, 1412, 1534, 1535, 1519, 1441, 1398, 1472, 1521, 1474,
- /*   420 */  1470, 1505, 1422, 1449, 1527, 1532, 1536, 1436, 1443, 1537,
- /*   430 */  1486, 1538, 1539, 1540, 1542, 1487, 1530, 1543, 1496, 1525,
- /*   440 */  1544, 1545, 1546, 1547, 1548, 1550, 1551, 1553, 1552, 1554,
- /*   450 */  1450, 1556, 1557, 1483, 1549, 1559, 1455, 1560, 1555, 1561,
- /*   460 */  1558, 1565, 1560, 1567, 1570, 1571, 1572, 1573, 1574, 1569,
- /*   470 */  1585, 1576, 1578, 1579, 1581, 1583, 1584, 1575, 1461, 1476,
- /*   480 */  1484, 1490, 1493, 1586, 1592, 1566,
+ /*   170 */  1614, 1614, 1614, 1180,  145,  145,  951,   75,  245,  991,
+ /*   180 */   978, 1030, 1017,  193,  193,  193,  193,  193,  193,  193,
+ /*   190 */   193,  342,  193,  193,  193,  193,  193,  193,  193,  193,
+ /*   200 */   193,  193,  193,  193,  890,  890,  890,  193,  193,  193,
+ /*   210 */   193,  895,  193,  193,  193,   13,  193,  193, 1087,  193,
+ /*   220 */   193,  193,  193,  193,  193,  193,  193,  355,  446,  393,
+ /*   230 */   962,  962,  962,  962, 1097,  393,  393,  721,   95,  510,
+ /*   240 */   166,  722,  769,  769,  887,  722,  722,  887,  789,  820,
+ /*   250 */   760,  814,  814,  814,  769,  278,  275,  506,   16, 1270,
+ /*   260 */  1295, 1295, 1217, 1246, 1335, 1315, 1238, 1357, 1357, 1357,
+ /*   270 */  1357, 1217, 1381, 1238, 1238, 1246, 1335, 1315, 1315, 1238,
+ /*   280 */  1217, 1381, 1277, 1356, 1217, 1381, 1403, 1217, 1381, 1217,
+ /*   290 */  1381, 1403, 1333, 1333, 1333, 1373, 1403, 1333, 1327, 1333,
+ /*   300 */  1373, 1333, 1333, 1403, 1344, 1344, 1403, 1316, 1346, 1316,
+ /*   310 */  1346, 1316, 1346, 1316, 1346, 1217, 1436, 1217, 1323, 1336,
+ /*   320 */  1338, 1339, 1341, 1238, 1446, 1449, 1464, 1464, 1474, 1474,
+ /*   330 */  1474, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ /*   340 */  1614, 1614, 1614, 1614, 1614, 1614, 1614,  147,  381,  549,
+ /*   350 */   551,  282,  417,  840,  825,  937,  782,  926,  826,  845,
+ /*   360 */   888,  893,  939, 1026, 1053, 1060,  809,  748,  856,  798,
+ /*   370 */   965, 1124, 1129, 1210,  730,  784, 1239, 1276, 1037, 1063,
+ /*   380 */  1469, 1349, 1486, 1416, 1487, 1481, 1485, 1385, 1377, 1398,
+ /*   390 */  1491, 1388, 1497, 1389, 1502, 1516, 1393, 1386, 1406, 1462,
+ /*   400 */  1488, 1390, 1473, 1475, 1476, 1477, 1412, 1430, 1499, 1407,
+ /*   410 */  1531, 1532, 1514, 1437, 1394, 1468, 1515, 1471, 1465, 1503,
+ /*   420 */  1418, 1445, 1523, 1528, 1530, 1433, 1440, 1533, 1482, 1534,
+ /*   430 */  1535, 1536, 1538, 1483, 1526, 1539, 1492, 1521, 1540, 1541,
+ /*   440 */  1542, 1543, 1544, 1546, 1547, 1549, 1548, 1550, 1439, 1552,
+ /*   450 */  1553, 1478, 1545, 1551, 1448, 1555, 1554, 1556, 1557, 1560,
+ /*   460 */  1555, 1561, 1562, 1563, 1564, 1566, 1567, 1571, 1578, 1572,
+ /*   470 */  1573, 1574, 1575, 1577, 1579, 1570, 1457, 1479, 1480, 1484,
+ /*   480 */  1489, 1580, 1585, 1598,
 };
-#define YY_REDUCE_COUNT (348)
+#define YY_REDUCE_COUNT (346)
 #define YY_REDUCE_MIN   (-223)
-#define YY_REDUCE_MAX   (1346)
+#define YY_REDUCE_MAX   (1342)
 static const short yy_reduce_ofst[] = {
- /*     0 */  -137,  -81,  925, 1120, -135, -153,   21,  130,  196, -146,
- /*    10 */    10, -223,   62,  921,  927,  930,  932,  132, 1048,  183,
+ /*     0 */  -137,  -81,  889,  892, -135, -153,   21,  130,  196, -146,
+ /*    10 */    10, -223,   62,  931,  998, 1000, 1041,  132, 1046,  183,
  /*    20 */   190,  242,  407,  409,  822,  311,  367,  420,  422,  425,
  /*    30 */   476,  479, -220, -220, -220, -220, -220, -220, -220, -220,
  /*    40 */  -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
  /*    50 */  -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
  /*    60 */  -220, -220, -220, -220, -136,  358,  413,  521,  525,  576,
- /*    70 */   578,  631,  633,  688,  827,  976, 1068, 1086, 1112, 1114,
- /*    80 */  1116, 1122, 1125, 1127, 1132, 1140, 1145, 1152, 1157, 1159,
- /*    90 */  1165, 1168, 1170, 1172, 1177, 1183, 1188, 1200, 1202, 1207,
- /*   100 */  1211, 1214, 1216, 1218, 1220, 1226, 1231, 1234, 1243, -220,
+ /*    70 */   578,  631,  633,  688,  983, 1064, 1069, 1071, 1073, 1075,
+ /*    80 */  1079, 1082, 1102, 1108, 1115, 1117, 1132, 1134, 1144, 1147,
+ /*    90 */  1149, 1157, 1161, 1174, 1176, 1184, 1187, 1190, 1193, 1200,
+ /*   100 */  1202, 1204, 1207, 1216, 1218, 1220, 1230, 1235, 1244, -220,
  /*   110 */  -220, -220, -220, -220, -220, -220, -220, -220,  210,  238,
  /*   120 */  -157,  184,  240,  308, -182, -133, -182, -133,  284, -220,
  /*   130 */  -220, -220, -220, -115, -115, -115,  -96, -113,  467,  470,
@@ -146789,74 +146788,74 @@
  /*   150 */   482,  485,  486,  488,  544,  131,  656,  187,  526,  657,
  /*   160 */   529,  533,  541,  537,  545,  580,  569,  570,  572, -178,
  /*   170 */   497,  589,  373,  -57,   23,   61,  189,  160,  302,  317,
- /*   180 */   377,  408,  414,  432,  532,  579,  694,  703,  708,  714,
- /*   190 */   749,  754,  736,  830,  853,  857,  865,  874,  875,  901,
- /*   200 */   905,  926,  928,  929,  931,  808,  908,  915,  957,  959,
- /*   210 */   964,  970,  846,  974,  979,  983,  938, 1002, 1010,  843,
- /*   220 */  1012,  302, 1020, 1033, 1037, 1039, 1041, 1043,  965,  973,
- /*   230 */  1004, 1001, 1003, 1009, 1013,  846, 1004, 1004, 1027, 1056,
- /*   240 */  1111, 1015, 1061, 1051, 1055, 1028, 1071, 1074, 1035, 1105,
- /*   250 */  1106, 1121, 1136, 1147, 1158, 1093, 1077, 1135, 1138, 1155,
- /*   260 */  1100, 1190, 1123, 1133, 1196, 1141, 1146, 1181, 1194, 1204,
- /*   270 */  1205, 1208, 1210, 1247, 1252, 1212, 1213, 1185, 1189, 1221,
- /*   280 */  1223, 1219, 1259, 1262, 1184, 1186, 1267, 1265, 1250, 1270,
- /*   290 */  1272, 1273, 1275, 1253, 1260, 1263, 1266, 1254, 1268, 1269,
- /*   300 */  1271, 1274, 1257, 1276, 1277, 1278, 1222, 1224, 1281, 1229,
- /*   310 */  1235, 1237, 1239, 1242, 1245, 1246, 1249, 1302, 1238, 1306,
- /*   320 */  1240, 1279, 1282, 1284, 1283, 1287, 1312, 1315, 1325, 1326,
- /*   330 */  1330, 1332, 1333, 1241, 1244, 1232, 1327, 1320, 1322, 1329,
- /*   340 */  1334, 1336, 1311, 1316, 1335, 1339, 1341, 1343, 1346,
+ /*   180 */   377,  408,  414,  432,  532,  579,  694,  703,  754,  761,
+ /*   190 */   764,  732,  812,  818,  819,  827,  849,  853,  865,  867,
+ /*   200 */   874,  875,  891,  901,  790,  796,  808,  902,  949,  950,
+ /*   210 */   957,  833,  959,  969,  981,  924,  985,  987,  952,  997,
+ /*   220 */   302, 1001, 1002, 1011, 1012, 1018, 1023,  946,  974,  996,
+ /*   230 */   986, 1003, 1007, 1014,  833,  996,  996, 1013, 1055, 1080,
+ /*   240 */   988, 1038, 1025, 1027, 1044, 1048, 1066, 1050, 1089, 1072,
+ /*   250 */  1099, 1109, 1118, 1128, 1096, 1081, 1110, 1120, 1169, 1085,
+ /*   260 */  1093, 1094, 1192, 1122, 1139, 1175, 1181, 1195, 1205, 1206,
+ /*   270 */  1208, 1227, 1242, 1203, 1209, 1173, 1179, 1222, 1223, 1212,
+ /*   280 */  1247, 1252, 1183, 1185, 1260, 1262, 1248, 1263, 1267, 1268,
+ /*   290 */  1271, 1250, 1256, 1257, 1258, 1253, 1259, 1265, 1261, 1266,
+ /*   300 */  1269, 1272, 1273, 1275, 1211, 1213, 1278, 1229, 1234, 1241,
+ /*   310 */  1236, 1243, 1240, 1245, 1249, 1291, 1232, 1299, 1233, 1274,
+ /*   320 */  1279, 1281, 1280, 1284, 1308, 1311, 1321, 1322, 1326, 1328,
+ /*   330 */  1330, 1225, 1237, 1251, 1317, 1318, 1320, 1324, 1325, 1329,
+ /*   340 */  1309, 1313, 1331, 1332, 1334, 1337, 1342,
 };
 static const YYACTIONTYPE yy_default[] = {
- /*     0 */  1373, 1373, 1247, 1035, 1138, 1247, 1247, 1247, 1035, 1168,
- /*    10 */  1168, 1298, 1064, 1035, 1035, 1035, 1035, 1035, 1035, 1246,
- /*    20 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*    30 */  1035, 1035, 1174, 1035, 1035, 1035, 1035, 1248, 1249, 1035,
- /*    40 */  1035, 1035, 1297, 1299, 1184, 1183, 1182, 1181, 1280, 1155,
- /*    50 */  1179, 1172, 1176, 1242, 1243, 1241, 1245, 1249, 1248, 1035,
- /*    60 */  1175, 1213, 1227, 1212, 1035, 1035, 1035, 1035, 1035, 1035,
- /*    70 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*    80 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*    90 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   100 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1221,
- /*   110 */  1226, 1232, 1225, 1222, 1215, 1214, 1216, 1217, 1035, 1054,
- /*   120 */  1103, 1035, 1035, 1035, 1314, 1313, 1035, 1035, 1064, 1218,
- /*   130 */  1219, 1229, 1228, 1303, 1329, 1328, 1035, 1035, 1035, 1035,
- /*   140 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   150 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   160 */  1035, 1035, 1035, 1035, 1035, 1035, 1064, 1060, 1060, 1035,
- /*   170 */  1309, 1138, 1129, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   180 */  1035, 1035, 1035, 1035, 1035, 1035, 1300, 1035, 1262, 1035,
- /*   190 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   200 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   210 */  1035, 1035, 1035, 1035, 1035, 1035, 1134, 1035, 1035, 1035,
- /*   220 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1323, 1035, 1275,
- /*   230 */  1117, 1134, 1134, 1134, 1134, 1136, 1118, 1116, 1128, 1064,
- /*   240 */  1040, 1365, 1178, 1157, 1157, 1362, 1178, 1178, 1362, 1078,
- /*   250 */  1343, 1075, 1168, 1168, 1168, 1157, 1244, 1135, 1128, 1035,
- /*   260 */  1365, 1143, 1364, 1364, 1143, 1187, 1193, 1106, 1178, 1112,
- /*   270 */  1112, 1112, 1112, 1143, 1051, 1178, 1178, 1187, 1193, 1106,
- /*   280 */  1106, 1178, 1143, 1051, 1279, 1359, 1143, 1051, 1255, 1143,
- /*   290 */  1051, 1143, 1051, 1255, 1104, 1104, 1104, 1093, 1255, 1104,
- /*   300 */  1078, 1104, 1093, 1104, 1104, 1255, 1259, 1259, 1255, 1161,
- /*   310 */  1156, 1161, 1156, 1161, 1156, 1161, 1156, 1143, 1250, 1143,
- /*   320 */  1035, 1173, 1162, 1171, 1169, 1178, 1057, 1096, 1326, 1326,
- /*   330 */  1322, 1322, 1322, 1370, 1370, 1309, 1338, 1064, 1064, 1064,
- /*   340 */  1064, 1338, 1080, 1080, 1064, 1064, 1064, 1064, 1338, 1035,
- /*   350 */  1035, 1035, 1035, 1035, 1035, 1333, 1035, 1264, 1147, 1035,
- /*   360 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   370 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   380 */  1035, 1198, 1306, 1035, 1035, 1304, 1035, 1035, 1035, 1035,
- /*   390 */  1035, 1035, 1148, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   400 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   410 */  1035, 1361, 1035, 1035, 1035, 1035, 1035, 1035, 1278, 1277,
- /*   420 */  1035, 1035, 1145, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   430 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   440 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   450 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1170, 1035, 1163,
- /*   460 */  1035, 1035, 1352, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- /*   470 */  1035, 1035, 1035, 1035, 1035, 1035, 1035, 1347, 1120, 1200,
- /*   480 */  1035, 1199, 1203, 1035, 1045, 1035,
+ /*     0 */  1366, 1366, 1242, 1030, 1133, 1242, 1242, 1242, 1030, 1163,
+ /*    10 */  1163, 1293, 1059, 1030, 1030, 1030, 1030, 1030, 1030, 1241,
+ /*    20 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*    30 */  1030, 1030, 1169, 1030, 1030, 1030, 1030, 1243, 1244, 1030,
+ /*    40 */  1030, 1030, 1292, 1294, 1179, 1178, 1177, 1176, 1275, 1150,
+ /*    50 */  1174, 1167, 1171, 1237, 1238, 1236, 1240, 1244, 1243, 1030,
+ /*    60 */  1170, 1208, 1222, 1207, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*    70 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*    80 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*    90 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   100 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1216,
+ /*   110 */  1221, 1227, 1220, 1217, 1210, 1209, 1211, 1212, 1030, 1049,
+ /*   120 */  1098, 1030, 1030, 1030, 1307, 1306, 1030, 1030, 1059, 1213,
+ /*   130 */  1214, 1224, 1223, 1296, 1322, 1321, 1030, 1030, 1030, 1030,
+ /*   140 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   150 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   160 */  1030, 1030, 1030, 1030, 1030, 1030, 1059, 1055, 1055, 1030,
+ /*   170 */  1302, 1133, 1124, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   180 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1257, 1030, 1030,
+ /*   190 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   200 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   210 */  1030, 1030, 1030, 1030, 1030, 1129, 1030, 1030, 1030, 1030,
+ /*   220 */  1030, 1030, 1030, 1030, 1030, 1030, 1316, 1030, 1270, 1112,
+ /*   230 */  1129, 1129, 1129, 1129, 1131, 1113, 1111, 1123, 1059, 1035,
+ /*   240 */  1358, 1173, 1152, 1152, 1355, 1173, 1173, 1355, 1073, 1336,
+ /*   250 */  1070, 1163, 1163, 1163, 1152, 1239, 1130, 1123, 1030, 1358,
+ /*   260 */  1357, 1357, 1138, 1182, 1188, 1101, 1173, 1107, 1107, 1107,
+ /*   270 */  1107, 1138, 1046, 1173, 1173, 1182, 1188, 1101, 1101, 1173,
+ /*   280 */  1138, 1046, 1274, 1352, 1138, 1046, 1250, 1138, 1046, 1138,
+ /*   290 */  1046, 1250, 1099, 1099, 1099, 1088, 1250, 1099, 1073, 1099,
+ /*   300 */  1088, 1099, 1099, 1250, 1254, 1254, 1250, 1156, 1151, 1156,
+ /*   310 */  1151, 1156, 1151, 1156, 1151, 1138, 1245, 1138, 1030, 1168,
+ /*   320 */  1157, 1166, 1164, 1173, 1052, 1091, 1319, 1319, 1315, 1315,
+ /*   330 */  1315, 1363, 1363, 1302, 1331, 1059, 1059, 1059, 1059, 1331,
+ /*   340 */  1075, 1075, 1059, 1059, 1059, 1059, 1331, 1030, 1030, 1030,
+ /*   350 */  1030, 1030, 1030, 1326, 1030, 1259, 1142, 1030, 1030, 1030,
+ /*   360 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   370 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1193,
+ /*   380 */  1299, 1030, 1030, 1297, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   390 */  1143, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   400 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1354,
+ /*   410 */  1030, 1030, 1030, 1030, 1030, 1030, 1273, 1272, 1030, 1030,
+ /*   420 */  1140, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   430 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   440 */  1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   450 */  1030, 1030, 1030, 1030, 1030, 1165, 1030, 1158, 1030, 1030,
+ /*   460 */  1345, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ /*   470 */  1030, 1030, 1030, 1030, 1030, 1340, 1115, 1195, 1030, 1194,
+ /*   480 */  1198, 1030, 1040, 1030,
 };
 /********** End of lemon-generated parsing tables *****************************/
 
@@ -147572,80 +147571,78 @@
  /* 259 */ "cmd ::= DETACH database_kw_opt expr",
  /* 260 */ "key_opt ::=",
  /* 261 */ "key_opt ::= KEY expr",
- /* 262 */ "cmd ::= ANALYZE",
- /* 263 */ "cmd ::= ANALYZE nm dbnm",
- /* 264 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
- /* 265 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
- /* 266 */ "add_column_fullname ::= fullname",
- /* 267 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm",
- /* 268 */ "cmd ::= create_vtab",
- /* 269 */ "cmd ::= create_vtab LP vtabarglist RP",
- /* 270 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
- /* 271 */ "vtabarg ::=",
- /* 272 */ "vtabargtoken ::= ANY",
- /* 273 */ "vtabargtoken ::= lp anylist RP",
- /* 274 */ "lp ::= LP",
- /* 275 */ "with ::= WITH wqlist",
- /* 276 */ "with ::= WITH RECURSIVE wqlist",
- /* 277 */ "wqlist ::= nm eidlist_opt AS LP select RP",
- /* 278 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
- /* 279 */ "input ::= cmdlist",
- /* 280 */ "cmdlist ::= cmdlist ecmd",
- /* 281 */ "cmdlist ::= ecmd",
- /* 282 */ "ecmd ::= SEMI",
- /* 283 */ "ecmd ::= cmdx SEMI",
- /* 284 */ "trans_opt ::=",
- /* 285 */ "trans_opt ::= TRANSACTION",
- /* 286 */ "trans_opt ::= TRANSACTION nm",
- /* 287 */ "savepoint_opt ::= SAVEPOINT",
- /* 288 */ "savepoint_opt ::=",
- /* 289 */ "cmd ::= create_table create_table_args",
- /* 290 */ "columnlist ::= columnlist COMMA columnname carglist",
- /* 291 */ "columnlist ::= columnname carglist",
- /* 292 */ "nm ::= ID|INDEXED",
- /* 293 */ "nm ::= STRING",
- /* 294 */ "nm ::= JOIN_KW",
- /* 295 */ "typetoken ::= typename",
- /* 296 */ "typename ::= ID|STRING",
- /* 297 */ "signed ::= plus_num",
- /* 298 */ "signed ::= minus_num",
- /* 299 */ "carglist ::= carglist ccons",
- /* 300 */ "carglist ::=",
- /* 301 */ "ccons ::= NULL onconf",
- /* 302 */ "conslist_opt ::= COMMA conslist",
- /* 303 */ "conslist ::= conslist tconscomma tcons",
- /* 304 */ "conslist ::= tcons",
- /* 305 */ "tconscomma ::=",
- /* 306 */ "defer_subclause_opt ::= defer_subclause",
- /* 307 */ "resolvetype ::= raisetype",
- /* 308 */ "selectnowith ::= oneselect",
- /* 309 */ "oneselect ::= values",
- /* 310 */ "sclp ::= selcollist COMMA",
- /* 311 */ "as ::= ID|STRING",
- /* 312 */ "expr ::= term",
- /* 313 */ "likeop ::= LIKE_KW|MATCH",
- /* 314 */ "exprlist ::= nexprlist",
- /* 315 */ "nmnum ::= plus_num",
- /* 316 */ "nmnum ::= nm",
- /* 317 */ "nmnum ::= ON",
- /* 318 */ "nmnum ::= DELETE",
- /* 319 */ "nmnum ::= DEFAULT",
- /* 320 */ "plus_num ::= INTEGER|FLOAT",
- /* 321 */ "foreach_clause ::=",
- /* 322 */ "foreach_clause ::= FOR EACH ROW",
- /* 323 */ "trnm ::= nm",
- /* 324 */ "tridxby ::=",
- /* 325 */ "database_kw_opt ::= DATABASE",
- /* 326 */ "database_kw_opt ::=",
- /* 327 */ "kwcolumn_opt ::=",
- /* 328 */ "kwcolumn_opt ::= COLUMNKW",
- /* 329 */ "vtabarglist ::= vtabarg",
- /* 330 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
- /* 331 */ "vtabarg ::= vtabarg vtabargtoken",
- /* 332 */ "anylist ::=",
- /* 333 */ "anylist ::= anylist LP anylist RP",
- /* 334 */ "anylist ::= anylist ANY",
- /* 335 */ "with ::=",
+ /* 262 */ "cmd ::= ALTER TABLE fullname RENAME TO nm",
+ /* 263 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist",
+ /* 264 */ "add_column_fullname ::= fullname",
+ /* 265 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm",
+ /* 266 */ "cmd ::= create_vtab",
+ /* 267 */ "cmd ::= create_vtab LP vtabarglist RP",
+ /* 268 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm",
+ /* 269 */ "vtabarg ::=",
+ /* 270 */ "vtabargtoken ::= ANY",
+ /* 271 */ "vtabargtoken ::= lp anylist RP",
+ /* 272 */ "lp ::= LP",
+ /* 273 */ "with ::= WITH wqlist",
+ /* 274 */ "with ::= WITH RECURSIVE wqlist",
+ /* 275 */ "wqlist ::= nm eidlist_opt AS LP select RP",
+ /* 276 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP",
+ /* 277 */ "input ::= cmdlist",
+ /* 278 */ "cmdlist ::= cmdlist ecmd",
+ /* 279 */ "cmdlist ::= ecmd",
+ /* 280 */ "ecmd ::= SEMI",
+ /* 281 */ "ecmd ::= cmdx SEMI",
+ /* 282 */ "trans_opt ::=",
+ /* 283 */ "trans_opt ::= TRANSACTION",
+ /* 284 */ "trans_opt ::= TRANSACTION nm",
+ /* 285 */ "savepoint_opt ::= SAVEPOINT",
+ /* 286 */ "savepoint_opt ::=",
+ /* 287 */ "cmd ::= create_table create_table_args",
+ /* 288 */ "columnlist ::= columnlist COMMA columnname carglist",
+ /* 289 */ "columnlist ::= columnname carglist",
+ /* 290 */ "nm ::= ID|INDEXED",
+ /* 291 */ "nm ::= STRING",
+ /* 292 */ "nm ::= JOIN_KW",
+ /* 293 */ "typetoken ::= typename",
+ /* 294 */ "typename ::= ID|STRING",
+ /* 295 */ "signed ::= plus_num",
+ /* 296 */ "signed ::= minus_num",
+ /* 297 */ "carglist ::= carglist ccons",
+ /* 298 */ "carglist ::=",
+ /* 299 */ "ccons ::= NULL onconf",
+ /* 300 */ "conslist_opt ::= COMMA conslist",
+ /* 301 */ "conslist ::= conslist tconscomma tcons",
+ /* 302 */ "conslist ::= tcons",
+ /* 303 */ "tconscomma ::=",
+ /* 304 */ "defer_subclause_opt ::= defer_subclause",
+ /* 305 */ "resolvetype ::= raisetype",
+ /* 306 */ "selectnowith ::= oneselect",
+ /* 307 */ "oneselect ::= values",
+ /* 308 */ "sclp ::= selcollist COMMA",
+ /* 309 */ "as ::= ID|STRING",
+ /* 310 */ "expr ::= term",
+ /* 311 */ "likeop ::= LIKE_KW|MATCH",
+ /* 312 */ "exprlist ::= nexprlist",
+ /* 313 */ "nmnum ::= plus_num",
+ /* 314 */ "nmnum ::= nm",
+ /* 315 */ "nmnum ::= ON",
+ /* 316 */ "nmnum ::= DELETE",
+ /* 317 */ "nmnum ::= DEFAULT",
+ /* 318 */ "plus_num ::= INTEGER|FLOAT",
+ /* 319 */ "foreach_clause ::=",
+ /* 320 */ "foreach_clause ::= FOR EACH ROW",
+ /* 321 */ "trnm ::= nm",
+ /* 322 */ "tridxby ::=",
+ /* 323 */ "database_kw_opt ::= DATABASE",
+ /* 324 */ "database_kw_opt ::=",
+ /* 325 */ "kwcolumn_opt ::=",
+ /* 326 */ "kwcolumn_opt ::= COLUMNKW",
+ /* 327 */ "vtabarglist ::= vtabarg",
+ /* 328 */ "vtabarglist ::= vtabarglist COMMA vtabarg",
+ /* 329 */ "vtabarg ::= vtabarg vtabargtoken",
+ /* 330 */ "anylist ::=",
+ /* 331 */ "anylist ::= anylist LP anylist RP",
+ /* 332 */ "anylist ::= anylist ANY",
+ /* 333 */ "with ::=",
 };
 #endif /* NDEBUG */
 
@@ -148398,80 +148395,78 @@
   {  150,   -3 }, /* (259) cmd ::= DETACH database_kw_opt expr */
   {  246,    0 }, /* (260) key_opt ::= */
   {  246,   -2 }, /* (261) key_opt ::= KEY expr */
-  {  150,   -1 }, /* (262) cmd ::= ANALYZE */
-  {  150,   -3 }, /* (263) cmd ::= ANALYZE nm dbnm */
-  {  150,   -6 }, /* (264) cmd ::= ALTER TABLE fullname RENAME TO nm */
-  {  150,   -7 }, /* (265) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
-  {  247,   -1 }, /* (266) add_column_fullname ::= fullname */
-  {  150,   -8 }, /* (267) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
-  {  150,   -1 }, /* (268) cmd ::= create_vtab */
-  {  150,   -4 }, /* (269) cmd ::= create_vtab LP vtabarglist RP */
-  {  249,   -8 }, /* (270) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
-  {  251,    0 }, /* (271) vtabarg ::= */
-  {  252,   -1 }, /* (272) vtabargtoken ::= ANY */
-  {  252,   -3 }, /* (273) vtabargtoken ::= lp anylist RP */
-  {  253,   -1 }, /* (274) lp ::= LP */
-  {  221,   -2 }, /* (275) with ::= WITH wqlist */
-  {  221,   -3 }, /* (276) with ::= WITH RECURSIVE wqlist */
-  {  198,   -6 }, /* (277) wqlist ::= nm eidlist_opt AS LP select RP */
-  {  198,   -8 }, /* (278) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
-  {  146,   -1 }, /* (279) input ::= cmdlist */
-  {  147,   -2 }, /* (280) cmdlist ::= cmdlist ecmd */
-  {  147,   -1 }, /* (281) cmdlist ::= ecmd */
-  {  148,   -1 }, /* (282) ecmd ::= SEMI */
-  {  148,   -2 }, /* (283) ecmd ::= cmdx SEMI */
-  {  152,    0 }, /* (284) trans_opt ::= */
-  {  152,   -1 }, /* (285) trans_opt ::= TRANSACTION */
-  {  152,   -2 }, /* (286) trans_opt ::= TRANSACTION nm */
-  {  154,   -1 }, /* (287) savepoint_opt ::= SAVEPOINT */
-  {  154,    0 }, /* (288) savepoint_opt ::= */
-  {  150,   -2 }, /* (289) cmd ::= create_table create_table_args */
-  {  161,   -4 }, /* (290) columnlist ::= columnlist COMMA columnname carglist */
-  {  161,   -2 }, /* (291) columnlist ::= columnname carglist */
-  {  153,   -1 }, /* (292) nm ::= ID|INDEXED */
-  {  153,   -1 }, /* (293) nm ::= STRING */
-  {  153,   -1 }, /* (294) nm ::= JOIN_KW */
-  {  167,   -1 }, /* (295) typetoken ::= typename */
-  {  168,   -1 }, /* (296) typename ::= ID|STRING */
-  {  169,   -1 }, /* (297) signed ::= plus_num */
-  {  169,   -1 }, /* (298) signed ::= minus_num */
-  {  166,   -2 }, /* (299) carglist ::= carglist ccons */
-  {  166,    0 }, /* (300) carglist ::= */
-  {  173,   -2 }, /* (301) ccons ::= NULL onconf */
-  {  162,   -2 }, /* (302) conslist_opt ::= COMMA conslist */
-  {  185,   -3 }, /* (303) conslist ::= conslist tconscomma tcons */
-  {  185,   -1 }, /* (304) conslist ::= tcons */
-  {  186,    0 }, /* (305) tconscomma ::= */
-  {  190,   -1 }, /* (306) defer_subclause_opt ::= defer_subclause */
-  {  192,   -1 }, /* (307) resolvetype ::= raisetype */
-  {  196,   -1 }, /* (308) selectnowith ::= oneselect */
-  {  197,   -1 }, /* (309) oneselect ::= values */
-  {  210,   -2 }, /* (310) sclp ::= selcollist COMMA */
-  {  211,   -1 }, /* (311) as ::= ID|STRING */
-  {  175,   -1 }, /* (312) expr ::= term */
-  {  226,   -1 }, /* (313) likeop ::= LIKE_KW|MATCH */
-  {  218,   -1 }, /* (314) exprlist ::= nexprlist */
-  {  235,   -1 }, /* (315) nmnum ::= plus_num */
-  {  235,   -1 }, /* (316) nmnum ::= nm */
-  {  235,   -1 }, /* (317) nmnum ::= ON */
-  {  235,   -1 }, /* (318) nmnum ::= DELETE */
-  {  235,   -1 }, /* (319) nmnum ::= DEFAULT */
-  {  170,   -1 }, /* (320) plus_num ::= INTEGER|FLOAT */
-  {  240,    0 }, /* (321) foreach_clause ::= */
-  {  240,   -3 }, /* (322) foreach_clause ::= FOR EACH ROW */
-  {  243,   -1 }, /* (323) trnm ::= nm */
-  {  244,    0 }, /* (324) tridxby ::= */
-  {  245,   -1 }, /* (325) database_kw_opt ::= DATABASE */
-  {  245,    0 }, /* (326) database_kw_opt ::= */
-  {  248,    0 }, /* (327) kwcolumn_opt ::= */
-  {  248,   -1 }, /* (328) kwcolumn_opt ::= COLUMNKW */
-  {  250,   -1 }, /* (329) vtabarglist ::= vtabarg */
-  {  250,   -3 }, /* (330) vtabarglist ::= vtabarglist COMMA vtabarg */
-  {  251,   -2 }, /* (331) vtabarg ::= vtabarg vtabargtoken */
-  {  254,    0 }, /* (332) anylist ::= */
-  {  254,   -4 }, /* (333) anylist ::= anylist LP anylist RP */
-  {  254,   -2 }, /* (334) anylist ::= anylist ANY */
-  {  221,    0 }, /* (335) with ::= */
+  {  150,   -6 }, /* (262) cmd ::= ALTER TABLE fullname RENAME TO nm */
+  {  150,   -7 }, /* (263) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
+  {  247,   -1 }, /* (264) add_column_fullname ::= fullname */
+  {  150,   -8 }, /* (265) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
+  {  150,   -1 }, /* (266) cmd ::= create_vtab */
+  {  150,   -4 }, /* (267) cmd ::= create_vtab LP vtabarglist RP */
+  {  249,   -8 }, /* (268) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
+  {  251,    0 }, /* (269) vtabarg ::= */
+  {  252,   -1 }, /* (270) vtabargtoken ::= ANY */
+  {  252,   -3 }, /* (271) vtabargtoken ::= lp anylist RP */
+  {  253,   -1 }, /* (272) lp ::= LP */
+  {  221,   -2 }, /* (273) with ::= WITH wqlist */
+  {  221,   -3 }, /* (274) with ::= WITH RECURSIVE wqlist */
+  {  198,   -6 }, /* (275) wqlist ::= nm eidlist_opt AS LP select RP */
+  {  198,   -8 }, /* (276) wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
+  {  146,   -1 }, /* (277) input ::= cmdlist */
+  {  147,   -2 }, /* (278) cmdlist ::= cmdlist ecmd */
+  {  147,   -1 }, /* (279) cmdlist ::= ecmd */
+  {  148,   -1 }, /* (280) ecmd ::= SEMI */
+  {  148,   -2 }, /* (281) ecmd ::= cmdx SEMI */
+  {  152,    0 }, /* (282) trans_opt ::= */
+  {  152,   -1 }, /* (283) trans_opt ::= TRANSACTION */
+  {  152,   -2 }, /* (284) trans_opt ::= TRANSACTION nm */
+  {  154,   -1 }, /* (285) savepoint_opt ::= SAVEPOINT */
+  {  154,    0 }, /* (286) savepoint_opt ::= */
+  {  150,   -2 }, /* (287) cmd ::= create_table create_table_args */
+  {  161,   -4 }, /* (288) columnlist ::= columnlist COMMA columnname carglist */
+  {  161,   -2 }, /* (289) columnlist ::= columnname carglist */
+  {  153,   -1 }, /* (290) nm ::= ID|INDEXED */
+  {  153,   -1 }, /* (291) nm ::= STRING */
+  {  153,   -1 }, /* (292) nm ::= JOIN_KW */
+  {  167,   -1 }, /* (293) typetoken ::= typename */
+  {  168,   -1 }, /* (294) typename ::= ID|STRING */
+  {  169,   -1 }, /* (295) signed ::= plus_num */
+  {  169,   -1 }, /* (296) signed ::= minus_num */
+  {  166,   -2 }, /* (297) carglist ::= carglist ccons */
+  {  166,    0 }, /* (298) carglist ::= */
+  {  173,   -2 }, /* (299) ccons ::= NULL onconf */
+  {  162,   -2 }, /* (300) conslist_opt ::= COMMA conslist */
+  {  185,   -3 }, /* (301) conslist ::= conslist tconscomma tcons */
+  {  185,   -1 }, /* (302) conslist ::= tcons */
+  {  186,    0 }, /* (303) tconscomma ::= */
+  {  190,   -1 }, /* (304) defer_subclause_opt ::= defer_subclause */
+  {  192,   -1 }, /* (305) resolvetype ::= raisetype */
+  {  196,   -1 }, /* (306) selectnowith ::= oneselect */
+  {  197,   -1 }, /* (307) oneselect ::= values */
+  {  210,   -2 }, /* (308) sclp ::= selcollist COMMA */
+  {  211,   -1 }, /* (309) as ::= ID|STRING */
+  {  175,   -1 }, /* (310) expr ::= term */
+  {  226,   -1 }, /* (311) likeop ::= LIKE_KW|MATCH */
+  {  218,   -1 }, /* (312) exprlist ::= nexprlist */
+  {  235,   -1 }, /* (313) nmnum ::= plus_num */
+  {  235,   -1 }, /* (314) nmnum ::= nm */
+  {  235,   -1 }, /* (315) nmnum ::= ON */
+  {  235,   -1 }, /* (316) nmnum ::= DELETE */
+  {  235,   -1 }, /* (317) nmnum ::= DEFAULT */
+  {  170,   -1 }, /* (318) plus_num ::= INTEGER|FLOAT */
+  {  240,    0 }, /* (319) foreach_clause ::= */
+  {  240,   -3 }, /* (320) foreach_clause ::= FOR EACH ROW */
+  {  243,   -1 }, /* (321) trnm ::= nm */
+  {  244,    0 }, /* (322) tridxby ::= */
+  {  245,   -1 }, /* (323) database_kw_opt ::= DATABASE */
+  {  245,    0 }, /* (324) database_kw_opt ::= */
+  {  248,    0 }, /* (325) kwcolumn_opt ::= */
+  {  248,   -1 }, /* (326) kwcolumn_opt ::= COLUMNKW */
+  {  250,   -1 }, /* (327) vtabarglist ::= vtabarg */
+  {  250,   -3 }, /* (328) vtabarglist ::= vtabarglist COMMA vtabarg */
+  {  251,   -2 }, /* (329) vtabarg ::= vtabarg vtabargtoken */
+  {  254,    0 }, /* (330) anylist ::= */
+  {  254,   -4 }, /* (331) anylist ::= anylist LP anylist RP */
+  {  254,   -2 }, /* (332) anylist ::= anylist ANY */
+  {  221,    0 }, /* (333) with ::= */
 };
 
 static void yy_accept(yyParser*);  /* Forward Declaration */
@@ -149671,125 +149666,119 @@
   sqlite3Detach(pParse, yymsp[0].minor.yy182);
 }
         break;
-      case 262: /* cmd ::= ANALYZE */
-{sqlite3Analyze(pParse, 0, 0);}
-        break;
-      case 263: /* cmd ::= ANALYZE nm dbnm */
-{sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
-        break;
-      case 264: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
+      case 262: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
 {
   sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy427,&yymsp[0].minor.yy0);
 }
         break;
-      case 265: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
+      case 263: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */
 {
   yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n;
   sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0);
 }
         break;
-      case 266: /* add_column_fullname ::= fullname */
+      case 264: /* add_column_fullname ::= fullname */
 {
   disableLookaside(pParse);
   sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy427);
 }
         break;
-      case 267: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
+      case 265: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */
 {
   sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy427, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
 }
         break;
-      case 268: /* cmd ::= create_vtab */
+      case 266: /* cmd ::= create_vtab */
 {sqlite3VtabFinishParse(pParse,0);}
         break;
-      case 269: /* cmd ::= create_vtab LP vtabarglist RP */
+      case 267: /* cmd ::= create_vtab LP vtabarglist RP */
 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
         break;
-      case 270: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
+      case 268: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */
 {
     sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy502);
 }
         break;
-      case 271: /* vtabarg ::= */
+      case 269: /* vtabarg ::= */
 {sqlite3VtabArgInit(pParse);}
         break;
-      case 272: /* vtabargtoken ::= ANY */
-      case 273: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==273);
-      case 274: /* lp ::= LP */ yytestcase(yyruleno==274);
+      case 270: /* vtabargtoken ::= ANY */
+      case 271: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==271);
+      case 272: /* lp ::= LP */ yytestcase(yyruleno==272);
 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
         break;
-      case 275: /* with ::= WITH wqlist */
-      case 276: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==276);
+      case 273: /* with ::= WITH wqlist */
+      case 274: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==274);
 { sqlite3WithPush(pParse, yymsp[0].minor.yy91, 1); }
         break;
-      case 277: /* wqlist ::= nm eidlist_opt AS LP select RP */
+      case 275: /* wqlist ::= nm eidlist_opt AS LP select RP */
 {
   yymsp[-5].minor.yy91 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy232, yymsp[-1].minor.yy399); /*A-overwrites-X*/
 }
         break;
-      case 278: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
+      case 276: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */
 {
   yymsp[-7].minor.yy91 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy91, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy232, yymsp[-1].minor.yy399);
 }
         break;
       default:
-      /* (279) input ::= cmdlist */ yytestcase(yyruleno==279);
-      /* (280) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==280);
-      /* (281) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=281);
-      /* (282) ecmd ::= SEMI */ yytestcase(yyruleno==282);
-      /* (283) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==283);
-      /* (284) trans_opt ::= */ yytestcase(yyruleno==284);
-      /* (285) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==285);
-      /* (286) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==286);
-      /* (287) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==287);
-      /* (288) savepoint_opt ::= */ yytestcase(yyruleno==288);
-      /* (289) cmd ::= create_table create_table_args */ yytestcase(yyruleno==289);
-      /* (290) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==290);
-      /* (291) columnlist ::= columnname carglist */ yytestcase(yyruleno==291);
-      /* (292) nm ::= ID|INDEXED */ yytestcase(yyruleno==292);
-      /* (293) nm ::= STRING */ yytestcase(yyruleno==293);
-      /* (294) nm ::= JOIN_KW */ yytestcase(yyruleno==294);
-      /* (295) typetoken ::= typename */ yytestcase(yyruleno==295);
-      /* (296) typename ::= ID|STRING */ yytestcase(yyruleno==296);
-      /* (297) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=297);
-      /* (298) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=298);
-      /* (299) carglist ::= carglist ccons */ yytestcase(yyruleno==299);
-      /* (300) carglist ::= */ yytestcase(yyruleno==300);
-      /* (301) ccons ::= NULL onconf */ yytestcase(yyruleno==301);
-      /* (302) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==302);
-      /* (303) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==303);
-      /* (304) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=304);
-      /* (305) tconscomma ::= */ yytestcase(yyruleno==305);
-      /* (306) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=306);
-      /* (307) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=307);
-      /* (308) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=308);
-      /* (309) oneselect ::= values */ yytestcase(yyruleno==309);
-      /* (310) sclp ::= selcollist COMMA */ yytestcase(yyruleno==310);
-      /* (311) as ::= ID|STRING */ yytestcase(yyruleno==311);
-      /* (312) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=312);
-      /* (313) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==313);
-      /* (314) exprlist ::= nexprlist */ yytestcase(yyruleno==314);
-      /* (315) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=315);
-      /* (316) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=316);
-      /* (317) nmnum ::= ON */ yytestcase(yyruleno==317);
-      /* (318) nmnum ::= DELETE */ yytestcase(yyruleno==318);
-      /* (319) nmnum ::= DEFAULT */ yytestcase(yyruleno==319);
-      /* (320) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==320);
-      /* (321) foreach_clause ::= */ yytestcase(yyruleno==321);
-      /* (322) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==322);
-      /* (323) trnm ::= nm */ yytestcase(yyruleno==323);
-      /* (324) tridxby ::= */ yytestcase(yyruleno==324);
-      /* (325) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==325);
-      /* (326) database_kw_opt ::= */ yytestcase(yyruleno==326);
-      /* (327) kwcolumn_opt ::= */ yytestcase(yyruleno==327);
-      /* (328) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==328);
-      /* (329) vtabarglist ::= vtabarg */ yytestcase(yyruleno==329);
-      /* (330) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==330);
-      /* (331) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==331);
-      /* (332) anylist ::= */ yytestcase(yyruleno==332);
-      /* (333) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==333);
-      /* (334) anylist ::= anylist ANY */ yytestcase(yyruleno==334);
-      /* (335) with ::= */ yytestcase(yyruleno==335);
+      /* (277) input ::= cmdlist */ yytestcase(yyruleno==277);
+      /* (278) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==278);
+      /* (279) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=279);
+      /* (280) ecmd ::= SEMI */ yytestcase(yyruleno==280);
+      /* (281) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==281);
+      /* (282) trans_opt ::= */ yytestcase(yyruleno==282);
+      /* (283) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==283);
+      /* (284) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==284);
+      /* (285) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==285);
+      /* (286) savepoint_opt ::= */ yytestcase(yyruleno==286);
+      /* (287) cmd ::= create_table create_table_args */ yytestcase(yyruleno==287);
+      /* (288) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==288);
+      /* (289) columnlist ::= columnname carglist */ yytestcase(yyruleno==289);
+      /* (290) nm ::= ID|INDEXED */ yytestcase(yyruleno==290);
+      /* (291) nm ::= STRING */ yytestcase(yyruleno==291);
+      /* (292) nm ::= JOIN_KW */ yytestcase(yyruleno==292);
+      /* (293) typetoken ::= typename */ yytestcase(yyruleno==293);
+      /* (294) typename ::= ID|STRING */ yytestcase(yyruleno==294);
+      /* (295) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=295);
+      /* (296) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=296);
+      /* (297) carglist ::= carglist ccons */ yytestcase(yyruleno==297);
+      /* (298) carglist ::= */ yytestcase(yyruleno==298);
+      /* (299) ccons ::= NULL onconf */ yytestcase(yyruleno==299);
+      /* (300) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==300);
+      /* (301) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==301);
+      /* (302) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=302);
+      /* (303) tconscomma ::= */ yytestcase(yyruleno==303);
+      /* (304) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=304);
+      /* (305) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=305);
+      /* (306) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=306);
+      /* (307) oneselect ::= values */ yytestcase(yyruleno==307);
+      /* (308) sclp ::= selcollist COMMA */ yytestcase(yyruleno==308);
+      /* (309) as ::= ID|STRING */ yytestcase(yyruleno==309);
+      /* (310) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=310);
+      /* (311) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==311);
+      /* (312) exprlist ::= nexprlist */ yytestcase(yyruleno==312);
+      /* (313) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=313);
+      /* (314) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=314);
+      /* (315) nmnum ::= ON */ yytestcase(yyruleno==315);
+      /* (316) nmnum ::= DELETE */ yytestcase(yyruleno==316);
+      /* (317) nmnum ::= DEFAULT */ yytestcase(yyruleno==317);
+      /* (318) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==318);
+      /* (319) foreach_clause ::= */ yytestcase(yyruleno==319);
+      /* (320) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==320);
+      /* (321) trnm ::= nm */ yytestcase(yyruleno==321);
+      /* (322) tridxby ::= */ yytestcase(yyruleno==322);
+      /* (323) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==323);
+      /* (324) database_kw_opt ::= */ yytestcase(yyruleno==324);
+      /* (325) kwcolumn_opt ::= */ yytestcase(yyruleno==325);
+      /* (326) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==326);
+      /* (327) vtabarglist ::= vtabarg */ yytestcase(yyruleno==327);
+      /* (328) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==328);
+      /* (329) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==329);
+      /* (330) anylist ::= */ yytestcase(yyruleno==330);
+      /* (331) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==331);
+      /* (332) anylist ::= anylist ANY */ yytestcase(yyruleno==332);
+      /* (333) with ::= */ yytestcase(yyruleno==333);
         break;
 /********** End reduce actions ************************************************/
   };
@@ -150253,19 +150242,19 @@
 ** is substantially reduced.  This is important for embedded applications
 ** on platforms with limited memory.
 */
-/* Hash score: 178 */
-/* zKWText[] encodes 812 bytes of keyword text in 547 bytes */
+/* Hash score: 176 */
+/* zKWText[] encodes 804 bytes of keyword text in 540 bytes */
 /*   BEFOREIGNOREFERENCESCAPEACHECKEYCONSTRAINTERSECTABLEFTHENDESC      */
 /*   ASCADEFERRABLELSELECTRANSACTIONATURALTERAISEXCEPTRIGGERELEASE      */
 /*   XCLUSIVEXISTSAVEPOINTOFFSETEMPORARYWITHOUTERECURSIVEATTACH         */
 /*   AVINGROUPDATEBEGINSTEADDATABASEBETWEENOTNULLIKECASECOLLATE         */
 /*   CREATECURRENT_DATEDELETEDETACHIMMEDIATEJOINDEXEDEFAULTMATCH        */
-/*   PRAGMABORTVALUESVIRTUALIMITWHENWHEREGEXPRIMARYAFTERENAME           */
-/*   ANALYZEANDEFERREDISTINCTAUTOINCREMENTCASTCOLUMNCOMMITCONFLICT      */
-/*   CROSSCURRENT_TIMESTAMPDROPFAILFROMFULLGLOBYIFINNEREPLACEINSERT     */
+/*   PRAGMABORTVALUESVIRTUALIMITWHENWHEREGEXPRIMARYAFTERENAMEAND        */
+/*   EFERREDISTINCTAUTOINCREMENTCASTCOLUMNCOMMITCONFLICTCROSS           */
+/*   CURRENT_TIMESTAMPDROPFAILFROMFULLGLOBYIFINNEREPLACEINSERT          */
 /*   ISNULLORDERESTRICTRIGHTROLLBACKROWSUNIONUNIQUEUSINGVACUUMVIEW      */
 /*   INITIALLY                                                          */
-static const char zKWText[546] = {
+static const char zKWText[539] = {
   'B','E','F','O','R','E','I','G','N','O','R','E','F','E','R','E','N','C',
   'E','S','C','A','P','E','A','C','H','E','C','K','E','Y','C','O','N','S',
   'T','R','A','I','N','T','E','R','S','E','C','T','A','B','L','E','F','T',
@@ -150285,76 +150274,75 @@
   'A','U','L','T','M','A','T','C','H','P','R','A','G','M','A','B','O','R',
   'T','V','A','L','U','E','S','V','I','R','T','U','A','L','I','M','I','T',
   'W','H','E','N','W','H','E','R','E','G','E','X','P','R','I','M','A','R',
-  'Y','A','F','T','E','R','E','N','A','M','E','A','N','A','L','Y','Z','E',
-  'A','N','D','E','F','E','R','R','E','D','I','S','T','I','N','C','T','A',
-  'U','T','O','I','N','C','R','E','M','E','N','T','C','A','S','T','C','O',
-  'L','U','M','N','C','O','M','M','I','T','C','O','N','F','L','I','C','T',
-  'C','R','O','S','S','C','U','R','R','E','N','T','_','T','I','M','E','S',
-  'T','A','M','P','D','R','O','P','F','A','I','L','F','R','O','M','F','U',
-  'L','L','G','L','O','B','Y','I','F','I','N','N','E','R','E','P','L','A',
-  'C','E','I','N','S','E','R','T','I','S','N','U','L','L','O','R','D','E',
-  'R','E','S','T','R','I','C','T','R','I','G','H','T','R','O','L','L','B',
-  'A','C','K','R','O','W','S','U','N','I','O','N','U','N','I','Q','U','E',
-  'U','S','I','N','G','V','A','C','U','U','M','V','I','E','W','I','N','I',
-  'T','I','A','L','L','Y',
+  'Y','A','F','T','E','R','E','N','A','M','E','A','N','D','E','F','E','R',
+  'R','E','D','I','S','T','I','N','C','T','A','U','T','O','I','N','C','R',
+  'E','M','E','N','T','C','A','S','T','C','O','L','U','M','N','C','O','M',
+  'M','I','T','C','O','N','F','L','I','C','T','C','R','O','S','S','C','U',
+  'R','R','E','N','T','_','T','I','M','E','S','T','A','M','P','D','R','O',
+  'P','F','A','I','L','F','R','O','M','F','U','L','L','G','L','O','B','Y',
+  'I','F','I','N','N','E','R','E','P','L','A','C','E','I','N','S','E','R',
+  'T','I','S','N','U','L','L','O','R','D','E','R','E','S','T','R','I','C',
+  'T','R','I','G','H','T','R','O','L','L','B','A','C','K','R','O','W','S',
+  'U','N','I','O','N','U','N','I','Q','U','E','U','S','I','N','G','V','A',
+  'C','U','U','M','V','I','E','W','I','N','I','T','I','A','L','L','Y',
 };
 /* aKWHash[i] is the hash value for the i-th keyword */
 static const unsigned char aKWHash[127] = {
-   107,  87, 112,  66,   0,  39,   0,   0,  74,   0,  71,   0,   0,
-    36,   4,   0,  68,   0, 111,  77,  46, 104, 113,  21,   0,   0,
-   118,   0, 115, 110,   0,  79,  89,   0,   1,   0,   0,  61,  62,
-     0,  60,   7,   0,   0,  84,  83,   0, 114,  97,   0,   0,  38,
-     0,  85,  19,   0,  52,   0, 119,  45,  15,   0,  16, 102,  20,
-    92,   0,   0, 121,  98,  54, 120,  49,  23,  69,   0,  70,   0,
-    96,  28,   0,  95,   0,   0,   0,  91,  88,  93,  81, 101,   0,
-    10, 100,   0,  73,   0,  53, 106, 103,  27,   0, 117,  72, 108,
-    56,  40,  76,   0,   0,  90,  34,  44, 109,   0,  11,   0,   0,
-    24,   0,  78, 105,  58,   0,  12,  55,   0, 116,
+   106,  86, 111,  66,   0,  39,   0,   0,  74,   0,  71,   0,   0,
+    36,   4,   0,  68,   0, 110,  77,  46, 103, 112,  21,   0,   0,
+   117,   0, 114, 109,   0,  79,  88,   0,   1,   0,   0,  61,  62,
+     0,  60,   7,   0,   0,  83,  80,   0, 113,  96,   0,   0,  38,
+     0,  84,  19,   0,  52,   0, 118,  45,  15,   0,  16, 101,  20,
+    91,   0,   0, 120,  97,  54, 119,  49,  23,  69,   0,  70,   0,
+    95,  28,   0,  94,   0,   0,   0,  90,  87,  92,  81, 100,   0,
+    10,  99,   0,  73,   0,  53, 105, 102,  27,   0, 116,  72, 107,
+    56,  40,  76,   0,   0,  89,  34,  44, 108,   0,  11,   0,   0,
+    24,   0,  78, 104,  58,   0,  12,  55,   0, 115,
 };
 /* aKWNext[] forms the hash collision chain.  If aKWHash[i]==0
 ** then the i-th keyword has no more hash collisions.  Otherwise,
 ** the next keyword with the same hash is aKWHash[i]-1. */
-static const unsigned char aKWNext[121] = {
+static const unsigned char aKWNext[120] = {
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   6,   0,   0,   0,   0,   0,   0,   8,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  31,   0,
     13,   0,  30,   0,   0,   0,  37,   0,   0,   0,   0,   0,   0,
      0,   0,  25,   0,   0,   0,   5,   0,  17,   0,   0,   0,  18,
      0,  35,  50,  47,  32,   0,   0,   0,  41,  59,   0,   0,   0,
-    14,   0,  26,   0,  80,  51,   0,   9,   0,   2,   0,   0,   0,
-     0,   0,   0,   0,   3,  63,  86,  94,   0,  99,   0,  82,   0,
-    57,  42,   0,  67,  43,   0,  22,  29,   0,  65,  75,  48,   0,
-    33,  64,   0,   0,
+    14,   0,  26,   0,  51,   0,   9,   0,   2,   0,   0,   0,   0,
+     0,   0,   0,   3,  63,  85,  93,   0,  98,   0,  82,   0,  57,
+    42,   0,  67,  43,   0,  22,  29,   0,  65,  75,  48,   0,  33,
+    64,   0,   0,
 };
 /* aKWLen[i] is the length (in bytes) of the i-th keyword */
-static const unsigned char aKWLen[121] = {
+static const unsigned char aKWLen[120] = {
      6,   7,   3,   6,  10,   6,   4,   5,   3,  10,   9,   5,   4,
      4,   3,   4,   7,   3,  10,   4,   6,  11,   6,   2,   7,   5,
      5,   6,   7,   7,   9,   6,   9,   4,   6,   2,   3,   9,   4,
      2,   7,   4,   5,   9,   6,   6,   5,   6,   5,   7,   3,   8,
      2,   7,   7,   3,   2,   4,   4,   4,   7,   6,  12,   6,   6,
      9,   4,   7,   5,   7,   5,   6,   5,   6,   7,   5,   4,   5,
-     6,   7,   5,   6,   7,   3,   8,   8,   2,  13,   2,   2,   4,
-     6,   6,   8,   5,  17,  12,   4,   4,   4,   4,   4,   2,   2,
-     5,   7,   6,   6,   5,   8,   5,   8,   4,   3,   5,   6,   5,
-     6,   4,   9,   3,
+     6,   7,   5,   6,   3,   8,   8,   2,  13,   2,   2,   4,   6,
+     6,   8,   5,  17,  12,   4,   4,   4,   4,   4,   2,   2,   5,
+     7,   6,   6,   5,   8,   5,   8,   4,   3,   5,   6,   5,   6,
+     4,   9,   3,
 };
 /* aKWOffset[i] is the index into zKWText[] of the start of
 ** the text for the i-th keyword. */
-static const unsigned short int aKWOffset[121] = {
+static const unsigned short int aKWOffset[120] = {
      0,   2,   2,   6,  10,  18,  23,  25,  29,  32,  39,  47,  50,
     53,  55,  57,  60,  61,  65,  74,  76,  81,  86,  90,  91,  96,
    100, 104, 109, 115, 121, 129, 134, 140, 143, 143, 146, 148, 148,
    152, 157, 157, 161, 165, 174, 179, 184, 187, 193, 196, 201, 203,
    208, 211, 217, 217, 217, 220, 223, 227, 231, 238, 244, 256, 262,
    268, 277, 279, 279, 285, 292, 297, 302, 307, 313, 319, 324, 328,
-   331, 336, 343, 347, 353, 360, 362, 369, 370, 377, 379, 381, 390,
-   394, 400, 406, 414, 419, 419, 436, 440, 444, 448, 452, 455, 457,
-   459, 463, 470, 476, 482, 486, 494, 499, 507, 507, 511, 516, 522,
-   527, 533, 537, 542,
+   331, 336, 343, 347, 353, 355, 362, 363, 370, 372, 374, 383, 387,
+   393, 399, 407, 412, 412, 429, 433, 437, 441, 445, 448, 450, 452,
+   456, 463, 469, 475, 479, 487, 492, 500, 500, 504, 509, 515, 520,
+   526, 530, 535,
 };
 /* aKWCode[i] is the parser symbol code for the i-th keyword */
-static const unsigned char aKWCode[121] = {
+static const unsigned char aKWCode[120] = {
   TK_BEFORE,     TK_FOREIGN,    TK_FOR,        TK_IGNORE,     TK_REFERENCES, 
   TK_ESCAPE,     TK_EACH,       TK_CHECK,      TK_KEY,        TK_CONSTRAINT, 
   TK_INTERSECT,  TK_TABLE,      TK_JOIN_KW,    TK_THEN,       TK_END,        
@@ -150371,15 +150359,14 @@
   TK_IMMEDIATE,  TK_JOIN,       TK_INDEXED,    TK_INDEX,      TK_DEFAULT,    
   TK_MATCH,      TK_PRAGMA,     TK_ABORT,      TK_VALUES,     TK_VIRTUAL,    
   TK_LIMIT,      TK_WHEN,       TK_WHERE,      TK_LIKE_KW,    TK_PRIMARY,    
-  TK_AFTER,      TK_RENAME,     TK_ANALYZE,    TK_AND,        TK_DEFERRED,   
-  TK_DISTINCT,   TK_IS,         TK_AUTOINCR,   TK_TO,         TK_IN,         
-  TK_CAST,       TK_COLUMNKW,   TK_COMMIT,     TK_CONFLICT,   TK_JOIN_KW,    
-  TK_CTIME_KW,   TK_CTIME_KW,   TK_DROP,       TK_FAIL,       TK_FROM,       
-  TK_JOIN_KW,    TK_LIKE_KW,    TK_BY,         TK_IF,         TK_JOIN_KW,    
-  TK_REPLACE,    TK_INSERT,     TK_ISNULL,     TK_ORDER,      TK_RESTRICT,   
-  TK_JOIN_KW,    TK_ROLLBACK,   TK_ROWS,       TK_ROW,        TK_UNION,      
-  TK_UNIQUE,     TK_USING,      TK_VACUUM,     TK_VIEW,       TK_INITIALLY,  
-  TK_ALL,        
+  TK_AFTER,      TK_RENAME,     TK_AND,        TK_DEFERRED,   TK_DISTINCT,   
+  TK_IS,         TK_AUTOINCR,   TK_TO,         TK_IN,         TK_CAST,       
+  TK_COLUMNKW,   TK_COMMIT,     TK_CONFLICT,   TK_JOIN_KW,    TK_CTIME_KW,   
+  TK_CTIME_KW,   TK_DROP,       TK_FAIL,       TK_FROM,       TK_JOIN_KW,    
+  TK_LIKE_KW,    TK_BY,         TK_IF,         TK_JOIN_KW,    TK_REPLACE,    
+  TK_INSERT,     TK_ISNULL,     TK_ORDER,      TK_RESTRICT,   TK_JOIN_KW,    
+  TK_ROLLBACK,   TK_ROWS,       TK_ROW,        TK_UNION,      TK_UNIQUE,     
+  TK_USING,      TK_VACUUM,     TK_VIEW,       TK_INITIALLY,  TK_ALL,        
 };
 /* Check to see if z[0..n-1] is a keyword. If it is, write the
 ** parser symbol code for that keyword into *pType.  Always
@@ -150482,45 +150469,44 @@
       testcase( i==79 ); /* PRIMARY */
       testcase( i==80 ); /* AFTER */
       testcase( i==81 ); /* RENAME */
-      testcase( i==82 ); /* ANALYZE */
-      testcase( i==83 ); /* AND */
-      testcase( i==84 ); /* DEFERRED */
-      testcase( i==85 ); /* DISTINCT */
-      testcase( i==86 ); /* IS */
-      testcase( i==87 ); /* AUTOINCREMENT */
-      testcase( i==88 ); /* TO */
-      testcase( i==89 ); /* IN */
-      testcase( i==90 ); /* CAST */
-      testcase( i==91 ); /* COLUMN */
-      testcase( i==92 ); /* COMMIT */
-      testcase( i==93 ); /* CONFLICT */
-      testcase( i==94 ); /* CROSS */
-      testcase( i==95 ); /* CURRENT_TIMESTAMP */
-      testcase( i==96 ); /* CURRENT_TIME */
-      testcase( i==97 ); /* DROP */
-      testcase( i==98 ); /* FAIL */
-      testcase( i==99 ); /* FROM */
-      testcase( i==100 ); /* FULL */
-      testcase( i==101 ); /* GLOB */
-      testcase( i==102 ); /* BY */
-      testcase( i==103 ); /* IF */
-      testcase( i==104 ); /* INNER */
-      testcase( i==105 ); /* REPLACE */
-      testcase( i==106 ); /* INSERT */
-      testcase( i==107 ); /* ISNULL */
-      testcase( i==108 ); /* ORDER */
-      testcase( i==109 ); /* RESTRICT */
-      testcase( i==110 ); /* RIGHT */
-      testcase( i==111 ); /* ROLLBACK */
-      testcase( i==112 ); /* ROWS */
-      testcase( i==113 ); /* ROW */
-      testcase( i==114 ); /* UNION */
-      testcase( i==115 ); /* UNIQUE */
-      testcase( i==116 ); /* USING */
-      testcase( i==117 ); /* VACUUM */
-      testcase( i==118 ); /* VIEW */
-      testcase( i==119 ); /* INITIALLY */
-      testcase( i==120 ); /* ALL */
+      testcase( i==82 ); /* AND */
+      testcase( i==83 ); /* DEFERRED */
+      testcase( i==84 ); /* DISTINCT */
+      testcase( i==85 ); /* IS */
+      testcase( i==86 ); /* AUTOINCREMENT */
+      testcase( i==87 ); /* TO */
+      testcase( i==88 ); /* IN */
+      testcase( i==89 ); /* CAST */
+      testcase( i==90 ); /* COLUMN */
+      testcase( i==91 ); /* COMMIT */
+      testcase( i==92 ); /* CONFLICT */
+      testcase( i==93 ); /* CROSS */
+      testcase( i==94 ); /* CURRENT_TIMESTAMP */
+      testcase( i==95 ); /* CURRENT_TIME */
+      testcase( i==96 ); /* DROP */
+      testcase( i==97 ); /* FAIL */
+      testcase( i==98 ); /* FROM */
+      testcase( i==99 ); /* FULL */
+      testcase( i==100 ); /* GLOB */
+      testcase( i==101 ); /* BY */
+      testcase( i==102 ); /* IF */
+      testcase( i==103 ); /* INNER */
+      testcase( i==104 ); /* REPLACE */
+      testcase( i==105 ); /* INSERT */
+      testcase( i==106 ); /* ISNULL */
+      testcase( i==107 ); /* ORDER */
+      testcase( i==108 ); /* RESTRICT */
+      testcase( i==109 ); /* RIGHT */
+      testcase( i==110 ); /* ROLLBACK */
+      testcase( i==111 ); /* ROWS */
+      testcase( i==112 ); /* ROW */
+      testcase( i==113 ); /* UNION */
+      testcase( i==114 ); /* UNIQUE */
+      testcase( i==115 ); /* USING */
+      testcase( i==116 ); /* VACUUM */
+      testcase( i==117 ); /* VIEW */
+      testcase( i==118 ); /* INITIALLY */
+      testcase( i==119 ); /* ALL */
       *pType = aKWCode[i];
       break;
     }
@@ -150532,7 +150518,7 @@
   keywordCode((char*)z, n, &id);
   return id;
 }
-#define SQLITE_N_KEYWORD 121
+#define SQLITE_N_KEYWORD 120
 SQLITE_API int sqlite3_keyword_name(int i,const char **pzName,int *pnName){
   if( i<0 || i>=SQLITE_N_KEYWORD ) return SQLITE_ERROR;
   *pzName = zKWText + aKWOffset[i];
@@ -218923,7 +218909,7 @@
 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
 
 /************** End of stmt.c ************************************************/
-#if __LINE__!=218926
+#if __LINE__!=218912
 #undef SQLITE_SOURCE_ID
 #define SQLITE_SOURCE_ID      "2018-11-05 20:37:38 89e099fbe5e13c33e683bef07361231ca525b88f7907be7092058007b750alt2"
 #endif
diff --git a/third_party/sqlite/scripts/generate_amalgamation.sh b/third_party/sqlite/scripts/generate_amalgamation.sh
index 65b49832..7d6981e55 100755
--- a/third_party/sqlite/scripts/generate_amalgamation.sh
+++ b/third_party/sqlite/scripts/generate_amalgamation.sh
@@ -10,7 +10,7 @@
 cd bld
 ../configure
 
-OPTS="-DSQLITE_OMIT_EXPLAIN -DSQLITE_OMIT_REINDEX -DSQLITE_OMIT_UPSERT -DSQLITE_OMIT_WINDOWFUNC"
+OPTS="-DSQLITE_OMIT_ANALYZE -DSQLITE_OMIT_EXPLAIN -DSQLITE_OMIT_REINDEX -DSQLITE_OMIT_UPSERT -DSQLITE_OMIT_WINDOWFUNC"
 make "OPTS=$OPTS" shell.c sqlite3.h sqlite3.c
 cp -f sqlite3.h sqlite3.c ../../amalgamation