diff --git a/src/linguist/lupdate/qscript.cpp b/src/linguist/lupdate/qscript.cpp
index 53404112b418e86d44e5e9f443179c867eecf475..e74a1614498fa6cb57de3fa66bcffc14979a09f2 100644
--- a/src/linguist/lupdate/qscript.cpp
+++ b/src/linguist/lupdate/qscript.cpp
@@ -147,15 +147,15 @@ public:
     T_XOR = 76,
     T_XOR_EQ = 77,
 
-    ACCEPT_STATE = 236,
-    RULE_COUNT = 267,
-    STATE_COUNT = 465,
+    ACCEPT_STATE = 237,
+    RULE_COUNT = 268,
+    STATE_COUNT = 466,
     TERMINAL_COUNT = 84,
     NON_TERMINAL_COUNT = 88,
 
-    GOTO_INDEX_OFFSET = 465,
-    GOTO_INFO_OFFSET = 1374,
-    GOTO_CHECK_OFFSET = 1374
+    GOTO_INDEX_OFFSET = 466,
+    GOTO_INFO_OFFSET = 1513,
+    GOTO_CHECK_OFFSET = 1513
   };
 
   static const char  *const    spell [];
@@ -201,564 +201,590 @@ const char *const QScriptGrammar::spell [] = {
 
 const short QScriptGrammar::lhs [] = {
   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 
-  85, 85, 85, 85, 87, 87, 91, 91, 86, 86, 
-  92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 
+  85, 85, 85, 85, 85, 87, 87, 92, 92, 86,
+  86, 89, 89, 93, 93, 93, 93, 94, 94, 94,
   94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
   94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
-  94, 94, 94, 94, 94, 94, 94, 95, 95, 96, 
-  96, 96, 96, 96, 99, 99, 100, 100, 100, 100, 
-  98, 98, 101, 101, 102, 102, 103, 103, 103, 104, 
-  104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 
-  105, 105, 105, 106, 106, 106, 107, 107, 107, 107, 
-  108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 
-  109, 109, 109, 110, 110, 110, 110, 110, 111, 111, 
-  111, 111, 111, 112, 112, 113, 113, 114, 114, 115, 
-  115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 
-  120, 121, 121, 122, 122, 123, 123, 90, 90, 124, 
-  124, 125, 125, 125, 125, 125, 125, 125, 125, 125, 
-  125, 125, 125, 89, 89, 126, 126, 127, 127, 128, 
-  128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 
-  129, 129, 129, 129, 129, 129, 130, 146, 146, 145, 
-  145, 131, 131, 147, 147, 148, 148, 150, 150, 149, 
-  151, 154, 152, 152, 155, 153, 153, 132, 133, 133, 
-  134, 134, 135, 135, 135, 135, 135, 135, 135, 136, 
-  136, 136, 136, 137, 137, 137, 137, 138, 138, 139, 
-  141, 156, 156, 159, 159, 157, 157, 160, 158, 140, 
-  142, 142, 143, 143, 143, 161, 162, 144, 163, 97, 
-  167, 167, 164, 164, 165, 165, 168, 84, 169, 169, 
-  170, 170, 166, 166, 88, 88, 171};
+  94, 94, 94, 94, 94, 94, 94, 94, 95, 95,
+  96, 96, 96, 96, 96, 99, 99, 100, 100, 100,
+  100, 98, 98, 101, 101, 102, 102, 103, 103, 103,
+  104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+  105, 105, 105, 105, 106, 106, 106, 107, 107, 107,
+  107, 108, 108, 108, 108, 108, 108, 108, 109, 109,
+  109, 109, 109, 109, 110, 110, 110, 110, 110, 111,
+  111, 111, 111, 111, 112, 112, 113, 113, 114, 114,
+  115, 115, 116, 116, 117, 117, 118, 118, 119, 119,
+  120, 120, 121, 121, 122, 122, 123, 123, 91, 91,
+  124, 124, 125, 125, 125, 125, 125, 125, 125, 125,
+  125, 125, 125, 125, 90, 90, 126, 126, 127, 127,
+  128, 128, 129, 129, 129, 129, 129, 129, 129, 129,
+  129, 129, 129, 129, 129, 129, 129, 130, 146, 146,
+  145, 145, 131, 131, 147, 147, 148, 148, 150, 150,
+  149, 151, 154, 152, 152, 155, 153, 153, 132, 133,
+  133, 134, 134, 135, 135, 135, 135, 135, 135, 135,
+  136, 136, 136, 136, 137, 137, 137, 137, 138, 138,
+  139, 141, 156, 156, 159, 159, 157, 157, 160, 158,
+  140, 142, 142, 143, 143, 143, 161, 162, 144, 163,
+  97, 167, 167, 164, 164, 165, 165, 168, 84, 169,
+  169, 170, 170, 166, 166, 88, 88, 171};
 
 const short QScriptGrammar::rhs [] = {
   1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 
-  3, 5, 3, 3, 2, 4, 1, 2, 0, 1, 
-  3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 
+  3, 5, 3, 4, 3, 2, 4, 1, 2, 0,
+  1, 3, 5, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 4, 3, 3, 1, 2, 2, 2, 4, 3, 
-  2, 3, 1, 3, 1, 1, 1, 2, 2, 1, 
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 
-  3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 
-  1, 3, 3, 3, 3, 3, 3, 1, 3, 3, 
-  3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 
-  3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 
-  3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 
-  3, 1, 3, 1, 5, 1, 5, 1, 3, 1, 
-  3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 1, 1, 3, 0, 1, 1, 3, 0, 
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-  1, 1, 1, 1, 1, 1, 3, 1, 2, 0, 
-  1, 3, 3, 1, 1, 1, 3, 1, 3, 2, 
-  2, 2, 0, 1, 2, 0, 1, 1, 2, 2, 
-  7, 5, 7, 7, 5, 9, 10, 7, 8, 2, 
-  2, 3, 3, 2, 2, 3, 3, 3, 3, 5, 
-  5, 3, 5, 1, 2, 0, 1, 4, 3, 3, 
-  3, 3, 3, 3, 4, 5, 2, 1, 8, 8, 
-  1, 3, 0, 1, 0, 1, 1, 1, 1, 2, 
-  1, 1, 0, 1, 0, 1, 2};
+  1, 1, 4, 3, 3, 1, 2, 2, 2, 4,
+  3, 2, 3, 1, 3, 1, 1, 1, 2, 2,
+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+  1, 3, 3, 3, 1, 3, 3, 1, 3, 3,
+  3, 1, 3, 3, 3, 3, 3, 3, 1, 3,
+  3, 3, 3, 3, 1, 3, 3, 3, 3, 1,
+  3, 3, 3, 3, 1, 3, 1, 3, 1, 3,
+  1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
+  1, 3, 1, 3, 1, 5, 1, 5, 1, 3,
+  1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 3, 0, 1, 1, 3,
+  0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+  1, 1, 1, 1, 1, 1, 1, 3, 1, 2,
+  0, 1, 3, 3, 1, 1, 1, 3, 1, 3,
+  2, 2, 2, 0, 1, 2, 0, 1, 1, 2,
+  2, 7, 5, 7, 7, 5, 9, 10, 7, 8,
+  2, 2, 3, 3, 2, 2, 3, 3, 3, 3,
+  5, 5, 3, 5, 1, 2, 0, 1, 4, 3,
+  3, 3, 3, 3, 3, 4, 5, 2, 1, 8,
+  8, 1, 3, 0, 1, 0, 1, 1, 1, 1,
+  2, 1, 1, 0, 1, 0, 1, 2};
 
 const short QScriptGrammar::action_default [] = {
-  0, 97, 164, 128, 136, 132, 172, 179, 76, 148, 
-  178, 186, 174, 124, 0, 175, 262, 61, 176, 177, 
-  182, 77, 140, 144, 65, 94, 75, 80, 60, 0, 
-  114, 180, 101, 259, 258, 261, 183, 0, 194, 0, 
-  248, 0, 8, 9, 0, 5, 0, 263, 2, 0, 
-  265, 19, 0, 0, 0, 0, 0, 3, 6, 0, 
-  0, 166, 208, 7, 0, 1, 0, 0, 4, 0, 
-  0, 195, 0, 0, 0, 184, 185, 90, 0, 173, 
-  181, 0, 0, 77, 96, 263, 2, 265, 79, 78, 
-  0, 0, 0, 92, 93, 91, 0, 264, 253, 254, 
-  0, 251, 0, 252, 0, 255, 256, 0, 257, 250, 
-  260, 0, 266, 0, 26, 27, 28, 29, 30, 31, 
-  32, 33, 34, 35, 36, 37, 38, 39, 40, 23, 
-  41, 42, 43, 44, 45, 25, 46, 47, 24, 48, 
-  49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 
-  21, 0, 0, 0, 22, 13, 95, 0, 125, 0, 
-  0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 
-  105, 0, 0, 0, 99, 100, 98, 103, 107, 106, 
-  104, 102, 117, 116, 118, 0, 133, 0, 129, 68, 
-  0, 0, 0, 70, 59, 58, 0, 0, 69, 165, 
-  0, 73, 71, 0, 72, 74, 209, 210, 0, 161, 
-  154, 152, 159, 160, 158, 157, 163, 156, 155, 153, 
-  162, 149, 0, 137, 0, 0, 141, 0, 0, 145, 
-  67, 0, 0, 63, 0, 62, 267, 224, 0, 225, 
-  226, 227, 220, 0, 221, 222, 223, 81, 0, 0, 
-  0, 0, 0, 213, 214, 170, 168, 130, 138, 134, 
-  150, 126, 171, 0, 77, 142, 146, 119, 108, 0, 
-  0, 127, 0, 0, 0, 0, 120, 0, 0, 0, 
-  0, 0, 112, 110, 113, 111, 109, 122, 121, 123, 
-  0, 135, 0, 131, 0, 169, 77, 0, 151, 166, 
-  167, 0, 166, 0, 0, 216, 0, 0, 0, 218, 
-  0, 139, 0, 0, 143, 0, 0, 147, 206, 0, 
-  198, 207, 201, 0, 205, 0, 166, 199, 0, 166, 
-  0, 0, 217, 0, 0, 0, 219, 264, 253, 0, 
-  0, 255, 0, 249, 0, 240, 0, 0, 0, 212, 
-  0, 211, 188, 191, 0, 27, 30, 31, 248, 34, 
-  35, 5, 39, 40, 2, 41, 44, 3, 6, 166, 
-  7, 48, 1, 50, 4, 52, 53, 54, 55, 56, 
-  57, 189, 187, 65, 66, 64, 0, 228, 229, 0, 
-  0, 0, 231, 236, 234, 237, 0, 0, 235, 236, 
-  0, 232, 0, 233, 190, 239, 0, 190, 238, 0, 
-  241, 242, 0, 190, 243, 244, 0, 0, 245, 0, 
-  0, 0, 246, 247, 83, 82, 0, 0, 0, 215, 
-  0, 0, 0, 230, 0, 20, 0, 17, 19, 11, 
-  0, 16, 12, 18, 15, 10, 0, 14, 87, 85, 
-  89, 86, 84, 88, 203, 196, 0, 204, 200, 0, 
-  202, 192, 0, 193, 197};
+  0, 98, 165, 129, 137, 133, 173, 180, 77, 149,
+  179, 187, 175, 125, 0, 176, 263, 62, 177, 178,
+  183, 78, 141, 145, 66, 95, 76, 81, 61, 0,
+  115, 181, 102, 260, 259, 262, 184, 0, 195, 0,
+  249, 0, 8, 9, 0, 5, 0, 264, 2, 0,
+  266, 20, 0, 0, 0, 0, 0, 3, 6, 0,
+  0, 167, 209, 7, 0, 1, 0, 0, 4, 0,
+  0, 196, 0, 0, 0, 185, 186, 91, 0, 174,
+  182, 0, 0, 78, 97, 264, 2, 266, 80, 79,
+  0, 0, 0, 93, 94, 92, 0, 265, 254, 255,
+  0, 252, 0, 253, 0, 256, 257, 0, 258, 251,
+  261, 0, 267, 0, 27, 28, 29, 30, 31, 32,
+  33, 34, 35, 36, 37, 38, 39, 40, 41, 24,
+  42, 43, 44, 45, 46, 26, 47, 48, 25, 49,
+  50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
+  22, 0, 0, 14, 0, 23, 13, 96, 0, 126,
+  0, 0, 0, 0, 116, 0, 0, 0, 0, 0,
+  0, 106, 0, 0, 0, 100, 101, 99, 104, 108,
+  107, 105, 103, 118, 117, 119, 0, 134, 0, 130,
+  69, 0, 0, 0, 71, 60, 59, 0, 0, 70,
+  166, 0, 74, 72, 0, 73, 75, 210, 211, 0,
+  162, 155, 153, 160, 161, 159, 158, 164, 157, 156,
+  154, 163, 150, 0, 138, 0, 0, 142, 0, 0,
+  146, 68, 0, 0, 64, 0, 63, 268, 225, 0,
+  226, 227, 228, 221, 0, 222, 223, 224, 82, 0,
+  0, 0, 0, 0, 214, 215, 171, 169, 131, 139,
+  135, 151, 127, 172, 0, 78, 143, 147, 120, 109,
+  0, 0, 128, 0, 0, 0, 0, 121, 0, 0,
+  0, 0, 0, 113, 111, 114, 112, 110, 123, 122,
+  124, 0, 136, 0, 132, 0, 170, 78, 0, 152,
+  167, 168, 0, 167, 0, 0, 217, 0, 0, 0,
+  219, 0, 140, 0, 0, 144, 0, 0, 148, 207,
+  0, 199, 208, 202, 0, 206, 0, 167, 200, 0,
+  167, 0, 0, 218, 0, 0, 0, 220, 265, 254,
+  0, 0, 256, 0, 250, 0, 241, 0, 0, 0,
+  213, 0, 212, 189, 192, 0, 28, 31, 32, 249,
+  35, 36, 5, 40, 41, 2, 42, 45, 3, 6,
+  167, 7, 49, 1, 51, 4, 53, 54, 55, 56,
+  57, 58, 190, 188, 66, 67, 65, 0, 229, 230,
+  0, 0, 0, 232, 237, 235, 238, 0, 0, 236,
+  237, 0, 233, 0, 234, 191, 240, 0, 191, 239,
+  0, 242, 243, 0, 191, 244, 245, 0, 0, 246,
+  0, 0, 0, 247, 248, 84, 83, 0, 0, 0,
+  216, 0, 0, 0, 231, 0, 21, 0, 18, 20,
+  11, 0, 17, 12, 19, 16, 10, 0, 15, 88,
+  86, 90, 87, 85, 89, 204, 197, 0, 205, 201,
+  0, 203, 193, 0, 194, 198};
 
 const short QScriptGrammar::goto_default [] = {
-  29, 28, 436, 434, 113, 14, 2, 435, 112, 111, 
-  114, 193, 24, 17, 189, 26, 8, 200, 21, 27, 
-  77, 25, 1, 32, 30, 267, 13, 261, 3, 257, 
-  5, 259, 4, 258, 22, 265, 23, 266, 9, 260, 
-  256, 297, 386, 262, 263, 35, 6, 79, 12, 15, 
+  29, 28, 437, 435, 113, 112, 14, 2, 436, 111,
+  114, 194, 24, 17, 190, 26, 8, 201, 21, 27,
+  77, 25, 1, 32, 30, 268, 13, 262, 3, 258,
+  5, 260, 4, 259, 22, 266, 23, 267, 9, 261,
+  257, 298, 387, 263, 264, 35, 6, 79, 12, 15,
   18, 19, 10, 7, 31, 80, 20, 36, 75, 76, 
-  11, 354, 353, 78, 456, 455, 319, 320, 458, 322, 
-  457, 321, 392, 396, 399, 395, 394, 414, 415, 16, 
+  11, 355, 354, 78, 457, 456, 320, 321, 459, 323,
+  458, 322, 393, 397, 400, 396, 395, 415, 416, 16,
   100, 107, 96, 99, 106, 108, 33, 0};
 
 const short QScriptGrammar::action_index [] = {
-  1210, 59, -84, 71, 41, -1, -84, -84, 148, -84, 
-  -84, -84, -84, 201, 130, -84, -84, -84, -84, -84, 
-  -84, 343, 67, 62, 122, 109, -84, -84, -84, 85, 
-  273, -84, 184, -84, 1210, -84, -84, 119, -84, 112, 
-  -84, 521, -84, -84, 1130, -84, 45, 54, 58, 38, 
-  1290, 50, 521, 521, 521, 376, 521, -84, -84, 521, 
-  521, 521, -84, -84, 25, -84, 521, 521, -84, 43, 
-  521, -84, 521, 18, 15, -84, -84, -84, 24, -84, 
-  -84, 521, 521, 64, 153, 27, -84, 1050, -84, -84, 
-  521, 521, 521, -84, -84, -84, 28, -84, 37, 55, 
-  19, -84, 33, -84, 34, 1210, -84, 16, 1210, -84, 
-  -84, 39, 52, -3, -84, -84, -84, -84, -84, -84, 
+  1349, 60, -84, 153, 43, -1, -84, -84, 152, -84,
+  -84, -84, -84, 185, 140, -84, -84, -84, -84, -84,
+  -84, 426, 65, 62, 128, 112, -84, -84, -84, 86,
+  241, -84, 212, -84, 1349, -84, -84, 132, -84, 130,
+  -84, 580, -84, -84, 1269, -84, 45, 56, 59, 42,
+  1429, 50, 580, 580, 580, 345, 580, -84, -84, 580,
+  580, 580, -84, -84, 25, -84, 580, 580, -84, 46,
+  580, -84, 580, 18, 14, -84, -84, -84, 23, -84,
+  -84, 580, 580, 64, 116, 35, -84, 1109, -84, -84,
+  580, 580, 580, -84, -84, -84, 37, -84, 40, 55,
+  2, -84, 36, -84, 27, 1349, -84, 15, 1349, -84,
+  -84, 41, 51, -2, -84, -84, -84, -84, -84, -84,
   -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 
   -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 
-  -84, -84, -84, -84, -84, -84, -84, -84, -84, 521, 
-  -84, 1050, 125, 521, -84, -84, 155, 521, 189, 521, 
-  521, 521, 521, 248, 521, 521, 521, 521, 521, 521, 
-  243, 521, 521, 521, 75, 82, 94, 177, 184, 184, 
-  184, 184, 263, 283, 298, 521, 44, 521, 77, -84, 
-  970, 521, 817, -84, -84, -84, 95, 521, -84, -84, 
-  93, -84, -84, 521, -84, -84, -84, -84, 521, -84, 
+  -84, -84, -84, -84, -84, -84, -84, -84, -84, 580,
+  -84, 1189, 48, -84, 580, -84, -84, 160, 580, 181,
+  580, 580, 580, 580, 221, 580, 580, 580, 580, 580,
+  580, 212, 580, 580, 580, 67, 75, 83, 212, 212,
+  133, 143, 138, 231, 251, 267, 580, 29, 580, 153,
+  -84, 1029, 580, 876, -84, -84, -84, 89, 580, -84,
+  -84, 96, -84, -84, 580, -84, -84, -84, -84, 580,
   -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 
-  -84, -84, 521, 41, 521, 521, 68, 66, 521, -84, 
-  -84, 970, 521, -84, 103, -84, -84, -84, 63, -84, 
-  -84, -84, -84, 69, -84, -84, -84, -84, -27, 12, 
-  521, 92, 100, -84, -84, 890, -84, 31, -13, -45, 
-  -84, 210, 32, -28, 387, 20, 73, 304, 117, -5, 
-  521, 212, 521, 521, 521, 521, 213, 521, 521, 521, 
-  521, 521, 151, 150, 176, 158, 168, 304, 304, 228, 
-  521, -72, 521, 4, 521, -84, 306, 521, -84, 521, 
-  8, -50, 521, -48, 1130, -84, 521, 80, 1130, -84, 
-  521, -33, 521, 521, 5, 48, 521, -84, 17, 88, 
-  11, -84, -84, 521, -84, -29, 521, -84, -41, 521, 
-  -39, 1130, -84, 521, 87, 1130, -84, -8, -2, -35, 
-  10, 1210, -16, -84, 1130, -84, 521, 86, 1130, -14, 
-  1130, -84, -84, 1130, -36, 107, -21, 165, 3, 521, 
-  1130, 6, 14, 61, 7, -19, 448, -4, -6, 671, 
-  29, 13, 23, 521, 30, -10, 521, 9, 521, -30, 
-  -18, -84, -84, 164, -84, -84, 46, -84, -84, 521, 
-  111, -24, -84, 36, -84, 40, 99, 521, -84, 21, 
-  22, -84, -11, -84, 1130, -84, 106, 1130, -84, 178, 
-  -84, -84, 98, 1130, 57, -84, 56, 60, -84, 51, 
-  26, 35, -84, -84, -84, -84, 521, 97, 1130, -84, 
-  521, 90, 1130, -84, 79, 76, 744, -84, 49, -84, 
-  594, -84, -84, -84, -84, -84, 83, -84, -84, -84, 
-  -84, -84, -84, -84, 42, -84, 162, -84, -84, 521, 
-  -84, -84, 53, -84, -84, 
+  -84, -84, -84, 580, 26, 580, 580, 66, 73, 580,
+  -84, -84, 1029, 580, -84, 95, -84, -84, -84, 58,
+  -84, -84, -84, -84, 68, -84, -84, -84, -84, -29,
+  10, 580, 93, 77, -84, -84, 949, -84, 32, -16,
+  -42, -84, 195, 21, -37, 507, 28, 71, 273, 119,
+  -3, 580, 197, 580, 580, 580, 580, 273, 580, 580,
+  580, 580, 580, 212, 212, 212, 212, 212, 273, 273,
+  273, 580, -74, 580, 4, 580, -84, 298, 580, -84,
+  580, 3, -53, 580, -41, 1269, -84, 580, 80, 1269,
+  -84, 580, -31, 580, 580, 5, 70, 580, -84, 19,
+  88, 12, -84, -84, 580, -84, -28, 580, -84, -40,
+  580, -23, 1269, -84, 580, 87, 1269, -84, -8, -6,
+  -35, 9, 1349, -14, -84, 1269, -84, 580, 82, 1269,
+  -12, 1269, -84, -84, 1269, -39, 123, -19, 149, 8,
+  580, 1269, 7, 13, 63, 6, -18, 371, -7, -4,
+  730, 33, 11, 24, 580, 31, -13, 580, 22, 580,
+  -27, -30, -84, -84, 162, -84, -84, 47, -84, -84,
+  580, 114, -21, -84, 34, -84, 30, 100, 580, -84,
+  17, 20, -84, -11, -84, 1269, -84, 124, 1269, -84,
+  174, -84, -84, 107, 1269, 52, -84, 57, 61, -84,
+  53, 16, 38, -84, -84, -84, -84, 580, 106, 1269,
+  -84, 580, 90, 1269, -84, 79, 76, 803, -84, 49,
+  -84, 653, -84, -84, -84, -84, -84, 81, -84, -84,
+  -84, -84, -84, -84, -84, 39, -84, 172, -84, -84,
+  580, -84, -84, 54, -84, -84,
 
   -61, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  -88, -4, -88, -88, 22, -88, -88, -88, -88, -88, 
-  -88, -88, -88, -88, -51, -88, -88, -88, -88, -88, 
-  -88, 105, -88, -88, -12, -88, -88, -88, -88, -88, 
-  -7, -88, 35, 132, 62, 154, 79, -88, -88, 100, 
-  75, 36, -88, -88, -88, -88, 37, 70, -88, -1, 
-  86, -88, 92, -88, -88, -88, -88, -88, -88, -88, 
-  -88, 90, 95, -88, -88, -88, -88, -88, -88, -88, 
-  87, 82, 74, -88, -88, -88, -88, -88, -88, -88, 
-  -88, -88, -88, -88, -88, -88, -88, -88, -47, -88, 
+  -88, -5, -88, -88, 28, -88, -88, -88, -88, -88,
+  -88, -88, -88, -88, -53, -88, -88, -88, -88, -88,
+  -88, 109, -88, -88, -16, -88, -88, -88, -88, -88,
+  -8, -88, 33, 135, 66, 79, 81, -88, -88, 104,
+  78, 34, -88, -88, -88, -88, 35, 146, -88, -3,
+  88, -88, 94, -88, -88, -88, -88, -88, -88, -88,
+  -88, 92, 97, -88, -88, -88, -88, -88, -88, -88,
+  89, 84, 77, -88, -88, -88, -88, -88, -88, -88,
+  -88, -88, -88, -88, -88, -88, -88, -88, -48, -88,
+  -88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
+  -88, -88, -88, -88, -88, -88, -88, -88, -88, 27,
+  -88, 26, -88, -88, 18, -88, -88, -88, 41, -88,
+  38, 51, 110, 61, -88, 69, 60, 53, 54, 93,
+  125, -88, 124, 129, 122, -88, -88, -88, -88, -88,
+  -88, -88, -88, -88, -88, -88, 120, -88, 52, -88,
+  -88, 16, 17, 15, -88, -88, -88, -88, 20, -88,
+  -88, -88, -88, -88, 23, -88, -88, -88, -88, 37,
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  -88, -88, -88, -88, -88, -88, -88, -88, -88, 28, 
-  -88, 20, -88, 19, -88, -88, -88, 39, -88, 42, 
-  43, 106, 61, -88, 63, 55, 52, 53, 91, 125, 
-  -88, 120, 123, 118, -88, -88, -88, -88, -88, -88, 
-  -88, -88, -88, -88, -88, 116, -88, 59, -88, -88, 
-  16, 18, 15, -88, -88, -88, -88, 21, -88, -88, 
-  -88, -88, -88, 24, -88, -88, -88, -88, 38, -88, 
+  -88, -88, -88, 99, -88, 103, 24, -88, -88, 25,
+  -88, -88, 115, 14, -88, -88, -88, -88, -88, -88,
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  -88, -88, 97, -88, 115, 25, -88, -88, 26, -88, 
-  -88, 111, 14, -88, -88, -88, -88, -88, -88, -88, 
+  -88, 22, -88, -88, -88, -88, 112, -88, -88, -88,
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  23, -88, -88, -88, -88, 108, -88, -88, -88, -88, 
+  -88, 153, -88, 169, 168, 216, 179, -88, 131, 50,
+  42, 70, 82, -88, -88, -88, -88, -88, -88, -88,
+  -88, 177, -88, 154, -88, 142, -88, -88, 144, -88,
+  127, -88, -88, 126, -88, -24, -88, 46, -88, 29,
+  -88, 152, -88, 155, 156, -88, -88, 180, -88, -88,
+  -88, -88, -88, -88, 183, -88, -22, 139, -88, -88,
+  47, -88, 3, -88, 43, -88, 2, -88, -88, -34,
+  -88, -88, -31, -88, -88, 12, -88, 45, -88, 19,
+  -88, 21, -88, -88, 13, -88, -88, -88, -88, -88,
+  121, 9, -88, -88, -88, -88, -88, 108, -88, -88,
+  0, -88, -88, -88, 6, -88, -35, 138, -88, 141,
+  -88, -88, -88, -88, 1, -88, -88, -88, -88, -88,
+  -6, -88, -88, -88, -88, -88, -69, -88, 10, -88,
+  -60, -88, -88, -88, -88, 91, -88, -88, 58, -88,
+  -88, -88, -88, -88, -41, -59, -88, -88, -29, -88,
+  -88, -88, -45, -88, -88, -88, -88, -1, -88, -43,
+  -88, 76, -88, -37, -88, -88, -88, 7, -88, 8,
+  -88, -4, -88, -88, -88, -88, -88, -88, -88, -88,
   -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  160, -88, 171, 163, 145, 179, -88, 135, 45, 41, 
-  66, 80, -88, -88, -88, -88, -88, -88, -88, -88, 
-  172, -88, 156, -88, 142, -88, -88, 144, -88, 122, 
-  -88, -88, 114, -88, -23, -88, 48, -88, 29, -88, 
-  224, -88, 157, 175, -88, -88, 182, -88, -88, -88, 
-  -88, -88, -88, 183, -88, -21, 134, -88, -88, 49, 
-  -88, 3, -88, 44, -88, 2, -88, -88, -37, -88, 
-  -88, -31, -88, -88, 10, -88, 47, -88, 17, -88, 
-  27, -88, -88, 13, -88, -88, -88, -88, -88, 117, 
-  6, -88, -88, -88, -88, -88, 154, -88, -88, 1, 
-  -88, -88, -88, 7, -88, -35, 137, -88, 141, -88, 
-  -88, -88, -88, -6, -88, -88, -88, -88, -88, 78, 
-  -88, -88, -88, -88, -88, -69, -88, 11, -88, -59, 
-  -88, -88, -88, -88, 83, -88, -88, 56, -88, -88, 
-  -88, -88, -88, -40, -58, -88, -88, -29, -88, -88, 
-  -88, -45, -88, -88, -88, -88, -3, -88, -42, -88, 
-  -5, -88, -32, -88, -88, -88, 9, -88, 8, -88, 
-  -2, -88, -88, -88, -88, -88, -88, -88, -88, -88, 
-  -88, -88, -88, -88, -88, -88, -88, -88, -88, 12, 
-  -88, -88, -56, -88, -88};
+  11, -88, -88, -56, -88, -88};
 
 const short QScriptGrammar::action_info [] = {
-  318, -25, 350, -45, 292, 270, 426, 310, -194, 393, 
-  -32, 302, 304, -37, 344, 290, 197, 346, 430, 382, 
-  329, 331, 310, 413, 318, 340, 397, 101, 338, 404, 
-  -49, 292, 270, 299, 323, 290, -24, -51, -195, 343, 
-  294, 397, 333, 341, 403, 397, 149, 249, 250, 389, 
-  255, 430, 155, 454, 426, 316, 97, 437, 437, 459, 
-  151, 389, 103, 102, 98, 344, 101, 105, 413, 222, 
-  222, 109, 157, 228, 346, 187, 413, 417, 157, 104, 
-  420, 255, 454, 337, 443, 236, 421, 438, 197, 185, 
-  97, 197, 419, 413, 197, 197, 325, -263, 197, 81, 
-  197, 203, 0, 197, 416, 197, 88, 388, 387, 400, 
-  82, 197, 224, 407, 197, 81, 225, 89, 417, 197, 
-  187, 90, 81, 312, 241, 240, 82, 313, 0, 0, 
-  246, 245, 153, 82, 81, 439, 238, 231, 197, 0, 
-  308, 243, 171, 447, 172, 82, 348, 335, 238, 326, 
-  432, 198, 252, 204, 401, 173, 232, 428, 192, 235, 
-  0, 254, 253, 190, 0, 90, 91, 90, 239, 237, 
-  462, 391, 92, 244, 242, 171, 171, 172, 172, 231, 
-  239, 237, 191, 171, 192, 172, 197, 0, 173, 173, 
-  0, 207, 206, 171, 243, 172, 173, 0, 232, 0, 
-  192, 171, 171, 172, 172, 0, 173, 159, 160, 171, 
-  91, 172, 91, 0, 173, 173, 92, 0, 92, 159, 
-  160, 0, 173, 463, 461, 0, 244, 242, 272, 273, 
-  272, 273, 0, 0, 161, 162, 277, 278, 0, 411, 
-  410, 0, 0, 0, 0, 279, 161, 162, 280, 0, 
-  281, 277, 278, 0, 0, 274, 275, 274, 275, 0, 
-  279, 0, 0, 280, 0, 281, 0, 0, 171, 0, 
-  172, 164, 165, 0, 0, 0, 0, 0, 0, 166, 
-  167, 173, 0, 168, 0, 169, 164, 165, 0, 0, 
-  0, 0, 0, 0, 166, 167, 164, 165, 168, 0, 
-  169, 0, 0, 0, 166, 167, 164, 165, 168, 209, 
-  169, 0, 0, 0, 166, 167, 0, 0, 168, 210, 
-  169, 164, 165, 211, 0, 0, 0, 277, 278, 166, 
-  167, 0, 212, 168, 213, 169, 279, 0, 0, 280, 
-  0, 281, 0, 0, 0, 214, 209, 215, 88, 0, 
-  0, 0, 0, 0, 0, 216, 210, 0, 217, 89, 
-  211, 0, 0, 0, 218, 0, 0, 0, 0, 212, 
-  219, 213, 0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 214, 220, 215, 88, 0, 0, 42, 43, 
-  209, 0, 216, 0, 0, 217, 89, 0, 85, 0, 
-  210, 218, 0, 0, 211, 86, 0, 219, 0, 87, 
-  51, 0, 52, 212, 0, 213, 0, 0, 306, 55, 
-  220, 0, 0, 58, 0, 0, 214, 0, 215, 88, 
-  0, 0, 0, 0, 0, 0, 216, 0, 0, 217, 
-  89, 63, 0, 65, 0, 218, 0, 0, 0, 0, 
-  0, 219, 0, 0, 57, 68, 45, 0, 0, 0, 
-  42, 43, 0, 0, 220, 0, 0, 0, 0, 0, 
-  85, 0, 0, 0, 0, 0, 0, 86, 0, 0, 
-  0, 87, 51, 0, 52, 0, 0, 0, 0, 0, 
-  0, 55, 0, 0, 0, 58, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 63, 0, 65, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 57, 68, 45, 0, 
-  0, 0, 41, 42, 43, 0, 0, 0, 0, 0, 
-  0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 
+  -46, 319, 293, -26, 351, 271, 431, 311, 303, 427,
+  -195, 198, 394, 345, -38, -33, 383, 291, 347, 305,
+  414, 330, 398, 101, 300, 341, 319, 405, 339, 295,
+  311, -50, 291, 271, 293, 398, 324, 332, -52, 398,
+  -25, 344, 342, 334, 404, 250, 251, 390, 149, 256,
+  431, -196, 455, 156, 427, 154, 460, 438, 438, 151,
+  105, 390, 104, 102, 97, 103, 345, 223, 223, 101,
+  109, 414, 418, 98, 186, 188, 422, 317, 347, 414,
+  229, 256, 421, 455, 444, 338, 237, 439, 198, 198,
+  198, 186, 97, 420, 414, 198, 326, 198, 198, -264,
+  81, 198, 0, 198, 204, 188, 88, 81, 389, 388,
+  401, 82, 225, 417, 198, 81, 226, 89, 82, 242,
+  241, 313, 198, 81, 90, 314, 82, 418, 90, 247,
+  246, 408, 198, 0, 82, 440, 0, 0, 255, 254,
+  309, 448, 349, 232, 172, 199, 173, 336, 198, 327,
+  433, 236, 239, 253, 158, 402, 205, 174, 172, 244,
+  173, 239, 233, 172, 193, 173, 429, 191, 172, 91,
+  173, 174, 90, 91, 392, 92, 174, 232, 244, 92,
+  463, 174, 198, 0, 240, 238, 192, 0, 193, 0,
+  0, 245, 243, 240, 238, 0, 233, 0, 193, 160,
+  161, 208, 207, 160, 161, 0, 0, 0, 0, 0,
+  245, 243, 0, 273, 274, 273, 274, 91, 0, 0,
+  0, 0, 0, 92, 0, 0, 162, 163, 0, 0,
+  162, 163, 0, 464, 462, 412, 411, 172, 0, 173,
+  275, 276, 275, 276, 165, 166, 0, 0, 0, 0,
+  174, 0, 167, 168, 165, 166, 169, 0, 170, 0,
+  0, 0, 167, 168, 165, 166, 169, 0, 170, 0,
+  0, 0, 167, 168, 165, 166, 169, 0, 170, 0,
+  0, 0, 167, 168, 0, 0, 169, 0, 170, 0,
+  165, 166, 0, 0, 0, 0, 278, 279, 167, 168,
+  0, 210, 169, 0, 170, 280, 0, 0, 281, 0,
+  282, 211, 0, 0, 0, 212, 0, 0, 0, 0,
+  0, 0, 0, 0, 213, 0, 214, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 215, 0, 216,
+  88, 0, 0, 0, 0, 0, 0, 217, 0, 0,
+  218, 89, 0, 0, 0, 0, 219, 42, 43, 0,
+  0, 0, 220, 0, 0, 0, 0, 85, 0, 0,
+  0, 0, 0, 0, 86, 221, 0, 0, 87, 51,
+  0, 52, 0, 42, 43, 0, 0, 0, 55, 0,
+  0, 0, 58, 85, 0, 0, 0, 0, 0, 0,
   86, 0, 0, 0, 87, 51, 0, 52, 0, 0, 
-  0, 53, 0, 54, 55, 56, 0, 0, 58, 0, 
-  0, 0, 59, 0, 60, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 63, 0, 65, 0, 
-  67, 0, 70, 0, 72, 0, 0, 0, 0, 57, 
-  68, 45, 0, 0, 0, 41, 42, 43, 0, 0, 
-  0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 
-  0, 0, 0, 86, 0, 0, 0, 87, 51, 0, 
-  52, 0, 0, 0, 53, 0, 54, 55, 56, 0, 
-  0, 58, 0, 0, 0, 59, 0, 60, 0, 0, 
-  442, 0, 0, 0, 0, 0, 0, 0, 0, 63, 
-  0, 65, 0, 67, 0, 70, 0, 72, 0, 0, 
-  0, 0, 57, 68, 45, 0, 0, 0, -47, 0, 
-  0, 0, 41, 42, 43, 0, 0, 0, 0, 0, 
-  0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 
-  86, 0, 0, 0, 87, 51, 0, 52, 0, 0, 
-  0, 53, 0, 54, 55, 56, 0, 0, 58, 0, 
-  0, 0, 59, 0, 60, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 63, 0, 65, 0, 
-  67, 0, 70, 0, 72, 0, 0, 0, 0, 57, 
-  68, 45, 0, 0, 0, 41, 42, 43, 0, 0, 
-  0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 
-  0, 0, 0, 86, 0, 0, 0, 87, 51, 0, 
-  52, 0, 0, 0, 53, 0, 54, 55, 56, 0, 
-  0, 58, 0, 0, 0, 59, 0, 60, 0, 0, 
-  445, 0, 0, 0, 0, 0, 0, 0, 0, 63, 
-  0, 65, 0, 67, 0, 70, 0, 72, 0, 0, 
-  0, 0, 57, 68, 45, 0, 0, 0, 41, 42, 
-  43, 0, 0, 0, 0, 0, 0, 0, 0, 85, 
-  0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 
-  87, 51, 0, 52, 0, 0, 0, 53, 0, 54, 
-  55, 56, 0, 0, 58, 0, 0, 0, 59, 0, 
-  60, 0, 0, 0, 0, 0, 0, 202, 0, 0, 
-  0, 0, 63, 0, 65, 0, 67, 0, 70, 0, 
-  72, 0, 0, 0, 0, 57, 68, 45, 0, 0, 
+  63, 0, 65, 0, 55, 0, 0, 0, 58, 0,
+  0, 0, 0, 57, 68, 45, 0, 0, 0, 210,
+  0, 0, 0, 0, 0, 0, 63, 0, 65, 211,
+  0, 0, 0, 212, 0, 0, 0, 0, 0, 57,
+  68, 45, 213, 0, 214, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 215, 0, 216, 88, 0,
+  0, 0, 0, 0, 0, 217, 0, 0, 218, 89,
+  0, 0, 0, 0, 219, 0, 0, 0, 0, 0,
+  220, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 221, 0, 0, 0, 0, 0, 0,
+  210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  211, 0, 0, 0, 212, 0, 0, 0, 0, 0,
+  0, 0, 0, 213, 0, 214, 0, 0, 307, 0,
+  0, 0, 0, 0, 0, 0, 215, 0, 216, 88,
+  0, 0, 0, 0, 0, 0, 217, 0, 0, 218,
+  89, 0, 0, 0, 0, 219, 0, 0, 0, 0,
+  0, 220, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 221, 0, 0, 0, 0, 0,
   0, 41, 42, 43, 0, 0, 0, 0, 0, 0, 
   0, 0, 85, 0, 0, 0, 0, 0, 0, 86, 
   0, 0, 0, 87, 51, 0, 52, 0, 0, 0, 
   53, 0, 54, 55, 56, 0, 0, 58, 0, 0, 
   0, 59, 0, 60, 0, 0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 63, 0, 65, 0, 67, 
-  0, 70, 269, 72, 0, 0, 0, 0, 57, 68, 
-  45, 0, 0, 0, 115, 116, 117, 0, 0, 119, 
-  121, 122, 0, 0, 123, 0, 124, 0, 0, 0, 
-  126, 127, 128, 0, 0, 0, 0, 0, 0, 195, 
-  130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 
-  0, 0, 0, 0, 0, 0, 139, 140, 141, 0, 
-  143, 144, 145, 146, 147, 148, 0, 0, 134, 142, 
-  125, 118, 120, 136, 115, 116, 117, 0, 0, 119, 
-  121, 122, 0, 0, 123, 0, 124, 0, 0, 0, 
-  126, 127, 128, 0, 0, 0, 0, 0, 0, 129, 
-  130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 0, 133, 0, 0, 0, 135, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 
-  0, 0, 0, 0, 0, 138, 139, 140, 141, 0, 
-  143, 144, 145, 146, 147, 148, 0, 0, 134, 142, 
-  125, 118, 120, 136, 37, 0, 0, 0, 0, 39, 
-  0, 41, 42, 43, 44, 0, 0, 0, 0, 0, 
-  0, 46, 85, 0, 0, 0, 0, 0, 0, 48, 
-  49, 0, 0, 50, 51, 0, 52, 0, 0, 0, 
-  53, 0, 54, 55, 56, 0, 0, 58, 0, 0, 
-  0, 59, 0, 60, 0, 0, 0, 0, 0, 61, 
-  0, 62, 0, 0, 0, 63, 64, 65, 66, 67, 
-  69, 70, 71, 72, 73, 74, 0, 0, 57, 68, 
-  45, 38, 40, 0, 37, 0, 0, 0, 0, 39, 
-  0, 41, 42, 43, 44, 0, 0, 0, 0, 0, 
-  0, 46, 47, 0, 0, 0, 0, 0, 0, 48, 
-  49, 0, 0, 50, 51, 0, 52, 0, 0, 0, 
+  0, 70, 0, 72, 0, 0, 0, 0, 57, 68,
+  45, 0, 0, 0, 41, 42, 43, 0, 0, 0,
+  0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
+  0, 0, 86, 0, 0, 0, 87, 51, 0, 52,
+  0, 0, 0, 53, 0, 54, 55, 56, 0, 0,
+  58, 0, 0, 0, 59, 0, 60, 0, 0, 443,
+  0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
+  65, 0, 67, 0, 70, 0, 72, 0, 0, 0,
+  0, 57, 68, 45, 0, 0, 0, -48, 0, 0,
+  0, 41, 42, 43, 0, 0, 0, 0, 0, 0,
+  0, 0, 85, 0, 0, 0, 0, 0, 0, 86,
+  0, 0, 0, 87, 51, 0, 52, 0, 0, 0,
   53, 0, 54, 55, 56, 0, 0, 58, 0, 0, 
-  0, 59, 0, 60, 0, 0, 0, 0, 0, 61, 
-  0, 62, 0, 0, 0, 63, 64, 65, 66, 67, 
-  69, 70, 71, 72, 73, 74, 0, 0, 57, 68, 
-  45, 38, 40, 0, 355, 116, 117, 0, 0, 357, 
-  121, 359, 42, 43, 360, 0, 124, 0, 0, 0, 
-  126, 362, 363, 0, 0, 0, 0, 0, 0, 364, 
-  365, 131, 132, 50, 51, 0, 52, 0, 0, 0, 
-  53, 0, 54, 366, 56, 0, 0, 368, 0, 0, 
-  0, 59, 0, 60, 0, -190, 0, 0, 0, 369, 
-  0, 62, 0, 0, 0, 370, 371, 372, 373, 67, 
-  375, 376, 377, 378, 379, 380, 0, 0, 367, 374, 
-  361, 356, 358, 136, 
-
-  431, 422, 427, 429, 441, 352, 300, 398, 385, 464, 
-  440, 412, 409, 433, 402, 444, 406, 423, 460, 234, 
-  418, 201, 305, 196, 34, 154, 194, 199, 251, 152, 
-  205, 227, 229, 248, 150, 110, 230, 208, 352, 110, 
-  446, 300, 409, 339, 221, 412, 327, 336, 332, 334, 
-  342, 248, 347, 307, 300, 345, 0, 83, 381, 83, 
-  83, 83, 349, 83, 284, 158, 163, 182, 283, 0, 
-  83, 83, 351, 83, 309, 178, 179, 83, 177, 83, 
-  83, 83, 449, 390, 83, 184, 170, 188, 83, 285, 
-  453, 330, 83, 83, 95, 452, 0, 83, 83, 450, 
-  83, 352, 94, 286, 83, 83, 424, 93, 83, 83, 
-  83, 84, 425, 83, 180, 83, 156, 408, 83, 300, 
-  451, 194, 233, 83, 83, 247, 264, 300, 352, 223, 
-  183, 268, 0, 83, 83, 83, 83, 247, 83, 300, 
-  176, 83, 174, 83, 405, 175, 186, 0, 181, 226, 
-  83, 0, 448, 83, 0, 83, 303, 424, 282, 83, 
-  296, 425, 296, 83, 301, 268, 383, 268, 268, 384, 
-  288, 0, 0, 0, 83, 83, 328, 0, 83, 268, 
-  268, 83, 295, 268, 298, 293, 268, 271, 287, 83, 
-  83, 0, 314, 296, 268, 268, 276, 83, 268, 0, 
-  296, 296, 268, 291, 289, 268, 268, 0, 0, 0, 
-  0, 0, 0, 0, 0, 315, 0, 0, 0, 0, 
-  0, 0, 317, 324, 0, 0, 0, 0, 0, 0, 
+  0, 59, 0, 60, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 63, 0, 65, 0, 67,
+  0, 70, 0, 72, 0, 0, 0, 0, 57, 68,
+  45, 0, 0, 0, 41, 42, 43, 0, 0, 0,
+  0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
+  0, 0, 86, 0, 0, 0, 87, 51, 0, 52,
+  0, 0, 0, 53, 0, 54, 55, 56, 0, 0,
+  58, 0, 0, 0, 59, 0, 60, 0, 0, 446,
+  0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
+  65, 0, 67, 0, 70, 0, 72, 0, 0, 0,
+  0, 57, 68, 45, 0, 0, 0, 41, 42, 43,
+  0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
+  0, 0, 0, 0, 0, 86, 0, 0, 0, 87,
+  51, 0, 52, 0, 0, 0, 53, 0, 54, 55,
+  56, 0, 0, 58, 0, 0, 0, 59, 0, 60,
+  0, 0, 0, 0, 0, 0, 203, 0, 0, 0,
+  0, 63, 0, 65, 0, 67, 0, 70, 0, 72,
+  0, 0, 0, 0, 57, 68, 45, 0, 0, 0,
+  41, 42, 43, 0, 0, 0, 0, 0, 0, 0,
+  0, 85, 0, 0, 0, 0, 0, 0, 86, 0,
+  0, 0, 87, 51, 0, 52, 0, 0, 0, 53,
+  0, 54, 55, 56, 0, 0, 58, 0, 0, 0,
+  59, 0, 60, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 63, 0, 65, 0, 67, 0,
+  70, 270, 72, 0, 0, 0, 0, 57, 68, 45,
+  0, 0, 0, 115, 116, 117, 0, 0, 119, 121,
+  122, 0, 0, 123, 0, 124, 0, 0, 0, 126,
+  127, 128, 0, 0, 0, 0, 0, 0, 196, 130,
+  131, 132, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 133, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 137, 0,
+  0, 0, 0, 0, 0, 139, 140, 141, 0, 143,
+  144, 145, 146, 147, 148, 0, 0, 134, 142, 125,
+  118, 120, 136, 115, 116, 117, 0, 0, 119, 121,
+  122, 0, 0, 123, 0, 124, 0, 0, 0, 126,
+  127, 128, 0, 0, 0, 0, 0, 0, 129, 130,
+  131, 132, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 133, 0, 0, 0, 135, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 137, 0,
+  0, 0, 0, 0, 138, 139, 140, 141, 0, 143,
+  144, 145, 146, 147, 148, 0, 0, 134, 142, 125,
+  118, 120, 136, 115, 116, 117, 0, 0, 119, 121,
+  122, 0, 0, 123, 0, 124, 0, 0, 0, 126,
+  127, 128, 0, 0, 0, 0, 0, 0, 129, 130,
+  131, 132, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 133, 0, 0, 0, 135, 0, 0, 0,
+  0, 0, 0, 0, 153, 0, 0, 0, 137, 0,
+  0, 0, 0, 0, 138, 139, 140, 141, 0, 143,
+  144, 145, 146, 147, 148, 0, 0, 134, 142, 125,
+  118, 120, 136, 37, 0, 0, 0, 0, 39, 0,
+  41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
+  46, 85, 0, 0, 0, 0, 0, 0, 48, 49,
+  0, 0, 50, 51, 0, 52, 0, 0, 0, 53,
+  0, 54, 55, 56, 0, 0, 58, 0, 0, 0,
+  59, 0, 60, 0, 0, 0, 0, 0, 61, 0,
+  62, 0, 0, 0, 63, 64, 65, 66, 67, 69,
+  70, 71, 72, 73, 74, 0, 0, 57, 68, 45,
+  38, 40, 0, 37, 0, 0, 0, 0, 39, 0,
+  41, 42, 43, 44, 0, 0, 0, 0, 0, 0,
+  46, 47, 0, 0, 0, 0, 0, 0, 48, 49,
+  0, 0, 50, 51, 0, 52, 0, 0, 0, 53,
+  0, 54, 55, 56, 0, 0, 58, 0, 0, 0,
+  59, 0, 60, 0, 0, 0, 0, 0, 61, 0,
+  62, 0, 0, 0, 63, 64, 65, 66, 67, 69,
+  70, 71, 72, 73, 74, 0, 0, 57, 68, 45,
+  38, 40, 0, 356, 116, 117, 0, 0, 358, 121,
+  360, 42, 43, 361, 0, 124, 0, 0, 0, 126,
+  363, 364, 0, 0, 0, 0, 0, 0, 365, 366,
+  131, 132, 50, 51, 0, 52, 0, 0, 0, 53,
+  0, 54, 367, 56, 0, 0, 369, 0, 0, 0,
+  59, 0, 60, 0, -191, 0, 0, 0, 370, 0,
+  62, 0, 0, 0, 371, 372, 373, 374, 67, 376,
+  377, 378, 379, 380, 381, 0, 0, 368, 375, 362,
+  357, 359, 136,
+
+  391, 423, 430, 442, 353, 428, 301, 399, 434, 465,
+  441, 413, 410, 403, 445, 386, 407, 424, 461, 419,
+  235, 306, 202, 197, 34, 155, 195, 200, 252, 249,
+  206, 228, 230, 110, 150, 152, 209, 353, 110, 447,
+  301, 410, 231, 413, 222, 328, 340, 337, 333, 335,
+  343, 348, 308, 301, 249, 0, 83, 346, 382, 83,
+  83, 0, 164, 0, 350, 285, 352, 159, 83, 83,
+  83, 83, 83, 284, 310, 183, 179, 180, 83, 83,
+  189, 0, 432, 178, 83, 185, 450, 83, 83, 331,
+  0, 384, 171, 286, 385, 83, 83, 95, 453, 83,
+  83, 451, 83, 353, 94, 287, 83, 83, 425, 93,
+  83, 83, 83, 84, 426, 83, 181, 83, 157, 409,
+  384, 83, 83, 385, 452, 195, 234, 83, 83, 248,
+  265, 224, 301, 301, 184, 269, 353, 227, 83, 83,
+  83, 248, 83, 83, 177, 301, 175, 83, 182, 83,
+  187, 176, 406, 83, 283, 449, 83, 0, 425, 83,
+  297, 426, 297, 0, 83, 269, 454, 269, 304, 302,
+  83, 83, 83, 83, 297, 269, 269, 269, 269, 269,
+  272, 329, 296, 294, 299, 312, 83, 83, 0, 0,
+  315, 269, 269, 288, 277, 83, 316, 83, 297, 0,
+  269, 297, 269, 269, 290, 0, 269, 0, 292, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0, 83, 0, 0, 0, 0, 268, 0, 0, 
-  0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 
+  318, 0, 0, 325, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 83, 0, 0, 0, 0, 269,
+  0, 289, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-  0, 0};
+  0, 0, 0, 0};
 
 const short QScriptGrammar::action_check [] = {
-  29, 7, 16, 7, 76, 1, 36, 2, 29, 33, 
-  7, 61, 60, 7, 7, 48, 8, 36, 36, 55, 
-  61, 60, 2, 33, 29, 60, 5, 29, 36, 7, 
-  7, 76, 1, 61, 17, 48, 7, 7, 29, 55, 
-  8, 5, 31, 33, 55, 5, 7, 74, 36, 36, 
-  36, 36, 55, 29, 36, 7, 29, 8, 8, 17, 
-  8, 36, 29, 8, 36, 7, 29, 33, 33, 2, 
-  2, 55, 1, 7, 36, 76, 33, 20, 1, 60, 
-  29, 36, 29, 29, 8, 0, 60, 8, 8, 48, 
-  29, 8, 36, 33, 8, 8, 8, 36, 8, 40, 
-  8, 8, -1, 8, 6, 8, 42, 61, 62, 10, 
-  51, 8, 50, 7, 8, 40, 54, 53, 20, 8, 
-  76, 12, 40, 50, 61, 62, 51, 54, -1, -1, 
-  61, 62, 7, 51, 40, 56, 29, 15, 8, -1, 
-  60, 29, 25, 60, 27, 51, 60, 60, 29, 61, 
-  60, 56, 60, 60, 55, 38, 34, 60, 36, 56, 
-  -1, 61, 62, 15, -1, 12, 57, 12, 61, 62, 
-  8, 60, 63, 61, 62, 25, 25, 27, 27, 15, 
-  61, 62, 34, 25, 36, 27, 8, -1, 38, 38, 
-  -1, 61, 62, 25, 29, 27, 38, -1, 34, -1, 
-  36, 25, 25, 27, 27, -1, 38, 18, 19, 25, 
-  57, 27, 57, -1, 38, 38, 63, -1, 63, 18, 
-  19, -1, 38, 61, 62, -1, 61, 62, 18, 19, 
-  18, 19, -1, -1, 45, 46, 23, 24, -1, 61, 
-  62, -1, -1, -1, -1, 32, 45, 46, 35, -1, 
-  37, 23, 24, -1, -1, 45, 46, 45, 46, -1, 
-  32, -1, -1, 35, -1, 37, -1, -1, 25, -1, 
-  27, 23, 24, -1, -1, -1, -1, -1, -1, 31, 
-  32, 38, -1, 35, -1, 37, 23, 24, -1, -1, 
-  -1, -1, -1, -1, 31, 32, 23, 24, 35, -1, 
-  37, -1, -1, -1, 31, 32, 23, 24, 35, 3, 
-  37, -1, -1, -1, 31, 32, -1, -1, 35, 13, 
-  37, 23, 24, 17, -1, -1, -1, 23, 24, 31, 
-  32, -1, 26, 35, 28, 37, 32, -1, -1, 35, 
-  -1, 37, -1, -1, -1, 39, 3, 41, 42, -1, 
-  -1, -1, -1, -1, -1, 49, 13, -1, 52, 53, 
-  17, -1, -1, -1, 58, -1, -1, -1, -1, 26, 
-  64, 28, -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 39, 77, 41, 42, -1, -1, 12, 13, 
-  3, -1, 49, -1, -1, 52, 53, -1, 22, -1, 
-  13, 58, -1, -1, 17, 29, -1, 64, -1, 33, 
-  34, -1, 36, 26, -1, 28, -1, -1, 31, 43, 
-  77, -1, -1, 47, -1, -1, 39, -1, 41, 42, 
-  -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 
-  53, 65, -1, 67, -1, 58, -1, -1, -1, -1, 
-  -1, 64, -1, -1, 78, 79, 80, -1, -1, -1, 
-  12, 13, -1, -1, 77, -1, -1, -1, -1, -1, 
-  22, -1, -1, -1, -1, -1, -1, 29, -1, -1, 
-  -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, 
-  -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 65, -1, 67, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, 
-  -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 
-  29, -1, -1, -1, 33, 34, -1, 36, -1, -1, 
-  -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, 
-  -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 
-  69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 
-  79, 80, -1, -1, -1, 11, 12, 13, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, 
-  -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 
-  36, -1, -1, -1, 40, -1, 42, 43, 44, -1, 
-  -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, 
-  56, -1, -1, -1, -1, -1, -1, -1, -1, 65, 
-  -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, 
-  -1, -1, 78, 79, 80, -1, -1, -1, 7, -1, 
-  -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 
+  7, 29, 76, 7, 16, 1, 36, 2, 61, 36,
+  29, 8, 33, 7, 7, 7, 55, 48, 36, 60,
+  33, 61, 5, 29, 61, 60, 29, 7, 36, 8,
+  2, 7, 48, 1, 76, 5, 17, 60, 7, 5,
+  7, 55, 33, 31, 55, 74, 36, 36, 7, 36,
+  36, 29, 29, 55, 36, 7, 17, 8, 8, 8,
+  33, 36, 60, 8, 29, 29, 7, 2, 2, 29,
+  55, 33, 20, 36, 48, 76, 60, 7, 36, 33,
+  7, 36, 29, 29, 8, 29, 0, 8, 8, 8,
+  8, 48, 29, 36, 33, 8, 8, 8, 8, 36,
+  40, 8, -1, 8, 8, 76, 42, 40, 61, 62,
+  10, 51, 50, 6, 8, 40, 54, 53, 51, 61,
+  62, 50, 8, 40, 12, 54, 51, 20, 12, 61,
+  62, 7, 8, -1, 51, 56, -1, -1, 61, 62,
+  60, 60, 60, 15, 25, 56, 27, 60, 8, 61,
+  60, 56, 29, 60, 1, 55, 60, 38, 25, 29,
+  27, 29, 34, 25, 36, 27, 60, 15, 25, 57,
+  27, 38, 12, 57, 60, 63, 38, 15, 29, 63,
+  8, 38, 8, -1, 61, 62, 34, -1, 36, -1,
+  -1, 61, 62, 61, 62, -1, 34, -1, 36, 18,
+  19, 61, 62, 18, 19, -1, -1, -1, -1, -1,
+  61, 62, -1, 18, 19, 18, 19, 57, -1, -1,
+  -1, -1, -1, 63, -1, -1, 45, 46, -1, -1,
+  45, 46, -1, 61, 62, 61, 62, 25, -1, 27,
+  45, 46, 45, 46, 23, 24, -1, -1, -1, -1,
+  38, -1, 31, 32, 23, 24, 35, -1, 37, -1,
+  -1, -1, 31, 32, 23, 24, 35, -1, 37, -1,
+  -1, -1, 31, 32, 23, 24, 35, -1, 37, -1,
+  -1, -1, 31, 32, -1, -1, 35, -1, 37, -1,
+  23, 24, -1, -1, -1, -1, 23, 24, 31, 32,
+  -1, 3, 35, -1, 37, 32, -1, -1, 35, -1,
+  37, 13, -1, -1, -1, 17, -1, -1, -1, -1,
+  -1, -1, -1, -1, 26, -1, 28, -1, -1, -1,
+  -1, -1, -1, -1, -1, -1, -1, 39, -1, 41,
+  42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
+  52, 53, -1, -1, -1, -1, 58, 12, 13, -1,
+  -1, -1, 64, -1, -1, -1, -1, 22, -1, -1,
+  -1, -1, -1, -1, 29, 77, -1, -1, 33, 34,
+  -1, 36, -1, 12, 13, -1, -1, -1, 43, -1,
+  -1, -1, 47, 22, -1, -1, -1, -1, -1, -1,
   29, -1, -1, -1, 33, 34, -1, 36, -1, -1, 
-  -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, 
-  -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 65, -1, 67, -1, 
-  69, -1, 71, -1, 73, -1, -1, -1, -1, 78, 
-  79, 80, -1, -1, -1, 11, 12, 13, -1, -1, 
-  -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, 
-  -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 
-  36, -1, -1, -1, 40, -1, 42, 43, 44, -1, 
-  -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, 
-  56, -1, -1, -1, -1, -1, -1, -1, -1, 65, 
-  -1, 67, -1, 69, -1, 71, -1, 73, -1, -1, 
-  -1, -1, 78, 79, 80, -1, -1, -1, 11, 12, 
-  13, -1, -1, -1, -1, -1, -1, -1, -1, 22, 
-  -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 
-  33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 
-  43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 
-  53, -1, -1, -1, -1, -1, -1, 60, -1, -1, 
-  -1, -1, 65, -1, 67, -1, 69, -1, 71, -1, 
-  73, -1, -1, -1, -1, 78, 79, 80, -1, -1, 
+  65, -1, 67, -1, 43, -1, -1, -1, 47, -1,
+  -1, -1, -1, 78, 79, 80, -1, -1, -1, 3,
+  -1, -1, -1, -1, -1, -1, 65, -1, 67, 13,
+  -1, -1, -1, 17, -1, -1, -1, -1, -1, 78,
+  79, 80, 26, -1, 28, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, -1, 39, -1, 41, 42, -1,
+  -1, -1, -1, -1, -1, 49, -1, -1, 52, 53,
+  -1, -1, -1, -1, 58, -1, -1, -1, -1, -1,
+  64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, 77, -1, -1, -1, -1, -1, -1,
+  3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+  13, -1, -1, -1, 17, -1, -1, -1, -1, -1,
+  -1, -1, -1, 26, -1, 28, -1, -1, 31, -1,
+  -1, -1, -1, -1, -1, -1, 39, -1, 41, 42,
+  -1, -1, -1, -1, -1, -1, 49, -1, -1, 52,
+  53, -1, -1, -1, -1, 58, -1, -1, -1, -1,
+  -1, 64, -1, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, 77, -1, -1, -1, -1, -1,
   -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, 
   -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, 
   -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 
   40, -1, 42, 43, 44, -1, -1, 47, -1, -1, 
   -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, 
   -1, -1, -1, -1, -1, 65, -1, 67, -1, 69, 
-  -1, 71, 72, 73, -1, -1, -1, -1, 78, 79, 
-  80, -1, -1, -1, 4, 5, 6, -1, -1, 9, 
-  10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 
-  20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 
-  30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 
-  -1, -1, -1, -1, -1, -1, 66, 67, 68, -1, 
-  70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 
-  80, 81, 82, 83, 4, 5, 6, -1, -1, 9, 
-  10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 
-  20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 
-  30, 31, 32, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 
-  -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, 
-  70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 
-  80, 81, 82, 83, 4, -1, -1, -1, -1, 9, 
-  -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, 
-  -1, 21, 22, -1, -1, -1, -1, -1, -1, 29, 
-  30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 
-  40, -1, 42, 43, 44, -1, -1, 47, -1, -1, 
-  -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, 
-  -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 
-  70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 
-  80, 81, 82, -1, 4, -1, -1, -1, -1, 9, 
-  -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, 
-  -1, 21, 22, -1, -1, -1, -1, -1, -1, 29, 
-  30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 
-  40, -1, 42, 43, 44, -1, -1, 47, -1, -1, 
-  -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, 
-  -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 
-  70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 
-  80, 81, 82, -1, 4, 5, 6, -1, -1, 9, 
-  10, 11, 12, 13, 14, -1, 16, -1, -1, -1, 
-  20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 
-  30, 31, 32, 33, 34, -1, 36, -1, -1, -1, 
+  -1, 71, -1, 73, -1, -1, -1, -1, 78, 79,
+  80, -1, -1, -1, 11, 12, 13, -1, -1, -1,
+  -1, -1, -1, -1, -1, 22, -1, -1, -1, -1,
+  -1, -1, 29, -1, -1, -1, 33, 34, -1, 36,
+  -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
+  47, -1, -1, -1, 51, -1, 53, -1, -1, 56,
+  -1, -1, -1, -1, -1, -1, -1, -1, 65, -1,
+  67, -1, 69, -1, 71, -1, 73, -1, -1, -1,
+  -1, 78, 79, 80, -1, -1, -1, 7, -1, -1,
+  -1, 11, 12, 13, -1, -1, -1, -1, -1, -1,
+  -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+  -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
   40, -1, 42, 43, 44, -1, -1, 47, -1, -1, 
-  -1, 51, -1, 53, -1, 55, -1, -1, -1, 59, 
-  -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 
-  70, 71, 72, 73, 74, 75, -1, -1, 78, 79, 
-  80, 81, 82, 83, 
-
-  5, 46, 5, 45, 6, 45, 5, 76, 14, 65, 
-  2, 46, 5, 45, 73, 6, 5, 46, 6, 5, 
-  78, 6, 45, 5, 85, 6, 10, 6, 5, 9, 
-  6, 6, 6, 45, 6, 86, 14, 41, 45, 86, 
-  5, 5, 5, 80, 6, 46, 67, 45, 45, 5, 
-  81, 45, 5, 5, 5, 45, -1, 18, 45, 18, 
-  18, 18, 45, 18, 23, 26, 24, 24, 23, -1, 
-  18, 18, 45, 18, 45, 23, 23, 18, 23, 18, 
-  18, 18, 20, 5, 18, 24, 23, 28, 18, 23, 
-  20, 42, 18, 18, 20, 20, -1, 18, 18, 20, 
-  18, 45, 20, 23, 18, 18, 20, 20, 18, 18, 
-  18, 21, 20, 18, 23, 18, 21, 61, 18, 5, 
-  20, 10, 11, 18, 18, 20, 18, 5, 45, 32, 
-  24, 23, -1, 18, 18, 18, 18, 20, 18, 5, 
-  22, 18, 22, 18, 61, 22, 30, -1, 23, 34, 
-  18, -1, 20, 18, -1, 18, 42, 20, 23, 18, 
-  18, 20, 18, 18, 42, 23, 12, 23, 23, 15, 
-  25, -1, -1, -1, 18, 18, 42, -1, 18, 23, 
-  23, 18, 40, 23, 40, 29, 23, 27, 25, 18, 
-  18, -1, 35, 18, 23, 23, 25, 18, 23, -1, 
-  18, 18, 23, 31, 25, 23, 23, -1, -1, -1, 
-  -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, 
-  -1, -1, 40, 40, -1, -1, -1, -1, -1, -1, 
+  -1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, -1, 65, -1, 67, -1, 69,
+  -1, 71, -1, 73, -1, -1, -1, -1, 78, 79,
+  80, -1, -1, -1, 11, 12, 13, -1, -1, -1,
+  -1, -1, -1, -1, -1, 22, -1, -1, -1, -1,
+  -1, -1, 29, -1, -1, -1, 33, 34, -1, 36,
+  -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
+  47, -1, -1, -1, 51, -1, 53, -1, -1, 56,
+  -1, -1, -1, -1, -1, -1, -1, -1, 65, -1,
+  67, -1, 69, -1, 71, -1, 73, -1, -1, -1,
+  -1, 78, 79, 80, -1, -1, -1, 11, 12, 13,
+  -1, -1, -1, -1, -1, -1, -1, -1, 22, -1,
+  -1, -1, -1, -1, -1, 29, -1, -1, -1, 33,
+  34, -1, 36, -1, -1, -1, 40, -1, 42, 43,
+  44, -1, -1, 47, -1, -1, -1, 51, -1, 53,
+  -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,
+  -1, 65, -1, 67, -1, 69, -1, 71, -1, 73,
+  -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
+  11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
+  -1, 22, -1, -1, -1, -1, -1, -1, 29, -1,
+  -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
+  -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+  51, -1, 53, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, 65, -1, 67, -1, 69, -1,
+  71, 72, 73, -1, -1, -1, -1, 78, 79, 80,
+  -1, -1, -1, 4, 5, 6, -1, -1, 9, 10,
+  11, -1, -1, 14, -1, 16, -1, -1, -1, 20,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  31, 32, -1, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, 43, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+  -1, -1, -1, -1, -1, 66, 67, 68, -1, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, 83, 4, 5, 6, -1, -1, 9, 10,
+  11, -1, -1, 14, -1, 16, -1, -1, -1, 20,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  31, 32, -1, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, 43, -1, -1, -1, 47, -1, -1, -1,
+  -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+  -1, -1, -1, -1, 65, 66, 67, 68, -1, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, 83, 4, 5, 6, -1, -1, 9, 10,
+  11, -1, -1, 14, -1, 16, -1, -1, -1, 20,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  31, 32, -1, -1, -1, -1, -1, -1, -1, -1,
+  -1, -1, 43, -1, -1, -1, 47, -1, -1, -1,
+  -1, -1, -1, -1, 55, -1, -1, -1, 59, -1,
+  -1, -1, -1, -1, 65, 66, 67, 68, -1, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, 83, 4, -1, -1, -1, -1, 9, -1,
+  11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
+  -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+  51, -1, 53, -1, -1, -1, -1, -1, 59, -1,
+  61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, -1, 4, -1, -1, -1, -1, 9, -1,
+  11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
+  -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+  51, -1, 53, -1, -1, -1, -1, -1, 59, -1,
+  61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, -1, 4, 5, 6, -1, -1, 9, 10,
+  11, 12, 13, 14, -1, 16, -1, -1, -1, 20,
+  21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+  31, 32, 33, 34, -1, 36, -1, -1, -1, 40,
+  -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+  51, -1, 53, -1, 55, -1, -1, -1, 59, -1,
+  61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
+  71, 72, 73, 74, 75, -1, -1, 78, 79, 80,
+  81, 82, 83,
+
+  6, 46, 45, 7, 45, 6, 6, 76, 45, 65,
+  2, 46, 6, 73, 7, 14, 6, 46, 7, 78,
+  6, 45, 7, 6, 85, 7, 10, 7, 6, 45,
+  7, 7, 7, 86, 7, 9, 41, 45, 86, 6,
+  6, 6, 14, 46, 7, 67, 80, 45, 45, 6,
+  81, 6, 6, 6, 45, -1, 18, 45, 45, 18,
+  18, -1, 24, -1, 45, 23, 45, 26, 18, 18,
+  18, 18, 18, 23, 45, 24, 23, 23, 18, 18,
+  28, -1, 6, 23, 18, 24, 20, 18, 18, 42,
+  -1, 12, 23, 23, 15, 18, 18, 20, 20, 18,
+  18, 20, 18, 45, 20, 23, 18, 18, 20, 20,
+  18, 18, 18, 21, 20, 18, 23, 18, 21, 61,
+  12, 18, 18, 15, 20, 10, 11, 18, 18, 20,
+  18, 32, 6, 6, 24, 23, 45, 34, 18, 18,
+  18, 20, 18, 18, 22, 6, 22, 18, 23, 18,
+  30, 22, 61, 18, 23, 20, 18, -1, 20, 18,
+  18, 20, 18, -1, 18, 23, 20, 23, 42, 42,
+  18, 18, 18, 18, 18, 23, 23, 23, 23, 23,
+  27, 42, 40, 29, 40, 33, 18, 18, -1, -1,
+  35, 23, 23, 25, 25, 18, 40, 18, 18, -1,
+  23, 18, 23, 23, 25, -1, 23, -1, 31, -1,
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1, 18, -1, -1, -1, -1, 23, -1, -1, 
-  -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, 
+  40, -1, -1, 40, -1, -1, -1, -1, -1, -1,
+  -1, -1, -1, -1, 18, -1, -1, -1, -1, 23,
+  -1, 25, -1, -1, -1, -1, -1, -1, -1, -1,
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-  -1, -1};
+  -1, -1, -1, -1};
 
 
 #define Q_SCRIPT_REGEXPLITERAL_RULE1 7
@@ -2296,7 +2322,7 @@ case 8: {
   }
 } break;
 
-case 66: {
+case 67: {
     QString name = sym(1).toString();
     if ((name == QLatin1String("qsTranslate")) || (name == QLatin1String("QT_TRANSLATE_NOOP"))) {
         if (!sourcetext.isEmpty())
@@ -2365,31 +2391,29 @@ case 66: {
     }
 } break;
 
-case 70: {
+case 71: {
     sym(1) = QVariantList();
 } break;
 
-case 71: {
+case 72: {
     sym(1) = sym(2);
 } break;
 
-case 72: {
+case 73: {
     sym(1) = QVariantList() << sym(1);
 } break;
 
-case 73: {
+case 74: {
     sym(1) = sym(1).toList() << sym(3);
 } break;
 
-case 94: {
+case 95: {
     if ((sym(1).type() == QVariant::String) || (sym(3).type() == QVariant::String))
         sym(1) = sym(1).toString() + sym(3).toString();
     else
         sym(1) = QVariant();
 } break;
 
-    case 171:
-
     case 172:
 
     case 173:
@@ -2417,6 +2441,8 @@ case 94: {
     case 184:
 
     case 185:
+
+    case 186:
     if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
         yyMsg() << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
         sourcetext.clear();
diff --git a/src/linguist/lupdate/qscript.g b/src/linguist/lupdate/qscript.g
index 810a41f4d86bbbc277a4933f29d503d3073231e4..2c275cd1754263e137f96ffae1f6bb0b205c9610 100644
--- a/src/linguist/lupdate/qscript.g
+++ b/src/linguist/lupdate/qscript.g
@@ -1641,6 +1641,7 @@ PrimaryExpression: T_LBRACKET ElisionOpt T_RBRACKET ;
 PrimaryExpression: T_LBRACKET ElementList T_RBRACKET ;
 PrimaryExpression: T_LBRACKET ElementList T_COMMA ElisionOpt T_RBRACKET ;
 PrimaryExpression: T_LBRACE PropertyNameAndValueListOpt T_RBRACE ;
+PrimaryExpression: T_LBRACE PropertyNameAndValueList T_COMMA T_RBRACE ;
 PrimaryExpression: T_LPAREN Expression T_RPAREN ;
 ElementList: ElisionOpt AssignmentExpression ;
 ElementList: ElementList T_COMMA ElisionOpt AssignmentExpression ;
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js b/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d4a8b50cfbce2b06498a729f67ac416a2448a74
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/main.js
@@ -0,0 +1,40 @@
+({ foo: 123, }) // Trailing comma shouldn't cause syntax error and bailout
+
+({ foo: qsTr("one") })
+
+({ foo: qsTr("two"), })
+
+({ foo: qsTranslate("FooContext", "one") })
+
+({ foo: qsTranslate("FooContext", "two"), })
+
+({ foo: qsTrId("qtn_foo_bar") })
+
+({ foo: qsTrId("qtn_bar_baz"), })
+
+({ foo: { bar: 123, }, baz: qsTr("three"), })
+
+({ foo: { bar: 123, }, baz: qsTranslate("FooContext", "three"), })
+
+({
+    firstGuy: {
+        age: 50,
+        //: First guy first name
+        firstName: qsTr("Frits"),
+        //: First guy middle name
+        middleName: qsTranslate("BarContext", "Joe"),
+        //% "First guy last name"
+        lastName: qsTrId("qtn_first_guy_last_name"),
+        weight: 100, // Uh-oh, trailing comma!
+    },
+    secondGuy: {
+        age: 70,
+        //: Second guy first name
+        firstName: qsTr("Bob"),
+        //: Second guy middle name
+        middleName: qsTranslate("BarContext", "Steve"),
+        //% "Second guy last name"
+        lastName: qsTrId("qtn_second_guy_last_name"),
+        weight: 120, // Uh-oh, trailing comma!
+    },
+})
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro
new file mode 100644
index 0000000000000000000000000000000000000000..d549039c4b8d8dbbb2631bfed45a4ca8a9451155
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.pro
@@ -0,0 +1,3 @@
+SOURCES += main.js
+
+TRANSLATIONS = project.ts
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result
new file mode 100644
index 0000000000000000000000000000000000000000..ac36dbfada4b4d5b0f6dba240c6fb38f9b24a1f9
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsejs3/project.ts.result
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0">
+<context>
+    <name></name>
+    <message id="qtn_foo_bar">
+        <location filename="main.js" line="11"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_bar_baz">
+        <location filename="main.js" line="13"/>
+        <source></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_first_guy_last_name">
+        <location filename="main.js" line="27"/>
+        <source>First guy last name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message id="qtn_second_guy_last_name">
+        <location filename="main.js" line="37"/>
+        <source>Second guy last name</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>BarContext</name>
+    <message>
+        <location filename="main.js" line="25"/>
+        <source>Joe</source>
+        <extracomment>First guy middle name</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="35"/>
+        <source>Steve</source>
+        <extracomment>Second guy middle name</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>FooContext</name>
+    <message>
+        <location filename="main.js" line="7"/>
+        <source>one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="9"/>
+        <source>two</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="17"/>
+        <source>three</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="main.js" line="3"/>
+        <source>one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="5"/>
+        <source>two</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="15"/>
+        <source>three</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="23"/>
+        <source>Frits</source>
+        <extracomment>First guy first name</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="main.js" line="33"/>
+        <source>Bob</source>
+        <extracomment>Second guy first name</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>