From 8d2056de208e1d0e0a83fb61d2a2fa91ebd4101c Mon Sep 17 00:00:00 2001 From: Dmitry Cheryasov Date: Fri, 10 Oct 2008 22:46:24 +0400 Subject: [PATCH] Fixes triple-quoted string parsing (PY-84, PY-87). --- .../com/jetbrains/python/lexer/Python.flex | 16 +- .../jetbrains/python/lexer/_PythonLexer.java | 815 +++++++++--------- 2 files changed, 421 insertions(+), 410 deletions(-) diff --git a/python/src/com/jetbrains/python/lexer/Python.flex b/python/src/com/jetbrains/python/lexer/Python.flex index 410c2011a045..e3b44ebf9a74 100644 --- a/python/src/com/jetbrains/python/lexer/Python.flex +++ b/python/src/com/jetbrains/python/lexer/Python.flex @@ -43,9 +43,23 @@ RAW_STRING=[Rr]{QUOTED_STRING} QUOTED_STRING=({TRIPLE_APOS_LITERAL})|({QUOTED_LITERAL})|({DOUBLE_QUOTED_LITERAL})|({TRIPLE_QUOTED_LITERAL}) QUOTED_LITERAL="'"([^\\\'\r\n]|{ESCAPE_SEQUENCE}|(\\[\r\n]))*("'"|\\)? DOUBLE_QUOTED_LITERAL=\"([^\\\"\r\n]|{ESCAPE_SEQUENCE}|(\\[\r\n]))*?(\"|\\)? +ESCAPE_SEQUENCE=\\[^\r\n] + +/* TRIPLE_QUOTED_LITERAL="\"\"\""~([^\\]"\"\"\"") TRIPLE_APOS_LITERAL="\'\'\'"~([^\\]"\'\'\'") -ESCAPE_SEQUENCE=\\[^\r\n] +*/ +THREE_QUO = (\"\"\") +ESCAPED_CHAR = (\\[^] | [^\\]) +NONQUO_CHAR = (\\[^] | [^i\\\"]) +STRING_3CHAR_QUO = ({ESCAPED_CHAR}{1,2}? {NONQUO_CHAR}) +TRIPLE_QUOTED_LITERAL = {THREE_QUO} {STRING_3CHAR_QUO}* {THREE_QUO} + +THREE_APOS = (\'\'\') +NONAPOS_CHAR = (\\[^] | [^i\\\']) +STRING_3CHAR_APOS = ({ESCAPED_CHAR}{1,2}? {NONAPOS_CHAR}) +TRIPLE_APOS_LITERAL = {THREE_APOS} {STRING_3CHAR_APOS}* {THREE_APOS} + %% diff --git a/python/src/com/jetbrains/python/lexer/_PythonLexer.java b/python/src/com/jetbrains/python/lexer/_PythonLexer.java index 68f353912276..f9096b77f757 100644 --- a/python/src/com/jetbrains/python/lexer/_PythonLexer.java +++ b/python/src/com/jetbrains/python/lexer/_PythonLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.1 on 03.02.08 20:21 */ +/* The following code was generated by JFlex 1.4.2 on 10/10/08 9:30 PM */ /* It's an automatically generated code. Do not modify it. */ package com.jetbrains.python.lexer; @@ -10,8 +10,8 @@ import com.jetbrains.python.PyTokenTypes; /** * This class is a scanner generated by - * JFlex 1.4.1 - * on 03.02.08 20:21 from the specification file + * JFlex 1.4.2 + * on 10/10/08 9:30 PM from the specification file * Python.flex */ class _PythonLexer implements FlexLexer { @@ -21,18 +21,28 @@ class _PythonLexer implements FlexLexer { /** lexical states */ public static final int YYINITIAL = 0; + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0 + }; + /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\24\1\10\1\0\1\25\1\10\22\0\1\23\1\66\1\22"+ + "\11\0\1\25\1\10\1\0\1\26\1\10\22\0\1\24\1\66\1\22"+ "\1\7\1\0\1\60\1\61\1\20\1\70\1\71\1\56\1\54\1\77"+ "\1\14\1\12\1\57\1\1\7\3\2\2\1\100\1\102\1\65\1\55"+ "\1\64\1\0\1\76\4\4\1\13\1\4\3\11\1\15\1\11\1\6"+ "\5\11\1\17\2\11\1\16\2\11\1\5\2\11\1\72\1\21\1\73"+ - "\1\63\1\11\1\101\1\26\1\35\1\37\1\30\1\32\1\44\1\51"+ - "\1\53\1\42\1\15\1\36\1\40\1\50\1\27\1\41\1\46\1\11"+ - "\1\33\1\31\1\34\1\43\1\11\1\52\1\45\1\47\1\11\1\74"+ + "\1\63\1\11\1\101\1\27\1\36\1\40\1\31\1\33\1\44\1\51"+ + "\1\53\1\23\1\15\1\37\1\41\1\50\1\30\1\42\1\46\1\11"+ + "\1\34\1\32\1\35\1\43\1\11\1\52\1\45\1\47\1\11\1\74"+ "\1\62\1\75\1\67\uff81\0"; /** @@ -47,24 +57,24 @@ class _PythonLexer implements FlexLexer { private static final String ZZ_ACTION_PACKED_0 = "\1\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"+ - "\2\3\1\10\1\11\1\10\1\12\1\13\1\14\20\3"+ - "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24"+ - "\1\25\1\26\1\1\1\27\1\30\1\31\1\32\1\33"+ - "\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\2"+ - "\2\0\1\2\1\43\1\0\1\44\1\45\6\10\15\3"+ - "\1\46\1\47\1\50\1\51\11\3\1\52\1\53\1\54"+ - "\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64"+ - "\1\65\1\66\1\67\1\70\1\71\1\2\1\43\1\0"+ - "\1\10\2\0\1\72\1\3\1\73\1\74\1\75\6\3"+ - "\1\76\6\3\1\77\6\3\1\100\1\101\1\102\1\103"+ - "\2\0\1\3\1\104\1\105\1\106\10\3\1\107\1\3"+ - "\1\110\4\3\2\0\2\3\1\111\1\3\1\112\1\113"+ - "\4\3\1\114\1\115\1\3\1\116\2\0\1\117\1\120"+ - "\1\121\1\3\1\122\1\123\1\3\1\124\2\10\1\3"+ - "\1\125\2\10\1\126\2\10"; + "\2\3\1\10\1\11\1\10\1\3\1\12\1\13\1\14"+ + "\17\3\1\15\1\16\1\17\1\20\1\21\1\22\1\23"+ + "\1\24\1\25\1\26\1\1\1\27\1\30\1\31\1\32"+ + "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42"+ + "\1\2\2\0\1\2\1\43\1\0\1\44\1\45\6\10"+ + "\1\46\1\47\1\50\16\3\1\51\10\3\1\52\1\53"+ + "\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+ + "\1\64\1\65\1\66\1\67\1\70\1\71\1\2\1\43"+ + "\1\0\1\10\2\0\1\3\1\72\1\3\1\73\1\74"+ + "\1\75\6\3\1\76\6\3\1\77\5\3\1\100\1\101"+ + "\1\102\1\103\6\0\2\3\1\104\1\105\1\106\10\3"+ + "\1\107\1\110\4\3\4\0\3\3\1\111\1\3\1\112"+ + "\1\113\3\3\1\114\1\115\1\3\1\116\1\117\1\120"+ + "\1\121\1\122\1\3\1\123\1\3\1\124\1\3\1\125"+ + "\1\126"; private static int [] zzUnpackAction() { - int [] result = new int[203]; + int [] result = new int[201]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -90,34 +100,34 @@ class _PythonLexer implements FlexLexer { private static final String ZZ_ROWMAP_PACKED_0 = "\0\0\0\103\0\206\0\311\0\u010c\0\u014f\0\u0192\0\u01d5"+ - "\0\u0218\0\u025b\0\u029e\0\u02e1\0\103\0\u0324\0\103\0\103"+ - "\0\103\0\u0367\0\u03aa\0\u03ed\0\u0430\0\u0473\0\u04b6\0\u04f9"+ + "\0\u0218\0\u025b\0\u029e\0\u02e1\0\103\0\u0324\0\u0367\0\103"+ + "\0\103\0\103\0\u03aa\0\u03ed\0\u0430\0\u0473\0\u04b6\0\u04f9"+ "\0\u053c\0\u057f\0\u05c2\0\u0605\0\u0648\0\u068b\0\u06ce\0\u0711"+ "\0\u0754\0\u0797\0\u07da\0\u081d\0\u0860\0\u08a3\0\u08e6\0\u0929"+ "\0\u096c\0\u09af\0\u09f2\0\u0a35\0\103\0\103\0\103\0\103"+ "\0\103\0\103\0\103\0\103\0\103\0\103\0\103\0\103"+ "\0\u0a78\0\u0abb\0\u0afe\0\103\0\u0b41\0\u0b84\0\103\0\103"+ - "\0\u0bc7\0\u0c0a\0\u0c4d\0\u0c90\0\u0cd3\0\u0d16\0\u0d59\0\u0d9c"+ - "\0\u0ddf\0\u0e22\0\u0e65\0\u0ea8\0\u0eeb\0\u0f2e\0\u0f71\0\u0fb4"+ - "\0\u0ff7\0\u103a\0\u107d\0\u010c\0\u010c\0\u010c\0\u010c\0\u10c0"+ + "\0\u0bc7\0\u0c0a\0\u0c4d\0\u0c90\0\u0cd3\0\u0d16\0\u010c\0\u010c"+ + "\0\u010c\0\u0d59\0\u0d9c\0\u0ddf\0\u0e22\0\u0e65\0\u0ea8\0\u0eeb"+ + "\0\u0f2e\0\u0f71\0\u0fb4\0\u0ff7\0\u103a\0\u107d\0\u10c0\0\u010c"+ "\0\u1103\0\u1146\0\u1189\0\u11cc\0\u120f\0\u1252\0\u1295\0\u12d8"+ "\0\103\0\103\0\103\0\u131b\0\103\0\u135e\0\103\0\103"+ "\0\103\0\103\0\103\0\u13a1\0\103\0\103\0\u13e4\0\103"+ - "\0\u1427\0\u146a\0\u14ad\0\103\0\u14f0\0\u1533\0\u010c\0\u1576"+ - "\0\u010c\0\u010c\0\u010c\0\u15b9\0\u15fc\0\u163f\0\u1682\0\u16c5"+ - "\0\u1708\0\u010c\0\u174b\0\u178e\0\u17d1\0\u1814\0\u1857\0\u189a"+ - "\0\u010c\0\u18dd\0\u1920\0\u1963\0\u19a6\0\u19e9\0\u1a2c\0\103"+ - "\0\103\0\103\0\103\0\u1a6f\0\u1ab2\0\u1af5\0\u010c\0\u010c"+ - "\0\u010c\0\u1b38\0\u1b7b\0\u1bbe\0\u1c01\0\u1c44\0\u1c87\0\u1cca"+ - "\0\u1d0d\0\u010c\0\u1d50\0\u010c\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c"+ - "\0\u1e9f\0\u1ee2\0\u1f25\0\u1f68\0\u010c\0\u1fab\0\u010c\0\u010c"+ - "\0\u1fee\0\u2031\0\u2074\0\u20b7\0\u010c\0\u010c\0\u20fa\0\u010c"+ - "\0\u213d\0\u2180\0\u010c\0\u010c\0\u010c\0\u21c3\0\u010c\0\u010c"+ - "\0\u2206\0\u010c\0\u2249\0\u228c\0\u22cf\0\u010c\0\u2312\0\u2355"+ - "\0\u010c\0\u2398\0\u23db"; + "\0\u1427\0\u146a\0\u14ad\0\103\0\u14f0\0\u1533\0\u1576\0\u010c"+ + "\0\u15b9\0\u010c\0\u010c\0\u010c\0\u15fc\0\u163f\0\u1682\0\u16c5"+ + "\0\u1708\0\u174b\0\u010c\0\u178e\0\u17d1\0\u1814\0\u1857\0\u189a"+ + "\0\u18dd\0\u010c\0\u1920\0\u1963\0\u19a6\0\u19e9\0\u1a2c\0\103"+ + "\0\103\0\103\0\103\0\u1a6f\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b"+ + "\0\u1bbe\0\u1c01\0\u1c44\0\u010c\0\u010c\0\u010c\0\u1c87\0\u1cca"+ + "\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c\0\u010c\0\u010c"+ + "\0\u1e9f\0\u1ee2\0\u1f25\0\u1f68\0\u1fab\0\u1fee\0\u2031\0\u2074"+ + "\0\u20b7\0\u20fa\0\u213d\0\u010c\0\u2180\0\u010c\0\u010c\0\u21c3"+ + "\0\u2206\0\u2249\0\u010c\0\u010c\0\u228c\0\u010c\0\u010c\0\u010c"+ + "\0\u010c\0\u010c\0\u22cf\0\u010c\0\u2312\0\u010c\0\u2355\0\u010c"+ + "\0\u010c"; private static int [] zzUnpackRowMap() { - int [] result = new int[203]; + int [] result = new int[201]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -140,8 +150,8 @@ class _PythonLexer implements FlexLexer { private static final int ZZ_TRANS [] = { 1, 2, 3, 3, 4, 4, 4, 5, 6, 4, 7, 4, 8, 4, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 4, 20, 21, 22, 23, - 4, 24, 25, 26, 27, 9, 28, 4, 29, 30, + 15, 16, 17, 18, 19, 20, 4, 21, 22, 23, + 24, 4, 25, 26, 27, 9, 28, 4, 29, 30, 4, 31, 32, 4, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, -1, -1, @@ -154,20 +164,20 @@ class _PythonLexer implements FlexLexer { -1, -1, -1, -1, -1, 56, 57, 56, -1, 58, 59, -1, -1, -1, 60, 61, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 61, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, 61, -1, -1, -1, -1, -1, 59, -1, -1, -1, 58, -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, 3, 3, 3, -1, -1, 59, -1, -1, -1, 60, 61, -1, 62, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + -1, -1, -1, -1, 59, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -200,14 +210,14 @@ class _PythonLexer implements FlexLexer { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 10, 11, - -1, 13, -1, -1, -1, 4, 4, 4, 4, 4, - 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 13, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, 11, -1, 13, -1, - -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, 11, -1, 13, 4, + -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -227,107 +237,107 @@ class _PythonLexer implements FlexLexer { 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 70, 4, 71, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, + 4, -1, -1, -1, 4, 70, 4, 71, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 72, 4, 4, + 4, 73, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 74, 4, 75, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 72, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 4, 73, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 76, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 74, 4, 4, 4, 4, 75, + -1, 4, -1, -1, -1, 4, 4, 4, 4, 77, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, 11, -1, 13, -1, -1, - -1, 76, 4, 4, 4, 77, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 78, 4, 4, 4, 79, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, - 4, 4, 4, 78, 4, 4, 4, 4, 4, 4, + 4, 4, 11, -1, 13, 4, -1, -1, -1, 80, + 4, 4, 4, 81, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 79, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 82, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 80, 81, 4, 4, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 4, 4, 4, 4, 4, 83, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 82, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 84, 85, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, - 4, 83, 4, 4, 4, 4, 4, 4, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 86, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 84, 4, 85, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 86, 4, 4, - 4, 87, 4, 4, 4, -1, -1, -1, -1, -1, + 4, -1, -1, -1, 4, 4, 4, 4, 4, 87, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 88, 4, 4, 4, 4, - 4, 89, 90, 4, 4, 4, 4, 4, 4, 4, + -1, 4, 4, 4, -1, -1, -1, 88, -1, -1, + -1, 4, 4, 4, 4, 4, 89, 4, 4, 4, + 4, 4, 90, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 91, 4, 4, - 4, 4, 92, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 91, 4, + 4, 4, 4, 92, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 93, 4, 4, 4, + -1, 93, -1, -1, -1, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 94, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 94, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -408,27 +418,27 @@ class _PythonLexer implements FlexLexer { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 57, 56, -1, -1, 59, -1, -1, -1, 60, 61, -1, 62, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 59, -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, 57, 57, 57, -1, -1, -1, -1, -1, -1, 60, 61, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 61, -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, 112, 112, 112, 112, -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, 112, -1, - 112, -1, -1, 112, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 112, -1, 112, + -1, 112, -1, -1, 112, -1, 112, -1, -1, -1, 112, -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, 60, 60, 60, -1, -1, -1, -1, -1, -1, -1, 61, -1, 62, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -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, @@ -481,149 +491,149 @@ class _PythonLexer implements FlexLexer { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, - 4, 118, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 118, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 119, + -1, -1, -1, 4, -1, -1, -1, 4, 4, 119, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 4, 4, 120, + 4, -1, -1, -1, 4, 4, 4, 120, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 121, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 121, 4, 4, 4, 122, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 123, 4, 4, 4, 4, 4, 4, 4, 4, 124, - 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 122, 4, + 4, 123, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 125, 4, - 4, 4, 4, 126, 4, 4, 4, 4, 4, 4, + -1, 124, -1, -1, -1, 4, 4, 4, 125, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 127, 4, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 126, 4, 4, 4, + 4, 127, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, - 4, 4, 4, 4, 128, 4, 4, 4, 4, 4, + 4, 4, -1, -1, -1, 128, -1, -1, -1, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 129, 4, 4, 4, 4, -1, -1, -1, + -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 4, 129, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 130, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 130, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 131, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, + 4, 4, 4, 4, 131, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 132, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 132, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, 133, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 133, 4, 4, 4, -1, -1, -1, -1, -1, + 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 134, 4, 4, 4, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 134, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 135, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 135, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 4, 136, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 136, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 137, 4, 4, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 137, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, - 4, 138, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 4, 4, 138, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 139, 4, 4, + -1, -1, 139, -1, -1, -1, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 140, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 4, 4, 4, 4, 140, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 141, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 141, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 142, 4, + -1, -1, -1, 142, -1, -1, -1, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -656,8 +666,8 @@ class _PythonLexer implements FlexLexer { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 112, 112, 112, 112, -1, 59, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 112, -1, 112, -1, 112, -1, -1, 112, -1, - 112, 59, -1, -1, -1, 112, -1, -1, -1, -1, + -1, -1, 112, -1, 112, -1, 112, -1, -1, 112, + -1, 112, 59, -1, -1, 112, -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, 113, 113, 113, @@ -674,395 +684,382 @@ class _PythonLexer implements FlexLexer { -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, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 116, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 117, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, -1, 4, 4, 4, 4, 4, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 147, 148, 116, 149, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 150, 151, 152, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, - 149, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 153, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 150, 4, 4, + 4, -1, -1, -1, 4, 4, 4, 4, 154, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 151, 4, 4, 4, 4, 4, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 155, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 152, 4, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 156, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 153, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 157, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 4, 4, 154, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 158, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 4, 4, 159, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 155, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 156, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 160, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 157, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 161, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, - 4, 4, 4, 4, 4, 158, 4, 4, 4, 4, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, + 4, 4, 4, 162, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, - 4, 4, 4, 159, 4, 4, 4, 4, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, + 4, 4, 4, 163, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, + 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, + 4, 164, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, -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, + 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 165, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, -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, 4, 4, 4, + 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 166, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, + -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, + -1, 4, -1, -1, -1, 4, 4, 4, 167, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 168, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, -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, 4, 4, + 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 169, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -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, 4, 4, 4, 4, 4, + -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, + -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 4, 4, 170, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 160, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, -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, - 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 161, 4, - 4, 4, -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, 4, 4, 4, - 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 162, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, - -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 163, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 4, 4, 171, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 172, 148, 116, 173, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 173, 148, 116, + 173, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 150, 174, 175, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 150, + 175, 175, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 164, 4, 4, 4, 4, 4, 4, 4, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 176, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 165, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 4, 4, 4, 4, 177, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 4, 166, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, + -1, -1, 4, -1, -1, -1, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 178, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 167, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 4, 4, 4, 4, 179, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 168, 116, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 117, 169, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, -1, 4, 4, 4, 4, 4, 4, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4, 4, + 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, + 4, 4, 4, 4, 4, 180, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -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, 4, 4, 4, 4, + 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, + 4, 4, 4, 4, 4, 181, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 4, 170, 4, + 4, -1, -1, -1, 4, 4, 4, 182, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, + -1, 4, 4, 4, -1, -1, -1, 183, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 171, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 4, 172, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 184, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 4, 173, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 185, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, - 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, - -1, 4, 4, 4, 4, 4, 4, 4, 4, 174, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 4, 186, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, - 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, - 4, 175, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 4, 187, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 176, 4, 4, + -1, -1, 4, -1, -1, -1, 188, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 177, 4, 4, 4, 4, 4, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 4, 4, 4, 4, 189, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, - 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, - 4, 4, 4, 4, 178, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, -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, 4, 4, 4, 4, - 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 179, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, - 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 4, 4, 180, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, -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, - 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 181, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, -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, 4, 4, 4, + -1, -1, -1, -1, -1, -1, -1, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 115, 148, 116, -1, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + -1, 148, 116, -1, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 150, 115, + -1, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 150, -1, -1, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 182, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 4, 4, 190, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, - -1, -1, -1, -1, 4, 4, 4, 4, 183, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, 4, -1, -1, -1, 4, 4, 4, 4, 4, + 4, 191, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 184, 116, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 117, 185, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, -1, 4, 4, 4, 4, 4, 4, - -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 186, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 4, 4, 187, 4, + 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, + 4, -1, 4, 4, 4, -1, -1, -1, 4, -1, + -1, -1, 4, 4, 4, 4, 4, 4, 192, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, -1, -1, -1, -1, -1, -1, + 4, 4, 4, -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, 4, - 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, - 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, - 188, 4, 4, 4, 4, 4, 4, 4, 4, 4, + -1, -1, -1, -1, -1, -1, -1, 4, 4, 4, + 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, + 4, 4, -1, -1, -1, 4, -1, -1, -1, 4, + 193, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, -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, 4, 4, 4, 4, - 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, - -1, -1, -1, -1, -1, -1, 4, 189, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, - 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 190, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, -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, - 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, - -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, - 4, 4, 4, 4, 4, 4, 191, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, -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, 4, 4, 4, - 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, - 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 192, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, - -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 193, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 194, 116, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 117, 195, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, -1, 4, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, - -1, -1, -1, -1, -1, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 196, 4, + -1, -1, 4, -1, -1, -1, 4, 194, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, - -1, 4, -1, 4, 4, 4, -1, -1, -1, -1, - -1, -1, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 197, + -1, 4, -1, 4, 4, 4, -1, -1, -1, 4, + -1, -1, -1, 195, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, + 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, + 4, 4, 4, -1, -1, -1, 4, -1, -1, -1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 196, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -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, 198, -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, -1, -1, - -1, -1, 199, -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, 4, 4, 4, 4, + 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, + -1, -1, -1, 4, -1, -1, -1, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 197, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, -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, 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, 4, -1, -1, -1, - -1, -1, -1, 4, 4, 4, 4, 200, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, -1, -1, -1, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 198, 4, 4, 4, 4, 4, 4, 4, 4, -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, + 4, 4, 4, 4, 4, -1, -1, 4, -1, 4, + -1, 4, 4, 4, -1, -1, -1, 4, -1, -1, + -1, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 199, 4, 4, + 4, 4, -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, 4, 4, 4, + 4, 4, -1, -1, 4, -1, 4, -1, 4, 4, + 4, -1, -1, -1, 4, -1, -1, -1, 4, 4, + 4, 4, 200, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, -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, 201, -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, -1, - -1, -1, -1, 202, -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, 115, -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, -1, -1, -1, -1, 115, -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, }; /* error codes */ @@ -1086,14 +1083,14 @@ class _PythonLexer implements FlexLexer { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\12\1\1\11\1\1\3\11\33\1\14\11"+ + "\1\0\1\11\12\1\1\11\2\1\3\11\32\1\14\11"+ "\1\1\2\0\1\11\1\1\1\0\2\11\40\1\3\11"+ "\1\1\1\11\1\1\5\11\1\1\2\11\1\1\1\11"+ - "\2\1\1\0\1\11\2\0\31\1\4\11\2\0\23\1"+ - "\2\0\16\1\2\0\21\1"; + "\2\1\1\0\1\11\2\0\31\1\4\11\6\0\23\1"+ + "\4\0\31\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[203]; + int [] result = new int[201]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -1355,7 +1352,7 @@ class _PythonLexer implements FlexLexer { zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - zzState = zzLexicalState; + zzState = ZZ_LEXSTATE[zzLexicalState]; zzForAction: { @@ -1463,7 +1460,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.LT; } case 101: break; - case 39: + case 38: { return PyTokenTypes.IN_KEYWORD; } case 102: break; @@ -1483,7 +1480,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.SPACE; } case 106: break; - case 80: + case 81: { return PyTokenTypes.EXCEPT_KEYWORD; } case 107: break; @@ -1519,7 +1516,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.OR; } case 115: break; - case 68: + case 69: { return PyTokenTypes.ELSE_KEYWORD; } case 116: break; @@ -1539,7 +1536,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.MULT; } case 120: break; - case 79: + case 80: { return PyTokenTypes.ASSERT_KEYWORD; } case 121: break; @@ -1551,7 +1548,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.GLOBAL_KEYWORD; } case 123: break; - case 82: + case 83: { return PyTokenTypes.LAMBDA_KEYWORD; } case 124: break; @@ -1619,7 +1616,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.AND_KEYWORD; } case 140: break; - case 38: + case 41: { return PyTokenTypes.OR_KEYWORD; } case 141: break; @@ -1651,11 +1648,11 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.DIVEQ; } case 148: break; - case 81: + case 82: { return PyTokenTypes.RETURN_KEYWORD; } case 149: break; - case 83: + case 79: { return PyTokenTypes.IMPORT_KEYWORD; } case 150: break; @@ -1671,7 +1668,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.DEF_KEYWORD; } case 153: break; - case 40: + case 39: { return PyTokenTypes.IS_KEYWORD; } case 154: break; @@ -1711,7 +1708,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.EXPEQ; } case 163: break; - case 69: + case 68: { return PyTokenTypes.ELIF_KEYWORD; } case 164: break; @@ -1723,7 +1720,7 @@ class _PythonLexer implements FlexLexer { { return PyTokenTypes.CLASS_KEYWORD; } case 166: break; - case 41: + case 40: { return PyTokenTypes.IF_KEYWORD; } case 167: break;